dikdimon's picture
Upload extensions using SD-Hub extension
3dabe4a verified
import os
from scripts.iib.db.datamodel import DirCoverCache, DataBase
from scripts.iib.tool import get_created_date_by_stat, get_formatted_date, is_valid_media_path, get_video_type, birthtime_sort_key_fn
def get_top_4_media_info(folder_path):
"""
获取给定文件夹路径下的前4个媒体文件的完整路径。
参数:
folder_path (str): 文件夹的路径。
返回值:
list: 包含前4个媒体文件完整路径的列表。
"""
conn = DataBase.get_conn()
if DirCoverCache.is_cache_expired(conn, folder_path):
media_files = get_media_files_from_folder(folder_path)
DirCoverCache.cache_media_files(conn, folder_path, media_files)
else:
media_files = DirCoverCache.get_cached_media_files(conn, folder_path)
return media_files[:4]
def get_media_files_from_folder(folder_path):
"""
从文件夹中获取媒体文件的完整路径。
参数:
folder_path (str): 文件夹的路径。
返回值:
list: 包含媒体文件完整路径的列表。
"""
media_files = []
with os.scandir(folder_path) as entries:
for entry in sorted(entries, key=birthtime_sort_key_fn, reverse=True):
if entry.is_file() and is_valid_media_path(entry.path):
name = os.path.basename(entry.path)
stat = entry.stat()
date = get_formatted_date(stat.st_mtime)
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",
"type": "file",
"date": date,
"created_time": created_time,
"name": name,
})
if len(media_files) > 3:
return media_files
return media_files