mirror of
https://github.com/d0zingcat/MoviePilot-Plugins.git
synced 2026-05-13 15:09:12 +00:00
在未配置动态删种的路径中增加del_no_free的判断
This commit is contained in:
@@ -39,8 +39,6 @@ class BrushConfig:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, config: dict, process_site_config=True):
|
def __init__(self, config: dict, process_site_config=True):
|
||||||
logger.debug(f"[xx]根据配置创建BrushConfig:{config}")
|
|
||||||
|
|
||||||
self.enabled = config.get("enabled", False)
|
self.enabled = config.get("enabled", False)
|
||||||
self.notify = config.get("notify", True)
|
self.notify = config.get("notify", True)
|
||||||
self.onlyonce = config.get("onlyonce", False)
|
self.onlyonce = config.get("onlyonce", False)
|
||||||
@@ -76,7 +74,6 @@ class BrushConfig:
|
|||||||
self.brush_sequential = config.get("brush_sequential", False)
|
self.brush_sequential = config.get("brush_sequential", False)
|
||||||
self.proxy_delete = config.get("proxy_delete", False)
|
self.proxy_delete = config.get("proxy_delete", False)
|
||||||
self.del_no_free = config.get("del_no_free", False) if self.freeleech in ["free", "2xfree"] else False
|
self.del_no_free = config.get("del_no_free", False) if self.freeleech in ["free", "2xfree"] else False
|
||||||
logger.debug(f'self.freeleech: {self.freeleech}, self.freeleech in ["free", "2xfree"]: {self.freeleech in ["free", "2xfree"]}, del_no_free: {self.del_no_free}')
|
|
||||||
self.active_time_range = config.get("active_time_range")
|
self.active_time_range = config.get("active_time_range")
|
||||||
self.cron = config.get("cron")
|
self.cron = config.get("cron")
|
||||||
self.qb_category = config.get("qb_category")
|
self.qb_category = config.get("qb_category")
|
||||||
@@ -2539,6 +2536,24 @@ class BrushFlow(_PluginBase):
|
|||||||
return True, f"H&R种子,分享率 {torrent_info.get('ratio'):.2f},大于 {brush_config.seed_ratio}"
|
return True, f"H&R种子,分享率 {torrent_info.get('ratio'):.2f},大于 {brush_config.seed_ratio}"
|
||||||
return False, "H&R种子,未能满足设置的H&R删除条件"
|
return False, "H&R种子,未能满足设置的H&R删除条件"
|
||||||
|
|
||||||
|
while brush_config.del_no_free:
|
||||||
|
if not torrent_task.get("freedate", None):
|
||||||
|
logger.warning(f"配置了‘删除促销过期的未完成下载’,但未获取到该种子的促销截止时间,跳过。")
|
||||||
|
break
|
||||||
|
try:
|
||||||
|
now = datetime.now()
|
||||||
|
freedate_origin = torrent_task.get("freedate")
|
||||||
|
freedate = freedate_origin.replace("T", " ").replace("Z", "")
|
||||||
|
freedate = datetime.strptime(freedate, "%Y-%m-%d %H:%M:%S")
|
||||||
|
delta_minutes = (((now - freedate).total_seconds() + 60) // 60) - brush_config.timezone_offset
|
||||||
|
logger.debug(f"促销截止(站点时间): {freedate_origin}, 时区偏移: {brush_config.timezone_offset}, 用户当前时间: {now.strftime('%Y-%m-%d %H:%M:%S')}, 时间差: {delta_minutes}分")
|
||||||
|
if delta_minutes <= 0:
|
||||||
|
return True, "促销过期"
|
||||||
|
except Exception as e:
|
||||||
|
logger.warning(f"处理‘删除促销过期的未完成下载’时报错,继续判断其他删除条件。")
|
||||||
|
logger.debug(f"error: {e}")
|
||||||
|
break
|
||||||
|
|
||||||
# 处理其他场景,1. 不是H&R种子;2. 是H&R种子但没有特定条件配置
|
# 处理其他场景,1. 不是H&R种子;2. 是H&R种子但没有特定条件配置
|
||||||
reason = reason if not hit_and_run else "H&R种子(未设置H&R条件),未能满足设置的删除条件"
|
reason = reason if not hit_and_run else "H&R种子(未设置H&R条件),未能满足设置的删除条件"
|
||||||
if brush_config.seed_time and torrent_info.get("seeding_time") >= float(brush_config.seed_time) * 3600:
|
if brush_config.seed_time and torrent_info.get("seeding_time") >= float(brush_config.seed_time) * 3600:
|
||||||
@@ -2561,28 +2576,22 @@ class BrushFlow(_PluginBase):
|
|||||||
|
|
||||||
return True, reason if not hit_and_run else "H&R种子(未设置H&R条件)," + reason
|
return True, reason if not hit_and_run else "H&R种子(未设置H&R条件)," + reason
|
||||||
|
|
||||||
def __evaluate_proxy_pre_conditions_for_delete(self, site_name: str, torrent_info: dict) -> Tuple[bool, str]:
|
def __evaluate_proxy_pre_conditions_for_delete(self, site_name: str, torrent_info: dict, torrent_task: dict) -> Tuple[bool, str]:
|
||||||
"""
|
"""
|
||||||
评估动态删除前置条件并返回是否应删除种子及其原因
|
评估动态删除前置条件并返回是否应删除种子及其原因
|
||||||
"""
|
"""
|
||||||
brush_config = self.__get_brush_config(sitename=site_name)
|
brush_config = self.__get_brush_config(sitename=site_name)
|
||||||
torrent = (self.get_data("torrents") or {}).get(torrent_info.get("hash", ""), None)
|
|
||||||
|
|
||||||
should_delete = False
|
should_delete = False
|
||||||
reason = "未能满足动态删除设置的前置删除条件"
|
reason = "未能满足动态删除设置的前置删除条件"
|
||||||
|
|
||||||
if not torrent:
|
while brush_config.del_no_free:
|
||||||
logger.debug(f"未获取到种子 {torrent_info.get('hash', '?')} 的任务信息。")
|
if not torrent_task.get("freedate", None):
|
||||||
|
|
||||||
logger.debug(f"brush_config.del_no_free: {brush_config.del_no_free}")
|
|
||||||
|
|
||||||
while torrent and brush_config.del_no_free:
|
|
||||||
if not torrent.get("freedate", None):
|
|
||||||
logger.warning(f"配置了‘删除促销过期的未完成下载’,但未获取到该种子的促销截止时间,跳过。")
|
logger.warning(f"配置了‘删除促销过期的未完成下载’,但未获取到该种子的促销截止时间,跳过。")
|
||||||
break
|
break
|
||||||
try:
|
try:
|
||||||
now = datetime.now()
|
now = datetime.now()
|
||||||
freedate_origin = torrent.get("freedate")
|
freedate_origin = torrent_task.get("freedate")
|
||||||
freedate = freedate_origin.replace("T", " ").replace("Z", "")
|
freedate = freedate_origin.replace("T", " ").replace("Z", "")
|
||||||
freedate = datetime.strptime(freedate, "%Y-%m-%d %H:%M:%S")
|
freedate = datetime.strptime(freedate, "%Y-%m-%d %H:%M:%S")
|
||||||
delta_minutes = (((now - freedate).total_seconds() + 60) // 60) - brush_config.timezone_offset
|
delta_minutes = (((now - freedate).total_seconds() + 60) // 60) - brush_config.timezone_offset
|
||||||
@@ -2664,7 +2673,8 @@ class BrushFlow(_PluginBase):
|
|||||||
|
|
||||||
# 删除种子的具体实现可能会根据实际情况略有不同
|
# 删除种子的具体实现可能会根据实际情况略有不同
|
||||||
should_delete, reason = self.__evaluate_proxy_pre_conditions_for_delete(site_name=site_name,
|
should_delete, reason = self.__evaluate_proxy_pre_conditions_for_delete(site_name=site_name,
|
||||||
torrent_info=torrent_info)
|
torrent_info=torrent_info,
|
||||||
|
torrent_task=torrent_task)
|
||||||
if should_delete:
|
if should_delete:
|
||||||
delete_hashes.append(torrent_hash)
|
delete_hashes.append(torrent_hash)
|
||||||
self.__send_delete_message(site_name=site_name, torrent_title=torrent_title, torrent_desc=torrent_desc,
|
self.__send_delete_message(site_name=site_name, torrent_title=torrent_title, torrent_desc=torrent_desc,
|
||||||
|
|||||||
Reference in New Issue
Block a user