Skip to content

feat(daemon): read the AniList list - #86

Merged
noctuum merged 1 commit into
mainfrom
feat/list-reading
Oct 15, 2026
Merged

noctuum merged 1 commit into
mainfrom
feat/list-reading

Conversation

@noctuum

@noctuum noctuum commented Oct 15, 2026

Copy link
Copy Markdown
Member

The daemon reads the account's AniList list, files it in the store and decides the names of files against it. A supervised task, list, reads at the times [list] names: as the daemon starts, every refresh, after a login and on a miss.

  • A miss is a name that spells a title the list does not hold. It brings a reading where the last one went through, no sooner than on_miss after the last reading.
  • A reading that fails is said once and tried again after 1 minute, then twice as long each time, up to an hour. A 429 waits what AniList asks. A refused token is not tried again until a login.
  • The token is BENSHI_TOKEN_ANILIST where it is set, and else the one the secret store keeps, read without asking to unlock.
  • recognition::Current holds the recogniser the rounds decide against. A round takes it once as it begins, and a reading replaces it. The daemon starts with a recogniser of the list the store holds.
  • A login that goes through wakes the task.
  • A line a task says as the daemon stops is not said after stopped by.

A live run in a session of its own, with the token of a test account in BENSHI_TOKEN_ANILIST: the daemon read a list of one entry, recognised a file of it that mpv played and recorded the episode.

cargo test --workspace passes, 1070 tests.

The list is read at the start, each refresh, on a miss and on a login.
@noctuum
noctuum merged commit ec6ae84 into main Oct 15, 2026
1 check passed
@noctuum
noctuum deleted the feat/list-reading branch October 15, 2026 22:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant