You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kmftools/bookscraper/CHATGPT_CONTEXT.md

4.5 KiB

ChatGPT Project Context Bookscraper / Celery Branch ## 1. Scraper Status (STABIEL NIET aanpassen zonder toestemming) De Python-based bookscraper werkt volledig end-to-end. De volgende onderdelen zijn getest, stabiel en mogen niet worden herschreven of opgeschoond zonder expliciete toestemming: ### prepare_scripts() Genereert 3 shell-scripts in de output map: - say.txt — alleen TTS (Sinji voice, timestamps) - makebook.txt — alleen m4b merge + move - allinone.txt — TTS + merge + move ### Volume structuur output///v1, v2, v3, … ### Chapter-output - Chapter 1 bevat een header - Overige chapters bevatten alleen tekst ### Werkende functionaliteit - Rate limiter - Chapter parsing - Description parsing - Cover download - Skip-logica - prepare_scripts() ## 2. Ontwikkelregels voor ChatGPT - Geen stille rewrites - Geen opschonen van werkende code - Geen herstructurering zonder toestemming - Wijzigingen minimalistisch en doelgericht - Diff/patch-stijl - Exact aangeven welke bestanden worden geraakt - Directorystructuur behouden ## 3. Focusgebied (celery_branch) - Celery worker architectuur verbeteren - Queueing & retry policies - Stabiliteit & observability - Integratie met scraping tasks - Download functionaliteit eerst; audio later ## 4. Omgeving - VS Code Dev Containers - Docker Compose aanwezig - Celery + Redis in gebruik - Redis via hostmachine: redis://host.docker.internal:6379 ## 5. Download Worker (NIEUW Werkend) - download_worker.py volledig operationeel - Tasks worden correct geregistreerd: - tasks.scraping.download_chapter_task - tasks.scraping.download_chapter - tasks.scraping.scrape_book - Redis broker/backend correct geladen via .env - Worker pakt taken op en voert ze uit - Download pipeline werkt end-to-end ## 6. Logbus Status (NIEUW) - Logbus gebruikt nu REDIS_BACKEND of REDIS_BROKER - Geen crashes meer - Logging is non-blocking ## 7. Nog te bouwen (Download-Only fase) - DownloadController voor bulk-downloads - Flask API endpoint voor download - scrape_worker / audio_worker later ## 8. Project Tree (samengevat) scraper/ tasks/ worker/ logbus/ app.py docker-compose.yml OUTPUT structure blijft behouden.

find .
-path "./output" -prune -o
-path "/pycache" -prune -o
-print | sed -e 's;[^/]
/; |;g;s;|;|--;'

CHATGPT_CONTEXT.md

📘 Project Context — BookScraper (Celery Pipeline)

Status: 1 december 2025

Dit document brengt ChatGPT instant up-to-speed bij een nieuwe sessie.
Het beschrijft de actuele architectuur, flow, directorylayout en pending features.


Systeemarchitectuur (huidige implementatie)

Het project is een gedistribueerde Chinese webnovel-scraper met:

  • Flask Web GUI (web)
  • Celery workers per taaktype:
    • scraping → boek metadata & chapterlist
    • controller → pipelines dispatchen
    • download → HTML binnenhalen
    • parse → content extraheren + cleanen + hoofdstukheader maken
    • save → tekst wegschrijven naar disk + volume-indeling
    • audio → (later) m4b generation
  • Redis als broker en backend

Alle workers hebben dezelfde codebase gemount via:

volumes:
  - .:/app

📂 Directorystructuur (relevant deel)

bookscraper/
│
├── scraper/
│   ├── tasks/
│   │   ├── scraping.py
│   │   ├── controller_tasks.py
│   │   ├── download_tasks.py
│   │   ├── parse_tasks.py
│   │   ├── save_tasks.py
│   │   └── pipeline.py
│   ├── download_controller.py
│   ├── utils.py
│   ├── sites.py
│   ├── book_scraper.py
│
├── docker/
│   ├── Dockerfile.scraper
│   ├── Dockerfile.web
│   └── Dockerfile.audio
│
├── docker-compose.yml
└── CHATGPT_CONTEXT.md

🔄 Book Pipeline (zoals nu werkt)

  1. start_scrape_book(url)
  2. launch_downloads(scrape_result)
  3. download_chapter(num, url)
  4. parse_chapter(download_result)
  5. save_chapter(parsed, volume_path)

Volumes worden correct weggeschreven naar:

BOOKSCRAPER_OUTPUT_DIR=/Users/peter/Desktop/books

🚀 Features op de planning

  1. download retry + delay +429 pause
  2. Cover downloaden
  3. Make scripts
  4. Audio pipeline integratie

🧵 Afspraak

ChatGPT moet altijd eerst om bestaande code vragen voordat het wijzigingen voorstelt.


🎯 Samenvatting

Je hebt nu:

✔ Een schaalbare, modulaire Celery pipeline
✔ Volume-splitting
✔ Headers voor hoofdstuk 1
✔ Correcte I/O paths met host mount
✔ Stabiele end-to-end scraping flow