fix subscribe bug
This commit is contained in:
parent
03f59398f2
commit
cbbec6af7d
@ -146,7 +146,7 @@ class DownloadChain(ChainBase):
|
|||||||
def batch_download(self,
|
def batch_download(self,
|
||||||
contexts: List[Context],
|
contexts: List[Context],
|
||||||
no_exists: Dict[int, Dict[int, NotExistMediaInfo]] = None,
|
no_exists: Dict[int, Dict[int, NotExistMediaInfo]] = None,
|
||||||
userid: str = None) -> Tuple[List[Context], dict]:
|
userid: str = None) -> Tuple[List[Context], Dict[int, Dict[int, NotExistMediaInfo]]]:
|
||||||
"""
|
"""
|
||||||
根据缺失数据,自动种子列表中组合择优下载
|
根据缺失数据,自动种子列表中组合择优下载
|
||||||
:param contexts: 资源上下文列表
|
:param contexts: 资源上下文列表
|
||||||
|
@ -7,6 +7,7 @@ from app.chain.search import SearchChain
|
|||||||
from app.core.metainfo import MetaInfo
|
from app.core.metainfo import MetaInfo
|
||||||
from app.core.context import TorrentInfo, Context, MediaInfo
|
from app.core.context import TorrentInfo, Context, MediaInfo
|
||||||
from app.core.config import settings
|
from app.core.config import settings
|
||||||
|
from app.db.models.subscribe import Subscribe
|
||||||
from app.db.subscribe_oper import SubscribeOper
|
from app.db.subscribe_oper import SubscribeOper
|
||||||
from app.helper.sites import SitesHelper
|
from app.helper.sites import SitesHelper
|
||||||
from app.log import logger
|
from app.log import logger
|
||||||
@ -210,6 +211,8 @@ class SubscribeChain(ChainBase):
|
|||||||
matched_contexts.append(context)
|
matched_contexts.append(context)
|
||||||
if not matched_contexts:
|
if not matched_contexts:
|
||||||
logger.warn(f'订阅 {subscribe.name} 没有符合过滤条件的资源')
|
logger.warn(f'订阅 {subscribe.name} 没有符合过滤条件的资源')
|
||||||
|
# 未搜索到资源,但本地缺失可能有变化,更新订阅剩余集数
|
||||||
|
self.__upate_lack_episodes(lefts=no_exists, subscribe=subscribe, mediainfo=mediainfo)
|
||||||
continue
|
continue
|
||||||
# 自动下载
|
# 自动下载
|
||||||
downloads, lefts = self.downloadchain.batch_download(contexts=matched_contexts,
|
downloads, lefts = self.downloadchain.batch_download(contexts=matched_contexts,
|
||||||
@ -224,6 +227,8 @@ class SubscribeChain(ChainBase):
|
|||||||
else:
|
else:
|
||||||
# 未完成下载
|
# 未完成下载
|
||||||
logger.info(f'{mediainfo.title_year} 未下载未完整,继续订阅 ...')
|
logger.info(f'{mediainfo.title_year} 未下载未完整,继续订阅 ...')
|
||||||
|
# 更新订阅剩余集数
|
||||||
|
self.__upate_lack_episodes(lefts=lefts, subscribe=subscribe, mediainfo=mediainfo)
|
||||||
|
|
||||||
def refresh(self):
|
def refresh(self):
|
||||||
"""
|
"""
|
||||||
@ -347,16 +352,27 @@ class SubscribeChain(ChainBase):
|
|||||||
image=mediainfo.get_message_image())
|
image=mediainfo.get_message_image())
|
||||||
else:
|
else:
|
||||||
# 未完成下载,计算剩余集数
|
# 未完成下载,计算剩余集数
|
||||||
left_seasons = lefts.get(mediainfo.tmdb_id) or []
|
self.__upate_lack_episodes(lefts=lefts, subscribe=subscribe, mediainfo=mediainfo)
|
||||||
for season_info in left_seasons:
|
else:
|
||||||
season = season_info.get('season')
|
# 未搜索到资源,但本地缺失可能有变化,更新订阅剩余集数
|
||||||
if season == subscribe.season:
|
self.__upate_lack_episodes(lefts=no_exists, subscribe=subscribe, mediainfo=mediainfo)
|
||||||
left_episodes = season_info.get('episodes')
|
|
||||||
logger.info(f'{mediainfo.title_year} 季 {season} 未下载完整,'
|
def __upate_lack_episodes(self, lefts: Dict[int, Dict[int, NotExistMediaInfo]],
|
||||||
f'更新缺失集数为{len(left_episodes)} ...')
|
subscribe: Subscribe,
|
||||||
self.subscribehelper.update(subscribe.id, {
|
mediainfo: MediaInfo):
|
||||||
"lack_episode": len(left_episodes)
|
"""
|
||||||
})
|
更新订阅剩余集数
|
||||||
|
"""
|
||||||
|
left_seasons = lefts.get(mediainfo.tmdb_id) or {}
|
||||||
|
for season_info in left_seasons.values():
|
||||||
|
season = season_info.season
|
||||||
|
if season == subscribe.season:
|
||||||
|
left_episodes = season_info.episodes
|
||||||
|
logger.info(f'{mediainfo.title_year} 季 {season} 未搜索到资源,'
|
||||||
|
f'更新缺失集数为{len(left_episodes)} ...')
|
||||||
|
self.subscribehelper.update(subscribe.id, {
|
||||||
|
"lack_episode": len(left_episodes)
|
||||||
|
})
|
||||||
|
|
||||||
def remote_list(self, userid: Union[str, int] = None):
|
def remote_list(self, userid: Union[str, int] = None):
|
||||||
"""
|
"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user