mirror of
https://github.com/Patiun/com.gregkilmer.www.git
synced 2026-11-08 04:08:24 +00:00
Phase 6: sync jobs, inquiry and order forms
- Sync scheduler in the content service with a per-job cache (sync_cache), sync_runs reporting and Healthchecks pings. Jobs: Archidekt, BoardGameGeek, cover art (Open Library, TMDB, AniList), Suwayomi and Kavita reading progress, Bambuddy filament and Homebox material stock. A note's own value always wins over a synced one. - PersonalReader: updates only Library notes with a matching anilistId, changes to Greg's notes are held for review; Reading series with no note show as suggestions on the admin Overview. - /api/inquiries and /api/orders: Turnstile, rate limits, a saved copy in the content service (intake token) plus email over SMTP. Orders are re-checked against the live notes: accepted only when the category's ordersOpen is true and the line has capacity. - Admin Inbox for saved submissions. Options' inStock is optional so synced stock can fill it. All settings from process.env; .env.example per service. - Sources could not be reached from the build environment; parsers are tested against fixtures labelled as not live. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012aSbo2D1qP8cMFQCykf7kx
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"data": {
|
||||
"categories": {
|
||||
"nodes": [
|
||||
{ "name": "Default", "mangas": { "nodes": [
|
||||
{ "title": "Uncategorised Series", "inLibrary": true, "latestReadChapter": null, "trackRecords": { "nodes": [] } }
|
||||
] } },
|
||||
{ "name": "Reading", "mangas": { "nodes": [
|
||||
{ "title": "Sample Tower Climber (Source Title)", "inLibrary": true,
|
||||
"latestReadChapter": { "chapterNumber": 142, "lastReadAt": "1759900000" },
|
||||
"trackRecords": { "nodes": [
|
||||
{ "trackerId": 1, "remoteId": "555", "title": "Sample Tower Climber MAL", "lastChapterRead": 140 },
|
||||
{ "trackerId": 2, "remoteId": "100001", "title": "Sample Tower Climber", "lastChapterRead": 142 }
|
||||
] } },
|
||||
{ "title": "New Sample Series", "inLibrary": true,
|
||||
"latestReadChapter": { "chapterNumber": 3, "lastReadAt": "1759990000" },
|
||||
"trackRecords": { "nodes": [ { "trackerId": 2, "remoteId": "100004", "title": "New Sample Series", "lastChapterRead": 3 } ] } },
|
||||
{ "title": "Untracked Sample", "inLibrary": true,
|
||||
"latestReadChapter": { "chapterNumber": 7, "lastReadAt": "0" },
|
||||
"trackRecords": { "nodes": [] } }
|
||||
] } },
|
||||
{ "name": "Plan to read", "mangas": { "nodes": [
|
||||
{ "title": "Sample Later", "inLibrary": true, "latestReadChapter": null,
|
||||
"trackRecords": { "nodes": [ { "trackerId": 2, "remoteId": "100002", "title": "Sample Later", "lastChapterRead": 0 } ] } }
|
||||
] } },
|
||||
{ "name": "Completed", "mangas": { "nodes": [
|
||||
{ "title": "Sample Tower Climber (Source Title)", "inLibrary": true,
|
||||
"latestReadChapter": { "chapterNumber": 142, "lastReadAt": "1759900000" },
|
||||
"trackRecords": { "nodes": [ { "trackerId": 2, "remoteId": "100001", "title": "Sample Tower Climber", "lastChapterRead": 142 } ] } },
|
||||
{ "title": "Sample Finished", "inLibrary": true,
|
||||
"latestReadChapter": { "chapterNumber": 88.5, "lastReadAt": "1750000000000" },
|
||||
"trackRecords": { "nodes": [ { "trackerId": 2, "remoteId": "100003", "title": "Sample Finished", "lastChapterRead": 88 } ] } }
|
||||
] } },
|
||||
{ "name": "Dropped", "mangas": { "nodes": [
|
||||
{ "title": "Sample Dropped", "inLibrary": true,
|
||||
"latestReadChapter": { "chapterNumber": 12, "lastReadAt": "1740000000" },
|
||||
"trackRecords": { "nodes": [ { "trackerId": 2, "remoteId": "100005", "title": "Sample Dropped", "lastChapterRead": 12 } ] } }
|
||||
] } }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user