Merge branch 'jxxghp:main' into main

This commit is contained in:
thsrite
2023-09-05 16:55:08 +08:00
committed by GitHub
8 changed files with 51 additions and 43 deletions

View File

@ -323,13 +323,6 @@ class TransferChain(ChainBase):
mediainfo=file_mediainfo,
transferinfo=transferinfo
)
# 广播事件
self.eventmanager.send_event(EventType.TransferComplete, {
'meta': file_meta,
'mediainfo': file_mediainfo,
'transferinfo': transferinfo
})
# 更新进度
processed_num += 1
self.progress.update(value=processed_num / total_num * 100,
@ -337,21 +330,30 @@ class TransferChain(ChainBase):
key=ProgressKey.FileTransfer)
# 目录或文件转移完成
self.progress.update(value=100,
text=f"所有文件转移完成,正在执行后续处理 ...",
key=ProgressKey.FileTransfer)
for mkey, media in medias.items():
meta = metas[mkey]
transferinfo = transfers[mkey]
# 刷新媒体库
self.refresh_mediaserver(mediainfo=media, file_path=transferinfo.target_path)
transfer_meta = metas[mkey]
transfer_info = transfers[mkey]
# 刮削
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
if media.type == MediaType.TV:
se_str = f"{meta.season} {StringUtils.format_ep(season_episodes[mkey])}"
self.send_transfer_message(meta=meta,
se_str = f"{transfer_meta.season} {StringUtils.format_ep(season_episodes[mkey])}"
self.send_transfer_message(meta=transfer_meta,
mediainfo=media,
transferinfo=transferinfo,
transferinfo=transfer_info,
season_episode=se_str)
# 广播事件
self.eventmanager.send_event(EventType.TransferComplete, {
'meta': transfer_meta,
'mediainfo': media,
'transferinfo': transfer_info
})
# 结束进度
logger.info(f"{path} 转移完成,共 {total_num} 个文件,"
f"成功 {total_num - len(err_msgs)} 个,失败 {len(err_msgs)}")

View File

@ -8,9 +8,11 @@ Engine = create_engine(f"sqlite:///{settings.CONFIG_PATH}/user.db",
pool_pre_ping=True,
echo=False,
poolclass=QueuePool,
pool_size=1000,
pool_recycle=60 * 10,
max_overflow=0)
pool_size=1024,
pool_recycle=600,
pool_timeout=180,
max_overflow=0,
connect_args={"timeout": 60})
# 会话工厂
SessionFactory = sessionmaker(autocommit=False, autoflush=False, bind=Engine)
@ -33,7 +35,6 @@ def get_db():
class DbOper:
_db: Session = None
def __init__(self, db: Session = None):

View File

@ -130,9 +130,10 @@ class DownloadFiles(Base):
@staticmethod
def delete_by_fullpath(db: Session, fullpath: str):
return db.query(DownloadFiles).filter(DownloadFiles.fullpath == fullpath,
DownloadFiles.state == 1).update(
db.query(DownloadFiles).filter(DownloadFiles.fullpath == fullpath,
DownloadFiles.state == 1).update(
{
"state": 0
}
)
db.commit()

View File

@ -23,7 +23,8 @@ class PluginData(Base):
@staticmethod
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
def get_plugin_data_by_plugin_id(db: Session, plugin_id: str):

View File

@ -122,3 +122,4 @@ class TransferHistory(Base):
"download_hash": download_hash
}
)
db.commit()

View File

@ -339,6 +339,7 @@ class Qbittorrent(metaclass=Singleton):
try:
self.qbc.transfer.upload_limit = int(upload_limit)
self.qbc.transfer.download_limit = int(download_limit)
return True
except Exception as err:
logger.error(f"设置速度限制出错:{err}")
return False

View File

@ -243,14 +243,14 @@ class Transmission(metaclass=Singleton):
logger.error(f"获取传输信息出错:{err}")
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 upload_limit: 上传速度限制单位kB/s
"""
if not self.trc:
return
return False
try:
download_limit_enabled = True if download_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_up_enabled=upload_limit_enabled
)
return True
except Exception as err:
logger.error(f"设置速度限制出错:{err}")
return False

View File

@ -539,25 +539,25 @@ class SpeedLimiter(_PluginBase):
title=title,
text=f"Qbittorrent 已取消限速"
)
else:
if self._tr:
self._tr.set_speed_limit(download_limit=download_limit, upload_limit=upload_limit)
# 发送通知
if self._notify:
title = "【播放限速】"
if upload_limit or download_limit:
subtitle = f"Transmission 开始{limit_type}限速"
self.post_message(
mtype=NotificationType.MediaServer,
title=title,
text=f"{subtitle}\n{text}"
)
else:
self.post_message(
mtype=NotificationType.MediaServer,
title=title,
text=f"Transmission 已取消限速"
)
else:
if self._tr:
self._tr.set_speed_limit(download_limit=download_limit, upload_limit=upload_limit)
# 发送通知
if self._notify:
title = "【播放限速】"
if upload_limit or download_limit:
subtitle = f"Transmission 开始{limit_type}限速"
self.post_message(
mtype=NotificationType.MediaServer,
title=title,
text=f"{subtitle}\n{text}"
)
else:
self.post_message(
mtype=NotificationType.MediaServer,
title=title,
text=f"Transmission 已取消限速"
)
except Exception as e:
logger.error(f"设置限速失败:{str(e)}")