289 Commits

Author SHA1 Message Date
9da626f17b docs: update README
add folder info about middleware
2025-12-18 08:54:29 -05:00
3fab9cacbc feat: use luxon for TTL 2025-12-18 08:51:53 -05:00
f9ca949d8e chore: add debug logging to help understand why episode updates won't run 2025-12-18 08:50:53 -05:00
37b4f0bf2b chore: remove no longer needed isRetrying boolean 2025-12-18 08:49:50 -05:00
d66903400d fix: 'upcoming' titles failing to fetch
wasn't returning "Page" from the anilist json response
2025-12-18 08:49:17 -05:00
4c96f58cb0 feat: add user profile fetch in middleware 2025-12-18 08:48:22 -05:00
b64bd4fc26 refactor: move existing middleware into its own folder 2025-12-18 08:44:28 -05:00
4c2d0a9177 fix: revert back to using typed documents for GraphQL 2025-12-18 08:43:49 -05:00
dc60a1e045 feat: Increase maximum direct queue delay from 9 to 12 hours and cap retry delays at this new limit. 2025-12-18 07:04:31 -05:00
6570c25617 feat: configure queue retry delays with min/max bounds and update exponential backoff defaults 2025-12-17 09:25:07 -05:00
6f795bdde0 feat: implement generic queue message processing with retry logic 2025-12-17 07:55:59 -05:00
243c279ca9 feat: introduce exponential backoff utility 2025-12-17 07:54:24 -05:00
286824e3a1 refactor: standardize authorization header handling in queueTask 2025-12-17 07:54:03 -05:00
b26d22ad91 feat: conditionally queue AniList updates and use updated payload 2025-12-17 07:52:17 -05:00
3c5685dbdb refactor: remove HonoRequest from updateWatchStatus 2025-12-17 07:52:16 -05:00
c527a6eac5 docs: expand README with detailed setup, tech stack, development, and project structure. 2025-12-17 06:52:58 -05:00
f16ac80b7e chore: remove unnecessary env scripts
since `wrangler types` works as intended now
2025-12-17 06:52:44 -05:00
cd04a75b06 feat: remove Docker-related files and configuration 2025-12-17 06:43:36 -05:00
eb6dc545e2 fix: missing deploy script 2025-12-17 06:41:40 -05:00
a99961df51 fix: missing migrations in wrangler.toml 2025-12-17 06:41:21 -05:00
d5b113c884 test: enhance test environment mocking 2025-12-17 06:36:04 -05:00
6eb42f6a33 feat: update delayed task processing to a shared 9-hour maximum delay, remove invalid KV entries 2025-12-17 06:35:57 -05:00
05df043fbe refactor: use fake Vitest Cloudflare environment for processDelayedTasks test 2025-12-17 06:35:05 -05:00
fb7990b274 test: add 'cloudflare:test' module to export same typings as 'cloudflare:workers' 2025-12-17 06:33:00 -05:00
80a6f67ead refactor: decouple Anilist watch status updates from API endpoint to an asynchronous queue worker. 2025-12-16 08:28:33 -05:00
1501aff3b6 fix: adjust task delay threshold to 9 hours
Updates the maximum delay for direct task queuing to 9 hours. This change ensures that tasks with delays exceeding this threshold are stored in KV for later processing.

The update also reflects the new delay threshold in the unit tests.
2025-12-16 08:28:14 -05:00
9b17f5bcfe refactor: rename mockData.ts to mocks.ts and update import paths. 2025-12-16 08:04:26 -05:00
45bf96e764 refactor: Remove Anify and Consumet integrations, their dependencies, and the ipCheck script. 2025-12-16 08:03:05 -05:00
e8c7c7801f chore: Update Vitest async test expectations and remove unused dependencies. 2025-12-16 07:50:39 -05:00
1140ffa8b8 refactor!: migrate away from bun
- migrate package management to pnpm
- migrate test suite to vitest
- also remove Anify integration
2025-12-16 07:50:38 -05:00
748aaec100 chore: Clean up wrangler.toml D1/DO migrations 2025-12-12 06:46:33 -05:00
9116a561c3 refactor: Consolidate caching logic in Anilist DO by using handleCachedRequest for all data fetching methods and allowing dynamic TTL calculation. 2025-12-12 06:46:33 -05:00
67e07331a1 fix: 'upcoming season' popular titles not returning 2025-12-12 06:46:32 -05:00
6e3e3431c9 fix: add back remaining mock data paths 2025-12-12 06:46:32 -05:00
7624caf8cb ci: disable ci for now 2025-12-12 06:43:19 -05:00
44dca65a96 fix: currentPage not incrementing when loading watched titles 2025-12-12 06:43:19 -05:00
236a6ba165 fix: 'retry-after' headers not being read properly 2025-12-12 06:43:01 -05:00
c35e18218a feat: add type safety to AniList fetching methods 2025-12-12 06:43:01 -05:00
3508f3461b chore: rename getUser to getUserProfile 2025-12-12 06:42:58 -05:00
ad26cd6da3 feat: set up mock data to be used to generate baseline profiles 2025-12-06 07:27:14 -05:00
9d71199943 fix: make updatedAt in mediaListEntry optional 2025-11-29 10:48:28 -05:00
24d507a48f feat(tasks): implement long-term delayed tasks with KV and Cron 2025-11-29 09:03:21 -05:00
40fa0080b5 feat(api): expose updatedAt in watching titles 2025-11-29 09:03:10 -05:00
3bc1f9f2b7 chore: remove unused TURSO_URL 2025-11-29 09:02:20 -05:00
8ca710d30d fix(anilist): improve rate limit header parsing 2025-11-29 08:58:02 -05:00
0ca6705e26 chore: add worker-configuration.d.ts to .prettierignore 2025-11-29 08:55:15 -05:00
25f5f80696 refactor: Replace generic AnilistDurableObject fetch endpoint with dedicated methods and update their usage. 2025-11-29 06:22:08 -05:00
b1e46ad6eb feat: Centralize Anilist GraphQL queries, generalize Durable Object for multiple operations with caching, and add new controllers for search, popular titles, user data, and episode tracking. 2025-11-29 05:03:57 -05:00
a25111acbf feat: Re-enable Anilist response caching and configure proxy URL via environment variable. 2025-11-28 17:00:18 +08:00
bd958fb1ab feat: migrate to cloudflare d1 and queues 2025-11-28 16:32:35 +08:00