From 1c3a592415f59fe71ddf38c01615d263fc3189de Mon Sep 17 00:00:00 2001 From: JustAnotherArchivist Date: Sat, 1 Apr 2023 22:08:20 +0000 Subject: [PATCH] Fix KeyError on broadcast cards with incomplete broadcaster user data Fixes #810 --- snscrape/modules/twitter.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/snscrape/modules/twitter.py b/snscrape/modules/twitter.py index a59e074..324bb02 100644 --- a/snscrape/modules/twitter.py +++ b/snscrape/modules/twitter.py @@ -1135,7 +1135,10 @@ class _TwitterAPIScraper(snscrape.base.Scraper): keyKwargMap = {**keyKwargMap, 'id': 'id', 'url': 'url', 'title': 'title', 'description': 'description', 'total_participants': 'totalParticipants', 'full_size_thumbnail_url': 'thumbnailUrl'} kwargs = _kwargs_from_map(keyKwargMap) if 'broadcaster_twitter_id' in bindingValues: - kwargs['broadcaster'] = User(id = int(bindingValues['broadcaster_twitter_id']), username = bindingValues['broadcaster_username'], displayname = bindingValues['broadcaster_display_name']) + if int(bindingValues['broadcaster_twitter_id']) in userRefs: + kwargs['broadcaster'] = userRefs[int(bindingValues['broadcaster_twitter_id'])] + else: + kwargs['broadcaster'] = User(id = int(bindingValues['broadcaster_twitter_id']), username = bindingValues['broadcaster_username'], displayname = bindingValues['broadcaster_display_name']) if 'siteUser' not in kwargs: kwargs['siteUser'] = None if cardName == '745291183405076480:broadcast':