def get_actual_programs_locally_(self, requested_count): channels_epg_dict = {} time_now = common.datetime_to_ctime(datetime.datetime.now()) for channel_id, program_dict in self.channels_id_with_programs_dict_.items(): try: program_list = program_dict.get(channel_id, None) current_program_list = [] for program in program_list: if time_now < (program.start_time + program.duration): current_program_list.append(program) if len(current_program_list) == requested_count: break channels_epg_dict[channel_id] = current_program_list except: pass return channels_epg_dict
def get_preview_programs_(self): preview_programs_dict = {} time_now = common.datetime_to_ctime(datetime.datetime.now()) current_dict = data_provider.get_actual_programs(self.PROGRAM_COUNT_) for channel_id, program_list in current_dict.items(): if None != program_list and len(program_list): start_time = program_list[0].start_time end_time = start_time + program_list[0].duration if not (time_now >= start_time and time_now < end_time): program_list.insert(0, None) for i, v in enumerate(program_list[:-1]): if program_list[i] and program_list[i + 1].start_time != (program_list[i].start_time + program_list[i].duration): program_list.insert(i + 1, None) program_list += [None,] * (self.PROGRAM_COUNT_ - 1) program_list = program_list[:self.PROGRAM_COUNT_] preview_programs_dict[channel_id] = program_list return preview_programs_dict
def create_channel_epg_list_(self): oc = ObjectContainer( no_history = True, no_cache = True, title1 = IDS_GUIDE_MENU_ITEM, title2 = self.channel_name_, art = R(helper.ART_TV_GUIDE)) time_now = common.datetime_to_ctime(datetime.datetime.now()) programs_dict = data_provider.get_channel_epg(self.channel_id_) self.recording_list_ = data_provider.get_recordings() if None != programs_dict and programs_dict.has_key(self.channel_id_): channel_programs = programs_dict[self.channel_id_] for program in channel_programs: if time_now < program.start_time + program.duration: program_object = self.create_program_item_(program) oc.add(program_object) return oc
def create_program_list_(self, programs_dict, title_1, title_2): oc = ObjectContainer(no_history=True, no_cache=True, title1=title_1, title2=title_2, art=R(helper.ART_SEARCH)) time_now = common.datetime_to_ctime(datetime.datetime.now()) channels = data_provider.get_channels() #stream_info_dict = data_provider.get_stream_info() self.recording_list_ = data_provider.get_recordings(False) if len(programs_dict) and len(channels): program_list = self.get_programs_(programs_dict) for list_item in program_list: channel = common.search_channel(channels, list_item[0]) if channel: program = list_item[1] if time_now < program.start_time + program.duration: program_object = self.create_program_item_( program, channel) oc.add(program_object) return oc
def create_program_list_(self, programs_dict, title_1, title_2): oc = ObjectContainer( no_history = True, no_cache = True, title1 = title_1, title2 = title_2, art = R(helper.ART_SEARCH)) time_now = common.datetime_to_ctime(datetime.datetime.now()) channels = data_provider.get_channels() #stream_info_dict = data_provider.get_stream_info() self.recording_list_ = data_provider.get_recordings(False) if len(programs_dict) and len(channels): program_list = self.get_programs_(programs_dict) for list_item in program_list: channel = common.search_channel(channels, list_item[0]) if channel: program = list_item[1] if time_now < program.start_time + program.duration: program_object = self.create_program_item_(program, channel) oc.add(program_object) return oc
def get_preview_programs_(self): preview_programs_dict = {} time_now = common.datetime_to_ctime(datetime.datetime.now()) current_dict = data_provider.get_actual_programs(self.PROGRAM_COUNT_) for channel_id, program_list in current_dict.items(): if None != program_list and len(program_list): start_time = program_list[0].start_time end_time = start_time + program_list[0].duration if not (time_now >= start_time and time_now < end_time): program_list.insert(0, None) for i, v in enumerate(program_list[:-1]): if program_list[i] and program_list[i + 1].start_time != ( program_list[i].start_time + program_list[i].duration): program_list.insert(i + 1, None) program_list += [ None, ] * (self.PROGRAM_COUNT_ - 1) program_list = program_list[:self.PROGRAM_COUNT_] preview_programs_dict[channel_id] = program_list return preview_programs_dict
def get_actual_programs_remotely_(self, requsted_count): time_now = datetime.datetime.now() start_time = common.datetime_to_ctime(time_now) end_time = common.datetime_to_ctime(time_now + datetime.timedelta(days=1)) searcher = EpgSearcher(start_time=start_time, end_time=end_time, requested_count=requsted_count, epg_short=True) return self.http_data_provider_.search_epg(searcher)
def search_epg_(self, channel_id): time_now = datetime.datetime.now() start_time = common.datetime_to_ctime(time_now) end_time = common.datetime_to_ctime(time_now + datetime.timedelta(days=self.epg_of_days_)) searcher = EpgSearcher(channels_ids=[channel_id], start_time=start_time, end_time=end_time) return self.http_data_provider_.search_epg(searcher)