diff --git a/app/api/endpoints/subscribe.py b/app/api/endpoints/subscribe.py index 14dde24a..a1ce1473 100644 --- a/app/api/endpoints/subscribe.py +++ b/app/api/endpoints/subscribe.py @@ -83,10 +83,11 @@ def create_subscribe( username=current_user.name, best_version=subscribe_in.best_version, save_path=subscribe_in.save_path, + search_imdbid=subscribe_in.search_imdbid, exist_ok=True) - return schemas.Response(success=True if sid else False, message=message, data={ - "id": sid - }) + return schemas.Response( + success=bool(sid), message=message, data={"id": sid} + ) @router.put("/", summary="更新订阅", response_model=schemas.Response) diff --git a/app/chain/subscribe.py b/app/chain/subscribe.py index 305fb637..8f315dd8 100644 --- a/app/chain/subscribe.py +++ b/app/chain/subscribe.py @@ -279,7 +279,8 @@ class SubscribeChain(ChainBase): no_exists=no_exists, sites=sites, priority_rule=priority_rule, - filter_rule=filter_rule) + filter_rule=filter_rule, + area="imdbid" if subscribe.search_imdbid else "title") if not contexts: logger.warn(f'订阅 {subscribe.keyword or subscribe.name} 未搜索到资源') self.finish_subscribe_or_not(subscribe=subscribe, meta=meta, diff --git a/app/db/models/subscribe.py b/app/db/models/subscribe.py index 3d2d3344..7e74b1eb 100644 --- a/app/db/models/subscribe.py +++ b/app/db/models/subscribe.py @@ -67,6 +67,8 @@ class Subscribe(Base): current_priority = Column(Integer) # 保存路径 save_path = Column(String) + # 是否使用 imdbid 搜索 + search_imdbid = Column(Integer, default=0) @staticmethod @db_query diff --git a/app/schemas/subscribe.py b/app/schemas/subscribe.py index e6054e5e..1249adf2 100644 --- a/app/schemas/subscribe.py +++ b/app/schemas/subscribe.py @@ -59,6 +59,8 @@ class Subscribe(BaseModel): current_priority: Optional[int] = None # 保存路径 save_path: Optional[str] = None + # 是否使用 imdbid 搜索 + search_imdbid: Optional[int] = 0 class Config: orm_mode = True diff --git a/database/versions/127a25fdf0e8_1_0_13.py b/database/versions/127a25fdf0e8_1_0_13.py new file mode 100644 index 00000000..f98dedfc --- /dev/null +++ b/database/versions/127a25fdf0e8_1_0_13.py @@ -0,0 +1,30 @@ +"""1.0.13 + +Revision ID: 127a25fdf0e8 +Revises: d71e624f0208 +Create Date: 2024-02-24 03:11:32.005540 + +""" + +import contextlib +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '127a25fdf0e8' +down_revision = 'd71e624f0208' +branch_labels = None +depends_on = None + + +def upgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + with contextlib.suppress(Exception): + with op.batch_alter_table("subscribe") as batch_op: + batch_op.add_column(sa.Column('search_imdbid', sa.Integer, nullable=True)) + # ### end Alembic commands ### + + +def downgrade() -> None: + pass