class VideoChooser(object): def __init__(self, qualitiesdb): self.qualities = Qualities(qualitiesdb) def choose(self, video_list, quality=None): if quality is None: return video_list[0] else: #Ordered list of qualities quality_result = [self.qualities.quality_bet(vid.name, vid.size,) for vid in video_list] #Mix them [ ( ('quality',score), vid), ...] vidq = zip(quality_result, video_list) #Delete uneded quality vidq = [vid for vid in vidq if vid[0][0] == quality] #Get max quality score max_quality_score = max(vidq,key=lambda mixed: mixed[0][1])[0][1] #Return first vid with max score: for q, vid in vidq: if q[1] == max_quality_score: return vid
def __init__(self, qualitiesdb): self.qualities = Qualities(qualitiesdb)