From 2c9f7e12090d716cb4bfb8e7e4d814ebceaa0024 Mon Sep 17 00:00:00 2001 From: girst Date: Wed, 24 May 2023 19:17:18 +0000 Subject: [PATCH] increase usefulness of logging of deleted videos --- app/common/common.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/app/common/common.py b/app/common/common.py index 38c37e4..10db7a3 100644 --- a/app/common/common.py +++ b/app/common/common.py @@ -91,8 +91,18 @@ def parse_xml(xmldata): feed = ElementTree.fromstring(xmldata) if feed.find('at:deleted-entry',ns): - (_,_,vid) = feed.find('at:deleted-entry',ns).get('ref').rpartition(':') - return None, None, [{'deleted': True, 'video_id': vid}], None, None + del_entry = feed.find('at:deleted-entry',ns) + del_author = del_entry.find('at:by',ns) + _, _, vid = del_entry.get('ref').rpartition(':') + _, _, channel_id = del_author.find('atom:uri',ns).text.rpartition('/') + author = del_author.find('atom:name',ns).text + entry = [{ + 'deleted': True, + 'video_id': vid, + 'channel_id': channel_id, + 'author': author, + }] + return None, None, entry, None, None title = feed.find('atom:title',ns).text author = feed.find('atom:author/atom:name',ns).text \ @@ -100,10 +110,10 @@ def parse_xml(xmldata): # for /user/<> endpoint: find out UC-id: # for playlists: this is who created the playlist: try: channel_id = feed.find('yt:channelId',ns).text - except:channel_id=None # XXX: why does ternary not work!? + except:channel_id = None # for pullsub: if this exists, we're looking at a playlist: try: playlist_id = feed.find('yt:playlistId',ns).text - except:playlist_id=None # XXX: why does ternary not work!? + except:playlist_id = None videos = [] for entry in feed.findall('atom:entry',ns): videos.append({ @@ -130,7 +140,7 @@ def update_channel(db, xmldata, from_webhook=False): # Note: Deletion events are not just fired for actual deletions, # but also for unlisting videos and livestreams that just ended # (even postLiveDVR ones). Hence, we don't follow it. - flask_logger(f"ignoring deleted/unlisted/ended video/stream {video['video_id']}") + flask_logger(f"ignoring deleted/unlisted video or ended livestream {video['video_id']} by {video['channel_id']} ({video['author']})") break c.execute("SELECT 1 FROM videos WHERE id=?",(video['video_id'],)) -- 2.39.3