This commit is contained in:
jxxghp 2024-01-01 19:43:55 +08:00
parent 56ad281cb6
commit 90f9edbf24
4 changed files with 21 additions and 6 deletions

View File

@ -6,6 +6,7 @@ from app.core.config import settings
from app.core.meta import MetaBase from app.core.meta import MetaBase
from app.core.metainfo import MetaInfo from app.core.metainfo import MetaInfo
from app.schemas.types import MediaType from app.schemas.types import MediaType
from app.utils.string import StringUtils
@dataclass @dataclass
@ -109,12 +110,22 @@ class TorrentInfo:
""" """
return self.get_free_string(self.uploadvolumefactor, self.downloadvolumefactor) 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): def to_dict(self):
""" """
返回字典 返回字典
""" """
dicts = asdict(self) dicts = asdict(self)
dicts["volume_factor"] = self.volume_factor dicts["volume_factor"] = self.volume_factor
dicts["freedate_diff"] = self.freedate_diff
return dicts return dicts

View File

@ -549,12 +549,12 @@ class TorrentSpider:
def __get_free_date(self, torrent): def __get_free_date(self, torrent):
# free date # free date
if 'free_date' not in self.fields: if 'freedate' not in self.fields:
return return
selector = self.fields.get('free_date', {}) selector = self.fields.get('freedate', {})
free_date = torrent(selector.get('selector', '')).clone() freedate = torrent(selector.get('selector', '')).clone()
self.__remove(free_date, selector) self.__remove(freedate, selector)
items = self.__attribute_or_text(free_date, selector) items = self.__attribute_or_text(freedate, selector)
self.torrents_info['freedate'] = self.__index(items, selector) self.torrents_info['freedate'] = self.__index(items, selector)
self.torrents_info['freedate'] = self.__filter_text(self.torrents_info.get('freedate'), self.torrents_info['freedate'] = self.__filter_text(self.torrents_info.get('freedate'),
selector.get('filters')) selector.get('filters'))

View File

@ -210,6 +210,8 @@ class TorrentInfo(BaseModel):
pri_order: Optional[int] = 0 pri_order: Optional[int] = 0
# 促销 # 促销
volume_factor: Optional[str] = None volume_factor: Optional[str] = None
# 剩余免费时间
freedate_diff: Optional[str] = None
class Context(BaseModel): class Context(BaseModel):

View File

@ -733,5 +733,7 @@ class StringUtils:
return f'{diff_days}{diff_hours}小时{diff_minutes}分钟' return f'{diff_days}{diff_hours}小时{diff_minutes}分钟'
elif diff_hours > 0: elif diff_hours > 0:
return f'{diff_hours}小时{diff_minutes}分钟' return f'{diff_hours}小时{diff_minutes}分钟'
else: elif diff_minutes > 0:
return f'{diff_minutes}分钟' return f'{diff_minutes}分钟'
else:
return ''