@@ -314,6 +314,7 @@ def build_folder_menu(self, folders):
314314 handle = self .handle , url = purl ,
315315 listitem = list_item , isFolder = True )
316316
317+ # TODO: check parameters
317318 def build_menu_apiv3 (self , queries , mode , page = None , page_hash = None ,
318319 name = '' , whitelist_ids = None ):
319320 """
@@ -333,13 +334,10 @@ def build_menu_apiv3(self, queries, mode, page=None, page_hash=None,
333334 items = []
334335 for query in queries :
335336 data = json .loads (self .open_url (self .apiv3_url + query ))
336- if data and 'data' in data :
337- # TODO: simplify
338- data = data ['data' ]
339- if 'data' in data :
340- data = data ['data' ]
341- if 'results' in data :
342- data = data ['results' ]
337+ if data :
338+ data = utils .try_get (data , ['data' , 'data' ], list , []) or \
339+ utils .try_get (data , ['data' , 'results' ], list , []) or \
340+ utils .try_get (data , 'data' , list , [])
343341 for item in data :
344342 items .append (item )
345343
@@ -423,12 +421,17 @@ def build_favourite_shows_menu(self):
423421 self .log ('build_favourite_shows_menu' )
424422 self .build_all_shows_menu (favids = self .read_favourite_show_ids ())
425423
426- # TODO: docstring
427424 def build_topics_menu (self ):
425+ """
426+ Builds a menu containing the topics from the SRGSSR API.
427+ """
428428 self .build_menu_apiv3 ('topics' , None ) # TODO: mode?
429429
430- # TODO: docstring
431430 def build_most_searched_shows_menu (self ):
431+ """
432+ Builds a menu containing the most searched TV shows from
433+ the SRGSSR API.
434+ """
432435 self .build_menu_apiv3 (
433436 'search/most-searched-tv-shows' , None ) # TODO: mode?
434437
@@ -879,21 +882,11 @@ def build_search_media_menu(self, mode=28, name='', page=1, page_hash=''):
879882 self .log (('build_search_media_menu, mode = %s, name = %s, page = %s'
880883 ', page_hash = %s' ) % (mode , name , page , page_hash ))
881884 media_type = 'video'
882- # url_layout = self.host_url + ('/play/search/media?searchQuery=%s'
883- # '&numberOfMedias=%s&mediaType=%s'
884- # '&includeAggregations=false')
885885 if name :
886886 # `name` is provided by `next_page` folder or
887887 # by previously performed search
888888 query_string = name
889- if page_hash :
890- # `name` is provided by `next_page` folder, so it is
891- # already quoted
892- # query_url = (url_layout + '&nextPageHash=%s') % (
893- # query_string, self.number_of_episodes, media_type,
894- # page_hash)
895- pass
896- else :
889+ if not page_hash :
897890 # `name` is provided by previously performed search, so it
898891 # needs to be processed first
899892 query_string = quote_plus (query_string )
@@ -904,17 +897,14 @@ def build_search_media_menu(self, mode=28, name='', page=1, page_hash=''):
904897 if not query_string :
905898 self .log ('build_search_media_menu: No input provided' )
906899 return
907- if True : # TODO: remove
908- self .write_search (RECENT_MEDIA_SEARCHES_FILENAME , query_string )
900+ self .write_search (RECENT_MEDIA_SEARCHES_FILENAME , query_string )
909901 query_string = quote_plus (query_string )
910902 query = 'search/media?searchTerm=' + query_string
911903
912- # query = query + '&mediaType=' + media_type \
913- # + '&includeAggregations=false'
914904 query = f'{ query } &mediaType={ media_type } &includeAggregations=false'
915905 cursor = page_hash if page_hash else ''
916- return self .build_menu_apiv3 (
917- query , mode , page_hash = cursor , name = query_string )
906+ return self .build_menu_apiv3 (query , mode , page_hash = cursor ,
907+ name = query_string )
918908
919909 def get_auth_url (self , url , segment_data = None ):
920910 """
0 commit comments