You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.0 KiB
Python
38 lines
1.0 KiB
Python
|
|
# ───────── CACHE BUILDER ───────── #
|
|
def build_cache():
|
|
videos = db_get_videos()
|
|
grouped = {}
|
|
|
|
for v in videos:
|
|
key = (v["username"], v["platform"])
|
|
grouped.setdefault(key, []).append(v)
|
|
|
|
storage_usage, avg_sizes, video_map = {}, {}, {}
|
|
|
|
for (username, platform), vids in grouped.items():
|
|
key = f"{username}::{platform}"
|
|
|
|
total_gb = 0
|
|
for v in vids:
|
|
try:
|
|
total_gb += float(v.get("size", 0) or 0) / 1024
|
|
except ValueError:
|
|
print(f"⚠️ Invalid size for video {v.get('video_id')}: {v.get('size')}")
|
|
|
|
storage_usage[key] = {
|
|
"total_size": total_gb,
|
|
"video_count": len(vids)
|
|
}
|
|
avg_sizes[key] = total_gb / len(vids) if vids else 0
|
|
|
|
video_map[key] = vids
|
|
|
|
# generate_thumbnails_for_videos(videos)
|
|
|
|
return {
|
|
"timestamp": time.time(),
|
|
"videos": video_map,
|
|
"storage_usage": storage_usage,
|
|
"avg_sizes": avg_sizes
|
|
} |