Merge pull request #966 from thsrite/main

This commit is contained in:
jxxghp 2023-10-26 13:13:16 +08:00 committed by GitHub
commit 6415fd9286
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 114 additions and 17 deletions

View File

@ -350,6 +350,7 @@ class DownloadChain(ChainBase):
no_exists[_tmdbid].pop(_sea)
if not no_exists.get(_tmdbid) and no_exists.get(_tmdbid) is not None:
no_exists.pop(_tmdbid)
break
return need
def __update_episodes(_tmdbid: int, _sea: int, _need: list, _current: set) -> list:
@ -485,8 +486,9 @@ class DownloadChain(ChainBase):
need_tv = no_exists.get(need_tmdbid)
if not need_tv:
continue
need_tv_copy = copy.deepcopy(no_exists.get(need_tmdbid))
# 循环每一季
for sea, tv in need_tv.items():
for sea, tv in need_tv_copy.items():
# 当前需要季
need_season = sea
# 当前需要集

View File

@ -682,6 +682,25 @@ class CloudflareSpeedTest(_PluginBase):
]
}
]
},
{
'component': 'VRow',
'content': [
{
'component': 'VCol',
'props': {
'cols': 12,
},
'content': [
{
'component': 'VAlert',
'props': {
'text': 'F12看请求的Server属性如果是cloudflare说明该站点支持Cloudflare IP优选。'
}
}
]
}
]
}
]
}

View File

@ -145,6 +145,26 @@ class CustomHosts(_PluginBase):
]
}
]
},
{
'component': 'VRow',
'content': [
{
'component': 'VCol',
'props': {
'cols': 12,
},
'content': [
{
'component': 'VAlert',
'props': {
'text': 'host格式ip host中间有空格'
'容器运行则更新容器hosts非宿主机'
}
}
]
}
]
}
]
}
@ -211,7 +231,7 @@ class CustomHosts(_PluginBase):
# 添加新的Hosts
system_hosts.add(new_entrys)
system_hosts.write()
logger.info("更新系统hosts文件成功容器运行则更新容器hosts")
logger.info("更新系统hosts文件成功")
except Exception as err:
err_flag = True
logger.error(f"更新系统hosts文件失败{str(err) or '请检查权限'}")

View File

@ -264,6 +264,25 @@ class InvitesSignin(_PluginBase):
]
}
]
},
{
'component': 'VRow',
'content': [
{
'component': 'VCol',
'props': {
'cols': 12,
},
'content': [
{
'component': 'VAlert',
'props': {
'text': '整点定时签到失败?不妨换个时间试试'
}
}
]
}
]
}
]
}

View File

@ -20,7 +20,7 @@ from app.modules.qbittorrent import Qbittorrent
from app.modules.themoviedb.tmdbv3api import Episode
from app.modules.transmission import Transmission
from app.plugins import _PluginBase
from app.schemas.types import NotificationType, EventType, MediaType
from app.schemas.types import NotificationType, EventType, MediaType, MediaImageType
class MediaSyncDel(_PluginBase):
@ -276,6 +276,28 @@ class MediaSyncDel(_PluginBase):
]
}
]
},
{
'component': 'VRow',
'content': [
{
'component': 'VCol',
'props': {
'cols': 12,
},
'content': [
{
'component': 'VAlert',
'props': {
'text': '关于路径映射:'
'emby:/data/series/A.mp4,'
'moviepilot:/mnt/link/series/A.mp4。'
'路径映射填/data:/mnt/link'
}
}
]
}
]
}
]
}
@ -561,11 +583,12 @@ class MediaSyncDel(_PluginBase):
logger.info(f"正在同步删除{msg}")
if not transfer_history:
logger.warn(f"{media_type} {media_name} 未获取到可删除数据,可使用媒体库刮削插件覆盖所有元数据")
logger.warn(
f"{media_type} {media_name} 未获取到可删除数据请检查路径映射是否配置错误请检查tmdbid获取是否正确")
return
# 开始删除
image = 'https://emby.media/notificationicon.png'
image = None
year = None
del_torrent_hashs = []
stop_torrent_hashs = []
@ -576,7 +599,7 @@ class MediaSyncDel(_PluginBase):
logger.warn(
f"当前转移记录 {transferhis.id} {title} {transferhis.tmdbid} 与删除媒体{media_name}不符,防误删,暂不自动删除")
continue
image = transferhis.image
image = transferhis.image or image
year = transferhis.year
# 0、删除转移记录
@ -605,15 +628,23 @@ class MediaSyncDel(_PluginBase):
logger.info(f"同步删除 {msg} 完成!")
media_type = MediaType.MOVIE if media_type in ["Movie", "MOV"] else MediaType.TV
# 发送消息
if self._notify:
if media_type == "Episode":
# 根据tmdbid获取图片
images = self.episode.images(tv_id=tmdb_id,
season_num=season_num,
episode_num=episode_num)
if images:
image = self.get_tmdbimage_url(images[-1].get("file_path"), prefix="original")
if not image or media_type == MediaType.TV:
specific_image = self.chain.obtain_specific_image(
mediaid=tmdb_id,
mtype=media_type,
image_type=MediaImageType.Backdrop,
season=season_num,
episode=episode_num
)
if specific_image:
image = specific_image
if not image:
image = 'https://emby.media/notificationicon.png'
torrent_cnt_msg = ""
if del_torrent_hashs:
@ -643,7 +674,7 @@ class MediaSyncDel(_PluginBase):
history = self.get_data('history') or []
history.append({
"type": "电影" if media_type == "Movie" or media_type == "MOV" else "电视剧",
"type": media_type.value,
"title": media_name,
"year": year,
"path": media_path,
@ -838,7 +869,7 @@ class MediaSyncDel(_PluginBase):
f"当前转移记录 {transferhis.id} {title} {transferhis.tmdbid} 与删除媒体{media_name}不符,防误删,暂不自动删除")
self.save_data("last_time", last_del_time or datetime.datetime.now())
continue
image = transferhis.image
image = transferhis.image or image
# 0、删除转移记录
self._transferhis.delete(transferhis.id)

View File

@ -1,5 +1,6 @@
import datetime
import pytz
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.cron import CronTrigger
@ -91,7 +92,12 @@ class MoviePilotUpdateNotify(_PluginBase):
# 推送更新消息
if self._notify:
# 将时间字符串转为datetime对象
update_time = datetime.datetime.strptime(update_time, "%Y-%m-%dT%H:%M:%SZ").strftime("%Y-%m-%d %H:%M:%S")
dt = datetime.datetime.strptime(update_time, "%Y-%m-%dT%H:%M:%SZ")
# 设置时区
timezone = pytz.timezone(settings.TZ)
dt = dt.replace(tzinfo=timezone)
# 将datetime对象转换为带时区的字符串
update_time = dt.strftime("%Y-%m-%d %H:%M:%S")
self.post_message(
mtype=NotificationType.SiteMessage,
title="【MoviePilot更新通知】",