8dbf29f803
Operator lever: disable a single file host (e.g. mega.nz when it's banning) without touching the others. Five booleans on import_settings (extdl_<host>_enabled, default true — works out of the box, rule #26); the worker already reads them via getattr so no worker change. Migration 0050 + model fields + settings GET/PATCH (uniform boolean validation) + a 'External file-host downloads' card in the subscriptions Settings tab. Completes Phase 4. Refs FC #830. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
"""import_settings: per-host enable toggles for external file-host downloads
|
|
|
|
Operator levers (#830): disable a single host (e.g. mega.nz when it's
|
|
rate-limiting/banning) without touching the others. The worker reads these via
|
|
getattr and defaults to enabled, so the toggles default TRUE (works out of the
|
|
box, rule #26).
|
|
|
|
Revision ID: 0050
|
|
Revises: 0049
|
|
Create Date: 2026-06-14
|
|
"""
|
|
from typing import Sequence, Union
|
|
|
|
import sqlalchemy as sa
|
|
from alembic import op
|
|
|
|
revision: str = "0050"
|
|
down_revision: Union[str, None] = "0049"
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
|
depends_on: Union[str, Sequence[str], None] = None
|
|
|
|
_HOSTS = ("mega", "gdrive", "mediafire", "dropbox", "pixeldrain")
|
|
|
|
|
|
def upgrade() -> None:
|
|
for host in _HOSTS:
|
|
op.add_column(
|
|
"import_settings",
|
|
sa.Column(
|
|
f"extdl_{host}_enabled", sa.Boolean(), nullable=False,
|
|
server_default=sa.true(),
|
|
),
|
|
)
|
|
|
|
|
|
def downgrade() -> None:
|
|
for host in _HOSTS:
|
|
op.drop_column("import_settings", f"extdl_{host}_enabled")
|