This commit is contained in:
jxxghp 2023-08-04 16:14:52 +08:00
parent 99dcf96c7c
commit 541a8d725d
7 changed files with 9 additions and 26 deletions

View File

@ -1,3 +1,4 @@
import gc
import pickle
import traceback
from abc import ABCMeta
@ -55,6 +56,10 @@ class ChainBase(metaclass=ABCMeta):
pickle.dump(cache, f)
except Exception as err:
logger.error(f"保存缓存 {filename} 出错:{err}")
finally:
# 主动资源回收
del cache
gc.collect()
def run_module(self, method: str, *args, **kwargs) -> Any:
"""

View File

@ -1,4 +1,3 @@
import gc
from typing import Any
from app.chain.download import *
@ -316,9 +315,6 @@ class MessageChain(ChainBase):
userid=userid, total=len(medias))
# 保存缓存
self.save_cache(user_cache, self._cache_file)
# 主动资源回收
del user_cache
gc.collect()
def __post_medias_message(self, channel: MessageChannel,
title: str, items: list, userid: str, total: int):
@ -339,6 +335,5 @@ class MessageChain(ChainBase):
self.post_torrents_message(Notification(
channel=channel,
title=f"{title}】共找到{total}条相关资源请回复对应数字下载0: 自动选择 p: 上一页 n: 下一页)",
items=items,
userid=userid
), torrents=items)

View File

@ -1,6 +1,5 @@
import json
import re
import gc
from datetime import datetime
from typing import Dict, List, Optional, Union, Tuple
@ -399,15 +398,14 @@ class SubscribeChain(ChainBase):
# 如果超过了200条则移除最早的一条
if len(torrents_cache[domain]) > settings.CACHE_CONF.get('torrents'):
torrents_cache[domain].pop(0)
# 回收资源
del torrents
else:
logger.info(f'{indexer.get("name")} 获取到种子')
# 从缓存中匹配订阅
self.__match(torrents_cache)
# 保存缓存到本地
self.save_cache(torrents_cache, self._cache_file)
# 主动资源回收
del torrents_cache
gc.collect()
def __match(self, torrents_cache: Dict[str, List[Context]]):
"""

View File

@ -9,8 +9,8 @@ from app.log import logger
from app.modules import _ModuleBase
from app.modules.themoviedb.category import CategoryHelper
from app.modules.themoviedb.scraper import TmdbScraper
from app.modules.themoviedb.tmdbapi import TmdbHelper
from app.modules.themoviedb.tmdb_cache import TmdbCache
from app.modules.themoviedb.tmdbapi import TmdbHelper
from app.schemas.types import MediaType, MediaImageType
from app.utils.system import SystemUtils

View File

@ -116,8 +116,6 @@ class TmdbScraper:
"""
生成公共NFO
"""
# TMDBINFO
tmdbinfo = mediainfo.tmdb_info
# 添加时间
DomUtils.add_node(doc, root, "dateadded",
time.strftime('%Y-%m-%d %H:%M:%S',
@ -160,19 +158,11 @@ class TmdbScraper:
DomUtils.add_node(doc, xactor, "thumb", actor.get('image'))
DomUtils.add_node(doc, xactor, "profile", actor.get('profile'))
# 风格
genres = tmdbinfo.get("genres") or []
genres = mediainfo.genres or []
for genre in genres:
DomUtils.add_node(doc, root, "genre", genre.get("name") or "")
# 评分
DomUtils.add_node(doc, root, "rating", mediainfo.vote_average or "0")
# 评级
if tmdbinfo.get("releases") and tmdbinfo.get("releases").get("countries"):
releases = [i for i in tmdbinfo.get("releases").get("countries") if
i.get("certification") and i.get("certification").strip()]
# 国内没有分级,所以沿用美国的分级
us_release = next((c for c in releases if c.get("iso_3166_1") == "US"), None)
if us_release:
DomUtils.add_node(doc, root, "mpaa", us_release.get("certification") or "")
return doc

View File

@ -1,7 +1,4 @@
import warnings
from ..tmdb import TMDb
from .find import Find
from .search import Search
class Movie(TMDb):

View File

@ -1,6 +1,4 @@
import warnings
from ..tmdb import TMDb
from .search import Search
class Person(TMDb):