58 lines
2.0 KiB
Python
58 lines
2.0 KiB
Python
|
|
|
|
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()):
|
|
|
|
if len(self.origin.filter_dict[filter_key]):
|
|
|
|
if filter_key in ["country", "language"]:
|
|
try:
|
|
chan_value = channels_item[filter_key]["name"]
|
|
except TypeError:
|
|
chan_value = None
|
|
elif filter_key in ["category"]:
|
|
chan_value = channels_item[filter_key]
|
|
|
|
if not chan_value:
|
|
filters_passed.append(False)
|
|
elif str(chan_value).lower() in [x.lower() for x in self.origin.filter_dict[filter_key]]:
|
|
filters_passed.append(True)
|
|
else:
|
|
filters_passed.append(False)
|
|
|
|
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
|