コード例 #1
0
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
コード例 #2
0
    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
コード例 #3
0
 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
コード例 #4
0
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()
コード例 #5
0
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>"