This commit is contained in:
deathbybandaid 2020-12-09 11:24:48 -05:00
parent 1a3e06ae12
commit fa513a0a89

View File

@ -6,30 +6,21 @@ class OriginChannels():
self.fhdhr = fhdhr self.fhdhr = fhdhr
self.origin = origin self.origin = origin
""" self.unfiltered_chan_json = None
{ self.filtered_chan_list = None
'name': '23 ABC (KERO)',
'logo': 'https://scripps.com/wp-content/uploads/2019/01/local_media_23_abc.png',
'url': 'https://content.uplynk.com/channel/ff809e6d9ec34109abfb333f0d4444b5.m3u8',
'category': 'Local',
'language': [{'code': 'eng', 'name': 'English'}],
'country': {'code': 'us', 'name': 'United States'},
'tvg': {'id': None, 'name': None, 'url': None}}
"""
def get_channels(self): def get_channels(self):
channel_list = [] channel_list = []
self.fhdhr.logger.info("Pulling Unfiltered Channels: %s" % self.origin.channels_json_url) self.fhdhr.logger.info("Pulling Unfiltered Channels: %s" % self.origin.channels_json_url)
urlopn = self.fhdhr.web.session.get(self.origin.channels_json_url) self.unfiltered_chan_json = self.get_unfiltered_chan_json()
unfiltered_chan_json = urlopn.json() self.fhdhr.logger.info("Found %s Total Channels" % len(self.unfiltered_chan_json))
self.fhdhr.logger.info("Found %s Total Channels" % len(unfiltered_chan_json))
filtered_chan_list = self.filterlist(unfiltered_chan_json) self.filtered_chan_list = self.filterlist()
self.fhdhr.logger.info("Found %s Channels after applying filters." % len(filtered_chan_list)) self.fhdhr.logger.info("Found %s Channels after applying filters." % len(self.filtered_chan_list))
for channel_dict in filtered_chan_list: for channel_dict in self.filtered_chan_list:
clean_station_item = { clean_station_item = {
"name": channel_dict["name"], "name": channel_dict["name"],
"id": channel_dict["name"], "id": channel_dict["name"],
@ -39,9 +30,23 @@ class OriginChannels():
return channel_list return channel_list
def filterlist(self, unfiltered_chan_json): def get_channel_stream(self, chandict):
if not self.filtered_chan_list:
self.filtered_chan_list = self.filterlist()
streamdict = self.get_channel_dict(self.filtered_chan_list, "name", chandict["origin_name"])
streamurl = streamdict["url"]
return streamurl
def get_unfiltered_chan_json(self):
urlopn = self.fhdhr.web.session.get(self.origin.channels_json_url)
return urlopn.json()
def filterlist(self):
if not self.unfiltered_chan_json:
self.unfiltered_chan_json = self.get_unfiltered_chan_json()
filtered_chan_list = [] filtered_chan_list = []
for channels_item in unfiltered_chan_json: for channels_item in self.unfiltered_chan_json:
filters_passed = [] filters_passed = []
for filter_key in list(self.origin.filter_dict.keys()): for filter_key in list(self.origin.filter_dict.keys()):
@ -84,12 +89,5 @@ class OriginChannels():
return filtered_chan_list return filtered_chan_list
def get_channel_stream(self, chandict):
urlopn = self.fhdhr.web.session.get(self.origin.channels_json_url)
chan_json = urlopn.json()
streamdict = self.get_channel_dict(chan_json, "name", chandict["origin_name"])
streamurl = streamdict["url"]
return streamurl
def get_channel_dict(self, chanlist, keyfind, valfind): def get_channel_dict(self, chanlist, keyfind, valfind):
return next(item for item in chanlist if item[keyfind] == valfind) or None return next(item for item in chanlist if item[keyfind] == valfind) or None