add 择种优先级

This commit is contained in:
jxxghp 2023-06-19 21:39:50 +08:00
parent b181af40cd
commit 42dd6784ea
2 changed files with 25 additions and 8 deletions

View File

@ -111,6 +111,8 @@ class Settings(BaseSettings):
TORRENT_TAG: str = "MOVIEPILOT"
# 下载保存目录,容器内映射路径需要一致
DOWNLOAD_PATH: str = "/downloads"
# 择种优先级site/seeder
TORRENT_PRI: str = "seeder"
# 媒体服务器 emby/jellyfin/plex
MEDIASERVER: str = "emby"
# EMBY服务器地址

View File

@ -19,6 +19,7 @@ class TorrentHelper:
"""
种子帮助类
"""
def download_torrent(self, url: str,
cookie: str = None,
ua: str = None,
@ -172,17 +173,31 @@ class TorrentHelper:
if not torrent_list:
return []
# 排序函数,标题、站点、资源类型、做种数量
def get_sort_str(_context):
"""
排序函数值越大越优先
"""
_meta = _context.meta_info
_torrent = _context.torrent_info
season_len = str(len(_meta.season_list)).rjust(2, '0')
episode_len = str(9999 - len(_meta.episode_list)).rjust(4, '0')
# 排序:标题、资源类型、站点、做种、季集
return "%s%s%s%s" % (str(_torrent.title).ljust(100, ' '),
str(_torrent.pri_order).rjust(3, '0'),
str(_torrent.seeders).rjust(10, '0'),
"%s%s" % (season_len, episode_len))
# 站点优先级
_site_order = 999 - _torrent.site_order
# 季数
_season_len = str(len(_meta.season_list)).rjust(2, '0')
# 集数
_episode_len = str(9999 - len(_meta.episode_list)).rjust(4, '0')
if settings.TORRENT_PRI == "seeder":
# 排序:标题、资源类型、站点、做种、季集
return "%s%s%s%s" % (str(_torrent.title).ljust(100, ' '),
str(_torrent.pri_order).rjust(3, '0'),
str(_torrent.seeders).rjust(10, '0'),
"%s%s" % (_season_len, _episode_len))
else:
# 排序:标题、资源类型、站点、季集、做种
return "%s%s%s%s%s" % (str(_torrent.title).ljust(100, ' '),
str(_torrent.pri_order).rjust(3, '0'),
str(_site_order).rjust(3, '0'),
str(_torrent.seeders).rjust(10, '0'),
"%s%s" % (_season_len, _episode_len))
# 匹配的资源中排序分组选最好的一个下载
# 按站点顺序、资源匹配顺序、做种人数下载数逆序排序