mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-06 16:07:01 +08:00
fix 115
This commit is contained in:
+7
-1
@@ -342,7 +342,7 @@ class MediaChain(ChainBase, metaclass=Singleton):
|
|||||||
_fileitem.path = str(_path.parent)
|
_fileitem.path = str(_path.parent)
|
||||||
item = self.storagechain.upload_file(fileitem=_fileitem, path=tmp_file)
|
item = self.storagechain.upload_file(fileitem=_fileitem, path=tmp_file)
|
||||||
if item:
|
if item:
|
||||||
logger.info(f"已保存文件:{item.path}")
|
logger.info(f"已保存文件:{Path(item.path) / item.name}")
|
||||||
if tmp_file.exists():
|
if tmp_file.exists():
|
||||||
tmp_file.unlink()
|
tmp_file.unlink()
|
||||||
|
|
||||||
@@ -389,6 +389,8 @@ class MediaChain(ChainBase, metaclass=Singleton):
|
|||||||
logger.warn(f"{filepath.name} nfo文件生成失败!")
|
logger.warn(f"{filepath.name} nfo文件生成失败!")
|
||||||
return
|
return
|
||||||
# 保存或上传nfo文件到上级目录
|
# 保存或上传nfo文件到上级目录
|
||||||
|
if not parent:
|
||||||
|
parent = self.storagechain.get_parent_item(fileitem)
|
||||||
__save_file(_fileitem=parent, _path=nfo_path, _content=movie_nfo)
|
__save_file(_fileitem=parent, _path=nfo_path, _content=movie_nfo)
|
||||||
else:
|
else:
|
||||||
# 电影目录
|
# 电影目录
|
||||||
@@ -441,6 +443,8 @@ class MediaChain(ChainBase, metaclass=Singleton):
|
|||||||
logger.warn(f"{filepath.name} nfo生成失败!")
|
logger.warn(f"{filepath.name} nfo生成失败!")
|
||||||
return
|
return
|
||||||
# 保存或上传nfo文件到上级目录
|
# 保存或上传nfo文件到上级目录
|
||||||
|
if not parent:
|
||||||
|
parent = self.storagechain.get_parent_item(fileitem)
|
||||||
__save_file(_fileitem=parent, _path=nfo_path, _content=episode_nfo)
|
__save_file(_fileitem=parent, _path=nfo_path, _content=episode_nfo)
|
||||||
# 获取集的图片
|
# 获取集的图片
|
||||||
image_dict = self.metadata_img(mediainfo=file_mediainfo,
|
image_dict = self.metadata_img(mediainfo=file_mediainfo,
|
||||||
@@ -455,6 +459,8 @@ class MediaChain(ChainBase, metaclass=Singleton):
|
|||||||
content = __download_image(image_url)
|
content = __download_image(image_url)
|
||||||
# 保存图片文件到当前目录
|
# 保存图片文件到当前目录
|
||||||
if content:
|
if content:
|
||||||
|
if not parent:
|
||||||
|
parent = self.storagechain.get_parent_item(fileitem)
|
||||||
__save_file(_fileitem=parent, _path=image_path, _content=content)
|
__save_file(_fileitem=parent, _path=image_path, _content=content)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -558,11 +558,12 @@ class Alist(StorageBase):
|
|||||||
logging.warning(f"请求上传文件 {path} 失败,状态码:{resp.status_code}")
|
logging.warning(f"请求上传文件 {path} 失败,状态码:{resp.status_code}")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
new_item = self.get_item(Path(fileitem.path) / path.name)
|
||||||
if new_name and new_name != path.name:
|
if new_name and new_name != path.name:
|
||||||
if self.rename(fileitem, new_name):
|
if self.rename(new_item, new_name):
|
||||||
return self.get_item(Path(fileitem.path).parent / new_name)
|
return self.get_item(Path(new_item.path).with_name(new_name))
|
||||||
|
|
||||||
return self.get_item(Path(fileitem.path) / path.name)
|
return new_item
|
||||||
|
|
||||||
def detail(self, fileitem: schemas.FileItem) -> Optional[schemas.FileItem]:
|
def detail(self, fileitem: schemas.FileItem) -> Optional[schemas.FileItem]:
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -265,16 +265,17 @@ class Rclone(StorageBase):
|
|||||||
上传文件
|
上传文件
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
|
new_path = Path(fileitem.path) / (new_name or path.name)
|
||||||
retcode = subprocess.run(
|
retcode = subprocess.run(
|
||||||
[
|
[
|
||||||
'rclone', 'copyto',
|
'rclone', 'copyto',
|
||||||
str(path),
|
str(path),
|
||||||
f'MP:{Path(fileitem.path) / (new_name or path.name)}'
|
f'MP:{new_path}'
|
||||||
],
|
],
|
||||||
startupinfo=self.__get_hidden_shell()
|
startupinfo=self.__get_hidden_shell()
|
||||||
).returncode
|
).returncode
|
||||||
if retcode == 0:
|
if retcode == 0:
|
||||||
return self.__get_fileitem(path)
|
return self.__get_fileitem(new_path)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
logger.error(f"rclone上传文件失败:{err}")
|
logger.error(f"rclone上传文件失败:{err}")
|
||||||
return None
|
return None
|
||||||
|
|||||||
@@ -174,7 +174,7 @@ class U115Pan(StorageBase, metaclass=Singleton):
|
|||||||
name=item.name,
|
name=item.name,
|
||||||
basename=item.stem,
|
basename=item.stem,
|
||||||
size=item.stat().st_size,
|
size=item.stat().st_size,
|
||||||
extension=item.suffix[1:],
|
extension=item.suffix[1:] if not item.is_dir() else None,
|
||||||
modify_time=item.stat().st_mtime
|
modify_time=item.stat().st_mtime
|
||||||
) for item in items if item]
|
) for item in items if item]
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@@ -188,14 +188,15 @@ class U115Pan(StorageBase, metaclass=Singleton):
|
|||||||
if not self.__init_cloud():
|
if not self.__init_cloud():
|
||||||
return None
|
return None
|
||||||
try:
|
try:
|
||||||
result = self.fs.makedirs(path=(Path(fileitem.path) / name), exist_ok=True) # noqa
|
result = self.fs.makedirs(Path(fileitem.path) / name, exist_ok=True)
|
||||||
if result:
|
if result:
|
||||||
return schemas.FileItem(
|
return schemas.FileItem(
|
||||||
storage=self.schema.value,
|
storage=self.schema.value,
|
||||||
type="dir",
|
type="dir",
|
||||||
path=f"{fileitem.path}{name}/",
|
path=f"{result.path}/",
|
||||||
name=name,
|
name=name,
|
||||||
modify_time=result.get("utime")
|
basename=Path(result.name).stem,
|
||||||
|
modify_time=result.mtime
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"115创建目录失败:{str(e)}")
|
logger.error(f"115创建目录失败:{str(e)}")
|
||||||
@@ -208,14 +209,15 @@ class U115Pan(StorageBase, metaclass=Singleton):
|
|||||||
if not self.__init_cloud():
|
if not self.__init_cloud():
|
||||||
return None
|
return None
|
||||||
try:
|
try:
|
||||||
result = self.fs.makedirs(path=path, exist_ok=True) # noqa
|
result = self.fs.makedirs(path, exist_ok=True)
|
||||||
if result:
|
if result:
|
||||||
return schemas.FileItem(
|
return schemas.FileItem(
|
||||||
storage=self.schema.value,
|
storage=self.schema.value,
|
||||||
type="dir",
|
type="dir",
|
||||||
path=str(path) + "/",
|
path=result.path + "/",
|
||||||
name=path.name,
|
name=result.name,
|
||||||
modify_time=result.get("utime")
|
basename=Path(result.name).stem,
|
||||||
|
modify_time=result.mtime
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"115获取目录失败:{str(e)}")
|
logger.error(f"115获取目录失败:{str(e)}")
|
||||||
@@ -228,19 +230,23 @@ class U115Pan(StorageBase, metaclass=Singleton):
|
|||||||
if not self.__init_cloud():
|
if not self.__init_cloud():
|
||||||
return None
|
return None
|
||||||
try:
|
try:
|
||||||
item = self.fs.attr(path)
|
try:
|
||||||
|
item = self.fs.attr(path)
|
||||||
|
except FileNotFoundError:
|
||||||
|
return None
|
||||||
if item:
|
if item:
|
||||||
return schemas.FileItem(
|
return schemas.FileItem(
|
||||||
storage=self.schema.value,
|
storage=self.schema.value,
|
||||||
type="dir" if item.is_dir() else "file",
|
type="dir" if item.is_directory else "file",
|
||||||
path=str(path) + ("/" if item.is_dir() else ""),
|
path=item.path + ("/" if item.is_directory else ""),
|
||||||
name=item.name,
|
name=item.name,
|
||||||
size=item.stat().st_size,
|
size=item.size,
|
||||||
extension=item.file_extension[1:],
|
extension=item.suffix[1:] if not item.is_directory else None,
|
||||||
modify_time=item.stat().st_mtime
|
modify_time=item.mtime,
|
||||||
|
thumbnail=item.get("thumb")
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"115获取文件失败:{str(e)}")
|
logger.info(f"115获取文件失败:{str(e)}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def detail(self, fileitem: schemas.FileItem) -> Optional[schemas.FileItem]:
|
def detail(self, fileitem: schemas.FileItem) -> Optional[schemas.FileItem]:
|
||||||
@@ -250,16 +256,20 @@ class U115Pan(StorageBase, metaclass=Singleton):
|
|||||||
if not self.__init_cloud():
|
if not self.__init_cloud():
|
||||||
return None
|
return None
|
||||||
try:
|
try:
|
||||||
item = self.fs.attr(fileitem.path)
|
try:
|
||||||
|
item = self.fs.attr(fileitem.path)
|
||||||
|
except FileNotFoundError:
|
||||||
|
return None
|
||||||
if item:
|
if item:
|
||||||
return schemas.FileItem(
|
return schemas.FileItem(
|
||||||
storage=self.schema.value,
|
storage=self.schema.value,
|
||||||
type="dir" if item.is_dir() else "file",
|
type="dir" if item.is_directory else "file",
|
||||||
path=fileitem.path + ("/" if item.is_dir() else ""),
|
path=item.path + ("/" if item.is_directory else ""),
|
||||||
name=item.name,
|
name=item.name,
|
||||||
size=item.stat().st_size,
|
size=item.size,
|
||||||
extension=item.file_extension[1:],
|
extension=item.suffix[1:] if not item.is_directory else None,
|
||||||
modify_time=item.stat().st_mtime
|
modify_time=item.mtime,
|
||||||
|
thumbnail=item.get("thumb")
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"115获取文件详情失败:{str(e)}")
|
logger.error(f"115获取文件详情失败:{str(e)}")
|
||||||
@@ -313,17 +323,19 @@ class U115Pan(StorageBase, metaclass=Singleton):
|
|||||||
if not self.__init_cloud():
|
if not self.__init_cloud():
|
||||||
return None
|
return None
|
||||||
try:
|
try:
|
||||||
|
new_path = Path(fileitem.path) / (new_name or path.name)
|
||||||
with open(path, "rb") as f:
|
with open(path, "rb") as f:
|
||||||
result = self.fs.upload(f, Path(fileitem.path) / (new_name or path.name))
|
result = self.fs.upload(f, new_path)
|
||||||
if result:
|
if result:
|
||||||
return schemas.FileItem(
|
return schemas.FileItem(
|
||||||
storage=self.schema.value,
|
storage=self.schema.value,
|
||||||
type="file",
|
type="file",
|
||||||
path=fileitem.path,
|
path=str(path),
|
||||||
name=new_name or path.name,
|
name=result.name,
|
||||||
size=result.get("size"),
|
basename=Path(result.name).stem,
|
||||||
extension=result.get("extension"),
|
size=result.size,
|
||||||
modify_time=result.get("utime")
|
extension=Path(result.name).suffix[1:],
|
||||||
|
modify_time=result.mtime
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"115上传文件失败:{str(e)}")
|
logger.error(f"115上传文件失败:{str(e)}")
|
||||||
|
|||||||
Reference in New Issue
Block a user