From 79855563ffdb82d9dce02587708c65467473ec22 Mon Sep 17 00:00:00 2001 From: A Farzat Date: Sun, 5 Oct 2025 08:21:54 +0300 Subject: Add data_analyser module --- data_analyser/__main__.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 data_analyser/__main__.py diff --git a/data_analyser/__main__.py b/data_analyser/__main__.py new file mode 100755 index 0000000..6f996d9 --- /dev/null +++ b/data_analyser/__main__.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python + +from time import sleep + +from components.database import subscriptions +from components.subscriptions.main import Subscription +from components.subscriptions.typing import SubsDict +from components.videos import VideoTuple +from components.ytdlp import obtain_vid_info + +from pymongo.collection import Collection + +def analyse_video(vid_tuple: VideoTuple) -> VideoTuple: + info = obtain_vid_info(vid_tuple.link) + return vid_tuple._replace(analysed=True, duration_string=info["duration_string"]) + +def analyse_subscription(sub: Subscription) -> bool: + updated = False + for i, vid in enumerate(sub.videos): + if not vid.analysed: + sub.videos[i] = analyse_video(vid) + updated = True + return updated + +def analyse_collection(subs_collection: Collection[SubsDict]) -> None: + for sub_dict in subs_collection.find(): + sub = Subscription(**sub_dict) + if analyse_subscription(sub): + sub.update_videos() + +while True: + analyse_collection(subscriptions) + sleep(30) -- cgit v1.2.3-70-g09d2