mirror of
https://git.sr.ht/~cadence/NewLeaf
synced 2024-11-23 16:17:29 +00:00
Compare commits
No commits in common. "ac1aa0710815a84f10421bb3f81cac2927ed580a" and "c9b16d3efd0b63390996ef7dc313d313251a7507" have entirely different histories.
ac1aa07108
...
c9b16d3efd
@ -12,12 +12,12 @@ channel_cache_lock = Lock()
|
||||
channel_latest_cache = TTLCache(maxsize=500, ttl=300)
|
||||
channel_latest_cache_lock = Lock()
|
||||
|
||||
def extract_channel(ucid, second__path="user"):
|
||||
def extract_channel(ucid):
|
||||
with channel_cache_lock:
|
||||
if ucid in channel_cache:
|
||||
return channel_cache[ucid]
|
||||
|
||||
channel_type = "channel" if len(ucid) == 24 and ucid[:2] == "UC" else second__path
|
||||
channel_type = "channel" if len(ucid) == 24 and ucid[:2] == "UC" else "user"
|
||||
r = requests.get("https://www.youtube.com/{}/{}/videos?hl=en".format(channel_type, ucid), cookies=eu_consent_cookie())
|
||||
r.raise_for_status()
|
||||
yt_initial_data = extract_yt_initial_data(r.content.decode("utf8"))
|
||||
@ -35,10 +35,7 @@ def extract_channel(ucid, second__path="user"):
|
||||
"identifier": "ACCOUNT_TERMINATED"
|
||||
}
|
||||
else:
|
||||
return {
|
||||
"error": alert_text,
|
||||
"identifier": "UNKNOWN"
|
||||
}
|
||||
print("Seen alert text '{}'".format(alert_text))
|
||||
|
||||
header = yt_initial_data["header"]["c4TabbedHeaderRenderer"] if "c4TabbedHeaderRenderer" in yt_initial_data["header"] else {}
|
||||
channel_metadata = yt_initial_data["metadata"]["channelMetadataRenderer"]
|
||||
|
14
index.py
14
index.py
@ -58,7 +58,7 @@ class NewLeaf(object):
|
||||
|
||||
@cherrypy.expose
|
||||
@cherrypy.tools.json_out()
|
||||
def channels(self, *suffix, second__path="user", **kwargs):
|
||||
def channels(self, *suffix, **kwargs):
|
||||
ucid = ""
|
||||
part = ""
|
||||
possible_parts = ("videos", "latest", "playlists")
|
||||
@ -74,21 +74,15 @@ class NewLeaf(object):
|
||||
"error": "Two components specified in URL, but neither component was recognised as a part keyword.",
|
||||
"identifier": "PART_KEYWORD_NOT_RECOGNISED"
|
||||
}
|
||||
possible_paths = ("channel", "c", "user")
|
||||
if second__path not in possible_paths:
|
||||
return {
|
||||
"error": "second__path parameter must be one of: " + str(possible_paths),
|
||||
"identifier": "PATH_PARAMETER_NOT_RECOGNISED"
|
||||
}
|
||||
|
||||
if part == "playlists":
|
||||
return []
|
||||
elif part == "latest":
|
||||
return extract_channel_latest(ucid, second__path)
|
||||
return extract_channel_latest(ucid)
|
||||
elif part == "videos":
|
||||
return extract_channel_videos(ucid, second__path)
|
||||
return extract_channel_videos(ucid)
|
||||
else: # part == "", so extract whole channel
|
||||
return extract_channel(ucid, second__path)
|
||||
return extract_channel(ucid)
|
||||
|
||||
@cherrypy.expose
|
||||
@cherrypy.tools.json_out()
|
||||
|
Loading…
Reference in New Issue
Block a user