blob: 95dc2fe1be1fb92cf09fdd25fc2be6b73bf45dcd (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
from components.subscriptions.main import Subscription
from components.subscriptions.typing import SubsDict
from components.videos import VideoTuple
from components.extractor.obtain_vid_info import obtain_vid_duration
from pymongo.collection import Collection
def analyse_video(vid_tuple: VideoTuple) -> VideoTuple:
try:
duration = obtain_vid_duration(vid_tuple.link)
except:
duration = -2
return vid_tuple._replace(analysed=True, duration=duration)
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]) -> int:
num_updated = 0
for sub_dict in subs_collection.find():
sub = Subscription(**sub_dict)
sub._collection = subs_collection
if analyse_subscription(sub):
sub.update_videos()
num_updated += 1
return num_updated
|