def set_service_name(_config, _sid_data): updated_chnum = utils.wrap_chnum(str(_sid_data['display_number']), _sid_data['namespace'], _sid_data['instance'], _config) service_name = updated_chnum + \ ' ' + _sid_data['display_name'] return service_name
def gen_channel_xml(self, _et_root, _channel_list): sids_processed = [] for sid, sid_data_list in _channel_list.items(): if sid in sids_processed: continue sids_processed.append(sid) for ch_data in sid_data_list: if not ch_data['enabled']: break updated_chnum = utils.wrap_chnum(ch_data['display_number'], ch_data['namespace'], ch_data['instance'], self.config) c_out = EPG.sub_el(_et_root, 'channel', id=sid) EPG.sub_el(c_out, 'display-name', _text='%s %s' % (updated_chnum, ch_data['display_name'])) EPG.sub_el(c_out, 'display-name', _text='%s %s' % (updated_chnum, ch_data['json']['callsign'])) EPG.sub_el(c_out, 'display-name', _text=updated_chnum) EPG.sub_el(c_out, 'display-name', _text=ch_data['json']['callsign']) EPG.sub_el(c_out, 'display-name', _text=ch_data['display_name']) if self.config['epg']['epg_channel_icon']: EPG.sub_el(c_out, 'icon', src=ch_data['thumbnail']) break return _et_root
def set_service_name(self, _channel_dict): updated_chnum = utils.wrap_chnum(str(_channel_dict['number']), _channel_dict['namespace'], _channel_dict['instance'], self.plugins.config_obj.data) service_name = updated_chnum + \ ' ' + _channel_dict['display_name'] return service_name
def get_channels_m3u(_config, _base_url, _namespace, _instance): format_descriptor = '#EXTM3U' record_marker = '#EXTINF' db = DBChannels(_config) ch_data = db.get_channels(_namespace, _instance) fakefile = StringIO() fakefile.write('%s\n' % format_descriptor) sids_processed = [] for sid, sid_data_list in ch_data.items(): for sid_data in sid_data_list: if sid in sids_processed: continue sids_processed.append(sid) if not sid_data['enabled']: continue # NOTE tvheadend supports '|' separated names in two attributes # either 'group-title' or 'tvh-tags' # if a ';' is used in group-title, tvheadend will use the # entire string as a tag groups = sid_data['namespace'] if sid_data['json']['groups_other']: groups += '|' + '|'.join(sid_data['json']['groups_other']) if sid_data['json']['HD']: if sid_data['json']['group_hdtv']: groups += '|' + sid_data['json']['group_hdtv'] elif sid_data['json']['group_sdtv']: groups += '|' + sid_data['json']['group_sdtv'] updated_chnum = utils.wrap_chnum(str(sid_data['display_number']), sid_data['namespace'], sid_data['instance'], _config) service_name = set_service_name(_config, sid_data) fakefile.write( '%s\n' % (record_marker + ':-1' + ' ' + 'channelID=\'' + sid + '\' ' + 'tvg-num=\'' + updated_chnum + '\' ' + 'tvg-chno=\'' + updated_chnum + '\' ' + 'tvg-name=\'' + sid_data['display_name'] + '\' ' + 'tvg-id=\'' + sid + '\' ' + (('tvg-logo=\'' + sid_data['thumbnail'] + '\' ') if sid_data['thumbnail'] else '') + 'group-title=\'' + groups + '\',' + service_name)) fakefile.write( '%s\n' % (('%s%s/%s/watch/%s' % ('http://', _base_url, sid_data['namespace'], str(sid))))) return fakefile.getvalue()
def get_channels_xml(_config, _base_url, _namespace, _instance): db = DBChannels(_config) ch_data = db.get_channels(_namespace, _instance) return_xml = '' sids_processed = [] for sid, sid_data_list in ch_data.items(): for sid_data in sid_data_list: if sid in sids_processed: continue sids_processed.append(sid) if not sid_data['enabled']: continue updated_chnum = utils.wrap_chnum(str(sid_data['display_number']), sid_data['namespace'], sid_data['instance'], _config) return_xml = return_xml + \ ch_templates['xmlLineup'].format( updated_chnum, escape(sid_data['display_name']), _base_url + '/' + sid_data['namespace'] + '/watch/' + sid, sid_data['json']['HD']) return "<Lineup>" + return_xml + "</Lineup>"