Ports gallery-dl's _media_from_post document/audio attachment extraction. Some SubscribeStar posts deliver content only through these sections (outside data-gallery), so we were silently missing them.
Changes
Docs: scope uploads-docs..post-edit_form, split on doc_preview blocks, take the href URL + doc_preview-title + data-upload-id (kind=attachment).
Audio: scope uploads-audios..post-edit_form, split on audio_preview-data blocks, take the src URL + audio_preview-title + data-upload-id (kind=audio).
Downloader unchanged: the existing streaming GET handles them, and the file validator only inspects image/video extensions (is_validatable), so PDFs/zips/audio pass through without quarantine.
Test covers doc + audio extraction (the cheunart sample has none, so this pins gallery-dl's documented markup shape).
## What
Ports gallery-dl's `_media_from_post` document/audio attachment extraction. Some SubscribeStar posts deliver content **only** through these sections (outside `data-gallery`), so we were silently missing them.
## Changes
- **Docs:** scope `uploads-docs`..`post-edit_form`, split on `doc_preview` blocks, take the `href` URL + `doc_preview-title` + `data-upload-id` (kind=`attachment`).
- **Audio:** scope `uploads-audios`..`post-edit_form`, split on `audio_preview-data` blocks, take the `src` URL + `audio_preview-title` + `data-upload-id` (kind=`audio`).
- Downloader unchanged: the existing streaming GET handles them, and the file validator only inspects image/video extensions (`is_validatable`), so PDFs/zips/audio pass through without quarantine.
Test covers doc + audio extraction (the cheunart sample has none, so this pins gallery-dl's documented markup shape).
CI green on dev (run 1245).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Some SubscribeStar posts deliver content only through document/audio attachments,
which live OUTSIDE data-gallery. Port gallery-dl's _media_from_post for them:
- docs: scope uploads-docs..post-edit_form, split on doc_preview blocks, take the
href URL + doc_preview-title + data-upload-id (kind=attachment).
- audio: scope uploads-audios..post-edit_form, split on audio_preview-data
blocks, take the src URL + audio_preview-title + data-upload-id (kind=audio).
The existing downloader handles them unchanged (plain streaming GET; the file
validator only inspects image/video extensions via is_validatable, so PDFs/zips/
audio pass straight through, no quarantine).
Test covers doc + audio extraction (the cheunart sample has none, so this pins
gallery-dl's documented markup shape).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What
Ports gallery-dl's
_media_from_postdocument/audio attachment extraction. Some SubscribeStar posts deliver content only through these sections (outsidedata-gallery), so we were silently missing them.Changes
uploads-docs..post-edit_form, split ondoc_previewblocks, take thehrefURL +doc_preview-title+data-upload-id(kind=attachment).uploads-audios..post-edit_form, split onaudio_preview-datablocks, take thesrcURL +audio_preview-title+data-upload-id(kind=audio).is_validatable), so PDFs/zips/audio pass through without quarantine.Test covers doc + audio extraction (the cheunart sample has none, so this pins gallery-dl's documented markup shape).
CI green on dev (run 1245).
🤖 Generated with Claude Code