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
479b7b54da8fda631e869b00345fae037d135739
FabledCurator
/
backend
/
app
/
services
T
History
bvandeusen
and
Claude Opus 4.8
479b7b54da
CI / lint (push)
Successful in 3s
Details
CI / frontend-build (push)
Successful in 18s
Details
CI / backend-lint-and-test (push)
Successful in 37s
Details
CI / integration (push)
Successful in 3m22s
Details
style(subscribestar): drop quoted forward-ref annotation (UP037)
...
Co-Authored-By: Claude Opus 4.8 <
noreply@anthropic.com
>
2026-06-17 16:19:12 -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
refactor(ml): drop GPU code, cap inference threads by default (#747/#872)
2026-06-16 13:39:55 -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
refactor(services): shared pagination cursor (DRY sweep)
2026-06-10 00:10:57 -04:00
attachment_store.py
feat(attachments): sha-addressed AttachmentStore
2026-05-19 11:11:07 -04:00
backup_service.py
fix(backup): compressed -Fc dumps + pg_restore; reconcile subprocess timeouts (
#739
)
2026-06-10 14:29:17 -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
feat(cleanup): purge misgrabbed gated-post blurred previews (
#874
follow-up)
2026-06-16 15:20:35 -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
db_helpers.py
fix(services): PEP 695 type params for get_or_create (ruff UP047)
2026-06-09 23:50:59 -04:00
download_backends.py
fix(dispatch): resolve native ingester class at call time (test monkeypatch)
2026-06-17 12:09:40 -04:00
download_service.py
refactor(ingest): post-first — post-record is the sole body writer on the native path (
#856
)
2026-06-15 10:10:21 -04:00
extension_service.py
refactor(services): shared race-safe get_or_create helper (DRY backend sweep)
2026-06-09 23:46:01 -04:00
external_fetch.py
fix(external): split fetch timeout into read (60s) + total (30m) budgets (
#883
)
2026-06-16 21:15:49 -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(subscribestar): flip dispatch to the native ingester (
#893
, Step 5)
2026-06-17 12:03:48 -04:00
gallery_service.py
fix(images): percent-encode original-image URLs ('#' in paths 404'd)
2026-06-12 00:36:44 -04:00
importer.py
feat(import): Tier-1 video near-dup by duration+aspect (
#871
)
2026-06-15 22:17:36 -04:00
ingest_core.py
feat(native-ingest): durable run logging that survives a worker kill (
#899
L1/L3, DRY 3/3)
2026-06-17 11:47:09 -04:00
link_extract.py
feat(posts): extract + record external file-host links (Phase 3)
2026-06-14 13:15:36 -04:00
native_ingest_common.py
refactor(native-ingest): shared exception trio + base _failure_result (
#899
DRY 2/3)
2026-06-17 11:40:36 -04:00
page_number_parser.py
feat(series): post→series flows + browse list — backend (FC-6.2)
2026-06-07 18:34:11 -04:00
pagination.py
refactor(services): shared pagination cursor (DRY sweep)
2026-06-10 00:10:57 -04:00
patreon_client.py
refactor(native-ingest): shared exception trio + base _failure_result (
#899
DRY 2/3)
2026-06-17 11:40:36 -04:00
patreon_downloader.py
refactor(native-ingest): extract native_ingest_common + BaseNativeDownloader (
#899
DRY 1/3)
2026-06-17 11:32:28 -04:00
patreon_ingester.py
refactor(native-ingest): shared exception trio + base _failure_result (
#899
DRY 2/3)
2026-06-17 11:40:36 -04:00
patreon_resolver.py
feat(patreon): resolve the creator's campaign from a single-post URL
2026-06-06 21:32:15 -04:00
platform_lock.py
feat(subscribestar): flip dispatch to the native ingester (
#893
, Step 5)
2026-06-17 12:03:48 -04:00
post_feed_service.py
feat(ingest): localize inline post-body images to local copies (Phase 2)
2026-06-14 16:39:58 -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_match_service.py
feat(series): flat series sequence + cosmetic chapter dividers (
#789
Phase 1)
2026-06-11 21:30:01 -04:00
series_service.py
fix(images): percent-encode original-image URLs ('#' in paths 404'd)
2026-06-12 00:36:44 -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(ingest): Recapture mode — re-grab post bodies/links + localize on-disk inline images (
#830
)
2026-06-14 20:58:40 -04:00
subscribestar_client.py
style(subscribestar): drop quoted forward-ref annotation (UP037)
2026-06-17 16:19:12 -04:00
subscribestar_downloader.py
refactor(native-ingest): extract native_ingest_common + BaseNativeDownloader (
#899
DRY 1/3)
2026-06-17 11:32:28 -04:00
subscribestar_ingester.py
refactor(native-ingest): shared exception trio + base _failure_result (
#899
DRY 2/3)
2026-06-17 11:40:36 -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_query.py
refactor(tags): shared tag_query for fandom self-join + serialization (DRY sweep)
2026-06-10 00:19:17 -04:00
tag_service.py
feat(series): flat series sequence + cosmetic chapter dividers (
#789
Phase 1)
2026-06-11 21:30:01 -04:00
thumbnailer.py
feat(fc2a): add Thumbnailer service
2026-05-14 12:05:19 -04:00