Merge branch 'jxxghp:main' into main
This commit is contained in:
commit
2e80586436
@ -255,10 +255,11 @@ location /cgi-bin/menu/create {
|
||||
}
|
||||
```
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
@ -185,6 +185,7 @@ class TransferChain(ChainBase):
|
||||
# 转移成功的不再处理
|
||||
transferd = self.transferhis.get_by_src(file_path_str)
|
||||
if transferd and transferd.status:
|
||||
logger.info(f"{file_path} 已成功转移过,如需重新处理,请删除历史记录。")
|
||||
continue
|
||||
|
||||
# 更新进度
|
||||
|
@ -132,75 +132,89 @@ class BrushFlow(_PluginBase):
|
||||
self.qb = Qbittorrent()
|
||||
self.tr = Transmission()
|
||||
# 检查配置
|
||||
if self._downloader == "qbittorrent":
|
||||
if self.qb.is_inactive():
|
||||
logger.error("站点刷流任务出错:Qbittorrent未连接")
|
||||
self.systemmessage.put("站点刷流任务出错:Qbittorrent未连接")
|
||||
return
|
||||
elif self._downloader == "transmission":
|
||||
if self.tr.is_inactive():
|
||||
logger.error("站点刷流任务出错:Transmission未连接")
|
||||
self.systemmessage.put("站点刷流任务出错:Transmission未连接")
|
||||
return
|
||||
if self._disksize and not StringUtils.is_number(self._disksize):
|
||||
logger.error(f"站点刷流任务出错,保种体积设置错误:{self._disksize}")
|
||||
self.systemmessage.put(f"站点刷流任务出错,保种体积设置错误:{self._disksize}")
|
||||
self._disksize = 0
|
||||
logger.error(f"保种体积设置错误:{self._disksize}")
|
||||
self.systemmessage.put(f"保种体积设置错误:{self._disksize}")
|
||||
return
|
||||
if self._maxupspeed and not StringUtils.is_number(self._maxupspeed):
|
||||
logger.error(f"站点刷流任务出错,总上传带宽设置错误:{self._maxupspeed}")
|
||||
self.systemmessage.put(f"站点刷流任务出错,总上传带宽设置错误:{self._maxupspeed}")
|
||||
self._maxupspeed = 0
|
||||
logger.error(f"总上传带宽设置错误:{self._maxupspeed}")
|
||||
self.systemmessage.put(f"总上传带宽设置错误:{self._maxupspeed}")
|
||||
return
|
||||
if self._maxdlspeed and not StringUtils.is_number(self._maxdlspeed):
|
||||
logger.error(f"站点刷流任务出错,总下载带宽设置错误:{self._maxdlspeed}")
|
||||
self.systemmessage.put(f"站点刷流任务出错,总下载带宽设置错误:{self._maxdlspeed}")
|
||||
self._maxdlspeed = 0
|
||||
logger.error(f"总下载带宽设置错误:{self._maxdlspeed}")
|
||||
self.systemmessage.put(f"总下载带宽设置错误:{self._maxdlspeed}")
|
||||
return
|
||||
if self._maxdlcount and not StringUtils.is_number(self._maxdlcount):
|
||||
logger.error(f"站点刷流任务出错,同时下载任务数设置错误:{self._maxdlcount}")
|
||||
self.systemmessage.put(f"站点刷流任务出错,同时下载任务数设置错误:{self._maxdlcount}")
|
||||
self._maxdlcount = 0
|
||||
logger.error(f"同时下载任务数设置错误:{self._maxdlcount}")
|
||||
self.systemmessage.put(f"同时下载任务数设置错误:{self._maxdlcount}")
|
||||
return
|
||||
if self._size and not StringUtils.is_number(self._size):
|
||||
if self._size:
|
||||
size = str(self._size).split("-")[0]
|
||||
if not StringUtils.is_number(size):
|
||||
logger.error(f"站点刷流任务出错,种子大小设置错误:{self._size}")
|
||||
self.systemmessage.put(f"站点刷流任务出错,种子大小设置错误:{self._size}")
|
||||
self._size = 0
|
||||
logger.error(f"种子大小设置错误:{self._size}")
|
||||
self.systemmessage.put(f"种子大小设置错误:{self._size}")
|
||||
return
|
||||
if self._seeder and not StringUtils.is_number(self._seeder):
|
||||
if self._seeder:
|
||||
seeder = str(self._seeder).split("-")[0]
|
||||
if not StringUtils.is_number(seeder):
|
||||
logger.error(f"站点刷流任务出错,做种人数设置错误:{self._seeder}")
|
||||
self.systemmessage.put(f"站点刷流任务出错,做种人数设置错误:{self._seeder}")
|
||||
self._seeder = 0
|
||||
logger.error(f"做种人数设置错误:{self._seeder}")
|
||||
self.systemmessage.put(f"做种人数设置错误:{self._seeder}")
|
||||
return
|
||||
if self._seed_time and not StringUtils.is_number(self._seed_time):
|
||||
logger.error(f"站点刷流任务出错,做种时间设置错误:{self._seed_time}")
|
||||
self.systemmessage.put(f"站点刷流任务出错,做种时间设置错误:{self._seed_time}")
|
||||
self._seed_time = 0
|
||||
logger.error(f"做种时间设置错误:{self._seed_time}")
|
||||
self.systemmessage.put(f"做种时间设置错误:{self._seed_time}")
|
||||
return
|
||||
if self._seed_ratio and not StringUtils.is_number(self._seed_ratio):
|
||||
logger.error(f"站点刷流任务出错,分享率设置错误:{self._seed_ratio}")
|
||||
self.systemmessage.put(f"站点刷流任务出错,分享率设置错误:{self._seed_ratio}")
|
||||
self._seed_ratio = 0
|
||||
logger.error(f"分享率设置错误:{self._seed_ratio}")
|
||||
self.systemmessage.put(f"分享率设置错误:{self._seed_ratio}")
|
||||
return
|
||||
if self._seed_size and not StringUtils.is_number(self._seed_size):
|
||||
logger.error(f"站点刷流任务出错,上传量设置错误:{self._seed_size}")
|
||||
self.systemmessage.put(f"站点刷流任务出错,上传量设置错误:{self._seed_size}")
|
||||
self._seed_size = 0
|
||||
logger.error(f"上传量设置错误:{self._seed_size}")
|
||||
self.systemmessage.put(f"上传量设置错误:{self._seed_size}")
|
||||
return
|
||||
if self._download_time and not StringUtils.is_number(self._download_time):
|
||||
logger.error(f"站点刷流任务出错,下载超时时间设置错误:{self._download_time}")
|
||||
self.systemmessage.put(f"站点刷流任务出错,下载超时时间设置错误:{self._download_time}")
|
||||
self._download_time = 0
|
||||
logger.error(f"下载超时时间设置错误:{self._download_time}")
|
||||
self.systemmessage.put(f"下载超时时间设置错误:{self._download_time}")
|
||||
return
|
||||
if self._seed_avgspeed and not StringUtils.is_number(self._seed_avgspeed):
|
||||
logger.error(f"站点刷流任务出错,平均上传速度设置错误:{self._seed_avgspeed}")
|
||||
self.systemmessage.put(f"站点刷流任务出错,平均上传速度设置错误:{self._seed_avgspeed}")
|
||||
self._seed_avgspeed = 0
|
||||
logger.error(f"平均上传速度设置错误:{self._seed_avgspeed}")
|
||||
self.systemmessage.put(f"平均上传速度设置错误:{self._seed_avgspeed}")
|
||||
return
|
||||
if self._seed_inactivetime and not StringUtils.is_number(self._seed_inactivetime):
|
||||
logger.error(f"站点刷流任务出错,未活动时间设置错误:{self._seed_inactivetime}")
|
||||
self.systemmessage.put(f"站点刷流任务出错,未活动时间设置错误:{self._seed_inactivetime}")
|
||||
self._seed_inactivetime = 0
|
||||
logger.error(f"未活动时间设置错误:{self._seed_inactivetime}")
|
||||
self.systemmessage.put(f"未活动时间设置错误:{self._seed_inactivetime}")
|
||||
return
|
||||
if self._up_speed and not StringUtils.is_number(self._up_speed):
|
||||
logger.error(f"站点刷流任务出错,单任务上传限速设置错误:{self._up_speed}")
|
||||
self.systemmessage.put(f"站点刷流任务出错,单任务上传限速设置错误:{self._up_speed}")
|
||||
self._up_speed = 0
|
||||
logger.error(f"单任务上传限速设置错误:{self._up_speed}")
|
||||
self.systemmessage.put(f"单任务上传限速设置错误:{self._up_speed}")
|
||||
return
|
||||
if self._dl_speed and not StringUtils.is_number(self._dl_speed):
|
||||
logger.error(f"站点刷流任务出错,单任务下载限速设置错误:{self._dl_speed}")
|
||||
self.systemmessage.put(f"站点刷流任务出错,单任务下载限速设置错误:{self._dl_speed}")
|
||||
self._dl_speed = 0
|
||||
logger.error(f"单任务下载限速设置错误:{self._dl_speed}")
|
||||
self.systemmessage.put(f"单任务下载限速设置错误:{self._dl_speed}")
|
||||
return
|
||||
|
||||
# 检查必要条件
|
||||
@ -221,13 +235,16 @@ class BrushFlow(_PluginBase):
|
||||
self._scheduler.add_job(self.brush, 'date',
|
||||
run_date=datetime.now(
|
||||
tz=pytz.timezone(settings.TZ)
|
||||
) + timedelta(seconds=3))
|
||||
) + timedelta(seconds=3),
|
||||
name="站点刷流服务")
|
||||
# 关闭一次性开关
|
||||
self._onlyonce = False
|
||||
self.__update_config()
|
||||
if self._scheduler.get_jobs():
|
||||
# 增加检查任务
|
||||
self._scheduler.add_job(self.check, 'interval', minutes=self._check_interval)
|
||||
self._scheduler.add_job(self.check, 'interval',
|
||||
minutes=self._check_interval,
|
||||
name="站点刷流检查服务")
|
||||
# 启动服务
|
||||
self._scheduler.print_jobs()
|
||||
self._scheduler.start()
|
||||
@ -741,13 +758,13 @@ class BrushFlow(_PluginBase):
|
||||
else:
|
||||
data_list = data_list.values()
|
||||
# 总上传量格式化
|
||||
total_upload = StringUtils.str_filesize(stattistic_data.get("uploaded"))
|
||||
total_upload = StringUtils.str_filesize(stattistic_data.get("uploaded") or 0)
|
||||
# 总下载量格式化
|
||||
total_download = StringUtils.str_filesize(stattistic_data.get("downloaded"))
|
||||
total_download = StringUtils.str_filesize(stattistic_data.get("downloaded") or 0)
|
||||
# 下载种子数
|
||||
total_count = stattistic_data.get("count")
|
||||
total_count = stattistic_data.get("count") or 0
|
||||
# 删除种子数
|
||||
total_deleted = stattistic_data.get("deleted")
|
||||
total_deleted = stattistic_data.get("deleted") or 0
|
||||
# 种子数据明细
|
||||
torrent_trs = [
|
||||
{
|
||||
@ -785,6 +802,9 @@ class BrushFlow(_PluginBase):
|
||||
},
|
||||
{
|
||||
'component': 'td',
|
||||
'props': {
|
||||
'class': 'text-no-wrap'
|
||||
},
|
||||
'text': "已删除" if data.get("deleted") else "正常"
|
||||
}
|
||||
]
|
||||
@ -1038,7 +1058,7 @@ class BrushFlow(_PluginBase):
|
||||
{
|
||||
'component': 'VImg',
|
||||
'props': {
|
||||
'src': '/plugin/torrentremover.png'
|
||||
'src': '/plugin/delete.png'
|
||||
}
|
||||
}
|
||||
]
|
||||
@ -1091,6 +1111,9 @@ class BrushFlow(_PluginBase):
|
||||
'content': [
|
||||
{
|
||||
'component': 'thead',
|
||||
'props': {
|
||||
'class': 'text-no-wrap'
|
||||
},
|
||||
'content': [
|
||||
{
|
||||
'component': 'th',
|
||||
@ -1214,7 +1237,10 @@ class BrushFlow(_PluginBase):
|
||||
task_info: Dict[str, dict] = self.get_data("torrents") or {}
|
||||
if task_info:
|
||||
# 当前保种大小
|
||||
torrents_size = sum([task.get("size") or 0 for task in task_info.values()])
|
||||
torrents_size = sum([
|
||||
task.get("size") or 0
|
||||
for task in task_info.values() if not task.get("deleted")
|
||||
])
|
||||
else:
|
||||
torrents_size = 0
|
||||
# 读取统计数据
|
||||
@ -1306,7 +1332,8 @@ class BrushFlow(_PluginBase):
|
||||
# 同时下载任务数
|
||||
downloads = self.__get_downloading_count(self._downloader)
|
||||
if self._maxdlcount and downloads >= int(self._maxdlcount):
|
||||
continue
|
||||
logger.warn(f"当前同时下载任务数 {downloads} 已达到最大值 {self._maxdlcount},停止新增任务")
|
||||
break
|
||||
# 获取下载器的下载信息
|
||||
downloader_info = self.__get_downloader_info()
|
||||
if downloader_info:
|
||||
@ -1315,11 +1342,15 @@ class BrushFlow(_PluginBase):
|
||||
# 总上传带宽(KB/s)
|
||||
if self._maxupspeed \
|
||||
and current_upload_speed >= float(self._maxupspeed) * 1024:
|
||||
continue
|
||||
logger.warn(f"当前总上传带宽 {StringUtils.str_filesize(current_upload_speed)} "
|
||||
f"已达到最大值 {self._maxupspeed} KB/s,暂时停止新增任务")
|
||||
break
|
||||
# 总下载带宽(KB/s)
|
||||
if self._maxdlspeed \
|
||||
and current_download_speed >= float(self._maxdlspeed) * 1024:
|
||||
continue
|
||||
logger.warn(f"当前总下载带宽 {StringUtils.str_filesize(current_download_speed)} "
|
||||
f"已达到最大值 {self._maxdlspeed} KB/s,暂时停止新增任务")
|
||||
break
|
||||
# 添加下载任务
|
||||
hash_string = self.__download(torrent=torrent)
|
||||
if not hash_string:
|
||||
@ -1383,8 +1414,8 @@ class BrushFlow(_PluginBase):
|
||||
"downloaded": 0
|
||||
}
|
||||
# 获取下载器中的种子
|
||||
torrents, state = downloader.get_torrents(ids=check_hashs)
|
||||
if not state:
|
||||
torrents, error = downloader.get_torrents(ids=check_hashs)
|
||||
if error:
|
||||
logger.warn("连接下载器出错,将在下个时间周期重试")
|
||||
return
|
||||
if not torrents:
|
||||
@ -1485,6 +1516,12 @@ class BrushFlow(_PluginBase):
|
||||
# 更新统计数据
|
||||
statistic_info["uploaded"] = total_uploaded
|
||||
statistic_info["downloaded"] = total_downloaded
|
||||
# 打印统计数据
|
||||
logger.info(f"刷流任务统计数据:"
|
||||
f"总任务数:{len(task_info)},"
|
||||
f"已删除:{statistic_info.get('deleted')},"
|
||||
f"总上传量:{StringUtils.str_filesize(statistic_info.get('uploaded'))},"
|
||||
f"总下载量:{StringUtils.str_filesize(statistic_info.get('downloaded'))}")
|
||||
# 保存统计数据
|
||||
self.save_data("statistic", statistic_info)
|
||||
# 保存任务记录
|
||||
@ -1513,6 +1550,9 @@ class BrushFlow(_PluginBase):
|
||||
if self._downloader == "qbittorrent":
|
||||
if not self.qb:
|
||||
return None
|
||||
# 限速值转为bytes
|
||||
up_speed = up_speed * 1024 if up_speed else None
|
||||
down_speed = down_speed * 1024 if down_speed else None
|
||||
# 生成随机Tag
|
||||
tag = StringUtils.generate_random_str(10)
|
||||
state = self.qb.add_torrent(content=torrent.enclosure,
|
||||
@ -1740,7 +1780,7 @@ class BrushFlow(_PluginBase):
|
||||
return len(torrents) or 0
|
||||
|
||||
@staticmethod
|
||||
def __get_pubminutes(pubdate: str) -> datetime:
|
||||
def __get_pubminutes(pubdate: str) -> int:
|
||||
"""
|
||||
将字符串转换为时间,并计算与当前时间差)(分钟)
|
||||
"""
|
||||
|
@ -1 +1 @@
|
||||
APP_VERSION = 'v1.1.5'
|
||||
APP_VERSION = 'v1.1.6'
|
||||
|
Loading…
x
Reference in New Issue
Block a user