From 3d34c26731e5a8a1c5983c4a8a4f65add8e43fed Mon Sep 17 00:00:00 2001 From: jxxghp Date: Wed, 18 Oct 2023 19:26:21 +0800 Subject: [PATCH] fix --- app/api/endpoints/message.py | 2 +- app/chain/__init__.py | 6 ++-- app/chain/system.py | 2 +- app/core/plugin.py | 2 +- app/db/init.py | 2 +- app/db/models/__init__.py | 7 +++- app/helper/browser.py | 8 ++--- app/helper/cookie.py | 4 +-- app/helper/display.py | 2 +- app/helper/torrent.py | 6 ++-- app/modules/douban/__init__.py | 2 +- app/modules/douban/scraper.py | 4 +-- app/modules/fanart/__init__.py | 2 +- app/modules/filetransfer/__init__.py | 4 +-- app/modules/indexer/__init__.py | 2 +- app/modules/indexer/spider.py | 4 +-- app/modules/plex/plex.py | 6 ++-- app/modules/qbittorrent/qbittorrent.py | 34 +++++++++---------- app/modules/slack/__init__.py | 2 +- app/modules/slack/slack.py | 4 +-- app/modules/subtitle/__init__.py | 2 +- app/modules/synologychat/__init__.py | 2 +- app/modules/telegram/__init__.py | 2 +- app/modules/telegram/telegram.py | 2 +- app/modules/themoviedb/category.py | 2 +- app/modules/themoviedb/scraper.py | 4 +-- app/modules/themoviedb/tmdbapi.py | 18 +++++----- app/modules/thetvdb/__init__.py | 2 +- app/modules/transmission/transmission.py | 32 ++++++++--------- app/modules/wechat/__init__.py | 2 +- app/modules/wechat/wechat.py | 4 +-- app/plugins/autobackup/__init__.py | 2 +- app/plugins/autoclean/__init__.py | 2 +- app/plugins/autosignin/__init__.py | 4 +-- app/plugins/autosignin/sites/__init__.py | 2 +- app/plugins/autosignin/sites/pterclub.py | 2 +- app/plugins/autosignin/sites/tjupt.py | 4 +-- app/plugins/bestfilmversion/__init__.py | 4 +-- app/plugins/brushflow/__init__.py | 4 +-- app/plugins/doubansync/__init__.py | 6 ++-- app/plugins/downloadingmsg/__init__.py | 2 +- app/plugins/invitessignin/__init__.py | 2 +- app/plugins/libraryscraper/__init__.py | 4 +-- app/plugins/mediasyncdel/__init__.py | 6 ++-- app/plugins/messageforward/__init__.py | 4 +-- .../moviepilotupdatenotify/__init__.py | 2 +- app/plugins/nastoolsync/__init__.py | 2 +- app/plugins/personmeta/__init__.py | 22 ++++++------ app/plugins/rsssubscribe/__init__.py | 6 ++-- app/plugins/sitestatistic/__init__.py | 6 ++-- .../sitestatistic/siteuserinfo/nexus_php.py | 2 +- .../siteuserinfo/nexus_rabbit.py | 2 +- app/plugins/syncdownloadfiles/__init__.py | 2 +- app/plugins/torrenttransfer/__init__.py | 8 ++--- app/scheduler.py | 2 +- 55 files changed, 142 insertions(+), 137 deletions(-) diff --git a/app/api/endpoints/message.py b/app/api/endpoints/message.py index 6bfb51a6..2a768bd0 100644 --- a/app/api/endpoints/message.py +++ b/app/api/endpoints/message.py @@ -48,7 +48,7 @@ def wechat_verify(echostr: str, msg_signature: str, sEncodingAESKey=settings.WECHAT_ENCODING_AESKEY, sReceiveId=settings.WECHAT_CORPID) except Exception as err: - logger.error(f"微信请求验证失败: {err}") + logger.error(f"微信请求验证失败: {str(err)}") return str(err) ret, sEchoStr = wxcpt.VerifyURL(sMsgSignature=msg_signature, sTimeStamp=timestamp, diff --git a/app/chain/__init__.py b/app/chain/__init__.py index b76912a0..5fc2da5d 100644 --- a/app/chain/__init__.py +++ b/app/chain/__init__.py @@ -45,7 +45,7 @@ class ChainBase(metaclass=ABCMeta): with open(cache_path, 'rb') as f: return pickle.load(f) except Exception as err: - logger.error(f"加载缓存 {filename} 出错:{err}") + logger.error(f"加载缓存 {filename} 出错:{str(err)}") return None @staticmethod @@ -57,7 +57,7 @@ class ChainBase(metaclass=ABCMeta): with open(settings.TEMP_PATH / filename, 'wb') as f: pickle.dump(cache, f) except Exception as err: - logger.error(f"保存缓存 {filename} 出错:{err}") + logger.error(f"保存缓存 {filename} 出错:{str(err)}") finally: # 主动资源回收 del cache @@ -107,7 +107,7 @@ class ChainBase(metaclass=ABCMeta): # 中止继续执行 break except Exception as err: - logger.error(f"运行模块 {method} 出错:{module.__class__.__name__} - {err}\n{traceback.print_exc()}") + logger.error(f"运行模块 {method} 出错:{module.__class__.__name__} - {str(err)}\n{traceback.print_exc()}") return result def recognize_media(self, meta: MetaBase = None, diff --git a/app/chain/system.py b/app/chain/system.py index 1ed91490..41c49702 100644 --- a/app/chain/system.py +++ b/app/chain/system.py @@ -161,4 +161,4 @@ class SystemChain(ChainBase, metaclass=Singleton): logger.warn("未找到版本号") return None except Exception as err: - logger.error(f"加载版本文件 {version_file} 出错:{err}") + logger.error(f"加载版本文件 {version_file} 出错:{str(err)}") diff --git a/app/core/plugin.py b/app/core/plugin.py index 42f08f52..6e3b9499 100644 --- a/app/core/plugin.py +++ b/app/core/plugin.py @@ -72,7 +72,7 @@ class PluginManager(metaclass=Singleton): # 设置事件注册状态可用 eventmanager.enable_events_hander(plugin_id) except Exception as err: - logger.error(f"加载插件 {plugin_id} 出错:{err} - {traceback.format_exc()}") + logger.error(f"加载插件 {plugin_id} 出错:{str(err)} - {traceback.format_exc()}") def reload_plugin(self, plugin_id: str, conf: dict): """ diff --git a/app/db/init.py b/app/db/init.py index 7b571a2a..acc70ab0 100644 --- a/app/db/init.py +++ b/app/db/init.py @@ -45,4 +45,4 @@ def update_db(): alembic_cfg.set_main_option('sqlalchemy.url', f"sqlite:///{db_location}") upgrade(alembic_cfg, 'head') except Exception as e: - logger.error(f'数据库更新失败:{e}') + logger.error(f'数据库更新失败:{str(e)}') diff --git a/app/db/models/__init__.py b/app/db/models/__init__.py index 5828c6f6..0bd8154c 100644 --- a/app/db/models/__init__.py +++ b/app/db/models/__init__.py @@ -16,7 +16,12 @@ def db_persist(func): def wrapper(*args, **kwargs): with DBLock: - db: Session = kwargs.get("db") or args[1] + db: Session = kwargs.get("db") + if not db: + for arg in args: + if isinstance(arg, Session): + db = arg + break try: if db: db.close() diff --git a/app/helper/browser.py b/app/helper/browser.py index b6af24e1..bcaec4a9 100644 --- a/app/helper/browser.py +++ b/app/helper/browser.py @@ -49,11 +49,11 @@ class PlaywrightHelper: # 回调函数 return callback(page) except Exception as e: - logger.error(f"网页操作失败: {e}") + logger.error(f"网页操作失败: {str(e)}") finally: browser.close() except Exception as e: - logger.error(f"网页操作失败: {e}") + logger.error(f"网页操作失败: {str(e)}") return None def get_page_source(self, url: str, @@ -85,12 +85,12 @@ class PlaywrightHelper: page.wait_for_load_state("networkidle", timeout=timeout * 1000) source = page.content() except Exception as e: - logger.error(f"获取网页源码失败: {e}") + logger.error(f"获取网页源码失败: {str(e)}") source = None finally: browser.close() except Exception as e: - logger.error(f"获取网页源码失败: {e}") + logger.error(f"获取网页源码失败: {str(e)}") return source diff --git a/app/helper/cookie.py b/app/helper/cookie.py index 8cfa39ec..87f7dfba 100644 --- a/app/helper/cookie.py +++ b/app/helper/cookie.py @@ -162,8 +162,8 @@ class CookieHelper: page.click(submit_xpath) page.wait_for_load_state("networkidle", timeout=30 * 1000) except Exception as e: - logger.error(f"仿真登录失败:{e}") - return None, None, f"仿真登录失败:{e}" + logger.error(f"仿真登录失败:{str(e)}") + return None, None, f"仿真登录失败:{str(e)}" # 登录后的源码 html_text = page.content() if not html_text: diff --git a/app/helper/display.py b/app/helper/display.py index 06fb412b..dbb24e6f 100644 --- a/app/helper/display.py +++ b/app/helper/display.py @@ -15,7 +15,7 @@ class DisplayHelper(metaclass=Singleton): self._display = Display(visible=False, size=(1024, 768)) self._display.start() except Exception as err: - logger.error(f"DisplayHelper init error: {err}") + logger.error(f"DisplayHelper init error: {str(err)}") def stop(self): if self._display: diff --git a/app/helper/torrent.py b/app/helper/torrent.py index b40e073a..c7aa8cc6 100644 --- a/app/helper/torrent.py +++ b/app/helper/torrent.py @@ -95,7 +95,7 @@ class TorrentHelper: logger.warn(f"触发了站点首次种子下载,且无法自动跳过:{url}") break except Exception as err: - logger.warn(f"触发了站点首次种子下载,尝试自动跳过时出现错误:{err},链接:{url}") + logger.warn(f"触发了站点首次种子下载,尝试自动跳过时出现错误:{str(err)},链接:{url}") if not skip_flag: return None, None, "", [], "种子数据有误,请确认链接是否正确,如为PT站点则需手工在站点下载一次种子" # 种子内容 @@ -113,7 +113,7 @@ class TorrentHelper: # 成功拿到种子数据 return file_path, req.content, folder_name, file_list, "" except Exception as err: - logger.error(f"种子文件解析失败:{err}") + logger.error(f"种子文件解析失败:{str(err)}") # 种子数据仍然错误 return None, None, "", [], "种子数据有误,请确认链接是否正确" # 返回失败 @@ -160,7 +160,7 @@ class TorrentHelper: logger.debug(f"解析种子:{torrent_path.name} => 目录:{folder_name},文件清单:{file_list}") return folder_name, file_list except Exception as err: - logger.error(f"种子文件解析失败:{err}") + logger.error(f"种子文件解析失败:{str(err)}") return "", [] @staticmethod diff --git a/app/modules/douban/__init__.py b/app/modules/douban/__init__.py index 1ac48b64..c7bb1ba9 100644 --- a/app/modules/douban/__init__.py +++ b/app/modules/douban/__init__.py @@ -530,5 +530,5 @@ class DoubanModule(_ModuleBase): file_path=file, transfer_type=transfer_type) except Exception as e: - logger.error(f"刮削文件 {file} 失败,原因:{e}") + logger.error(f"刮削文件 {file} 失败,原因:{str(e)}") logger.info(f"{path} 刮削完成") diff --git a/app/modules/douban/scraper.py b/app/modules/douban/scraper.py index ce901fca..1a15bb76 100644 --- a/app/modules/douban/scraper.py +++ b/app/modules/douban/scraper.py @@ -57,7 +57,7 @@ class DoubanScraper: season=meta.begin_season, season_path=file_path.parent) except Exception as e: - logger.error(f"{file_path} 刮削失败:{e}") + logger.error(f"{file_path} 刮削失败:{str(e)}") @staticmethod def __gen_common_nfo(mediainfo: MediaInfo, doc, root): @@ -187,7 +187,7 @@ class DoubanScraper: else: logger.info(f"{file_path.stem}图片下载失败,请检查网络连通性") except Exception as err: - logger.error(f"{file_path.stem}图片下载失败:{err}") + logger.error(f"{file_path.stem}图片下载失败:{str(err)}") def __save_nfo(self, doc, file_path: Path): """ diff --git a/app/modules/fanart/__init__.py b/app/modules/fanart/__init__.py index 67bc276f..ec914d65 100644 --- a/app/modules/fanart/__init__.py +++ b/app/modules/fanart/__init__.py @@ -382,5 +382,5 @@ class FanartModule(_ModuleBase): if ret: return ret.json() except Exception as err: - logger.error(f"获取{queryid}的Fanart图片失败:{err}") + logger.error(f"获取{queryid}的Fanart图片失败:{str(err)}") return None diff --git a/app/modules/filetransfer/__init__.py b/app/modules/filetransfer/__init__.py index c1ccb046..c94bac0b 100644 --- a/app/modules/filetransfer/__init__.py +++ b/app/modules/filetransfer/__init__.py @@ -590,7 +590,7 @@ class FileTransferModule(_ModuleBase): if path.is_relative_to(libpath): return libpath except Exception as e: - logger.debug(f"计算媒体库路径时出错:{e}") + logger.debug(f"计算媒体库路径时出错:{str(e)}") continue return path @@ -618,7 +618,7 @@ class FileTransferModule(_ModuleBase): max_length = len(relative) target_path = path except Exception as e: - logger.debug(f"计算目标路径时出错:{e}") + logger.debug(f"计算目标路径时出错:{str(e)}") continue if target_path: return target_path diff --git a/app/modules/indexer/__init__.py b/app/modules/indexer/__init__.py index 16feaa82..de331560 100644 --- a/app/modules/indexer/__init__.py +++ b/app/modules/indexer/__init__.py @@ -92,7 +92,7 @@ class IndexerModule(_ModuleBase): if result_array: break except Exception as err: - logger.error(f"{site.get('name')} 搜索出错:{err}") + logger.error(f"{site.get('name')} 搜索出错:{str(err)}") # 索引花费的时间 seconds = round((datetime.now() - start_time).seconds, 1) diff --git a/app/modules/indexer/spider.py b/app/modules/indexer/spider.py index ea80db3e..8c7e8f2b 100644 --- a/app/modules/indexer/spider.py +++ b/app/modules/indexer/spider.py @@ -254,7 +254,7 @@ class TorrentSpider: # 解码为字符串 page_source = raw_data.decode(encoding) except Exception as e: - logger.debug(f"chardet解码失败:{e}") + logger.debug(f"chardet解码失败:{str(e)}") # 探测utf-8解码 if re.search(r"charset=\"?utf-8\"?", ret.text, re.IGNORECASE): ret.encoding = "utf-8" @@ -661,4 +661,4 @@ class TorrentSpider: return self.torrents_info_array except Exception as err: self.is_error = True - logger.warn(f"错误:{self.indexername} {err}") + logger.warn(f"错误:{self.indexername} {str(err)}") diff --git a/app/modules/plex/plex.py b/app/modules/plex/plex.py index c3d4003e..248e0d42 100644 --- a/app/modules/plex/plex.py +++ b/app/modules/plex/plex.py @@ -284,7 +284,7 @@ class Plex(metaclass=Singleton): if is_subpath(path, Path(location)): return lib.key, str(path) except Exception as err: - logger.error(f"查找媒体库出错:{err}") + logger.error(f"查找媒体库出错:{str(err)}") return "", "" def get_iteminfo(self, itemid: str) -> Optional[schemas.MediaServerItem]: @@ -313,7 +313,7 @@ class Plex(metaclass=Singleton): path=path, ) except Exception as err: - logger.error(f"获取项目详情出错:{err}") + logger.error(f"获取项目详情出错:{str(err)}") return None @staticmethod @@ -372,7 +372,7 @@ class Plex(metaclass=Singleton): path=path, ) except Exception as err: - logger.error(f"获取媒体库列表出错:{err}") + logger.error(f"获取媒体库列表出错:{str(err)}") yield None def get_webhook_message(self, form: any) -> Optional[schemas.WebhookEventInfo]: diff --git a/app/modules/qbittorrent/qbittorrent.py b/app/modules/qbittorrent/qbittorrent.py index b03abef8..a3a5ec42 100644 --- a/app/modules/qbittorrent/qbittorrent.py +++ b/app/modules/qbittorrent/qbittorrent.py @@ -57,10 +57,10 @@ class Qbittorrent(metaclass=Singleton): try: qbt.auth_log_in() except qbittorrentapi.LoginFailed as e: - logger.error(f"qbittorrent 登录失败:{e}") + logger.error(f"qbittorrent 登录失败:{str(e)}") return qbt except Exception as err: - logger.error(f"qbittorrent 连接出错:{err}") + logger.error(f"qbittorrent 连接出错:{str(err)}") return None def get_torrents(self, ids: Union[str, list] = None, @@ -86,7 +86,7 @@ class Qbittorrent(metaclass=Singleton): return results, False return torrents or [], False except Exception as err: - logger.error(f"获取种子列表出错:{err}") + logger.error(f"获取种子列表出错:{str(err)}") return [], True def get_completed_torrents(self, ids: Union[str, list] = None, @@ -126,7 +126,7 @@ class Qbittorrent(metaclass=Singleton): self.qbc.torrents_delete_tags(torrent_hashes=ids, tags=tag) return True except Exception as err: - logger.error(f"移除种子Tag出错:{err}") + logger.error(f"移除种子Tag出错:{str(err)}") return False def set_torrents_tag(self, ids: Union[str, list], tags: list): @@ -139,7 +139,7 @@ class Qbittorrent(metaclass=Singleton): # 打标签 self.qbc.torrents_add_tags(tags=tags, torrent_hashes=ids) except Exception as err: - logger.error(f"设置种子Tag出错:{err}") + logger.error(f"设置种子Tag出错:{str(err)}") def torrents_set_force_start(self, ids: Union[str, list]): """ @@ -150,7 +150,7 @@ class Qbittorrent(metaclass=Singleton): try: self.qbc.torrents_set_force_start(enable=True, torrent_hashes=ids) except Exception as err: - logger.error(f"设置强制作种出错:{err}") + logger.error(f"设置强制作种出错:{str(err)}") def __get_last_add_torrentid_by_tag(self, tags: Union[str, list], status: Union[str, list] = None) -> Optional[str]: @@ -161,7 +161,7 @@ class Qbittorrent(metaclass=Singleton): try: torrents, _ = self.get_torrents(status=status, tags=tags) except Exception as err: - logger.error(f"获取种子列表出错:{err}") + logger.error(f"获取种子列表出错:{str(err)}") return None if torrents: return torrents[0].get("hash") @@ -249,7 +249,7 @@ class Qbittorrent(metaclass=Singleton): **kwargs) return True if qbc_ret and str(qbc_ret).find("Ok") != -1 else False except Exception as err: - logger.error(f"添加种子出错:{err}") + logger.error(f"添加种子出错:{str(err)}") return False def start_torrents(self, ids: Union[str, list]) -> bool: @@ -262,7 +262,7 @@ class Qbittorrent(metaclass=Singleton): self.qbc.torrents_resume(torrent_hashes=ids) return True except Exception as err: - logger.error(f"启动种子出错:{err}") + logger.error(f"启动种子出错:{str(err)}") return False def stop_torrents(self, ids: Union[str, list]) -> bool: @@ -275,7 +275,7 @@ class Qbittorrent(metaclass=Singleton): self.qbc.torrents_pause(torrent_hashes=ids) return True except Exception as err: - logger.error(f"暂停种子出错:{err}") + logger.error(f"暂停种子出错:{str(err)}") return False def delete_torrents(self, delete_file: bool, ids: Union[str, list]) -> bool: @@ -290,7 +290,7 @@ class Qbittorrent(metaclass=Singleton): self.qbc.torrents_delete(delete_files=delete_file, torrent_hashes=ids) return True except Exception as err: - logger.error(f"删除种子出错:{err}") + logger.error(f"删除种子出错:{str(err)}") return False def get_files(self, tid: str) -> Optional[TorrentFilesList]: @@ -302,7 +302,7 @@ class Qbittorrent(metaclass=Singleton): try: return self.qbc.torrents_files(torrent_hash=tid) except Exception as err: - logger.error(f"获取种子文件列表出错:{err}") + logger.error(f"获取种子文件列表出错:{str(err)}") return None def set_files(self, **kwargs) -> bool: @@ -319,7 +319,7 @@ class Qbittorrent(metaclass=Singleton): priority=kwargs.get("priority")) return True except Exception as err: - logger.error(f"设置种子文件状态出错:{err}") + logger.error(f"设置种子文件状态出错:{str(err)}") return False def transfer_info(self) -> Optional[TransferInfoDictionary]: @@ -331,7 +331,7 @@ class Qbittorrent(metaclass=Singleton): try: return self.qbc.transfer_info() except Exception as err: - logger.error(f"获取传输信息出错:{err}") + logger.error(f"获取传输信息出错:{str(err)}") return None def set_speed_limit(self, download_limit: float = None, upload_limit: float = None) -> bool: @@ -349,7 +349,7 @@ class Qbittorrent(metaclass=Singleton): self.qbc.transfer.download_limit = int(download_limit) return True except Exception as err: - logger.error(f"设置速度限制出错:{err}") + logger.error(f"设置速度限制出错:{str(err)}") return False def recheck_torrents(self, ids: Union[str, list]): @@ -361,7 +361,7 @@ class Qbittorrent(metaclass=Singleton): try: return self.qbc.torrents_recheck(torrent_hashes=ids) except Exception as err: - logger.error(f"重新校验种子出错:{err}") + logger.error(f"重新校验种子出错:{str(err)}") return False def add_trackers(self, ids: Union[str, list], trackers: list): @@ -373,5 +373,5 @@ class Qbittorrent(metaclass=Singleton): try: return self.qbc.torrents_add_trackers(torrent_hashes=ids, urls=trackers) except Exception as err: - logger.error(f"添加tracker出错:{err}") + logger.error(f"添加tracker出错:{str(err)}") return False diff --git a/app/modules/slack/__init__.py b/app/modules/slack/__init__.py index 945107a2..3e5f4da2 100644 --- a/app/modules/slack/__init__.py +++ b/app/modules/slack/__init__.py @@ -151,7 +151,7 @@ class SlackModule(_ModuleBase): try: msg_json: dict = json.loads(body) except Exception as err: - logger.debug(f"解析Slack消息失败:{err}") + logger.debug(f"解析Slack消息失败:{str(err)}") return None if msg_json: if msg_json.get("type") == "message": diff --git a/app/modules/slack/slack.py b/app/modules/slack/slack.py index 764bd4fe..3e81fb17 100644 --- a/app/modules/slack/slack.py +++ b/app/modules/slack/slack.py @@ -34,7 +34,7 @@ class Slack: ssl_check_enabled=False, url_verification_enabled=False) except Exception as err: - logger.error(f"Slack初始化失败: {err}") + logger.error(f"Slack初始化失败: {str(err)}") return self._client = slack_app.client @@ -335,5 +335,5 @@ class Slack: conversation_id = channel.get("id") break except Exception as e: - logger.error(f"查找Slack公共频道失败: {e}") + logger.error(f"查找Slack公共频道失败: {str(e)}") return conversation_id diff --git a/app/modules/subtitle/__init__.py b/app/modules/subtitle/__init__.py index bc2cf1c0..06397826 100644 --- a/app/modules/subtitle/__init__.py +++ b/app/modules/subtitle/__init__.py @@ -122,7 +122,7 @@ class SubtitleModule(_ModuleBase): shutil.rmtree(zip_path) zip_file.unlink() except Exception as err: - logger.error(f"删除临时文件失败:{err}") + logger.error(f"删除临时文件失败:{str(err)}") else: sub_file = settings.TEMP_PATH / file_name # 保存 diff --git a/app/modules/synologychat/__init__.py b/app/modules/synologychat/__init__.py index 7707aa4a..f95f5842 100644 --- a/app/modules/synologychat/__init__.py +++ b/app/modules/synologychat/__init__.py @@ -50,7 +50,7 @@ class SynologyChatModule(_ModuleBase): return CommingMessage(channel=MessageChannel.SynologyChat, userid=user_id, username=user_name, text=text) except Exception as err: - logger.debug(f"解析SynologyChat消息失败:{err}") + logger.debug(f"解析SynologyChat消息失败:{str(err)}") return None @checkMessage(MessageChannel.SynologyChat) diff --git a/app/modules/telegram/__init__.py b/app/modules/telegram/__init__.py index ecd7f386..03563c9e 100644 --- a/app/modules/telegram/__init__.py +++ b/app/modules/telegram/__init__.py @@ -63,7 +63,7 @@ class TelegramModule(_ModuleBase): try: message: dict = json.loads(body) except Exception as err: - logger.debug(f"解析Telegram消息失败:{err}") + logger.debug(f"解析Telegram消息失败:{str(err)}") return None if message: text = message.get("text") diff --git a/app/modules/telegram/telegram.py b/app/modules/telegram/telegram.py index 9f1cbdba..1e086c2b 100644 --- a/app/modules/telegram/telegram.py +++ b/app/modules/telegram/telegram.py @@ -54,7 +54,7 @@ class Telegram(metaclass=Singleton): try: _bot.infinity_polling(long_polling_timeout=30, logger_level=None) except Exception as err: - logger.error(f"Telegram消息接收服务异常:{err}") + logger.error(f"Telegram消息接收服务异常:{str(err)}") # 启动线程来运行 infinity_polling self._polling_thread = threading.Thread(target=run_polling) diff --git a/app/modules/themoviedb/category.py b/app/modules/themoviedb/category.py index cac86d5f..72f33bc4 100644 --- a/app/modules/themoviedb/category.py +++ b/app/modules/themoviedb/category.py @@ -32,7 +32,7 @@ class CategoryHelper(metaclass=Singleton): logger.warn(f"二级分类策略配置文件格式出现严重错误!请检查:{str(e)}") self._categorys = {} except Exception as err: - logger.warn(f"二级分类策略配置文件加载出错:{err}") + logger.warn(f"二级分类策略配置文件加载出错:{str(err)}") if self._categorys: self._movie_categorys = self._categorys.get('movie') diff --git a/app/modules/themoviedb/scraper.py b/app/modules/themoviedb/scraper.py index 5f709790..1727bb10 100644 --- a/app/modules/themoviedb/scraper.py +++ b/app/modules/themoviedb/scraper.py @@ -125,7 +125,7 @@ class TmdbScraper: f"https://{settings.TMDB_IMAGE_DOMAIN}/t/p/original{episode_image}", file_path.with_suffix(Path(episode_image).suffix)) except Exception as e: - logger.error(f"{file_path} 刮削失败:{e}") + logger.error(f"{file_path} 刮削失败:{str(e)}") @staticmethod def __gen_common_nfo(mediainfo: MediaInfo, doc, root): @@ -355,7 +355,7 @@ class TmdbScraper: except RequestException as err: raise err except Exception as err: - logger.error(f"{file_path.stem}图片下载失败:{err}") + logger.error(f"{file_path.stem}图片下载失败:{str(err)}") def __save_nfo(self, doc, file_path: Path): """ diff --git a/app/modules/themoviedb/tmdbapi.py b/app/modules/themoviedb/tmdbapi.py index 00c11a23..f1617de2 100644 --- a/app/modules/themoviedb/tmdbapi.py +++ b/app/modules/themoviedb/tmdbapi.py @@ -210,10 +210,10 @@ class TmdbHelper: else: movies = self.search.movies(term=name) except TMDbException as err: - logger.error(f"连接TMDB出错:{err}") + logger.error(f"连接TMDB出错:{str(err)}") return None except Exception as e: - logger.error(f"连接TMDB出错:{e}") + logger.error(f"连接TMDB出错:{str(e)}") print(traceback.print_exc()) return None logger.debug(f"API返回:{str(self.search.total_results)}") @@ -258,10 +258,10 @@ class TmdbHelper: else: tvs = self.search.tv_shows(term=name) except TMDbException as err: - logger.error(f"连接TMDB出错:{err}") + logger.error(f"连接TMDB出错:{str(err)}") return None except Exception as e: - logger.error(f"连接TMDB出错:{e}") + logger.error(f"连接TMDB出错:{str(e)}") print(traceback.print_exc()) return None logger.debug(f"API返回:{str(self.search.total_results)}") @@ -320,10 +320,10 @@ class TmdbHelper: try: tvs = self.search.tv_shows(term=name) except TMDbException as err: - logger.error(f"连接TMDB出错:{err}") + logger.error(f"连接TMDB出错:{str(err)}") return None except Exception as e: - logger.error(f"连接TMDB出错:{e}") + logger.error(f"连接TMDB出错:{str(e)}") print(traceback.print_exc()) return None @@ -400,10 +400,10 @@ class TmdbHelper: try: multis = self.search.multi(term=name) or [] except TMDbException as err: - logger.error(f"连接TMDB出错:{err}") + logger.error(f"连接TMDB出错:{str(err)}") return None except Exception as e: - logger.error(f"连接TMDB出错:{e}") + logger.error(f"连接TMDB出错:{str(e)}") print(traceback.print_exc()) return None logger.debug(f"API返回:{str(self.search.total_results)}") @@ -508,7 +508,7 @@ class TmdbHelper: else: logger.info("%s TMDB网站未查询到媒体信息!" % name) except Exception as err: - logger.error(f"从TheDbMovie网站查询出错:{err}") + logger.error(f"从TheDbMovie网站查询出错:{str(err)}") return None return None diff --git a/app/modules/thetvdb/__init__.py b/app/modules/thetvdb/__init__.py index 5bc40825..26f92e80 100644 --- a/app/modules/thetvdb/__init__.py +++ b/app/modules/thetvdb/__init__.py @@ -33,4 +33,4 @@ class TheTvDbModule(_ModuleBase): logger.info(f"开始获取TVDB信息: {tvdbid} ...") return self.tvdb[tvdbid].data except Exception as err: - logger.error(f"获取TVDB信息失败: {err}") + logger.error(f"获取TVDB信息失败: {str(err)}") diff --git a/app/modules/transmission/transmission.py b/app/modules/transmission/transmission.py index c0ae409e..fa7b9bd8 100644 --- a/app/modules/transmission/transmission.py +++ b/app/modules/transmission/transmission.py @@ -45,7 +45,7 @@ class Transmission(metaclass=Singleton): timeout=60) return trt except Exception as err: - logger.error(f"transmission 连接出错:{err}") + logger.error(f"transmission 连接出错:{str(err)}") return None def is_inactive(self) -> bool: @@ -73,7 +73,7 @@ class Transmission(metaclass=Singleton): try: torrents = self.trc.get_torrents(ids=ids, arguments=self._trarg) except Exception as err: - logger.error(f"获取种子列表出错:{err}") + logger.error(f"获取种子列表出错:{str(err)}") return [], True if status and not isinstance(status, list): status = [status] @@ -104,7 +104,7 @@ class Transmission(metaclass=Singleton): torrents, error = self.get_torrents(status=["seeding", "seed_pending"], ids=ids, tags=tags) return None if error else torrents or [] except Exception as err: - logger.error(f"获取已完成的种子列表出错:{err}") + logger.error(f"获取已完成的种子列表出错:{str(err)}") return None def get_downloading_torrents(self, ids: Union[str, list] = None, @@ -121,7 +121,7 @@ class Transmission(metaclass=Singleton): tags=tags) return None if error else torrents or [] except Exception as err: - logger.error(f"获取正在下载的种子列表出错:{err}") + logger.error(f"获取正在下载的种子列表出错:{str(err)}") return None def set_torrent_tag(self, ids: str, tags: list) -> bool: @@ -136,7 +136,7 @@ class Transmission(metaclass=Singleton): self.trc.change_torrent(labels=tags, ids=ids) return True except Exception as err: - logger.error(f"设置种子标签出错:{err}") + logger.error(f"设置种子标签出错:{str(err)}") return False def add_torrent(self, content: Union[str, bytes], @@ -162,7 +162,7 @@ class Transmission(metaclass=Singleton): labels=labels, cookies=cookie) except Exception as err: - logger.error(f"添加种子出错:{err}") + logger.error(f"添加种子出错:{str(err)}") return None def start_torrents(self, ids: Union[str, list]) -> bool: @@ -175,7 +175,7 @@ class Transmission(metaclass=Singleton): self.trc.start_torrent(ids=ids) return True except Exception as err: - logger.error(f"启动种子出错:{err}") + logger.error(f"启动种子出错:{str(err)}") return False def stop_torrents(self, ids: Union[str, list]) -> bool: @@ -188,7 +188,7 @@ class Transmission(metaclass=Singleton): self.trc.stop_torrent(ids=ids) return True except Exception as err: - logger.error(f"停止种子出错:{err}") + logger.error(f"停止种子出错:{str(err)}") return False def delete_torrents(self, delete_file: bool, ids: Union[str, list]) -> bool: @@ -203,7 +203,7 @@ class Transmission(metaclass=Singleton): self.trc.remove_torrent(delete_data=delete_file, ids=ids) return True except Exception as err: - logger.error(f"删除种子出错:{err}") + logger.error(f"删除种子出错:{str(err)}") return False def get_files(self, tid: str) -> Optional[List[File]]: @@ -217,7 +217,7 @@ class Transmission(metaclass=Singleton): try: torrent = self.trc.get_torrent(tid) except Exception as err: - logger.error(f"获取种子文件列表出错:{err}") + logger.error(f"获取种子文件列表出错:{str(err)}") return None if torrent: return torrent.files() @@ -234,7 +234,7 @@ class Transmission(metaclass=Singleton): self.trc.change_torrent(ids=tid, files_wanted=file_ids) return True except Exception as err: - logger.error(f"设置下载文件状态出错:{err}") + logger.error(f"设置下载文件状态出错:{str(err)}") return False def transfer_info(self) -> Optional[SessionStats]: @@ -246,7 +246,7 @@ class Transmission(metaclass=Singleton): try: return self.trc.session_stats() except Exception as err: - logger.error(f"获取传输信息出错:{err}") + logger.error(f"获取传输信息出错:{str(err)}") return None def set_speed_limit(self, download_limit: float = None, upload_limit: float = None) -> bool: @@ -268,7 +268,7 @@ class Transmission(metaclass=Singleton): ) return True except Exception as err: - logger.error(f"设置速度限制出错:{err}") + logger.error(f"设置速度限制出错:{str(err)}") return False def recheck_torrents(self, ids: Union[str, list]): @@ -280,7 +280,7 @@ class Transmission(metaclass=Singleton): try: return self.trc.verify_torrent(ids=ids) except Exception as err: - logger.error(f"重新校验种子出错:{err}") + logger.error(f"重新校验种子出错:{str(err)}") return False def add_trackers(self, ids: Union[str, list], trackers: list): @@ -292,7 +292,7 @@ class Transmission(metaclass=Singleton): try: return self.trc.change_torrent(ids=ids, tracker_list=[trackers]) except Exception as err: - logger.error(f"添加Tracker出错:{err}") + logger.error(f"添加Tracker出错:{str(err)}") return False def change_torrent(self, @@ -347,5 +347,5 @@ class Transmission(metaclass=Singleton): seedIdleMode=seedIdleMode, seedIdleLimit=seedIdleLimit) except Exception as err: - logger.error(f"设置种子出错:{err}") + logger.error(f"设置种子出错:{str(err)}") return False diff --git a/app/modules/wechat/__init__.py b/app/modules/wechat/__init__.py index 555768a2..52045a33 100644 --- a/app/modules/wechat/__init__.py +++ b/app/modules/wechat/__init__.py @@ -117,7 +117,7 @@ class WechatModule(_ModuleBase): return CommingMessage(channel=MessageChannel.Wechat, userid=user_id, username=user_id, text=content) except Exception as err: - logger.error(f"微信消息处理发生错误:{err}") + logger.error(f"微信消息处理发生错误:{str(err)}") return None @checkMessage(MessageChannel.Wechat) diff --git a/app/modules/wechat/wechat.py b/app/modules/wechat/wechat.py index f3e418e1..fd48fcad 100644 --- a/app/modules/wechat/wechat.py +++ b/app/modules/wechat/wechat.py @@ -76,7 +76,7 @@ class WeChat(metaclass=Singleton): else: logger.error(f"获取微信access_token失败,未获取到返回信息") except Exception as e: - logger.error(f"获取微信access_token失败,错误信息:{e}") + logger.error(f"获取微信access_token失败,错误信息:{str(e)}") return None return self._access_token @@ -271,7 +271,7 @@ class WeChat(metaclass=Singleton): logger.error(f"发送请求失败,未获取到返回信息") return False except Exception as err: - logger.error(f"发送请求失败,错误信息:{err}") + logger.error(f"发送请求失败,错误信息:{str(err)}") return False def create_menus(self, commands: Dict[str, dict]): diff --git a/app/plugins/autobackup/__init__.py b/app/plugins/autobackup/__init__.py index bc3648b4..ff7bca57 100644 --- a/app/plugins/autobackup/__init__.py +++ b/app/plugins/autobackup/__init__.py @@ -71,7 +71,7 @@ class AutoBackup(_PluginBase): trigger=CronTrigger.from_crontab(self._cron), name="自动备份") except Exception as err: - logger.error(f"定时任务配置错误:{err}") + logger.error(f"定时任务配置错误:{str(err)}") if self._onlyonce: logger.info(f"自动备份服务启动,立即运行一次") diff --git a/app/plugins/autoclean/__init__.py b/app/plugins/autoclean/__init__.py index ed727107..aca87d9b 100644 --- a/app/plugins/autoclean/__init__.py +++ b/app/plugins/autoclean/__init__.py @@ -83,7 +83,7 @@ class AutoClean(_PluginBase): trigger=CronTrigger.from_crontab(self._cron), name="定时清理媒体库") except Exception as err: - logger.error(f"定时任务配置错误:{err}") + logger.error(f"定时任务配置错误:{str(err)}") if self._onlyonce: logger.info(f"定时清理媒体库服务启动,立即运行一次") diff --git a/app/plugins/autosignin/__init__.py b/app/plugins/autosignin/__init__.py index c396f051..8d355d85 100644 --- a/app/plugins/autosignin/__init__.py +++ b/app/plugins/autosignin/__init__.py @@ -168,9 +168,9 @@ class AutoSignIn(_PluginBase): logger.info( f"站点自动签到服务启动,执行周期 {self._start_time}点-{self._end_time}点 每{self._cron}小时执行一次") except Exception as err: - logger.error(f"定时任务配置错误:{err}") + logger.error(f"定时任务配置错误:{str(err)}") # 推送实时消息 - self.systemmessage.put(f"执行周期配置错误:{err}") + self.systemmessage.put(f"执行周期配置错误:{str(err)}") self._cron = "" self._enabled = False self.__update_config() diff --git a/app/plugins/autosignin/sites/__init__.py b/app/plugins/autosignin/sites/__init__.py index a93ad72d..8c14ef51 100644 --- a/app/plugins/autosignin/sites/__init__.py +++ b/app/plugins/autosignin/sites/__init__.py @@ -70,7 +70,7 @@ class _ISiteSigninHandler(metaclass=ABCMeta): # 解码为字符串 return raw_data.decode(encoding) except Exception as e: - logger.error(f"chardet解码失败:{e}") + logger.error(f"chardet解码失败:{str(e)}") return res.text else: return res.text diff --git a/app/plugins/autosignin/sites/pterclub.py b/app/plugins/autosignin/sites/pterclub.py index 4fcd6b40..35606b0e 100644 --- a/app/plugins/autosignin/sites/pterclub.py +++ b/app/plugins/autosignin/sites/pterclub.py @@ -48,7 +48,7 @@ class PTerClub(_ISiteSigninHandler): try: sign_dict = json.loads(html_text) except Exception as e: - logger.error(f"{site} 签到失败,签到接口返回数据异常,错误信息:{e}") + logger.error(f"{site} 签到失败,签到接口返回数据异常,错误信息:{str(e)}") return False, '签到失败,签到接口返回数据异常' if sign_dict['status'] == '1': # {"status":"1","data":" (签到已成功300)","message":"

这是您的第237次签到, diff --git a/app/plugins/autosignin/sites/tjupt.py b/app/plugins/autosignin/sites/tjupt.py index 48005a3e..fbef515a 100644 --- a/app/plugins/autosignin/sites/tjupt.py +++ b/app/plugins/autosignin/sites/tjupt.py @@ -141,7 +141,7 @@ class Tjupt(_ISiteSigninHandler): proxy=proxy, site=site) except (FileNotFoundError, IOError, OSError) as e: - logger.debug(f"查询本地已知答案失败:{e},继续请求豆瓣查询") + logger.debug(f"查询本地已知答案失败:{str(e)},继续请求豆瓣查询") # 本地不存在正确答案则请求豆瓣查询匹配 for value, answer in answers: @@ -236,7 +236,7 @@ class Tjupt(_ISiteSigninHandler): with open(self._answer_file, 'w') as f: f.write(formatted_data) except (FileNotFoundError, IOError, OSError) as e: - logger.debug(f"签到成功写入本地文件失败:{e}") + logger.debug(f"签到成功写入本地文件失败:{str(e)}") @staticmethod def _tohash(img, shape=(10, 10)): diff --git a/app/plugins/bestfilmversion/__init__.py b/app/plugins/bestfilmversion/__init__.py index 28dc95f3..42d56b67 100644 --- a/app/plugins/bestfilmversion/__init__.py +++ b/app/plugins/bestfilmversion/__init__.py @@ -84,9 +84,9 @@ class BestFilmVersion(_PluginBase): trigger=CronTrigger.from_crontab(self._cron), name="收藏洗版") except Exception as err: - logger.error(f"定时任务配置错误:{err}") + logger.error(f"定时任务配置错误:{str(err)}") # 推送实时消息 - self.systemmessage.put(f"执行周期配置错误:{err}") + self.systemmessage.put(f"执行周期配置错误:{str(err)}") else: self._scheduler.add_job(self.sync, "interval", minutes=30, name="收藏洗版") diff --git a/app/plugins/brushflow/__init__.py b/app/plugins/brushflow/__init__.py index a548f7d2..5763c547 100644 --- a/app/plugins/brushflow/__init__.py +++ b/app/plugins/brushflow/__init__.py @@ -236,8 +236,8 @@ class BrushFlow(_PluginBase): try: self._scheduler.add_job(self.brush, 'interval', minutes=self._cron) except Exception as e: - logger.error(f"站点刷流服务启动失败:{e}") - self.systemmessage.put(f"站点刷流服务启动失败:{e}") + logger.error(f"站点刷流服务启动失败:{str(e)}") + self.systemmessage.put(f"站点刷流服务启动失败:{str(e)}") return if self._onlyonce: logger.info(f"站点刷流服务启动,立即运行一次") diff --git a/app/plugins/doubansync/__init__.py b/app/plugins/doubansync/__init__.py index f42a3318..97ddbdff 100644 --- a/app/plugins/doubansync/__init__.py +++ b/app/plugins/doubansync/__init__.py @@ -92,9 +92,9 @@ class DoubanSync(_PluginBase): trigger=CronTrigger.from_crontab(self._cron), name="豆瓣想看") except Exception as err: - logger.error(f"定时任务配置错误:{err}") + logger.error(f"定时任务配置错误:{str(err)}") # 推送实时消息 - self.systemmessage.put(f"执行周期配置错误:{err}") + self.systemmessage.put(f"执行周期配置错误:{str(err)}") else: self._scheduler.add_job(self.sync, "interval", minutes=30, name="豆瓣想看") @@ -541,7 +541,7 @@ class DoubanSync(_PluginBase): "time": datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") }) except Exception as err: - logger.error(f'同步用户 {user_id} 豆瓣想看数据出错:{err}') + logger.error(f'同步用户 {user_id} 豆瓣想看数据出错:{str(err)}') logger.info(f"用户 {user_id} 豆瓣想看同步完成") # 保存历史记录 self.save_data('history', history) diff --git a/app/plugins/downloadingmsg/__init__.py b/app/plugins/downloadingmsg/__init__.py index 30af4156..6decbdbd 100644 --- a/app/plugins/downloadingmsg/__init__.py +++ b/app/plugins/downloadingmsg/__init__.py @@ -68,7 +68,7 @@ class DownloadingMsg(_PluginBase): seconds=int(self._seconds), name="下载进度推送") except Exception as err: - logger.error(f"定时任务配置错误:{err}") + logger.error(f"定时任务配置错误:{str(err)}") # 启动任务 if self._scheduler.get_jobs(): diff --git a/app/plugins/invitessignin/__init__.py b/app/plugins/invitessignin/__init__.py index ac6f9511..3512d79b 100644 --- a/app/plugins/invitessignin/__init__.py +++ b/app/plugins/invitessignin/__init__.py @@ -69,7 +69,7 @@ class InvitesSignin(_PluginBase): trigger=CronTrigger.from_crontab(self._cron), name="药丸签到") except Exception as err: - logger.error(f"定时任务配置错误:{err}") + logger.error(f"定时任务配置错误:{str(err)}") if self._onlyonce: logger.info(f"药丸签到服务启动,立即运行一次") diff --git a/app/plugins/libraryscraper/__init__.py b/app/plugins/libraryscraper/__init__.py index c123f35d..6a638bc4 100644 --- a/app/plugins/libraryscraper/__init__.py +++ b/app/plugins/libraryscraper/__init__.py @@ -79,8 +79,8 @@ class LibraryScraper(_PluginBase): trigger=CronTrigger.from_crontab(self._cron), name="媒体库刮削") except Exception as e: - logger.error(f"媒体库刮削服务启动失败,原因:{e}") - self.systemmessage.put(f"媒体库刮削服务启动失败,原因:{e}") + logger.error(f"媒体库刮削服务启动失败,原因:{str(e)}") + self.systemmessage.put(f"媒体库刮削服务启动失败,原因:{str(e)}") else: logger.info(f"媒体库刮削服务启动,周期:每7天") self._scheduler.add_job(func=self.__libraryscraper, diff --git a/app/plugins/mediasyncdel/__init__.py b/app/plugins/mediasyncdel/__init__.py index f10b0dc5..23d1eef3 100644 --- a/app/plugins/mediasyncdel/__init__.py +++ b/app/plugins/mediasyncdel/__init__.py @@ -90,9 +90,9 @@ class MediaSyncDel(_PluginBase): trigger=CronTrigger.from_crontab(self._cron), name="媒体库同步删除") except Exception as err: - logger.error(f"定时任务配置错误:{err}") + logger.error(f"定时任务配置错误:{str(err)}") # 推送实时消息 - self.systemmessage.put(f"执行周期配置错误:{err}") + self.systemmessage.put(f"执行周期配置错误:{str(err)}") else: self._scheduler.add_job(self.sync_del_by_log, "interval", minutes=30, name="媒体库同步删除") @@ -996,7 +996,7 @@ class MediaSyncDel(_PluginBase): return delete_flag, True, handle_cnt except Exception as e: - logger.error(f"删种失败: {e}") + logger.error(f"删种失败: {str(e)}") return False, False, 0 def __del_seed(self, download, download_id, action_flag, handle_cnt): diff --git a/app/plugins/messageforward/__init__.py b/app/plugins/messageforward/__init__.py index 539edd67..4351dd37 100644 --- a/app/plugins/messageforward/__init__.py +++ b/app/plugins/messageforward/__init__.py @@ -351,7 +351,7 @@ class MessageForward(_PluginBase): logger.error(f"转发消息 {title} 失败,未获取到返回信息") return False except Exception as err: - logger.error(f"转发消息 {title} 异常,错误信息:{err}") + logger.error(f"转发消息 {title} 异常,错误信息:{str(err)}") return False def __get_access_token(self, corpid: str, appsecret: str): @@ -377,7 +377,7 @@ class MessageForward(_PluginBase): logger.error(f"{corpid} {appsecret} 获取token失败") return None, None, None except Exception as e: - logger.error(f"获取微信access_token失败,错误信息:{e}") + logger.error(f"获取微信access_token失败,错误信息:{str(e)}") return None, None, None def stop_service(self): diff --git a/app/plugins/moviepilotupdatenotify/__init__.py b/app/plugins/moviepilotupdatenotify/__init__.py index b2222ec1..8336e0c1 100644 --- a/app/plugins/moviepilotupdatenotify/__init__.py +++ b/app/plugins/moviepilotupdatenotify/__init__.py @@ -63,7 +63,7 @@ class MoviePilotUpdateNotify(_PluginBase): trigger=CronTrigger.from_crontab(self._cron), name="检查MoviePilot更新") except Exception as err: - logger.error(f"定时任务配置错误:{err}") + logger.error(f"定时任务配置错误:{str(err)}") # 启动任务 if self._scheduler.get_jobs(): diff --git a/app/plugins/nastoolsync/__init__.py b/app/plugins/nastoolsync/__init__.py index aa294724..fc3148cb 100644 --- a/app/plugins/nastoolsync/__init__.py +++ b/app/plugins/nastoolsync/__init__.py @@ -73,7 +73,7 @@ class NAStoolSync(_PluginBase): "site": self._site, } ) - logger.error(f"无法打开数据库文件 {self._nt_db_path},请检查路径是否正确:{e}") + logger.error(f"无法打开数据库文件 {self._nt_db_path},请检查路径是否正确:{str(e)}") return # 创建游标cursor来执行executeSQL语句 diff --git a/app/plugins/personmeta/__init__.py b/app/plugins/personmeta/__init__.py index bcc626b6..da8b863a 100644 --- a/app/plugins/personmeta/__init__.py +++ b/app/plugins/personmeta/__init__.py @@ -610,7 +610,7 @@ class PersonMeta(_PluginBase): else: logger.debug(f"人物 {people.get('Name')} 未找到中文数据") except Exception as err: - logger.error(f"更新人物信息失败:{err}") + logger.error(f"更新人物信息失败:{str(err)}") return None def __get_douban_actors(self, mediainfo: MediaInfo, season: int = None) -> List[dict]: @@ -652,7 +652,7 @@ class PersonMeta(_PluginBase): if res: return res.json() except Exception as err: - logger.error(f"获取Emby媒体项详情失败:{err}") + logger.error(f"获取Emby媒体项详情失败:{str(err)}") return {} def __get_jellyfin_iteminfo() -> dict: @@ -668,7 +668,7 @@ class PersonMeta(_PluginBase): result['FileName'] = Path(result['Path']).name return result except Exception as err: - logger.error(f"获取Jellyfin媒体项详情失败:{err}") + logger.error(f"获取Jellyfin媒体项详情失败:{str(err)}") return {} def __get_plex_iteminfo() -> dict: @@ -702,7 +702,7 @@ class PersonMeta(_PluginBase): iteminfo['CommunityRating'] = plexitem.audienceRating return iteminfo except Exception as err: - logger.error(f"获取Plex媒体项详情失败:{err}") + logger.error(f"获取Plex媒体项详情失败:{str(err)}") return {} if server == "emby": @@ -732,7 +732,7 @@ class PersonMeta(_PluginBase): if res: return res.json() except Exception as err: - logger.error(f"获取Emby媒体的所有子媒体项失败:{err}") + logger.error(f"获取Emby媒体的所有子媒体项失败:{str(err)}") return {} def __get_jellyfin_items() -> dict: @@ -748,7 +748,7 @@ class PersonMeta(_PluginBase): if res: return res.json() except Exception as err: - logger.error(f"获取Jellyfin媒体的所有子媒体项失败:{err}") + logger.error(f"获取Jellyfin媒体的所有子媒体项失败:{str(err)}") return {} def __get_plex_items() -> dict: @@ -814,7 +814,7 @@ class PersonMeta(_PluginBase): items['Items'].append(item) return items except Exception as err: - logger.error(f"获取Plex媒体的所有子媒体项失败:{err}") + logger.error(f"获取Plex媒体的所有子媒体项失败:{str(err)}") return {} if server == "emby": @@ -848,7 +848,7 @@ class PersonMeta(_PluginBase): logger.error(f"更新Emby媒体项详情失败,错误码:{res.status_code}") return False except Exception as err: - logger.error(f"更新Emby媒体项详情失败:{err}") + logger.error(f"更新Emby媒体项详情失败:{str(err)}") return False def __set_jellyfin_iteminfo(): @@ -869,7 +869,7 @@ class PersonMeta(_PluginBase): logger.error(f"更新Jellyfin媒体项详情失败,错误码:{res.status_code}") return False except Exception as err: - logger.error(f"更新Jellyfin媒体项详情失败:{err}") + logger.error(f"更新Jellyfin媒体项详情失败:{str(err)}") return False def __set_plex_iteminfo(): @@ -887,7 +887,7 @@ class PersonMeta(_PluginBase): plexitem.editTitle(iteminfo['Name']).editSummary(iteminfo['Overview']).reload() return True except Exception as err: - logger.error(f"更新Plex媒体项详情失败:{err}") + logger.error(f"更新Plex媒体项详情失败:{str(err)}") return False if server == "emby": @@ -920,7 +920,7 @@ class PersonMeta(_PluginBase): else: logger.warn(f"{imageurl} 图片下载失败,请检查网络连通性") except Exception as err: - logger.error(f"下载图片失败:{err}") + logger.error(f"下载图片失败:{str(err)}") return None def __set_emby_item_image(_base64: str): diff --git a/app/plugins/rsssubscribe/__init__.py b/app/plugins/rsssubscribe/__init__.py index 305c4195..a47027f6 100644 --- a/app/plugins/rsssubscribe/__init__.py +++ b/app/plugins/rsssubscribe/__init__.py @@ -100,9 +100,9 @@ class RssSubscribe(_PluginBase): trigger=CronTrigger.from_crontab(self._cron), name="RSS订阅") except Exception as err: - logger.error(f"定时任务配置错误:{err}") + logger.error(f"定时任务配置错误:{str(err)}") # 推送实时消息 - self.systemmessage.put(f"执行周期配置错误:{err}") + self.systemmessage.put(f"执行周期配置错误:{str(err)}") else: self._scheduler.add_job(self.check, "interval", minutes=30, name="RSS订阅") @@ -658,7 +658,7 @@ class RssSubscribe(_PluginBase): "time": datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") }) except Exception as err: - logger.error(f'刷新RSS数据出错:{err}') + logger.error(f'刷新RSS数据出错:{str(err)}') logger.info(f"RSS {url} 刷新完成") # 保存历史记录 self.save_data('history', history) diff --git a/app/plugins/sitestatistic/__init__.py b/app/plugins/sitestatistic/__init__.py index 366bd9d1..acbae153 100644 --- a/app/plugins/sitestatistic/__init__.py +++ b/app/plugins/sitestatistic/__init__.py @@ -128,9 +128,9 @@ class SiteStatistic(_PluginBase): trigger=CronTrigger.from_crontab(self._cron), name="站点数据统计") except Exception as err: - logger.error(f"定时任务配置错误:{err}") + logger.error(f"定时任务配置错误:{str(err)}") # 推送实时消息 - self.systemmessage.put(f"执行周期配置错误:{err}") + self.systemmessage.put(f"执行周期配置错误:{str(err)}") else: triggers = TimerUtils.random_scheduler(num_executions=1, begin_hour=0, @@ -836,7 +836,7 @@ class SiteStatistic(_PluginBase): if site_schema.match(html_text): return site_schema except Exception as e: - logger.error(f"站点匹配失败 {e}") + logger.error(f"站点匹配失败 {str(e)}") return None def build(self, site_info: CommentedMap) -> Optional[ISiteUserInfo]: diff --git a/app/plugins/sitestatistic/siteuserinfo/nexus_php.py b/app/plugins/sitestatistic/siteuserinfo/nexus_php.py index 23dc3260..8d5b6c96 100644 --- a/app/plugins/sitestatistic/siteuserinfo/nexus_php.py +++ b/app/plugins/sitestatistic/siteuserinfo/nexus_php.py @@ -123,7 +123,7 @@ class NexusPhpSiteUserInfo(ISiteUserInfo): if bonus_match and bonus_match.group(1).strip(): self.bonus = StringUtils.str_float(bonus_match.group(1).strip('"')) except Exception as err: - logger.error(f"{self.site_name} 解析魔力值出错, 错误信息: {err}") + logger.error(f"{self.site_name} 解析魔力值出错, 错误信息: {str(err)}") @staticmethod def _parse_ucoin(html): diff --git a/app/plugins/sitestatistic/siteuserinfo/nexus_rabbit.py b/app/plugins/sitestatistic/siteuserinfo/nexus_rabbit.py index 069aace8..08c4c52d 100644 --- a/app/plugins/sitestatistic/siteuserinfo/nexus_rabbit.py +++ b/app/plugins/sitestatistic/siteuserinfo/nexus_rabbit.py @@ -38,7 +38,7 @@ class NexusRabbitSiteUserInfo(NexusPhpSiteUserInfo): try: torrents = json.loads(html_text).get('data') except Exception as e: - logger.error(f"解析做种信息失败: {e}") + logger.error(f"解析做种信息失败: {str(e)}") return page_seeding_size = 0 diff --git a/app/plugins/syncdownloadfiles/__init__.py b/app/plugins/syncdownloadfiles/__init__.py index aec3b3f8..47d48744 100644 --- a/app/plugins/syncdownloadfiles/__init__.py +++ b/app/plugins/syncdownloadfiles/__init__.py @@ -101,7 +101,7 @@ class SyncDownloadFiles(_PluginBase): name="自动同步下载器文件记录") logger.info(f"自动同步下载器文件记录服务启动,时间间隔 {self._time} 小时") except Exception as err: - logger.error(f"定时任务配置错误:{err}") + logger.error(f"定时任务配置错误:{str(err)}") # 启动任务 if self._scheduler.get_jobs(): diff --git a/app/plugins/torrenttransfer/__init__.py b/app/plugins/torrenttransfer/__init__.py index cdf2583e..e638b2ab 100644 --- a/app/plugins/torrenttransfer/__init__.py +++ b/app/plugins/torrenttransfer/__init__.py @@ -109,8 +109,8 @@ class TorrentTransfer(_PluginBase): self._scheduler.add_job(self.transfer, CronTrigger.from_crontab(self._cron)) except Exception as e: - logger.error(f"转移做种服务启动失败:{e}") - self.systemmessage.put(f"转移做种服务启动失败:{e}") + logger.error(f"转移做种服务启动失败:{str(e)}") + self.systemmessage.put(f"转移做种服务启动失败:{str(e)}") return if self._onlyonce: logger.info(f"转移做种服务启动,立即运行一次") @@ -594,7 +594,7 @@ class TorrentTransfer(_PluginBase): torrent_main = bdecode(content) main_announce = torrent_main.get('announce') except Exception as err: - logger.warn(f"解析种子文件 {torrent_file} 失败:{err}") + logger.warn(f"解析种子文件 {torrent_file} 失败:{str(err)}") fail += 1 continue @@ -623,7 +623,7 @@ class TorrentTransfer(_PluginBase): # 编码并保存到临时文件 torrent_file.write_bytes(bencode(torrent_main)) except Exception as err: - logger.error(f"解析fastresume文件 {fastresume_file} 出错:{err}") + logger.error(f"解析fastresume文件 {fastresume_file} 出错:{str(err)}") fail += 1 continue diff --git a/app/scheduler.py b/app/scheduler.py index 97885f5f..03289bda 100644 --- a/app/scheduler.py +++ b/app/scheduler.py @@ -220,7 +220,7 @@ class Scheduler(metaclass=Singleton): try: job["func"](*args, **kwargs) except Exception as e: - logger.error(f"定时任务 {job_id} 执行失败:{e}") + logger.error(f"定时任务 {job_id} 执行失败:{str(e)}") self._jobs[job_id]["running"] = False def list(self) -> List[schemas.ScheduleInfo]: