diff --git a/app/core/context.py b/app/core/context.py index 1f61bbe8..95a419f3 100644 --- a/app/core/context.py +++ b/app/core/context.py @@ -6,6 +6,7 @@ from app.core.config import settings from app.core.meta import MetaBase from app.core.metainfo import MetaInfo from app.schemas.types import MediaType +from app.utils.string import StringUtils @dataclass @@ -109,12 +110,22 @@ class TorrentInfo: """ return self.get_free_string(self.uploadvolumefactor, self.downloadvolumefactor) + @property + def freedate_diff(self): + """ + 返回免费剩余时间 + """ + if not self.freedate: + return "" + return StringUtils.diff_time_str(self.freedate) + def to_dict(self): """ 返回字典 """ dicts = asdict(self) dicts["volume_factor"] = self.volume_factor + dicts["freedate_diff"] = self.freedate_diff return dicts diff --git a/app/modules/indexer/spider.py b/app/modules/indexer/spider.py index dbbb4057..d0d714eb 100644 --- a/app/modules/indexer/spider.py +++ b/app/modules/indexer/spider.py @@ -549,12 +549,12 @@ class TorrentSpider: def __get_free_date(self, torrent): # free date - if 'free_date' not in self.fields: + if 'freedate' not in self.fields: return - selector = self.fields.get('free_date', {}) - free_date = torrent(selector.get('selector', '')).clone() - self.__remove(free_date, selector) - items = self.__attribute_or_text(free_date, selector) + selector = self.fields.get('freedate', {}) + freedate = torrent(selector.get('selector', '')).clone() + self.__remove(freedate, selector) + items = self.__attribute_or_text(freedate, selector) self.torrents_info['freedate'] = self.__index(items, selector) self.torrents_info['freedate'] = self.__filter_text(self.torrents_info.get('freedate'), selector.get('filters')) diff --git a/app/schemas/context.py b/app/schemas/context.py index 5bc65975..a0ca162c 100644 --- a/app/schemas/context.py +++ b/app/schemas/context.py @@ -210,6 +210,8 @@ class TorrentInfo(BaseModel): pri_order: Optional[int] = 0 # 促销 volume_factor: Optional[str] = None + # 剩余免费时间 + freedate_diff: Optional[str] = None class Context(BaseModel): diff --git a/app/utils/string.py b/app/utils/string.py index 3bde6014..804834a4 100644 --- a/app/utils/string.py +++ b/app/utils/string.py @@ -733,5 +733,7 @@ class StringUtils: return f'{diff_days}天{diff_hours}小时{diff_minutes}分钟' elif diff_hours > 0: return f'{diff_hours}小时{diff_minutes}分钟' - else: + elif diff_minutes > 0: return f'{diff_minutes}分钟' + else: + return ''