Skip to main content

Chapter-sync

Actions Status codecov Documentation Status Docker

A tool for recording serialized web content, in partial web-serial type novels, or other serialized content for which you want to be sent updates as they're published.

The other tools in the space (at least that I'm aware of: Leech, FanFicFare) are mostly designed around manual one-off usage of the tool to capture the current state of a story/series and turn it into an ebook.

chapter-sync, by contrast, records everything it captures to a sqlite database and will only collect new/missing chapters. It also bakes in (through supported subscription methods) the ability to send new chapters to "subscribers" who have not yet received it.

Quickstart

❯ chapter-sync series add some-book 'https://some-book.com/table-of-contents/' --title 'Some Book' --settings '{"content_selector": "#main .entry-content", "chapter_selector": "#main .entry-content > ul > li > a"}'
Added series "some-book" at "https://some-book.com/table-of-contents/"

❯ chapter-sync series list
┏━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ID ┃ Name                       ┃ URL                                  ┃
┡━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ 1  │ some-book                  │ https://some-book.com/table-of-cont… │
└────┴────────────────────────────┴──────────────────────────────────────┘

❯ chapter-sync sync
...
Done

❯ chapter-sync chapter list 1
                               Some Book
┏━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┓
┃ Title      ┃ Chapter ┃ Size (Kb) ┃ Sent       ┃ Published  ┃ Created    ┃
┡━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━┩
│ Chapter 1  │ 1       │ 37.3      │ 2024-03-02 │ 2023-07-28 │ 2024-03-02 │
│ Chapter 2  │ 2       │ 37.1      │ 2024-03-02 │ 2023-08-04 │ 2024-03-02 │
│ Chapter 3  │ 3       │ 36.9      │ 2024-03-02 │ 2023-08-11 │ 2024-03-02 │
│ Chapter 4  │ 4       │ 36.9      │ 2024-03-02 │ 2023-08-18 │ 2024-03-02 │
└────────────┴─────────┴───────────┴────────────┴────────────┴────────────┘

❯ chapter-sync chapter export 1 4
❯ ls
Some Book: Chapter 4.epub

❯ chapter-sync series export 1
❯ ls
Some Book.epub

Web

The tool also ships with a web service which can be used to view and manage subscriptions.

Web Example

Inspiration

this tool started off as an attempt at a refactor/PR to Leech to enable it to more granularly record updates to books as they changed.

However, chapter-sync is designed from the ground up to be able to individually record/send chapters as they are published, which ultimately means the to tools ultimately end up being almost entirely different.

I had been using InstaPaper to send updates of series to my kindle, until they made that a paid feature. Additionally the drawback there, was that the file they'd send would contain all chapters in the whole series, in reverse.

Release files for chapter-sync 0.3.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for chapter-sync 0.3.7
File Size Uploaded
chapter_sync-0.3.7.tar.gz 40.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for chapter-sync 0.3.7
File Interpreter ABI Platform
chapter_sync-0.3.7-py3-none-any.whl Python 3 none any Details

Total release size: 97.1 kB

Release files / chapter_sync-0.3.7.tar.gz

Download URL chapter_sync-0.3.7.tar.gz
Size 40.8 kB
Tags Source
SHA-256 checksum
How to use checksums
bac460c8014c5a2324538303b39b818fc1f06a8213c0e6e39c6b98ea1dc917b5
BLAKE2b-256 checksum
How to use checksums
7592111271706f85087dc17568ae306f994e1c62bfec81828c46da79ec48b4b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.0 CPython/3.12.4

Release files / chapter_sync-0.3.7-py3-none-any.whl

Download URL chapter_sync-0.3.7-py3-none-any.whl
Size 56.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7d2f1fb34440fe97e926ba5f57c02a41da1ffbfeda905597d82820dc97540270
BLAKE2b-256 checksum
How to use checksums
9e9836465c7f7f0075e36a58855c8f35d5cd9509d93aaedace732371dbdbad33
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.0 CPython/3.12.4

Release history Release notifications | RSS feed

This release

0.3.7 This release

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page