@@ -197,8 +197,8 @@ def check_streamer_online(self, streamer):
197197 streamer .set_offline ()
198198
199199 def get_channel_id (self , streamer_username ):
200- json_data = copy .deepcopy (GQLOperations .ReportMenuItem )
201- json_data ["variables" ] = { "channelLogin" : streamer_username }
200+ json_data = copy .deepcopy (GQLOperations .GetIDFromLogin )
201+ json_data ["variables" ][ "login" ] = streamer_username
202202 json_response = self .post_gql_request (json_data )
203203 if (
204204 "data" not in json_response
@@ -826,12 +826,16 @@ def __get_inventory(self):
826826
827827 def __get_drops_dashboard (self , status = None ):
828828 response = self .post_gql_request (GQLOperations .ViewerDropsDashboard )
829- campaigns = response ["data" ]["currentUser" ]["dropCampaigns" ] or []
829+ campaigns = (
830+ response .get ("data" , {})
831+ .get ("currentUser" , {})
832+ .get ("dropCampaigns" , [])
833+ or []
834+ )
830835
831836 if status is not None :
832837 campaigns = (
833- list (filter (lambda x : x ["status" ] ==
834- status .upper (), campaigns )) or []
838+ list (filter (lambda x : x ["status" ] == status .upper (), campaigns )) or []
835839 )
836840
837841 return campaigns
@@ -850,9 +854,15 @@ def __get_campaigns_details(self, campaigns):
850854 }
851855
852856 response = self .post_gql_request (json_data )
857+ if not isinstance (response , list ):
858+ logger .debug ("Unexpected campaigns response format, skipping chunk" )
859+ continue
853860 for r in response :
854- if r ["data" ]["user" ] is not None :
855- result .append (r ["data" ]["user" ]["dropCampaign" ])
861+ drop_campaign = (
862+ r .get ("data" , {}).get ("user" , {}).get ("dropCampaign" , None )
863+ )
864+ if drop_campaign is not None :
865+ result .append (drop_campaign )
856866 return result
857867
858868 def __sync_campaigns (self , campaigns ):
@@ -921,6 +931,7 @@ def claim_all_drops_from_inventory(self):
921931
922932 def sync_campaigns (self , streamers , chunk_size = 3 ):
923933 campaigns_update = 0
934+ campaigns = []
924935 while self .running :
925936 try :
926937 # Get update from dashboard each 60minutes
@@ -977,6 +988,7 @@ def sync_campaigns(self, streamers, chunk_size=3):
977988
978989 except (ValueError , KeyError , requests .exceptions .ConnectionError ) as e :
979990 logger .error (f"Error while syncing inventory: { e } " )
991+ campaigns = []
980992 self .__check_connection_handler (chunk_size )
981993
982994 self .__chuncked_sleep (60 , chunk_size = chunk_size )
0 commit comments