def channel(channel_id: str): """Load stream for the required channel id""" log('Loading channel {}'.format(channel_id), LogLevel.INFO) stream = get_provider().get_stream_info(channel_id) if not stream: ok_dialog(localize(30900)) return is_helper = inputstreamhelper.Helper(stream['manifest_type'], drm=stream['drm']) if not is_helper.check_inputstream(): ok_dialog(localize(30901)) return listitem = xbmcgui.ListItem(path=stream['path']) listitem.setMimeType(stream['mime_type']) listitem.setProperty('inputstream', 'inputstream.adaptive') listitem.setProperty('inputstream.adaptive.manifest_type', stream['manifest_type']) listitem.setProperty('inputstream.adaptive.manifest_update_parameter', 'full') listitem.setProperty('inputstream.adaptive.license_type', stream['license_type']) listitem.setProperty('inputstream.adaptive.license_key', stream['license_key']) xbmcplugin.setResolvedUrl(plugin.handle, True, listitem=listitem)
def load_hypervisors(self): """Load hypervisors as configured.""" provider = get_provider(self.config['provider']) self.hypervisors = [] for index, host in enumerate(self.config.get('hypervisors')): hypervisor = provider.Hypervisor(self.config, host, index + 1) self.hypervisors.append(hypervisor) # subset selection for conductors and routers: assign round robin num_hypervisors = len(self.hypervisors) if self.high_available: # specify the hypervisors for the conductor self.hypervisors_conductor = [ self.hypervisors[i % num_hypervisors] for i in (0, 1) ] # specify the hypervisors for the headend self.hypervisors_headend = [ self.hypervisors[i % num_hypervisors] for i in (2, 3) ] else: # specify the hypervisor for the conductor self.hypervisors_conductor = [ self.hypervisors[0 % num_hypervisors] ] self.hypervisors_headend = [self.hypervisors[1 % num_hypervisors]]
def load_hypervisors(self): """Load hypervisors as configured.""" provider = get_provider(self.config['provider']) self.hypervisors = [] for index, host in enumerate(self.config.get('hypervisors')): hypervisor = provider.Hypervisor(self.config, host, index + 1) self.hypervisors.append(hypervisor) # TODO: subset selection to be implemented # (round-robin, random, most resources, ...) # specify the hypervisors for the conductor self.hypervisors_conductor = self.hypervisors # specify the hypervisors for the headend self.hypervisors_headend = self.hypervisors
def run(): """Run data generators""" log('Updating data...', LogLevel.INFO) provider = get_provider() filepath = os.path.join(xbmcvfs.translatePath(get_addon_profile()), 'playlist.m3u8') log(filepath, LogLevel.DEBUG) PlaylistGenerator(provider=provider).write(filepath=filepath) filepath = os.path.join(xbmcvfs.translatePath(get_addon_profile()), 'epg.xml') log(filepath, LogLevel.DEBUG) EPGGenerator(provider=provider).write(filepath=filepath) log('Channels and programs data updated', LogLevel.INFO)
def iptv_epg(): """Return JSON-EPG formatted data for all live channel EPG data""" log('Loading EPG for IPTV Manager', LogLevel.INFO) port = int(plugin.args.get('port')[0]) IPTVManager(port, get_provider()).send_epg()
def iptv_channels(): """Return JSON-STREAMS formatted data for all live channels""" log('Loading channels for IPTV Manager', LogLevel.INFO) port = int(plugin.args.get('port')[0]) IPTVManager(port, get_provider()).send_channels()