MoviePilot-Plugins icon indicating copy to clipboard operation
MoviePilot-Plugins copied to clipboard

自适应IntroSkip 1.7.7 插件 在MP版本 v2.2.4-1 的安装和运行出错的 解决代码 修改

Open MidnightShake opened this issue 11 months ago • 4 comments

当前出问题的 MP软件版本 v2.2.4-1

喜欢这个插件,但是能力有限,参考新版mp V2插件的说明,手动修改了部分代码,临时解决并适配了当前的安装和运行出错的这个问题,其他问题暂时未知,希望大佬上线采纳

github库中源代码路径 plugins/adaptiveintroskip/skip_helper.py

【 其他朋友需要修改,在mp V2版的 docker容器中路径 修改skip_helper.py 文件: 容器中命令1:“cd /app/app/plugins/adaptiveintroskip”,命令2:“nano skip_helper.py” 】

其中代码修改内容:

代码开头位置:

------------源代码部分------------

import requests from app.core.config import settings from app.log import logger from datetime import datetime

base_url = settings.EMBY_HOST

if base_url is None: logger.error('请配置EMBY_HOST变量')

if not base_url.endswith("/"): base_url += "/" if not base_url.startswith("http"): base_url = "http://" + base_url api_key = settings.EMBY_API_KEY headers = {'X-Emby-Token': api_key}

------------源代码部分------------

替换为:

------------修改后代码部分------------

import requests from app.helper.mediaserver import MediaServerHelper from app.helper.service import ServiceBaseHelper from app.schemas import MediaServerConf from app.schemas.types import SystemConfigKey, ModuleType from app.log import logger from datetime import datetime

ServiceBase_Helper = ServiceBaseHelper(SystemConfigKey.MediaServers,MediaServerConf,ModuleType.MediaServer) media_server_config = ServiceBase_Helper.get_configs() emby_config = media_server_config['EMBY'].config base_url = emby_config['host']

if base_url is None: logger.error('请配置EMBY服务器')

if not base_url.endswith("/"): base_url += "/" if not base_url.startswith("http"): base_url = "http://" + base_url api_key = emby_config['apikey'] headers = {'X-Emby-Token': api_key}

------------修改后代码部分------------

MidnightShake avatar Jan 23 '25 07:01 MidnightShake

大佬 按照你的方式修改了skip_helper.py文件的代码 但是在已安装插件列表依然没有显示该插件 是什么情况呢?

zhshaopyan avatar Feb 02 '25 17:02 zhshaopyan

看下是否开启了插件热加载的功能,另外它可能还归属于插件市场中,处于下载后未安装状态,需要重新点击安装

MidnightShake avatar Feb 03 '25 10:02 MidnightShake

另外,MP如果是docker容器 重新安装新版本,也会造成已修改的插件重新下载安装复原为原版出错,这个要等作者大佬上线更新插件源才行,系统重启自动更新的话应该不会被重置复原

MidnightShake avatar Feb 03 '25 10:02 MidnightShake

已开启插件热加载,修改文件后 日志显示如下

【DEBUG】2025-02-03 19:38:12,111 - event.py - No handlers found for broadcast event: <Broadcast Event: plugin.reload, ID: fbfb1c0d-b2ac-4076-85cd-8ec4dc4e29d7, Priority: 10> 【DEBUG】2025-02-03 19:38:12,111 - event.py - Triggering broadcast event: <Broadcast Event: plugin.reload, ID: fbfb1c0d-b2ac-4076-85cd-8ec4dc4e29d7, Priority: 10>

KeyError: 'EMBY' ~~~~~~~~~~~~~~~~~~~^^^^^^^^ emby_config = media_server_config['EMBY'].config File "/var/packages/MoviePilot/target/moviepilot/app/plugins/adaptiveintroskip/skip_helper.py", line 11, in from .skip_helper import * File "/var/packages/MoviePilot/target/moviepilot/app/plugins/adaptiveintroskip/init.py", line 8, in File "", line 241, in _call_with_frames_removed File "", line 940, in exec_module File "", line 690, in _load_unlocked File "", line 1147, in _find_and_load_unlocked File "", line 1176, in _find_and_load File "", line 1204, in _gcd_import ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return _bootstrap._gcd_import(name[level:], package, level) File "/var/packages/python311/target/lib/python3.11/importlib/init.py", line 126, in import_module ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ module = importlib.import_module(full_package_name) File "/var/packages/MoviePilot/target/moviepilot/app/helper/module.py", line 80, in load_with_pre_filter 【DEBUG】2025-02-03 19:38:12,037 - module.py - 加载模块 adaptiveintroskip 失败:'EMBY' - Traceback (most recent call last): 【INFO】2025-02-03 19:38:12,030 - plugin.py - 插件停止完成 【INFO】2025-02-03 19:38:12,030 - plugin.py - 正在停止插件 AdaptiveIntroSkip... 【INFO】2025-02-03 19:38:12,030 - plugin.py - 插件 AdaptiveIntroSkip 文件修改,重新加载...

zhshaopyan avatar Feb 03 '25 11:02 zhshaopyan