1
0
mirror of https://git.sr.ht/~cadence/NewLeaf synced 2024-11-14 12:07:30 +00:00

Convert publishedText to get published

This commit is contained in:
Cadence Ember 2020-08-13 20:41:16 +12:00
parent 968fbaf2bd
commit b36edbf3ae
No known key found for this signature in database
GPG Key ID: 128B99B1B74A6412

View File

@ -168,6 +168,29 @@ def uncompress_counter(text):
multiplier = 1000000000 multiplier = 1000000000
return int(float(text[:-1]) * multiplier) return int(float(text[:-1]) * multiplier)
def past_text_to_time(text):
words = text.split(" ")
assert len(words) == 3, "3 words"
assert words[2] == "ago", 'ends with "ago"'
number = int(words[0])
unit = words[1][:2]
multiplier = 1
if unit == "se":
multiplier = 1
elif unit == "mi":
multiplier = 60
elif unit == "ho":
multiplier = 60 * 60
elif unit == "da":
multiplier = 24 * 60 * 60
elif unit == "we":
multiplier = 7 * 24 * 60 * 60
elif unit == "mo":
multiplier = 30 * 24 * 60 * 60
elif unit == "ye":
multiplier = 365 * 24 * 60 * 60
return int(datetime.datetime.now().timestamp()) - number * multiplier
class Second(object): class Second(object):
def __init__(self): def __init__(self):
self.video_cache = TTLCache(maxsize=50, ttl=300) self.video_cache = TTLCache(maxsize=50, ttl=300)
@ -525,6 +548,11 @@ class Second(object):
length_text = combine_runs(o["thumbnailOverlayTimeStatusRenderer"]["text"]) length_text = combine_runs(o["thumbnailOverlayTimeStatusRenderer"]["text"])
if o["thumbnailOverlayTimeStatusRenderer"]["style"] != "LIVE": if o["thumbnailOverlayTimeStatusRenderer"]["style"] != "LIVE":
length_text_to_seconds(length_text) length_text_to_seconds(length_text)
published = 0
published_text = "Live now"
if "publishedTimeText" in v:
published_text = v["publishedTimeText"]["simpleText"]
published = past_text_to_time(published_text)
latest_videos.append({ latest_videos.append({
"type": "video", "type": "video",
"title": combine_runs(v["title"]), "title": combine_runs(v["title"]),
@ -538,8 +566,8 @@ class Second(object):
"viewCount": view_count_text_to_number(combine_runs(v["viewCountText"])), "viewCount": view_count_text_to_number(combine_runs(v["viewCountText"])),
"second__viewCountText": combine_runs(v["viewCountText"]), "second__viewCountText": combine_runs(v["viewCountText"]),
"second__viewCountTextShort": combine_runs(v["shortViewCountText"]), "second__viewCountTextShort": combine_runs(v["shortViewCountText"]),
"published": 0, "published": published,
"publishedText": v["publishedTimeText"]["simpleText"] if "publishedTimeText" in v else "Live now", "publishedText": published_text,
"lengthSeconds": length_seconds, "lengthSeconds": length_seconds,
"second__lengthText": length_text, "second__lengthText": length_text,
"liveNow": None, "liveNow": None,
@ -594,6 +622,11 @@ class Second(object):
for item in items: for item in items:
if "videoRenderer" in item: if "videoRenderer" in item:
video = item["videoRenderer"] video = item["videoRenderer"]
published = 0
published_text = "Live now"
if "publishedTimeText" in video:
published_text = video["publishedTimeText"]["simpleText"]
published = past_text_to_time(published_text)
results.append({ results.append({
"type": "video", "type": "video",
"title": combine_runs(video["title"]), "title": combine_runs(video["title"]),
@ -606,8 +639,8 @@ class Second(object):
"descriptionHtml": combine_runs_html(video["descriptionSnippet"]) if "descriptionSnippet" in video else "", "descriptionHtml": combine_runs_html(video["descriptionSnippet"]) if "descriptionSnippet" in video else "",
"viewCount": get_view_count_or_recommended(video), "viewCount": get_view_count_or_recommended(video),
"second__viewCountText": get_view_count_text_or_recommended(video), "second__viewCountText": get_view_count_text_or_recommended(video),
"published": None, "published": published,
"publishedText": video["publishedTimeText"]["simpleText"] if "publishedTimeText" in video else "Live now", "publishedText": published_text,
"lengthSeconds": get_length_or_live_now(video), "lengthSeconds": get_length_or_live_now(video),
"second__lengthText": get_length_text_or_live_now(video), "second__lengthText": get_length_text_or_live_now(video),
"liveNow": is_live(video), "liveNow": is_live(video),