class OriginChannels(): def __init__(self, fhdhr, origin): self.fhdhr = fhdhr self.origin = origin def get_channels(self): self.fhdhr.logger.info("Pulling Unfiltered Channels Lists: %s" % self.origin.channels_json_url) urlopn = self.fhdhr.web.session.get(self.origin.channels_json_url) unfiltered_chan_json = urlopn.json() self.fhdhr.logger.info("Found %s Total Channels Lists" % len(unfiltered_chan_json)) filtered_chan_list = self.filterlist(unfiltered_chan_json) self.fhdhr.logger.info("Found %s Channels Lists after applying filters." % len(filtered_chan_list)) return channel_list = [] return channel_list def filterlist(self, unfiltered_chan_json): filtered_chan_list = [] for channels_item in unfiltered_chan_json: filters_passed = [] for filter_key in list(self.origin.filter_dict.keys()): print(len(self.origin.filter_dict[filter_key])) if not len(self.origin.filter_dict[filter_key]): print(self.origin.filter_dict[filter_key]) filters_passed.append(True) else: if filter_key in ["country", "language"]: if isinstance(channels_item[filter_key], list): if len(channels_item[filter_key]): chan_values = [x["name"] for x in channels_item[filter_key]] else: chan_values = [channels_item[filter_key]["name"]] elif filter_key in ["category"]: chan_values = [channels_item[filter_key]] if not len(chan_values): filters_passed.append(False) else: values_passed = [] for chan_value in chan_values: if str(chan_value).lower() in [x.lower() for x in self.origin.filter_dict[filter_key]]: values_passed.append(True) else: values_passed.append(False) if True in values_passed: filters_passed.append(True) if False not in filters_passed: filtered_chan_list.append(channels_item) if True in filters_passed: print(filters_passed) return filtered_chan_list def get_channel_stream(self, chandict): streamurl = "" return streamurl