diff --git a/scripts/iib/api.py b/scripts/iib/api.py index c826c9b..18c6031 100644 --- a/scripts/iib/api.py +++ b/scripts/iib/api.py @@ -6,6 +6,7 @@ import sqlite3 from scripts.iib.dir_cover_cache import get_top_4_media_info from scripts.iib.tool import ( + get_created_date_by_stat, get_video_type, human_readable_size, is_valid_media_path, @@ -415,7 +416,7 @@ def infinite_image_browsing_api(app: FastAPI, **kwargs): name = os.path.basename(item.path) stat = item.stat() date = get_formatted_date(stat.st_mtime) - created_time = get_formatted_date(stat.st_birthtime if hasattr(stat, 'st_birthtime') else stat.st_ctime) + created_time = get_created_date_by_stat(stat) if item.is_file(): bytes = stat.st_size size = human_readable_size(bytes) diff --git a/scripts/iib/dir_cover_cache.py b/scripts/iib/dir_cover_cache.py index 8153343..ba422e0 100644 --- a/scripts/iib/dir_cover_cache.py +++ b/scripts/iib/dir_cover_cache.py @@ -1,6 +1,6 @@ import os from scripts.iib.db.datamodel import DirCoverCache, DataBase -from scripts.iib.tool import get_formatted_date, is_valid_media_path, get_video_type +from scripts.iib.tool import get_created_date_by_stat, get_formatted_date, is_valid_media_path, get_video_type def get_top_4_media_info(folder_path): """ @@ -38,7 +38,7 @@ def get_media_files_from_folder(folder_path): name = os.path.basename(entry.path) stat = entry.stat() date = get_formatted_date(stat.st_mtime) - created_time = get_formatted_date(stat.st_birthtime if hasattr(stat, 'st_birthtime') else stat.st_ctime) + created_time = get_created_date_by_stat(stat) media_files.append({ "fullpath": entry.path, "media_type": "video" if get_video_type(entry.path) else "image", diff --git a/scripts/iib/tool.py b/scripts/iib/tool.py index 520058f..cd45e21 100644 --- a/scripts/iib/tool.py +++ b/scripts/iib/tool.py @@ -334,6 +334,11 @@ def get_modified_date(folder_path: str): def get_created_date(folder_path: str): return get_formatted_date(os.path.getctime(folder_path)) +def get_created_date_by_stat(stat: os.stat_result): + try: + return get_formatted_date(stat.st_birthtime if hasattr(stat, 'st_birthtime') else stat.st_ctime) + except: + return get_formatted_date(stat.st_ctime) def unique_by(seq, key_func=lambda x: x): seen = set()