refactor(catalog): the unit's tables move into catalog/models

Channel, Subscription, Video, SearchFind, ExploredChannel and BlockedChannel (and LIVE_OR_UPCOMING)
leave app/models.py for app/catalog/models.py; app.tables registers them. The User↔Subscription
relationship names its other side as a type only. No schema change.
This commit is contained in:
2026-10-19 02:03:14 +02:00
parent a35eece652
commit 238e6f8a61
55 changed files with 353 additions and 308 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ from sqlalchemy import func, select
from sqlalchemy.orm import Session
from app import logs, progress, sysconfig
from app.models import Channel, Video
from app.catalog.models import Channel, Video
from app.reader import queries as reader_queries
from app.reader import service as reader_service
+1 -1
View File
@@ -14,7 +14,7 @@ from sqlalchemy import delete, or_, select
from sqlalchemy.orm import Session
from app import logs, sysconfig
from app.models import Channel, ExploredChannel, SearchFind, Subscription, Video
from app.catalog.models import Channel, ExploredChannel, SearchFind, Subscription, Video
from app.reader import queries as reader_queries
from app.sync.videos import insert_stubs, stub_from_playlist_item, apply_video_details
from app.youtube.client import YouTubeClient, YouTubeError, is_playlist_gone
+1 -1
View File
@@ -27,7 +27,7 @@ from sqlalchemy.orm import Session
from app import logs, progress, quota, sysconfig
from app.config import settings
from app.models import Video
from app.catalog.models import Video
from app.reader import queries as reader_queries
from app.notifications import create_notification
from app.sync.runner import get_service_user
+2 -1
View File
@@ -20,7 +20,8 @@ from sqlalchemy.pool import NullPool
from app import logs, progress, quota
from app.auth import has_read_scope
from app.models import User, Video
from app.models import User
from app.catalog.models import Video
from app.reader.models import Playlist, PlaylistItem
from app.sync.playlist_merge import merge_plan
from app.sync.runner import token_users
+2 -1
View File
@@ -16,7 +16,8 @@ from sqlalchemy.orm import Session
from app import logs, progress, quota, sysconfig
from app.db import SessionLocal
from app.models import Channel, OAuthToken, Subscription, User
from app.models import OAuthToken, User
from app.catalog.models import Channel, Subscription
from app.sync.explore import followed_channel
from app.sync.subscriptions import import_subscriptions
from app.sync.videos import (
+2 -1
View File
@@ -7,7 +7,8 @@ from sqlalchemy import or_, select
from sqlalchemy.orm import Session
from app import logs
from app.models import Channel, Subscription, User
from app.models import User
from app.catalog.models import Channel, Subscription
from app.utils import normalize_description
from app.youtube.client import YouTubeClient, YouTubeError, best_thumbnail
+2 -1
View File
@@ -23,7 +23,8 @@ from collections import Counter
from sqlalchemy import select
from sqlalchemy.orm import Session
from app.models import Subscription, User
from app.models import User
from app.catalog.models import Subscription
from app.reader.models import ChannelTag, Tag
from app.userscope import owned_by
+1 -1
View File
@@ -12,7 +12,7 @@ from sqlalchemy.dialects.postgresql import insert as pg_insert
from sqlalchemy.orm import Session
from app import logs, progress, quota, sysconfig
from app.models import LIVE_OR_UPCOMING, Channel, Video
from app.catalog.models import LIVE_OR_UPCOMING, Channel, Video
from app.titles import normalize_title
from app.youtube.client import YouTubeClient, YouTubeError, best_thumbnail, is_playlist_gone
from app.youtube.shorts import make_client, probe_is_short