From fa890ca29ceb0a6a3922274b51e1b0f1ff4eb7e4 Mon Sep 17 00:00:00 2001 From: thsrite Date: Wed, 6 Mar 2024 19:33:31 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=89=8B=E5=8A=A8=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=BF=87=E8=AE=A2=E9=98=85=E6=80=BB=E9=9B=86=E6=95=B0=E5=90=8E?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E5=86=8D=E9=9A=8Ftmdb=E5=8F=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/endpoints/subscribe.py | 3 +++ app/chain/subscribe.py | 2 +- app/db/models/subscribe.py | 2 ++ database/versions/f94cd1217fd7_1_0_14.py | 31 ++++++++++++++++++++++++ 4 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 database/versions/f94cd1217fd7_1_0_14.py diff --git a/app/api/endpoints/subscribe.py b/app/api/endpoints/subscribe.py index a1ce1473..22d3b824 100644 --- a/app/api/endpoints/subscribe.py +++ b/app/api/endpoints/subscribe.py @@ -111,6 +111,9 @@ def update_subscribe( # 没有缺失集数时,缺失集数清空,避免更新为0 subscribe_dict.pop("lack_episode") elif subscribe_in.total_episode: + # 是否手动修改过总集数 + if subscribe_in.total_episode != subscribe.total_episode: + subscribe_dict["manual_total_episode"] = 1 # 总集数增加时,缺失集数也要增加 if subscribe_in.total_episode > (subscribe.total_episode or 0): subscribe_dict["lack_episode"] = (subscribe.lack_episode diff --git a/app/chain/subscribe.py b/app/chain/subscribe.py index 6333d111..61b8871a 100644 --- a/app/chain/subscribe.py +++ b/app/chain/subscribe.py @@ -741,7 +741,7 @@ class SubscribeChain(ChainBase): continue # 对于电视剧,获取当前季的总集数 episodes = mediainfo.seasons.get(subscribe.season) or [] - if len(episodes): + if not subscribe.manual_total_episode and len(episodes): total_episode = len(episodes) lack_episode = subscribe.lack_episode + (total_episode - subscribe.total_episode) logger.info( diff --git a/app/db/models/subscribe.py b/app/db/models/subscribe.py index 7e74b1eb..53d7a0b3 100644 --- a/app/db/models/subscribe.py +++ b/app/db/models/subscribe.py @@ -69,6 +69,8 @@ class Subscribe(Base): save_path = Column(String) # 是否使用 imdbid 搜索 search_imdbid = Column(Integer, default=0) + # 是否手动修改过总集数 0否 1是 + manual_total_episode = Column(Integer, default=0) @staticmethod @db_query diff --git a/database/versions/f94cd1217fd7_1_0_14.py b/database/versions/f94cd1217fd7_1_0_14.py new file mode 100644 index 00000000..71d98af7 --- /dev/null +++ b/database/versions/f94cd1217fd7_1_0_14.py @@ -0,0 +1,31 @@ +"""1_0_14 + +Revision ID: f94cd1217fd7 +Revises: 127a25fdf0e8 +Create Date: 2024-03-06 19:19:33.053186 + +""" +import contextlib + +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'f94cd1217fd7' +down_revision = '127a25fdf0e8' +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('manual_total_episode', sa.Integer, nullable=True)) + # ### end Alembic commands ### + + +def downgrade() -> None: + # ### commands auto generated by Alembic - please adjust! ### + pass \ No newline at end of file