def open_context_menu(self): dialogAnswers = ['Opname verwijderen', 'Programma zoeken'] dialogHeader = 'Opname verwijderen of programma zoeken' dialogSummary = 'Wilt u de geselecteerde opname verwijderen of wilt u alleen naar dit programma zoeken in de opnames?' dialogFooter = '' dialogResult = dialog.show_dialog(dialogHeader, dialogSummary, dialogFooter, dialogAnswers) if dialogResult == 'Opname verwijderen': listcontainer = self.getControl(1000) listItemSelected = listcontainer.getSelectedItem() ProgramRecordEventId = listItemSelected.getProperty("ProgramRecordEventId") ProgramStartDeltaTime = listItemSelected.getProperty("ProgramStartDeltaTime") recordRemove = download.record_event_remove(ProgramRecordEventId, ProgramStartDeltaTime) if recordRemove == True: #Remove item from the list removeListItemId = listcontainer.getSelectedPosition() listcontainer.removeItem(removeListItemId) xbmc.sleep(100) listcontainer.selectItem(removeListItemId) xbmc.sleep(100) #Update the status self.count_program(False) elif dialogResult == 'Programma zoeken': try: listcontainer = self.getControl(1000) listItemSelected = listcontainer.getSelectedItem() ProgramNameRaw = listItemSelected.getProperty("ProgramNameRaw") var.SearchFilterTerm = func.search_filter_string(ProgramNameRaw) self.load_program(True, False) except: pass var.SearchFilterTerm = ''
def add_program_vod(self, listcontainersort): for program in var.ChannelsDataJsonSeriesKids['resultObj'][ 'containers']: try: #Load program basics ProgramName = metadatainfo.programtitle_from_json_metadata( program) #Check if there are search results if var.SearchFilterTerm != '': searchMatch = func.search_filter_string(ProgramName) searchResultFound = var.SearchFilterTerm in searchMatch if searchResultFound == False: continue #Load program details PictureUrl = metadatainfo.pictureUrl_from_json_metadata( program) ProgramId = metadatainfo.contentId_from_json_metadata(program) ProgramYear = metadatainfo.programyear_from_json_metadata( program) ProgramStarRating = metadatainfo.programstarrating_from_json_metadata( program) ProgramAgeRating = metadatainfo.programagerating_from_json_metadata( program) #Combine program details stringJoin = [ProgramYear, ProgramStarRating, ProgramAgeRating] ProgramDetails = ' '.join(filter(None, stringJoin)) if func.string_isnullorempty(ProgramDetails): ProgramDetails = '(?)' ProgramDetails = '[COLOR gray]' + ProgramDetails + '[/COLOR]' #Add vod program listitem = xbmcgui.ListItem() listitem.setProperty('Action', 'load_episodes_vod') listitem.setProperty('PictureUrl', PictureUrl) listitem.setProperty('ProgramId', ProgramId) listitem.setProperty("ProgramName", ProgramName) listitem.setProperty('ProgramDetails', ProgramDetails) listitem.setInfo('video', { 'Genre': 'Series', 'Plot': ProgramDetails }) iconProgramType = "common/series.png" iconStreamType = "common/vod.png" iconProgram = path.icon_vod(PictureUrl) listitem.setArt({ 'thumb': iconProgram, 'icon': iconProgram, 'image1': iconStreamType, 'image2': iconProgramType }) listcontainersort.append(listitem) except: continue
def search_program(self): try: keyboard = xbmc.Keyboard('default', 'heading') keyboard.setHeading('Zoek programma') keyboard.setDefault('') keyboard.setHiddenInput(False) keyboard.doModal() if keyboard.isConfirmed() == True: var.SearchFilterTerm = func.search_filter_string(keyboard.getText()) self.load_program(True, False) except: pass var.SearchFilterTerm = ''
def open_context_menu(self): dialogAnswers = ['Programma zoeken'] dialogHeader = 'Programma zoeken' dialogSummary = 'Wilt u naar de geselecteerde programma zoeken?' dialogFooter = '' dialogResult = dialog.show_dialog(dialogHeader, dialogSummary, dialogFooter, dialogAnswers) if dialogResult == 'Programma zoeken': try: listcontainer = self.getControl(1000) listItemSelected = listcontainer.getSelectedItem() ProgramNameRaw = listItemSelected.getProperty("ProgramNameRaw") var.SearchFilterTerm = func.search_filter_string(ProgramNameRaw) self.load_program(True, False) except: pass var.SearchFilterTerm = ''
def search_channelprogram(self): try: keyboard = xbmc.Keyboard('default', 'heading') keyboard.setHeading('Zoek naar zender') keyboard.setDefault('') keyboard.setHiddenInput(False) keyboard.doModal() if keyboard.isConfirmed() == True: var.SearchFilterTerm = func.search_filter_string( keyboard.getText()) channelsLoaded = self.load_channels(True) if channelsLoaded == True: self.set_channel_epg() self.load_epg() except: pass var.SearchFilterTerm = ''
def search_result(self): #Check if search result is available if var.SearchDownloadResultJson == []: notificationIcon = path.resources('resources/skins/default/media/common/searchresult.png') xbmcgui.Dialog().notification(var.addonname, 'Geen zoek resultaten.', notificationIcon, 2500, False) return #Keyboard enter filter term keyboard = xbmc.Keyboard('default', 'heading') keyboard.setHeading('Zoek in resultaat') keyboard.setDefault('') keyboard.setHiddenInput(False) keyboard.doModal() if keyboard.isConfirmed() == True: var.SearchFilterTerm = func.search_filter_string(keyboard.getText()) self.search_list(var.SearchDownloadResultJson) var.SearchFilterTerm = ''
def load_program(self, forceLoad=False, forceUpdate=False, silentUpdate=True): if forceUpdate == True and silentUpdate == False: notificationIcon = path.resources('resources/skins/default/media/common/vod.png') xbmcgui.Dialog().notification(var.addonname, "Programma's worden vernieuwd.", notificationIcon, 2500, False) #Get and check the list container listcontainer = self.getControl(1000) if forceLoad == False and forceUpdate == False: if listcontainer.size() > 0: return True else: listcontainer.reset() #Download the programs func.updateLabelText(self, 1, "Programma's downloaden") downloadResult = download.download_vod_yesterday(forceUpdate) if downloadResult == False: func.updateLabelText(self, 1, 'Niet beschikbaar') listcontainer = self.getControl(1001) self.setFocus(listcontainer) xbmc.sleep(100) listcontainer.selectItem(0) xbmc.sleep(100) return False #Add programs to the list func.updateLabelText(self, 1, "Programma's laden") for program in var.YesterdaySearchDataJson['resultObj']['containers']: try: #Load program basics ProgramName = metadatainfo.programtitle_from_json_metadata(program) ProgramNameRaw = ProgramName EpisodeTitle = metadatainfo.episodetitle_from_json_metadata(program, True, ProgramNameRaw) ProgramTimeEndDateTime = metadatainfo.programenddatetime_from_json_metadata(program) #Check if there are search results if var.SearchFilterTerm != '': searchMatch1 = func.search_filter_string(ProgramName) searchMatch2 = func.search_filter_string(EpisodeTitle) searchResultFound = var.SearchFilterTerm in searchMatch1 or var.SearchFilterTerm in searchMatch2 if searchResultFound == False: continue #Check if program has finished airing and processing if datetime.now() < (ProgramTimeEndDateTime + timedelta(minutes=var.RecordingProcessMinutes)): continue #Load program details ExternalId = metadatainfo.externalChannelId_from_json_metadata(program) ProgramId = metadatainfo.contentId_from_json_metadata(program) ProgramYear = metadatainfo.programyear_from_json_metadata(program) ProgramSeason = metadatainfo.programseason_from_json_metadata(program) ProgramEpisode = metadatainfo.episodenumber_from_json_metadata(program) ProgramAgeRating = metadatainfo.programagerating_from_json_metadata(program) ProgramDuration = metadatainfo.programdurationstring_from_json_metadata(program, False) ProgramDescription = metadatainfo.programdescription_from_json_metadata(program) ProgramTimeStartDateTime = metadatainfo.programstartdatetime_from_json_metadata(program) ProgramTimeStartDateTime = func.datetime_remove_seconds(ProgramTimeStartDateTime) ProgramTimeStartStringTime = ProgramTimeStartDateTime.strftime('%H:%M') ProgramTimeStartStringDate = ProgramTimeStartDateTime.strftime('%a, %d %B %Y') ProgramTime = '[COLOR gray]Begon om ' + ProgramTimeStartStringTime + ' op ' + ProgramTimeStartStringDate + ' en duurde ' + ProgramDuration + '[/COLOR]' #Combine program details stringJoin = [ EpisodeTitle, ProgramYear, ProgramSeason, ProgramEpisode, ProgramAgeRating ] ProgramDetails = ' '.join(filter(None, stringJoin)) if func.string_isnullorempty(ProgramDetails): ProgramDetails = '(?)' #Update program name string ProgramName = ProgramNameRaw + ' [COLOR gray]' + ProgramDetails + '[/COLOR]' ProgramNameDesc = ProgramNameRaw + '\n[COLOR gray]' + ProgramDetails + '[/COLOR]' #Add program listitem = xbmcgui.ListItem() listitem.setProperty('Action', 'play_stream') listitem.setProperty('ProgramId', ProgramId) listitem.setProperty("ProgramName", ProgramName) listitem.setProperty("ProgramNameDesc", ProgramNameDesc) listitem.setProperty("ProgramNameRaw", ProgramNameRaw) listitem.setProperty("ProgramDetails", ProgramTime) listitem.setProperty('ProgramDescription', ProgramDescription) listitem.setInfo('video', {'Genre': 'Gister Gemist', 'Plot': ProgramDescription}) listitem.setArt({'thumb': path.icon_television(ExternalId), 'icon': path.icon_television(ExternalId)}) listcontainer.addItem(listitem) except: continue #Update the status self.count_program(True)
def add_movies_week(self, listcontainersort): for program in var.MovieSearchDataJson['resultObj']['containers']: try: #Load program basics ProgramName = metadatainfo.programtitle_from_json_metadata( program, True) #Check if there are search results if var.SearchFilterTerm != '': searchMatch = func.search_filter_string(ProgramName) searchResultFound = var.SearchFilterTerm in searchMatch if searchResultFound == False: continue #Load program details ExternalId = metadatainfo.externalChannelId_from_json_metadata( program) PictureUrl = metadatainfo.pictureUrl_from_json_metadata( program) ProgramId = metadatainfo.contentId_from_json_metadata(program) ProgramYear = metadatainfo.programyear_from_json_metadata( program) ProgramSeason = metadatainfo.programseason_from_json_metadata( program) ProgramStarRating = metadatainfo.programstarrating_from_json_metadata( program) ProgramAgeRating = metadatainfo.programagerating_from_json_metadata( program) ProgramDuration = metadatainfo.programdurationstring_from_json_metadata( program) ProgramDescription = metadatainfo.programdescription_from_json_metadata( program) ProgramAvailability = metadatainfo.vod_week_available_time( program) #Combine program details stringJoin = [ ProgramYear, ProgramSeason, ProgramStarRating, ProgramAgeRating, ProgramDuration ] ProgramDetails = ' '.join(filter(None, stringJoin)) if func.string_isnullorempty(ProgramDetails): ProgramDetails = '(?)' ProgramDetails = '[COLOR gray]' + ProgramDetails + '[/COLOR]' #Add week program listitem = xbmcgui.ListItem() listitem.setProperty('Action', 'play_stream_week') listitem.setProperty('ProgramId', ProgramId) listitem.setProperty("ProgramName", ProgramName) listitem.setProperty("ProgramWeek", 'true') listitem.setProperty("ProgramDetails", ProgramDetails) listitem.setProperty("ProgramAvailability", ProgramAvailability) listitem.setProperty('ProgramDescription', ProgramDescription) listitem.setInfo('video', { 'Genre': 'Films', 'Plot': ProgramDescription }) iconStreamType = "common/calendarweek.png" iconProgram = path.icon_epg(PictureUrl) iconChannel = path.icon_television(ExternalId) listitem.setArt({ 'thumb': iconProgram, 'icon': iconProgram, 'image1': iconStreamType, 'image2': iconChannel }) listcontainersort.append(listitem) except: continue
def add_movies_vod(self, listcontainersort): for program in var.ChannelsDataJsonMovies['resultObj']['containers']: try: #Load program basics ProgramName = metadatainfo.programtitle_from_json_metadata( program) TechnicalPackageIds = metadatainfo.technicalPackageIds_from_json_metadata( program) #Check if there are search results if var.SearchFilterTerm != '': searchMatch = func.search_filter_string(ProgramName) searchResultFound = var.SearchFilterTerm in searchMatch if searchResultFound == False: continue #Check if content is pay to play if metadatainfo.program_check_paytoplay(TechnicalPackageIds): continue #Load program details PictureUrl = metadatainfo.pictureUrl_from_json_metadata( program) ProgramId = metadatainfo.contentId_from_json_metadata(program) ProgramYear = metadatainfo.programyear_from_json_metadata( program) ProgramSeason = metadatainfo.programseason_from_json_metadata( program) ProgramStarRating = metadatainfo.programstarrating_from_json_metadata( program) ProgramAgeRating = metadatainfo.programagerating_from_json_metadata( program) ProgramDuration = metadatainfo.programdurationstring_from_json_metadata( program) ProgramDescription = metadatainfo.programdescription_from_json_metadata( program) ProgramAvailability = metadatainfo.vod_ondemand_available_time( program) #Combine program details stringJoin = [ ProgramYear, ProgramSeason, ProgramStarRating, ProgramAgeRating, ProgramDuration ] ProgramDetails = ' '.join(filter(None, stringJoin)) if func.string_isnullorempty(ProgramDetails): ProgramDetails = '(?)' ProgramDetails = '[COLOR gray]' + ProgramDetails + '[/COLOR]' #Add vod program listitem = xbmcgui.ListItem() listitem.setProperty('Action', 'play_stream_vod') listitem.setProperty('ProgramId', ProgramId) listitem.setProperty("ProgramName", ProgramName) listitem.setProperty("ProgramDetails", ProgramDetails) listitem.setProperty("ProgramAvailability", ProgramAvailability) listitem.setProperty('ProgramDescription', ProgramDescription) listitem.setInfo('video', { 'Genre': 'Films', 'Plot': ProgramDescription }) iconStreamType = "common/vod.png" iconProgram = path.icon_vod(PictureUrl) listitem.setArt({ 'thumb': iconProgram, 'icon': iconProgram, 'image1': iconStreamType }) listcontainersort.append(listitem) except: continue
def load_program(self, forceLoad=False, forceUpdate=False): if forceUpdate == True: notificationIcon = path.resources('resources/skins/default/media/common/recorddone.png') xbmcgui.Dialog().notification(var.addonname, 'Opnames worden vernieuwd.', notificationIcon, 2500, False) #Get and check the list container listcontainer = self.getControl(1000) if forceLoad == False and forceUpdate == False: if listcontainer.size() > 0: return True else: listcontainer.reset() #Download the programs func.updateLabelText(self, 1, "Opnames downloaden") downloadResult = download.download_recording_event(forceUpdate) if downloadResult == False: func.updateLabelText(self, 1, 'Niet beschikbaar') listcontainer = self.getControl(1001) self.setFocus(listcontainer) xbmc.sleep(100) listcontainer.selectItem(0) xbmc.sleep(100) return False #Add programs to the list func.updateLabelText(self, 1, "Opnames laden") for program in var.ChannelsDataJsonRecordingEvent['resultObj']['containers']: try: #Load program basics ProgramName = metadatainfo.programtitle_from_json_metadata(program) ProgramNameRaw = ProgramName ProgramTimeEndDateTime = metadatainfo.programenddatetime_generate_from_json_metadata(program) #Check if there are search results if var.SearchFilterTerm != '': searchMatch = func.search_filter_string(ProgramName) searchResultFound = var.SearchFilterTerm in searchMatch if searchResultFound == False: continue #Check if program has finished airing and processing if datetime.now() < (ProgramTimeEndDateTime + timedelta(minutes=var.RecordingProcessMinutes)): continue #Check if program is available for streaming AssetsLength = len(program['assets']) if AssetsLength > 0: AssetsStatus = str(program['assets'][0]['status']) if AssetsStatus == 'RecordFailed': ProgramName = '(Opname mislukt) ' + ProgramName elif AssetsStatus == 'ScheduleSuccess': ProgramName = '(Geplande opname) ' + ProgramName else: ProgramName = '(Niet speelbaar) ' + ProgramName #Load program details ExternalId = metadatainfo.externalChannelId_from_json_metadata(program) ProgramAssetId = metadatainfo.get_stream_assetid(program['assets']) ProgramRecordEventId = metadatainfo.contentId_from_json_metadata(program) EpisodeTitle = metadatainfo.episodetitle_from_json_metadata(program, True, ProgramNameRaw) ProgramYear = metadatainfo.programyear_from_json_metadata(program) ProgramSeason = metadatainfo.programseason_from_json_metadata(program) ProgramEpisode = metadatainfo.episodenumber_from_json_metadata(program) ProgramAgeRating = metadatainfo.programagerating_from_json_metadata(program) ProgramDuration = metadatainfo.programdurationstring_from_json_metadata(program, False) ProgramDescription = metadatainfo.programdescription_from_json_metadata(program) ProgramStartDeltaTime = str(metadatainfo.programstartdeltatime_from_json_metadata(program)) ProgramTimeStartDateTime = metadatainfo.programstartdatetime_from_json_metadata(program) ProgramTimeStartDateTime = func.datetime_remove_seconds(ProgramTimeStartDateTime) ProgramTimeStartStringTime = ProgramTimeStartDateTime.strftime('%H:%M') ProgramTimeStartStringDate = ProgramTimeStartDateTime.strftime('%a, %d %B %Y') ProgramTime = '[COLOR gray]Begon om ' + ProgramTimeStartStringTime + ' op ' + ProgramTimeStartStringDate + ' en duurde ' + ProgramDuration + '[/COLOR]' ProgramAvailability = metadatainfo.recording_available_time(program) #Combine program details stringJoin = [ EpisodeTitle, ProgramYear, ProgramSeason, ProgramEpisode, ProgramAgeRating ] ProgramDetails = ' '.join(filter(None, stringJoin)) if func.string_isnullorempty(ProgramDetails): ProgramDetails = '(?)' #Update program name string ProgramName = ProgramNameRaw + ' [COLOR gray]' + ProgramDetails + '[/COLOR]' ProgramNameDesc = ProgramNameRaw + '\n[COLOR gray]' + ProgramDetails + '[/COLOR]\n' + ProgramAvailability #Add program listitem = xbmcgui.ListItem() listitem.setProperty('Action', 'play_stream') listitem.setProperty('ProgramAssetId', ProgramAssetId) listitem.setProperty('ProgramRecordEventId', ProgramRecordEventId) listitem.setProperty('ProgramStartDeltaTime', ProgramStartDeltaTime) listitem.setProperty("ProgramName", ProgramName) listitem.setProperty("ProgramNameDesc", ProgramNameDesc) listitem.setProperty("ProgramNameRaw", ProgramNameRaw) listitem.setProperty("ProgramDetails", ProgramTime) listitem.setProperty('ProgramDescription', ProgramDescription) listitem.setInfo('video', {'Genre': 'Opname', 'Plot': ProgramDescription}) listitem.setArt({'thumb': path.icon_television(ExternalId), 'icon': path.icon_television(ExternalId)}) listcontainer.addItem(listitem) except: continue #Update the status self.count_program(True) #Update the main page count if var.guiMain != None: var.guiMain.count_recorded_event() var.guiMain.count_recording_event()
def load_channels(self, forceLoad=False, forceUpdate=False): if forceUpdate == True: notificationIcon = path.resources( 'resources/skins/default/media/common/radio.png') xbmcgui.Dialog().notification(var.addonname, 'Zenders worden vernieuwd.', notificationIcon, 2500, False) #Get and check the list container listcontainer = self.getControl(1000) if forceLoad == False and forceUpdate == False: if listcontainer.size() > 0: return True else: listcontainer.reset() #Download the channels func.updateLabelText(self, 1, 'Zenders downloaden') downloadResult = download.download_channels_radio(forceUpdate) if downloadResult == False: func.updateLabelText(self, 1, 'Niet beschikbaar') listcontainer = self.getControl(1001) self.setFocus(listcontainer) xbmc.sleep(100) listcontainer.selectItem(0) xbmc.sleep(100) return False #Add channels to the list func.updateLabelText(self, 1, 'Zenders laden') ChannelNumberInt = 0 for channel in var.ChannelsDataJsonRadio['radios']: try: #Load channel basics ChannelName = channel['name'] #Check if there are search results if var.SearchFilterTerm != '': searchMatch = func.search_filter_string(ChannelName) searchResultFound = var.SearchFilterTerm in searchMatch if searchResultFound == False: continue #Load channel details ChannelId = channel['id'] ChannelStream = channel['stream'] #Update channel number ChannelNumberInt += 1 ChannelNumberString = str(ChannelNumberInt) ChannelNumberAccent = func.get_provider_color_string( ) + ChannelNumberString + '[/COLOR]' #Add radio channel listitem = xbmcgui.ListItem() listitem.setProperty('Action', 'play_stream') listitem.setProperty('ChannelId', ChannelId) listitem.setProperty('ChannelName', ChannelName) listitem.setProperty('ChannelNumber', ChannelNumberString) listitem.setProperty('ChannelNumberAccent', ChannelNumberAccent) listitem.setProperty('StreamUrl', ChannelStream) listitem.setInfo('music', {'Genre': 'Radio'}) listitem.setArt({ 'thumb': path.icon_radio(ChannelId), 'icon': path.icon_radio(ChannelId) }) listcontainer.addItem(listitem) except: continue #Update the status self.count_radio(True)
def channel_list_load(listContainer, checkStatus=False): var.ChannelIdsPlayable = [] for channel in var.ChannelsDataJsonTelevision['resultObj']['containers']: try: #Load channel basics AssetId = metadatainfo.get_stream_assetid(channel['assets']) ChannelId = metadatainfo.channelId_from_json_metadata(channel) ChannelName = metadatainfo.channelName_from_json_metadata(channel) ChannelIsAdult = metadatainfo.isAdult_from_json_metadata(channel) #Check if channel is streamable if func.string_isnullorempty(AssetId): continue #Add channelId to playable id list var.ChannelIdsPlayable.append(ChannelId) #Check if channel is filtered if var.addon.getSetting('TelevisionChannelNoErotic' ) == 'true' and ChannelIsAdult == True: continue #Check if there are search results if var.SearchFilterTerm != '': searchMatch = func.search_filter_string(ChannelName) searchResultFound = var.SearchFilterTerm in searchMatch if searchResultFound == False: continue #Check if channel is marked as favorite if ChannelId in var.FavoriteTelevisionDataJson: ChannelFavorite = 'true' else: if var.LoadChannelFavoritesOnly == True and var.SearchFilterTerm == '': continue ChannelFavorite = 'false' #Load channel details ExternalId = metadatainfo.externalId_from_json_metadata(channel) ChannelNumber = metadatainfo.orderId_from_json_metadata(channel) ChannelNumberAccent = func.get_provider_color_string( ) + ChannelNumber + '[/COLOR]' ChannelRecordEvent = 'false' ChannelRecordSeries = 'false' ChannelAlarm = 'false' ProgramNowName = 'Informatie wordt geladen' ProgramNextName = 'Informatie wordt geladen' ProgramDescription = 'Programmabeschrijving wordt geladen.' ProgramProgressPercent = '100' if checkStatus == True: #Check if channel has active recording if func.search_channelid_jsonrecording_event(ChannelId, True): ChannelRecordEvent = 'true' #Check if channel has active recording series if func.search_channelid_jsonrecording_series(ChannelId): ChannelRecordSeries = 'true' #Check if channel has active alarm if alarm.alarm_duplicate_channel_check(ChannelId) == True: ChannelAlarm = 'true' #Add normal channel listitem = xbmcgui.ListItem() listitem.setProperty('Action', 'play_stream') listitem.setProperty('AssetId', AssetId) listitem.setProperty('ChannelId', ChannelId) listitem.setProperty('ChannelNumber', ChannelNumber) listitem.setProperty('ChannelNumberAccent', ChannelNumberAccent) listitem.setProperty('ChannelFavorite', ChannelFavorite) listitem.setProperty('ExternalId', ExternalId) listitem.setProperty('ChannelName', ChannelName) listitem.setProperty('ChannelRecordEvent', ChannelRecordEvent) listitem.setProperty('ChannelRecordSeries', ChannelRecordSeries) listitem.setProperty('ChannelAlarm', ChannelAlarm) listitem.setProperty("ProgramNowName", ProgramNowName) listitem.setProperty("ProgramNextName", ProgramNextName) listitem.setProperty("ProgramDescription", ProgramDescription) listitem.setProperty("ProgramProgressPercent", ProgramProgressPercent) listitem.setInfo('video', {'Genre': 'Televisie'}) listitem.setArt({ 'thumb': path.icon_television(ExternalId), 'icon': path.icon_television(ExternalId) }) listContainer.addItem(listitem) except: continue
def search_list(self, downloadResult=None): #Get and check the list container listcontainer = self.getControl(1000) listcontainer.reset() #Add programs to the list for program in downloadResult['resultObj']['containers']: try: #Load program basics ProgramName = metadatainfo.programtitle_from_json_metadata(program) ProgramNameRaw = ProgramName EpisodeTitle = metadatainfo.episodetitle_from_json_metadata(program, True, ProgramNameRaw) #Check if there are search results if var.SearchFilterTerm != '': searchMatch1 = func.search_filter_string(ProgramName) searchMatch2 = func.search_filter_string(EpisodeTitle) searchResultFound = var.SearchFilterTerm in searchMatch1 or var.SearchFilterTerm in searchMatch2 if searchResultFound == False: continue #Load program details ExternalId = metadatainfo.externalChannelId_from_json_metadata(program) ProgramId = metadatainfo.contentId_from_json_metadata(program) ProgramYear = metadatainfo.programyear_from_json_metadata(program) ProgramSeason = metadatainfo.programseason_from_json_metadata(program) ProgramEpisode = metadatainfo.episodenumber_from_json_metadata(program) ProgramAgeRating = metadatainfo.programagerating_from_json_metadata(program) ProgramDuration = metadatainfo.programdurationstring_from_json_metadata(program, False) ProgramDescription = metadatainfo.programdescription_from_json_metadata(program) ProgramTimeStartDateTime = metadatainfo.programstartdatetime_from_json_metadata(program) ProgramTimeStartDateTime = func.datetime_remove_seconds(ProgramTimeStartDateTime) ProgramTimeStartStringTime = ProgramTimeStartDateTime.strftime('%H:%M') ProgramTimeStartStringDate = ProgramTimeStartDateTime.strftime('%a, %d %B %Y') ProgramTime = '[COLOR gray]Begon om ' + ProgramTimeStartStringTime + ' op ' + ProgramTimeStartStringDate + ' en duurde ' + ProgramDuration + '[/COLOR]' ProgramAvailability = metadatainfo.vod_week_available_time(program) #Combine program details stringJoin = [ EpisodeTitle, ProgramYear, ProgramSeason, ProgramEpisode, ProgramAgeRating ] ProgramDetails = ' '.join(filter(None, stringJoin)) if func.string_isnullorempty(ProgramDetails): ProgramDetails = '(?)' #Update program name string ProgramName = ProgramNameRaw + ' [COLOR gray]' + ProgramDetails + '[/COLOR]' ProgramNameDesc = ProgramNameRaw + '\n[COLOR gray]' + ProgramDetails + '[/COLOR]\n' + ProgramAvailability #Add program listitem = xbmcgui.ListItem() listitem.setProperty('Action', 'play_stream') listitem.setProperty('ProgramId', ProgramId) listitem.setProperty("ProgramName", ProgramName) listitem.setProperty("ProgramNameDesc", ProgramNameDesc) listitem.setProperty("ProgramNameRaw", ProgramNameRaw) listitem.setProperty("ProgramDetails", ProgramTime) listitem.setProperty('ProgramDescription', ProgramDescription) listitem.setInfo('video', {'Genre': 'Zoeken', 'Plot': ProgramDescription}) listitem.setArt({'thumb': path.icon_television(ExternalId), 'icon': path.icon_television(ExternalId)}) listcontainer.addItem(listitem) except: continue #Update the status self.count_program(True)