iamnbutler/shelfgoblinPublic

Shelf Goblin — discover LitRPG audiobooks, follow series, and track your library.

Build a durable audiobook catalog and series library

IAiamnbutler authored
5cb1e8cPatch
Parent4b10f86
123 files changed+22884-359Truncated
StackedSplit
.env.example+2 −0
.gitignore+10 −11
README.md+87 −59
docs/audio-coverage-proposal.md+59 −0
docs/catalog-strategy.md+15 −9
package.json+7 −1
scripts/backend/catalog.test.ts+9 −0
scripts/backend/catalog/adapters.ts+106 −0
scripts/backend/catalog/apostasy-adapter.test.ts+127 −0
scripts/backend/catalog/apostasy-adapter.ts+119 −0
scripts/backend/catalog/audio-links.test.ts+30 −0
scripts/backend/catalog/audio-links.ts+39 −0
scripts/backend/catalog/audio.test.ts+145 −0
scripts/backend/catalog/audio.ts+148 −0
scripts/backend/catalog/audit.test.ts+207 −0
scripts/backend/catalog/audit.ts+235 −0
scripts/backend/catalog/author-adapters.test.ts+30 −0
scripts/backend/catalog/author-adapters.ts+61 −0
scripts/backend/catalog/author-cli.ts+75 −0
scripts/backend/catalog/author-identity.test.ts+32 −0
scripts/backend/catalog/author-identity.ts+35 −0
scripts/backend/catalog/author-series.test.ts+209 −0
scripts/backend/catalog/author-series.ts+211 −0
scripts/backend/catalog/authors.test.ts+429 −0
scripts/backend/catalog/authors.ts+539 −0
scripts/backend/catalog/coverage-store.test.ts+84 −0
scripts/backend/catalog/coverage-store.ts+82 −0
scripts/backend/catalog/coverage.test.ts+321 −0
scripts/backend/catalog/coverage.ts+2 −0
scripts/backend/catalog/curation.ts+25 −0
scripts/backend/catalog/editorial.test.ts+108 −0
scripts/backend/catalog/editorial.ts+102 −0
scripts/backend/catalog/grind.test.ts+315 −0
scripts/backend/catalog/grind.ts+317 −0
scripts/backend/catalog/hardcover-reader.test.ts+291 −0
scripts/backend/catalog/hardcover-reader.ts+268 −0
scripts/backend/catalog/identified-audio.test.ts+307 −0
scripts/backend/catalog/identified-audio.ts+124 −0
scripts/backend/catalog/import.test.ts+104 −0
scripts/backend/catalog/import.ts+113 −0
scripts/backend/catalog/index.ts+72 −0
scripts/backend/catalog/inference-durability.test.ts+134 −0
scripts/backend/catalog/inference.ts+190 −0
scripts/backend/catalog/inputs.ts+9 −0
scripts/backend/catalog/mountaindale-adapter.test.ts+127 −0
scripts/backend/catalog/mountaindale-adapter.ts+194 −0
scripts/backend/catalog/pipeline.test.ts+303 −0
scripts/backend/catalog/pipeline.ts+126 −0
scripts/backend/catalog/publisher-adapters.test.ts+100 −0
scripts/backend/catalog/publisher-adapters.ts+54 −0
scripts/backend/catalog/queue.ts+45 −0
scripts/backend/catalog/reader-cli.ts+135 −0
scripts/backend/catalog/reader-corrections.ts+119 −0
scripts/backend/catalog/reader-evidence.test.ts+904 −0
scripts/backend/catalog/reader-evidence.ts+820 −0
scripts/backend/catalog/sarah-lin-adapter.test.ts+185 −0
scripts/backend/catalog/sarah-lin-adapter.ts+144 −0
scripts/backend/catalog/sources.ts+99 −0
scripts/backend/catalog/types.ts+38 −0
scripts/backend/classifiers/authors.ts+14 −0
scripts/backend/config/author-content.json+15 −0
scripts/backend/config/catalog-audio-manifests.json+1095 −0
scripts/backend/config/catalog-editorial-reviews.json+1431 −0
scripts/backend/config/catalog-seeds.json+1097 −0
scripts/backend/config/curated-evidence.json+2934 −0
scripts/backend/config/reader-observation-corrections.json+199 −0
scripts/backend/covers/content-cache.test.ts+473 −0
scripts/backend/covers/content-cache.ts+243 −0
scripts/backend/covers/enrich.ts+40 −37
scripts/backend/covers/vision-cache.test.ts+346 −0
scripts/backend/covers/vision-cache.ts+206 −0
scripts/backend/covers/vision.ts+50 −14
scripts/backend/exporters/catalog.ts+48 −20
scripts/backend/exporters/series.test.ts+88 −0
scripts/backend/exporters/series.ts+147 −0
scripts/backend/fetchers/audible.ts+24 −4
scripts/backend/jev/client.ts+17 −6
scripts/backend/migrations/006_catalog_pipeline.sql+128 −0
scripts/backend/migrations/007_author_profiles.sql+32 −0
scripts/backend/migrations/008_reader_evidence.sql+41 −0
scripts/backend/migrations/009_cover_inference_heads.sql+21 −0
scripts/backend/migrations/010_reader_trait_honesty.sql+36 −0
scripts/backend/migrations/011_quarantine_orphaned_tags.sql+16 −0
scripts/backend/migrations/012_cover_vision_history.sql+54 −0
scripts/backend/storage/archive.test.ts+27 −0
scripts/backend/storage/archive.ts+70 −0
scripts/backend/storage/backup.ts+1 −0
scripts/backend/storage/integrity.test.ts+31 −0
scripts/backend/storage/verify-backup.test.ts+193 −0
scripts/backend/storage/verify-backup.ts+266 −0
src/lib/audio-coverage.ts+271 −0
src/lib/catalog.ts+13 −36
src/lib/components/BookDetail.svelte+26 −13
src/lib/components/BookTile.svelte+1 −1
src/lib/components/Icon.svelte+1 −1
src/lib/components/ReaderImpressions.svelte+59 −0
src/lib/components/SeriesDetail.svelte+169 −0
src/lib/components/SeriesTile.svelte+81 −0
src/lib/components/UpNextRow.svelte+53 −0
src/lib/components/booktile.test.ts+14 −0
src/lib/components/render.test.ts+417 −0
src/lib/edition.test.ts+77 −0
src/lib/edition.ts+56 −0
src/lib/impressions.test.ts+174 −0
src/lib/impressions.ts+84 −0
src/lib/library.test.ts+965 −0
src/lib/library.ts+291 −6
src/lib/reader-context.ts+24 −0
src/lib/recommend.test.ts+323 −0
src/lib/recommend.ts+114 −0
src/lib/recommendations.test.ts+232 −0
src/lib/recommendations.ts+80 −0
src/lib/series.ts+298 −0
src/lib/styles.css+3 −0
src/routes/+page.svelte+340 −133
static/data/2011.json+1 −1
static/data/2016.json+1 −1
static/data/2017.json+1 −1
static/data/2018.json+1 −1
static/data/2019.json+1 −1
static/data/2020.json+1 −1
static/data/2021.json+1 −1
static/data/2022.json+1 −1