This website requires JavaScript.
Explore
Help
Register
Sign In
bvandeusen
/
FabledCurator
Watch
1
Star
0
Fork
0
Code
Issues
2
Pull Requests
Actions
Packages
Projects
Releases
12
Wiki
Activity
Files
711fd2bb750425ffcf4c7845a006b9349723f77a
FabledCurator
/
backend
/
app
/
services
T
History
bvandeusen
and
Claude Opus 4.8
711fd2bb75
CI / lint (push)
Successful in 3s
Details
CI / backend-lint-and-test (push)
Successful in 25s
Details
CI / frontend-build (push)
Successful in 27s
Details
CI / integration (push)
Successful in 3m0s
Details
style: drop aliased cross-module import (I001) — use a local _CAMPAIGNS_API constant
...
Co-Authored-By: Claude Opus 4.8 (1M context) <
noreply@anthropic.com
>
2026-06-06 17:46:09 -04:00
..
audits
feat(fc-cleanup): audits/single_color.py + tests — Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 01:18:38 -04:00
ml
fix(ml): preserve digit-only tag names in normalize (year tags)
2026-06-03 13:09:35 -04:00
platforms
feat(download): tick/backfill modes + partial-success classifier (plan
#544
)
2026-06-01 18:23:28 -04:00
__init__.py
feat(fc2a): add TagService — find-or-create, autocomplete, image association
2026-05-14 12:04:48 -04:00
archive_extractor.py
fix(archive): magic-byte archive detection so mis-named archives extract —
#713
part 1
2026-06-06 14:33:24 -04:00
artist_directory_service.py
feat(artist): "new since last visit" badge + banner
2026-06-03 15:27:11 -04:00
artist_service.py
feat(artist): "new since last visit" badge + banner
2026-06-03 15:27:11 -04:00
attachment_store.py
feat(attachments): sha-addressed AttachmentStore
2026-05-19 11:11:07 -04:00
backup_service.py
fc3h: backup_service.py — DB + images backup/restore + unlink helpers (relocated, split per-kind)
2026-05-24 22:52:35 -04:00
bulk_tag_service.py
feat(bulk): BulkTagService (common_tags/bulk_add/bulk_remove) + 3 image bulk-tag routes
2026-05-16 18:02:01 -04:00
cleanup_service.py
fix(maintenance): stage re-extract under the artist dir so members link —
#713
part 2 fix
2026-06-06 14:51:22 -04:00
credential_crypto.py
fix(audit-g5c): refuse silent Fernet key regeneration on partial restore
2026-06-02 17:04:27 -04:00
credential_service.py
feat(credentials+downloads): real credential Verify button + live download-activity polling
2026-05-28 07:52:20 -04:00
download_backends.py
style: drop aliased cross-module import (I001) — use a local _CAMPAIGNS_API constant
2026-06-06 17:46:09 -04:00
download_service.py
feat(downloads): platform cooldown honors server Retry-After — B1 (plan
#708
)
2026-06-06 11:34:37 -04:00
extension_service.py
feat(download): smarter backfill — time-boxed chunks, run-until-done (backend)
2026-06-05 15:02:46 -04:00
file_validator.py
refactor(downloads): DRY the ingester/gallery-dl seam — A1–A4 (plan
#707
)
2026-06-06 11:11:25 -04:00
gallery_dl.py
feat(downloads): platform cooldown honors server Retry-After — B1 (plan
#708
)
2026-06-06 11:34:37 -04:00
gallery_service.py
feat(gallery): visual 'more like this' search (Phase 3 backend)
2026-06-04 08:47:43 -04:00
importer.py
refactor(downloads): DRY the ingester/gallery-dl seam — A1–A4 (plan
#707
)
2026-06-06 11:11:25 -04:00
ingest_core.py
feat(downloads): live per-file progress on running events —
#709
2026-06-06 15:48:31 -04:00
patreon_client.py
feat(subscriptions): dry-run backfill preview — B4 preview (plan
#708
)
2026-06-06 12:18:08 -04:00
patreon_downloader.py
feat(patreon): resume partial media downloads via HTTP Range — B5 (plan
#708
)
2026-06-06 11:38:11 -04:00
patreon_ingester.py
feat(patreon): surface source URL + vanity in campaign-id resolution errors
2026-06-06 17:39:54 -04:00
patreon_resolver.py
feat(downloads): native Patreon verify + uniform backend dispatch (plan
#697
)
2026-06-05 22:49:43 -04:00
post_feed_service.py
feat(model): nullable Post.source_id + denormalized Post.artist_id; retire sidecar synthetics
2026-06-01 14:17:52 -04:00
provenance_service.py
feat(model): nullable Post.source_id + denormalized Post.artist_id; retire sidecar synthetics
2026-06-01 14:17:52 -04:00
refetch_service.py
feat(download): tick/backfill modes + partial-success classifier (plan
#544
)
2026-06-01 18:23:28 -04:00
scheduler_service.py
feat(downloads): bulk retry respects cooldown; single-source RETRY overrides
2026-05-30 23:15:07 -04:00
series_service.py
fix(thumbnails): derive URL from stored thumbnail_path, not (sha256, mime)
2026-05-30 16:55:38 -04:00
showcase_service.py
fix(showcase): over-sample + random-order to break near-dup clustering —
#699
2026-06-06 15:44:04 -04:00
source_service.py
feat(subscriptions): live posts-processed progress on backfill/recovery —
#704
step 2
2026-06-05 23:43:23 -04:00
tag_directory_service.py
fix(thumbnails): derive URL from stored thumbnail_path, not (sha256, mime)
2026-05-30 16:55:38 -04:00
tag_service.py
fix(tags): preserve acronym casing in tag normalization (DC, NSFW)
2026-06-06 17:39:54 -04:00
thumbnailer.py
feat(fc2a): add Thumbnailer service
2026-05-14 12:05:19 -04:00