fix: fixes server error when recommended videos are "LIVE" or "Upcoming"

This commit is contained in:
2025-07-08 14:51:04 +02:00
parent 55a116e042
commit 3a0a89f737

View File

@@ -73,6 +73,14 @@ def epochToDate(epoch):
def dateToEpoch(date: str): def dateToEpoch(date: str):
return datetime.datetime.fromisoformat(date).timestamp() return datetime.datetime.fromisoformat(date).timestamp()
def doesContainNumber(string: str, numeric_system: int = 10) -> bool:
try:
number = int(string, numeric_system)
return True
except ValueError:
return False
raise BaseException("doesContainNumber(): Unknown error while determining if a string contains a number")
def trending(): def trending():
return send(200, [{}]) return send(200, [{}])
@@ -445,6 +453,9 @@ def videos(data):
related_video['lengthSeconds'] = 0 related_video['lengthSeconds'] = 0
time_lookup_list = [1, 60, 3_600, 86_400] time_lookup_list = [1, 60, 3_600, 86_400]
time_list = safeTraverse(y, ['contentImage', 'thumbnailViewModel', 'overlays', 0, 'thumbnailOverlayBadgeViewModel', 'thumbnailBadges', 0, 'thumbnailBadgeViewModel', 'text'], default="0:0").split(":") time_list = safeTraverse(y, ['contentImage', 'thumbnailViewModel', 'overlays', 0, 'thumbnailOverlayBadgeViewModel', 'thumbnailBadges', 0, 'thumbnailBadgeViewModel', 'text'], default="0:0").split(":")
if False in map(doesContainNumber, time_list): # works around ['LIVE'] for livestreams or ['Upcoming'] for scheduled videos
pass
else:
for z in range(len(time_list)): for z in range(len(time_list)):
related_video['lengthSeconds'] += time_lookup_list[z] * int(time_list[len(time_list) - 1 - z]) related_video['lengthSeconds'] += time_lookup_list[z] * int(time_list[len(time_list) - 1 - z])
related_views_text = safeTraverse(lmvm, ['metadata', 'contentMetadataViewModel', 'metadataRows', 1, 'metadataParts', 0, 'text', 'content'], default="0").split(" ")[0] related_views_text = safeTraverse(lmvm, ['metadata', 'contentMetadataViewModel', 'metadataRows', 1, 'metadataParts', 0, 'text', 'content'], default="0").split(" ")[0]