mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 23:47:41 +08:00
fix
This commit is contained in:
@@ -890,7 +890,7 @@ class TransferChain(ChainBase, metaclass=Singleton):
|
|||||||
state, errmsg = self.do_transfer(
|
state, errmsg = self.do_transfer(
|
||||||
fileitem=FileItem(
|
fileitem=FileItem(
|
||||||
storage="local",
|
storage="local",
|
||||||
path=str(file_path).replace("\\", "/"),
|
path=file_path.as_posix(),
|
||||||
type="dir" if not file_path.is_file() else "file",
|
type="dir" if not file_path.is_file() else "file",
|
||||||
name=file_path.name,
|
name=file_path.name,
|
||||||
size=file_path.stat().st_size,
|
size=file_path.stat().st_size,
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ class FileManagerModule(_ModuleBase):
|
|||||||
episodes_info=episodes_info,
|
episodes_info=episodes_info,
|
||||||
file_ext=Path(meta.title).suffix)
|
file_ext=Path(meta.title).suffix)
|
||||||
)
|
)
|
||||||
return str(path)
|
return path.as_posix() if path else ""
|
||||||
|
|
||||||
def save_config(self, storage: str, conf: Dict) -> None:
|
def save_config(self, storage: str, conf: Dict) -> None:
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -783,7 +783,7 @@ class AliPan(StorageBase, metaclass=WeakSingleton):
|
|||||||
"/adrive/v1.0/openFile/get_by_path",
|
"/adrive/v1.0/openFile/get_by_path",
|
||||||
json={
|
json={
|
||||||
"drive_id": drive_id or self._default_drive_id,
|
"drive_id": drive_id or self._default_drive_id,
|
||||||
"file_path": str(path)
|
"file_path": path.as_posix()
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
if not resp:
|
if not resp:
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ class LocalStorage(StorageBase):
|
|||||||
return schemas.FileItem(
|
return schemas.FileItem(
|
||||||
storage=self.schema.value,
|
storage=self.schema.value,
|
||||||
type="file",
|
type="file",
|
||||||
path=str(path).replace("\\", "/"),
|
path=path.as_posix(),
|
||||||
name=path.name,
|
name=path.name,
|
||||||
basename=path.stem,
|
basename=path.stem,
|
||||||
extension=path.suffix[1:],
|
extension=path.suffix[1:],
|
||||||
@@ -59,7 +59,7 @@ class LocalStorage(StorageBase):
|
|||||||
return schemas.FileItem(
|
return schemas.FileItem(
|
||||||
storage=self.schema.value,
|
storage=self.schema.value,
|
||||||
type="dir",
|
type="dir",
|
||||||
path=str(path).replace("\\", "/") + "/",
|
path=path.as_posix() + "/",
|
||||||
name=path.name,
|
name=path.name,
|
||||||
basename=path.stem,
|
basename=path.stem,
|
||||||
modify_time=path.stat().st_mtime,
|
modify_time=path.stat().st_mtime,
|
||||||
|
|||||||
@@ -269,7 +269,7 @@ class Rclone(StorageBase):
|
|||||||
retcode = subprocess.run(
|
retcode = subprocess.run(
|
||||||
[
|
[
|
||||||
'rclone', 'copyto',
|
'rclone', 'copyto',
|
||||||
str(path),
|
path.as_posix(),
|
||||||
f'MP:{new_path}'
|
f'MP:{new_path}'
|
||||||
],
|
],
|
||||||
startupinfo=self.__get_hidden_shell()
|
startupinfo=self.__get_hidden_shell()
|
||||||
|
|||||||
@@ -672,7 +672,7 @@ class U115Pan(StorageBase, metaclass=WeakSingleton):
|
|||||||
"/open/folder/get_info",
|
"/open/folder/get_info",
|
||||||
"data",
|
"data",
|
||||||
data={
|
data={
|
||||||
"path": str(path)
|
"path": path.as_posix()
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
if not resp:
|
if not resp:
|
||||||
@@ -680,7 +680,7 @@ class U115Pan(StorageBase, metaclass=WeakSingleton):
|
|||||||
return schemas.FileItem(
|
return schemas.FileItem(
|
||||||
storage=self.schema.value,
|
storage=self.schema.value,
|
||||||
fileid=str(resp["file_id"]),
|
fileid=str(resp["file_id"]),
|
||||||
path=str(path) + ("/" if resp["file_category"] == "0" else ""),
|
path=path.as_posix() + ("/" if resp["file_category"] == "0" else ""),
|
||||||
type="file" if resp["file_category"] == "1" else "dir",
|
type="file" if resp["file_category"] == "1" else "dir",
|
||||||
name=resp["file_name"],
|
name=resp["file_name"],
|
||||||
basename=Path(resp["file_name"]).stem,
|
basename=Path(resp["file_name"]).stem,
|
||||||
|
|||||||
@@ -330,7 +330,7 @@ class TransHandler:
|
|||||||
"""
|
"""
|
||||||
return FileItem(
|
return FileItem(
|
||||||
storage=target_storage,
|
storage=target_storage,
|
||||||
path=str(_path).replace("\\", "/"),
|
path=_path.as_posix(),
|
||||||
name=_path.name,
|
name=_path.name,
|
||||||
basename=_path.stem,
|
basename=_path.stem,
|
||||||
type="file",
|
type="file",
|
||||||
|
|||||||
@@ -379,7 +379,7 @@ class Plex:
|
|||||||
file_path = item.target_path
|
file_path = item.target_path
|
||||||
lib_key, path = self.__find_librarie(file_path, self._libraries)
|
lib_key, path = self.__find_librarie(file_path, self._libraries)
|
||||||
# 如果存在同一剧集的多集,key(path)相同会合并
|
# 如果存在同一剧集的多集,key(path)相同会合并
|
||||||
result_dict[path] = lib_key
|
result_dict[path.as_posix()] = lib_key
|
||||||
if "" in result_dict:
|
if "" in result_dict:
|
||||||
# 如果有匹配失败的,刷新整个库
|
# 如果有匹配失败的,刷新整个库
|
||||||
self._plex.library.update()
|
self._plex.library.update()
|
||||||
@@ -387,12 +387,12 @@ class Plex:
|
|||||||
# 否则一个一个刷新
|
# 否则一个一个刷新
|
||||||
for path, lib_key in result_dict.items():
|
for path, lib_key in result_dict.items():
|
||||||
logger.info(f"刷新媒体库:{lib_key} - {path}")
|
logger.info(f"刷新媒体库:{lib_key} - {path}")
|
||||||
self._plex.query(f'/library/sections/{lib_key}/refresh?path={quote_plus(str(Path(path).parent))}')
|
self._plex.query(f'/library/sections/{lib_key}/refresh?path={quote_plus(Path(path).parent.as_posix())}')
|
||||||
return None
|
return None
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def __find_librarie(path: Path, libraries: List[Any]) -> Tuple[str, str]:
|
def __find_librarie(path: Path, libraries: List[Any]) -> Tuple[str, Optional[Path]]:
|
||||||
"""
|
"""
|
||||||
判断这个path属于哪个媒体库
|
判断这个path属于哪个媒体库
|
||||||
多个媒体库配置的目录不应有重复和嵌套,
|
多个媒体库配置的目录不应有重复和嵌套,
|
||||||
@@ -407,17 +407,17 @@ class Plex:
|
|||||||
return _path.parts[:len(_parent.parts)] == _parent.parts
|
return _path.parts[:len(_parent.parts)] == _parent.parts
|
||||||
|
|
||||||
if path is None:
|
if path is None:
|
||||||
return "", ""
|
return "", None
|
||||||
|
|
||||||
try:
|
try:
|
||||||
for lib in libraries:
|
for lib in libraries:
|
||||||
if hasattr(lib, "locations") and lib.locations:
|
if hasattr(lib, "locations") and lib.locations:
|
||||||
for location in lib.locations:
|
for location in lib.locations:
|
||||||
if is_subpath(path, Path(location)):
|
if is_subpath(path, Path(location)):
|
||||||
return lib.key, str(path)
|
return lib.key, path
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
logger.error(f"查找媒体库出错:{str(err)}")
|
logger.error(f"查找媒体库出错:{str(err)}")
|
||||||
return "", ""
|
return "", None
|
||||||
|
|
||||||
def get_iteminfo(self, itemid: str) -> Optional[schemas.MediaServerItem]:
|
def get_iteminfo(self, itemid: str) -> Optional[schemas.MediaServerItem]:
|
||||||
"""
|
"""
|
||||||
|
|||||||
+2
-2
@@ -724,7 +724,7 @@ class Monitor(metaclass=Singleton):
|
|||||||
"""
|
"""
|
||||||
判断是否蓝光原盘目录内的子目录或文件
|
判断是否蓝光原盘目录内的子目录或文件
|
||||||
"""
|
"""
|
||||||
return True if re.search(r"BDMV[/\\]STREAM", str(_path), re.IGNORECASE) else False
|
return True if re.search(r"BDMV/STREAM", _path.as_posix(), re.IGNORECASE) else False
|
||||||
|
|
||||||
def __get_bluray_dir(_path: Path) -> Optional[Path]:
|
def __get_bluray_dir(_path: Path) -> Optional[Path]:
|
||||||
"""
|
"""
|
||||||
@@ -755,7 +755,7 @@ class Monitor(metaclass=Singleton):
|
|||||||
TransferChain().do_transfer(
|
TransferChain().do_transfer(
|
||||||
fileitem=FileItem(
|
fileitem=FileItem(
|
||||||
storage=storage,
|
storage=storage,
|
||||||
path=str(event_path).replace("\\", "/"),
|
path=event_path.as_posix(),
|
||||||
type="file",
|
type="file",
|
||||||
name=event_path.name,
|
name=event_path.name,
|
||||||
basename=event_path.stem,
|
basename=event_path.stem,
|
||||||
|
|||||||
Reference in New Issue
Block a user