Files
bvandeusen bd2807cdd1
CI / lint (push) Successful in 3s
CI / frontend-build (push) Successful in 17s
CI / backend-lint-and-test (push) Successful in 33s
CI / integration (push) Successful in 3m17s
feat(external): mega.nz via megatools in the runtime image (Phase 4c)
Use `megatools dl` (Debian-native apt package) for mega.nz public links rather
than MEGAcmd — no external MEGA apt repo/key to add, one apt line. Adds
`megatools` to the runtime Dockerfile; the fetcher's mega backend now shells
`megatools dl --path <dir> <url>` (key in the #fragment is preserved by the
extractor). gdown (gdrive) is already a pip dep in the runtime image.

NOTE: build.yml builds the image on main/tags only (not dev), so this Dockerfile
change is verified on the next dev→main merge, not by this dev push. The fetcher
code path is unit-tested via the mocked _run_mega_get seam.

With this, all 5 hosts download end-to-end once a celery download-worker runs.
Refs FC #830 (Phase 4c).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 15:41:18 -04:00

46 lines
1.2 KiB
Plaintext

# Web
quart>=0.20,<0.21
hypercorn>=0.18,<0.19
# DB
sqlalchemy[asyncio]>=2.0,<2.1
asyncpg>=0.31,<0.32
psycopg[binary]>=3.3,<3.4
alembic>=1.18,<1.19
pgvector>=0.4,<0.5
# Task queue
celery>=5.6,<5.7
redis>=7.4,<8.0
# Crypto for credential storage (lands in FC-3, but pinned now for stability)
cryptography>=48,<49
# Image handling (lands in FC-2)
pillow>=12,<13
imagehash>=4.3,<4.4
# Gallery-dl wrapper (lands in FC-3)
gallery-dl>=1.32,<1.33
# Video extractor backend for gallery-dl. Without it, every video post
# attachment fails with `[downloader.ytdl][error] Cannot import yt-dlp`
# → `[download][error] Failed to download NN_video.mp4`. Operator-flagged
# 2026-05-31 after Patreon video posts produced empty downloads.
yt-dlp>=2025.1
# Utilities
python-dotenv>=1.2,<2.0
structlog>=25.5,<26.0
# HTML sanitization for scraped post descriptions (FC-2d provenance)
nh3>=0.2,<0.3
# Archive extraction (FC-2d-iii filesystem-import aid)
rarfile>=4.2,<5
py7zr>=1,<2
# Google Drive fetcher for off-platform file-host links (external downloads,
# #830). Handles Drive's confirm-token + virus-scan interstitial. mega.nz uses
# the `megatools` binary instead (Debian apt pkg in the runtime image, not pip).
gdown>=5,<6