Merge remote-tracking branch 'origin/main' into main

This commit is contained in:
thsrite
2024-03-19 22:09:34 +08:00
5 changed files with 55 additions and 17 deletions

View File

@@ -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)

View File

@@ -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选择覆盖到浏览器手动同步即可

View File

@@ -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

View File

@@ -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服务器。'
}
}
]
}
]
},
]
}
], {

View File

@@ -1 +0,0 @@
PyCookieCloud~=1.0.3