Merge branch 'jxxghp:main' into main
This commit is contained in:
@ -323,13 +323,6 @@ class TransferChain(ChainBase):
|
|||||||
mediainfo=file_mediainfo,
|
mediainfo=file_mediainfo,
|
||||||
transferinfo=transferinfo
|
transferinfo=transferinfo
|
||||||
)
|
)
|
||||||
|
|
||||||
# 广播事件
|
|
||||||
self.eventmanager.send_event(EventType.TransferComplete, {
|
|
||||||
'meta': file_meta,
|
|
||||||
'mediainfo': file_mediainfo,
|
|
||||||
'transferinfo': transferinfo
|
|
||||||
})
|
|
||||||
# 更新进度
|
# 更新进度
|
||||||
processed_num += 1
|
processed_num += 1
|
||||||
self.progress.update(value=processed_num / total_num * 100,
|
self.progress.update(value=processed_num / total_num * 100,
|
||||||
@ -337,21 +330,30 @@ class TransferChain(ChainBase):
|
|||||||
key=ProgressKey.FileTransfer)
|
key=ProgressKey.FileTransfer)
|
||||||
|
|
||||||
# 目录或文件转移完成
|
# 目录或文件转移完成
|
||||||
|
self.progress.update(value=100,
|
||||||
|
text=f"所有文件转移完成,正在执行后续处理 ...",
|
||||||
|
key=ProgressKey.FileTransfer)
|
||||||
for mkey, media in medias.items():
|
for mkey, media in medias.items():
|
||||||
meta = metas[mkey]
|
transfer_meta = metas[mkey]
|
||||||
transferinfo = transfers[mkey]
|
transfer_info = transfers[mkey]
|
||||||
# 刷新媒体库
|
|
||||||
self.refresh_mediaserver(mediainfo=media, file_path=transferinfo.target_path)
|
|
||||||
# 刮削
|
# 刮削
|
||||||
self.scrape_metadata(path=transferinfo.target_path, mediainfo=media)
|
self.scrape_metadata(path=transfer_info.target_path, mediainfo=media)
|
||||||
|
# 刷新媒体库
|
||||||
|
self.refresh_mediaserver(mediainfo=media, file_path=transfer_info.target_path)
|
||||||
# 发送通知
|
# 发送通知
|
||||||
se_str = None
|
se_str = None
|
||||||
if media.type == MediaType.TV:
|
if media.type == MediaType.TV:
|
||||||
se_str = f"{meta.season} {StringUtils.format_ep(season_episodes[mkey])}"
|
se_str = f"{transfer_meta.season} {StringUtils.format_ep(season_episodes[mkey])}"
|
||||||
self.send_transfer_message(meta=meta,
|
self.send_transfer_message(meta=transfer_meta,
|
||||||
mediainfo=media,
|
mediainfo=media,
|
||||||
transferinfo=transferinfo,
|
transferinfo=transfer_info,
|
||||||
season_episode=se_str)
|
season_episode=se_str)
|
||||||
|
# 广播事件
|
||||||
|
self.eventmanager.send_event(EventType.TransferComplete, {
|
||||||
|
'meta': transfer_meta,
|
||||||
|
'mediainfo': media,
|
||||||
|
'transferinfo': transfer_info
|
||||||
|
})
|
||||||
# 结束进度
|
# 结束进度
|
||||||
logger.info(f"{path} 转移完成,共 {total_num} 个文件,"
|
logger.info(f"{path} 转移完成,共 {total_num} 个文件,"
|
||||||
f"成功 {total_num - len(err_msgs)} 个,失败 {len(err_msgs)} 个")
|
f"成功 {total_num - len(err_msgs)} 个,失败 {len(err_msgs)} 个")
|
||||||
|
@ -8,9 +8,11 @@ Engine = create_engine(f"sqlite:///{settings.CONFIG_PATH}/user.db",
|
|||||||
pool_pre_ping=True,
|
pool_pre_ping=True,
|
||||||
echo=False,
|
echo=False,
|
||||||
poolclass=QueuePool,
|
poolclass=QueuePool,
|
||||||
pool_size=1000,
|
pool_size=1024,
|
||||||
pool_recycle=60 * 10,
|
pool_recycle=600,
|
||||||
max_overflow=0)
|
pool_timeout=180,
|
||||||
|
max_overflow=0,
|
||||||
|
connect_args={"timeout": 60})
|
||||||
# 会话工厂
|
# 会话工厂
|
||||||
SessionFactory = sessionmaker(autocommit=False, autoflush=False, bind=Engine)
|
SessionFactory = sessionmaker(autocommit=False, autoflush=False, bind=Engine)
|
||||||
|
|
||||||
@ -33,7 +35,6 @@ def get_db():
|
|||||||
|
|
||||||
|
|
||||||
class DbOper:
|
class DbOper:
|
||||||
|
|
||||||
_db: Session = None
|
_db: Session = None
|
||||||
|
|
||||||
def __init__(self, db: Session = None):
|
def __init__(self, db: Session = None):
|
||||||
|
@ -130,9 +130,10 @@ class DownloadFiles(Base):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def delete_by_fullpath(db: Session, fullpath: str):
|
def delete_by_fullpath(db: Session, fullpath: str):
|
||||||
return db.query(DownloadFiles).filter(DownloadFiles.fullpath == fullpath,
|
db.query(DownloadFiles).filter(DownloadFiles.fullpath == fullpath,
|
||||||
DownloadFiles.state == 1).update(
|
DownloadFiles.state == 1).update(
|
||||||
{
|
{
|
||||||
"state": 0
|
"state": 0
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
db.commit()
|
||||||
|
@ -23,7 +23,8 @@ class PluginData(Base):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def del_plugin_data_by_key(db: Session, plugin_id: str, key: str):
|
def del_plugin_data_by_key(db: Session, plugin_id: str, key: str):
|
||||||
return db.query(PluginData).filter(PluginData.plugin_id == plugin_id, PluginData.key == key).delete()
|
db.query(PluginData).filter(PluginData.plugin_id == plugin_id, PluginData.key == key).delete()
|
||||||
|
db.commit()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_plugin_data_by_plugin_id(db: Session, plugin_id: str):
|
def get_plugin_data_by_plugin_id(db: Session, plugin_id: str):
|
||||||
|
@ -122,3 +122,4 @@ class TransferHistory(Base):
|
|||||||
"download_hash": download_hash
|
"download_hash": download_hash
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
db.commit()
|
||||||
|
@ -339,6 +339,7 @@ class Qbittorrent(metaclass=Singleton):
|
|||||||
try:
|
try:
|
||||||
self.qbc.transfer.upload_limit = int(upload_limit)
|
self.qbc.transfer.upload_limit = int(upload_limit)
|
||||||
self.qbc.transfer.download_limit = int(download_limit)
|
self.qbc.transfer.download_limit = int(download_limit)
|
||||||
|
return True
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
logger.error(f"设置速度限制出错:{err}")
|
logger.error(f"设置速度限制出错:{err}")
|
||||||
return False
|
return False
|
||||||
|
@ -243,14 +243,14 @@ class Transmission(metaclass=Singleton):
|
|||||||
logger.error(f"获取传输信息出错:{err}")
|
logger.error(f"获取传输信息出错:{err}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def set_speed_limit(self, download_limit: float = None, upload_limit: float = None):
|
def set_speed_limit(self, download_limit: float = None, upload_limit: float = None) -> bool:
|
||||||
"""
|
"""
|
||||||
设置速度限制
|
设置速度限制
|
||||||
:param download_limit: 下载速度限制,单位KB/s
|
:param download_limit: 下载速度限制,单位KB/s
|
||||||
:param upload_limit: 上传速度限制,单位kB/s
|
:param upload_limit: 上传速度限制,单位kB/s
|
||||||
"""
|
"""
|
||||||
if not self.trc:
|
if not self.trc:
|
||||||
return
|
return False
|
||||||
try:
|
try:
|
||||||
download_limit_enabled = True if download_limit else False
|
download_limit_enabled = True if download_limit else False
|
||||||
upload_limit_enabled = True if upload_limit else False
|
upload_limit_enabled = True if upload_limit else False
|
||||||
@ -260,6 +260,7 @@ class Transmission(metaclass=Singleton):
|
|||||||
speed_limit_down_enabled=download_limit_enabled,
|
speed_limit_down_enabled=download_limit_enabled,
|
||||||
speed_limit_up_enabled=upload_limit_enabled
|
speed_limit_up_enabled=upload_limit_enabled
|
||||||
)
|
)
|
||||||
|
return True
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
logger.error(f"设置速度限制出错:{err}")
|
logger.error(f"设置速度限制出错:{err}")
|
||||||
return False
|
return False
|
||||||
|
@ -539,25 +539,25 @@ class SpeedLimiter(_PluginBase):
|
|||||||
title=title,
|
title=title,
|
||||||
text=f"Qbittorrent 已取消限速"
|
text=f"Qbittorrent 已取消限速"
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
if self._tr:
|
if self._tr:
|
||||||
self._tr.set_speed_limit(download_limit=download_limit, upload_limit=upload_limit)
|
self._tr.set_speed_limit(download_limit=download_limit, upload_limit=upload_limit)
|
||||||
# 发送通知
|
# 发送通知
|
||||||
if self._notify:
|
if self._notify:
|
||||||
title = "【播放限速】"
|
title = "【播放限速】"
|
||||||
if upload_limit or download_limit:
|
if upload_limit or download_limit:
|
||||||
subtitle = f"Transmission 开始{limit_type}限速"
|
subtitle = f"Transmission 开始{limit_type}限速"
|
||||||
self.post_message(
|
self.post_message(
|
||||||
mtype=NotificationType.MediaServer,
|
mtype=NotificationType.MediaServer,
|
||||||
title=title,
|
title=title,
|
||||||
text=f"{subtitle}\n{text}"
|
text=f"{subtitle}\n{text}"
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
self.post_message(
|
self.post_message(
|
||||||
mtype=NotificationType.MediaServer,
|
mtype=NotificationType.MediaServer,
|
||||||
title=title,
|
title=title,
|
||||||
text=f"Transmission 已取消限速"
|
text=f"Transmission 已取消限速"
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"设置限速失败:{str(e)}")
|
logger.error(f"设置限速失败:{str(e)}")
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user