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
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
24d507a48f
feat(tasks): implement long-term delayed tasks with KV and Cron
2025-11-29 09:03:21 -05:00
8ca710d30d
fix(anilist): improve rate limit header parsing
2025-11-29 08:58:02 -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
959265484c
feat: Add durable object for Anilist requests ( #2 )
...
This commit introduces a durable object to handle Anilist GraphQL requests, with the goal of preventing request duplication.
The durable object is designed to cache responses from the Anilist API, with a TTL based on the `nextAiringEpisode` field in the response.
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2025-11-14 13:07:36 +08:00
8175d73df1
refactor: ♻️ emoves Env parameter
...
Removes the `Env` parameter from several functions to simplify their signatures and rely on the global `env` for configuration.
This change reduces the number of arguments passed around, making the code cleaner and easier to maintain.
2025-08-10 19:22:14 -04:00
d680c97bc6
Removes console logs from title matching
...
Cleans up the code by removing console log statements used for debugging during the title matching process. This improves code readability and avoids unnecessary logging in the production environment.
2025-04-23 10:21:26 -04:00
b8ae211956
✨ feat(aniwatch): Improves title matching logic
...
- Enhances title matching accuracy when fetching Aniwatch IDs.
- Prioritizes user-preferred titles and falls back to English titles.
- Ensures only one fetch call is made per title if both english and userPreferred title are same.
- Adds a score threshold to filter low-quality matches.
- Fixes a bug where the episode list was not being returned.
2025-04-23 09:49:06 -04:00
d6a27e1fa4
fix: treat title as "unreleased" if title is too far away to schedule
2024-11-14 07:42:55 -05:00
da7c843e72
fix: task for anilist-updates not encoding body in base 64
2024-10-29 07:47:54 -04:00
9fafa5b45d
feat: improve title searching algorithm for aniwatch
2024-10-28 05:08:23 -04:00
592cc08853
feat: create routes to load popular titles
2024-10-27 13:59:49 -04:00
2dcf8630ab
fix: improve error logging
...
Cloudflare doesn't log causes, only the messages so splitting the logs in to 2
2024-10-27 08:49:31 -04:00
34958cfa69
chore: log which title is being selected when loading aniwatch
2024-10-27 08:41:16 -04:00
f8889eb550
fix: make sure to check body with hashed queue task name
2024-10-23 09:00:39 -04:00
1869771716
fix: if failed to validate body, trigger hashed task name flow
2024-10-22 08:20:03 +02:00
42c041a4e0
fix: hash task name when failing to queue new task
...
this should help with gcp cloud task deduplication causing 409 errors
2024-10-21 18:42:29 +08:00
7f8fd882aa
fix: throws "failed to queue" error when task already exists
2024-10-16 08:17:59 +08:00
37cf7bd738
fix: cloud tasks not being queued and failing silently
2024-10-14 08:28:22 +08:00
91dd250823
feat: create route to be able to mark episode as watched
2024-10-10 12:52:22 +02:00
8a20b72bcb
fix: update queue name for anilist updates
2024-10-06 18:41:09 -04:00
5f978205c4
remove taskId from optional args of queueTask
2024-10-06 08:48:43 -04:00
d13bc2a64e
refactor: update script
...
* runs promises serially instead of running them all at once
* directly calls /new-episode route for latest episode
2024-10-06 08:48:10 -04:00
271ea01b21
fix: test failures
2024-10-05 16:48:31 -04:00
5ea90bda55
feat: add more 429 checks
2024-10-05 15:52:38 -04:00
44ffa703b9
refactor: replace qstash with Google Cloud Tasks
2024-10-05 14:06:57 -04:00
85712ff0cf
chore: update getCurrentDomain to return undefined when not allowing localhost
2024-10-05 11:54:35 -04:00
44d579ee6d
refactor: create function to read admin SDK JSON
2024-10-05 11:21:20 -04:00
15c75eea5b
refactor: move fcm to gcloud folder
2024-10-05 10:57:18 -04:00
e4ca45dbdc
fix: retry loading user if 429 returned
2024-09-26 04:30:45 -04:00
bee8acaca8
feat: improve error handling for authentication flow
2024-09-26 03:51:17 -04:00
75eca0f6bd
fix: maxRetries set to 3
...
since max limit is 3
2024-09-26 01:32:02 -04:00
15f680c4d0
feat: update retry algorithm for qstash
...
avoids dlq until it has to
2024-09-22 16:12:19 -04:00
3d0c76444e
fix: flakiness in promiseTimeout test
2024-09-22 15:49:14 -04:00
1013d22024
fix: add error logging in fetchFromMultipleSources
2024-09-22 15:46:08 -04:00
ac53b65147
fix: avoid scheduling next episode notifications on localhost
2024-09-22 15:20:49 -04:00
ecbddbc574
fix: remove query params from getCurrentDomain
2024-09-22 15:20:22 -04:00
755ae4b94f
feat: store unreleased titles where first episode time is unknown
2024-09-21 13:45:37 -04:00
c1bf12de4f
feat: associate device id with username when logging in
2024-09-21 13:18:16 -04:00
209a0b477d
test: comment out failing test
2024-09-20 00:09:26 -04:00
1ce79ed17a
feat: delete message id when title no longer airing
2024-09-19 15:48:59 -04:00