mirror of
https://github.com/thsrite/MoviePilot-Plugins.git
synced 2026-05-30 07:26:45 +00:00
Merge remote-tracking branch 'origin/main' into main
This commit is contained in:
@@ -19,7 +19,7 @@ MoviePilot三方插件市场:https://github.com/thsrite/MoviePilot-Plugins/
|
||||
- [插件自动更新 1.2](docs%2FPluginAutoUpdate.md)
|
||||
- [插件强制重装 1.2](docs%2FPluginReInstall.md)
|
||||
- [群辉Webhook通知 1.1](docs%2FSynologyNotify.md)
|
||||
- [同步CookieCloud 1.1](docs%2FSyncCookieCloud.md)
|
||||
- [同步CookieCloud 1.2](docs%2FSyncCookieCloud.md)
|
||||
- [日程提醒 1.0](docs%2FScheduleReminder.md)
|
||||
- [订阅提醒 1.1](docs%2FSubscribeReminder.md)
|
||||
- [Emby观影报告 1.5](docs%2FEmbyReporter.md)
|
||||
|
||||
@@ -2,11 +2,10 @@
|
||||
|
||||
### 更新记录
|
||||
|
||||
- 1.2 同步到本地CookieCloud
|
||||
- 1.1 修复CookieCloud覆盖到浏览器
|
||||
- 1.0 同步MoviePilot站点Cookie到CookieCloud
|
||||
|
||||
1、同步MoviePilot站点Cookie到CookieCloud
|
||||
1、同步MoviePilot站点Cookie到本地CookieCloud
|
||||
|
||||
2、看到日志返回成功之后,浏览器的CookieCloud选择覆盖到浏览器,手动同步即可
|
||||
|
||||
注:如果执行失败,进入mp容器执行 `pip install PyCookieCloud`
|
||||
2、看到日志返回成功之后,浏览器的CookieCloud选择覆盖到浏览器,手动同步即可
|
||||
@@ -73,8 +73,8 @@
|
||||
},
|
||||
"SyncCookieCloud": {
|
||||
"name": "同步CookieCloud",
|
||||
"description": "同步MoviePilot站点Cookie到CookieCloud。",
|
||||
"version": "1.1",
|
||||
"description": "同步MoviePilot站点Cookie到本地CookieCloud。",
|
||||
"version": "1.2",
|
||||
"icon": "https://raw.githubusercontent.com/thsrite/MoviePilot-Plugins/main/icons/cookiecloud.png",
|
||||
"author": "thsrite",
|
||||
"level": 1
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import json
|
||||
from datetime import datetime, timedelta
|
||||
from hashlib import md5
|
||||
|
||||
import pytz
|
||||
from PyCookieCloud import PyCookieCloud
|
||||
|
||||
from app.core.config import settings
|
||||
from app.db.site_oper import SiteOper
|
||||
@@ -10,17 +11,18 @@ from typing import Any, List, Dict, Tuple, Optional
|
||||
from app.log import logger
|
||||
from apscheduler.schedulers.background import BackgroundScheduler
|
||||
from apscheduler.triggers.cron import CronTrigger
|
||||
from app.utils.common import encrypt
|
||||
|
||||
|
||||
class SyncCookieCloud(_PluginBase):
|
||||
# 插件名称
|
||||
plugin_name = "同步CookieCloud"
|
||||
# 插件描述
|
||||
plugin_desc = "同步MoviePilot站点Cookie到CookieCloud。"
|
||||
plugin_desc = "同步MoviePilot站点Cookie到本地CookieCloud。"
|
||||
# 插件图标
|
||||
plugin_icon = "https://raw.githubusercontent.com/thsrite/MoviePilot-Plugins/main/icons/cookiecloud.png"
|
||||
# 插件版本
|
||||
plugin_version = "1.1"
|
||||
plugin_version = "1.2"
|
||||
# 插件作者
|
||||
plugin_author = "thsrite"
|
||||
# 作者主页
|
||||
@@ -92,10 +94,8 @@ class SyncCookieCloud(_PluginBase):
|
||||
if not sites:
|
||||
return
|
||||
|
||||
cookie_cloud = PyCookieCloud(settings.COOKIECLOUD_HOST, settings.COOKIECLOUD_KEY, settings.COOKIECLOUD_PASSWORD)
|
||||
the_key = cookie_cloud.get_the_key()
|
||||
if not the_key:
|
||||
logger.error('链接cookiecloud异常,请检查配置')
|
||||
if not settings.COOKIECLOUD_ENABLE_LOCAL:
|
||||
logger.error('本地CookieCloud服务器未启用')
|
||||
return
|
||||
|
||||
cookies = {}
|
||||
@@ -123,10 +123,29 @@ class SyncCookieCloud(_PluginBase):
|
||||
|
||||
# 覆盖到cookiecloud
|
||||
if cookies:
|
||||
success = cookie_cloud.update_cookie(cookies)
|
||||
crypt_key = self._get_crypt_key()
|
||||
try:
|
||||
cookies = {'cookie_data': cookies}
|
||||
encrypted_data = encrypt(json.dumps(cookies).encode('utf-8'), crypt_key).decode('utf-8')
|
||||
except Exception as e:
|
||||
logger.error(f"CookieCloud加密失败,{e}")
|
||||
return
|
||||
|
||||
ck = {'encrypted': encrypted_data}
|
||||
file = open(settings.COOKIE_PATH / f'{settings.COOKIECLOUD_KEY}.json', 'w')
|
||||
file.write(json.dumps(ck))
|
||||
file.close()
|
||||
|
||||
logger.info(cookies)
|
||||
logger.info(f"同步站点cookie到CookieCloud {'成功' if success else '失败'}")
|
||||
logger.info(f"同步站点cookie到CookieCloud成功")
|
||||
|
||||
def _get_crypt_key(self) -> bytes:
|
||||
"""
|
||||
使用UUID和密码生成CookieCloud的加解密密钥
|
||||
"""
|
||||
md5_generator = md5()
|
||||
md5_generator.update((str(settings.COOKIECLOUD_KEY).strip() + '-' + str(settings.COOKIECLOUD_PASSWORD).strip()).encode('utf-8'))
|
||||
return (md5_generator.hexdigest()[:16]).encode('utf-8')
|
||||
|
||||
def __update_config(self):
|
||||
self.update_config({
|
||||
@@ -211,6 +230,27 @@ class SyncCookieCloud(_PluginBase):
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
'component': 'VRow',
|
||||
'content': [
|
||||
{
|
||||
'component': 'VCol',
|
||||
'props': {
|
||||
'cols': 12,
|
||||
},
|
||||
'content': [
|
||||
{
|
||||
'component': 'VAlert',
|
||||
'props': {
|
||||
'type': 'info',
|
||||
'variant': 'tonal',
|
||||
'text': '需要MoviePilot设定-站点启用本地CookieCloud服务器。'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
]
|
||||
}
|
||||
], {
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
PyCookieCloud~=1.0.3
|
||||
Reference in New Issue
Block a user