CLEANUP AND UPDATE
parent
f726684c1d
commit
5c3f8dbd6a
@ -1,62 +0,0 @@
|
|||||||
from funcs import process_videos, group_videos, match_data_to_video_fast, get_all_videos, get_all_data
|
|
||||||
from flask import Flask, render_template
|
|
||||||
import os
|
|
||||||
from collections import defaultdict
|
|
||||||
|
|
||||||
app = Flask(__name__)
|
|
||||||
|
|
||||||
SCAN_DIRS = [
|
|
||||||
"E:/streamaster/downloaded/",
|
|
||||||
"U:/encoded",
|
|
||||||
"U:/count_sorted"
|
|
||||||
]
|
|
||||||
|
|
||||||
DATA_DIRS = [
|
|
||||||
"E:/streamaster/data",
|
|
||||||
"E:/streamaster/downloaded",
|
|
||||||
]
|
|
||||||
|
|
||||||
# ----------- Data Processing -----------
|
|
||||||
def load_video_data():
|
|
||||||
videos = []
|
|
||||||
for d in SCAN_DIRS:
|
|
||||||
videos += get_all_videos(d)
|
|
||||||
|
|
||||||
data = []
|
|
||||||
for d in DATA_DIRS:
|
|
||||||
data += get_all_data(d)
|
|
||||||
|
|
||||||
parsed_videos, unmatched = match_data_to_video_fast(videos, data)
|
|
||||||
parsed_videos = process_videos(parsed_videos)
|
|
||||||
video_data = group_videos(parsed_videos, sort_by="count", order="desc")
|
|
||||||
return video_data
|
|
||||||
|
|
||||||
def compute_analytics(video_data):
|
|
||||||
storage_usage = defaultdict(lambda: {"total_size": 0, "video_count": 0})
|
|
||||||
per_video_sizes = {}
|
|
||||||
|
|
||||||
for (username, platform), vids in video_data.items():
|
|
||||||
total_size_gb = sum(v['size'] for v in vids) / 1024 # Convert MB to GB
|
|
||||||
avg_size_gb = (total_size_gb / len(vids)) if vids else 0
|
|
||||||
|
|
||||||
storage_usage[(username, platform)]["total_size"] += total_size_gb
|
|
||||||
storage_usage[(username, platform)]["video_count"] += len(vids)
|
|
||||||
per_video_sizes[(username, platform)] = avg_size_gb
|
|
||||||
|
|
||||||
return storage_usage, per_video_sizes
|
|
||||||
|
|
||||||
# ----------- Flask Routes -----------
|
|
||||||
@app.route("/")
|
|
||||||
def analytics_dashboard():
|
|
||||||
video_data = load_video_data()
|
|
||||||
storage_usage, per_video_sizes = compute_analytics(video_data)
|
|
||||||
|
|
||||||
# Sort by total storage used
|
|
||||||
sorted_usage = sorted(storage_usage.items(), key=lambda x: x[1]["total_size"], reverse=True)
|
|
||||||
|
|
||||||
return render_template("analytics.html",
|
|
||||||
storage_usage=sorted_usage,
|
|
||||||
avg_sizes=per_video_sizes)
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
app.run(debug=True)
|
|
||||||
Binary file not shown.
Loading…
Reference in New Issue