mirror of
https://github.com/fHDHR/fHDHR_NextPVR.git
synced 2025-12-06 15:26:57 -05:00
62 lines
2.5 KiB
Python
62 lines
2.5 KiB
Python
import xmltodict
|
|
import json
|
|
|
|
|
|
class OriginChannels():
|
|
|
|
def __init__(self, fhdhr, origin):
|
|
self.fhdhr = fhdhr
|
|
self.origin = origin
|
|
|
|
def get_channel_thumbnail(self, channel_id):
|
|
channel_thumb_url = ("%s%s:%s/service?method=channel.icon&channel_id=%s" %
|
|
("https://" if self.fhdhr.config.dict["origin"]["ssl"] else "http://",
|
|
self.fhdhr.config.dict["origin"]["address"],
|
|
str(self.fhdhr.config.dict["origin"]["port"]),
|
|
str(channel_id)
|
|
))
|
|
return channel_thumb_url
|
|
|
|
def get_channels(self):
|
|
|
|
data_url = ('%s%s:%s/service?method=channel.list&sid=%s' %
|
|
("https://" if self.fhdhr.config.dict["origin"]["ssl"] else "http://",
|
|
self.fhdhr.config.dict["origin"]["address"],
|
|
str(self.fhdhr.config.dict["origin"]["port"]),
|
|
self.origin.sid
|
|
))
|
|
|
|
data_req = self.fhdhr.web.session.get(data_url)
|
|
data_dict = xmltodict.parse(data_req.content)
|
|
|
|
if 'channels' not in list(data_dict['rsp'].keys()):
|
|
self.fhdhr.logger.error("Could not retrieve channel list")
|
|
return []
|
|
|
|
channel_o_list = data_dict['rsp']['channels']['channel']
|
|
|
|
channel_list = []
|
|
for c in channel_o_list:
|
|
dString = json.dumps(c)
|
|
channel_dict = eval(dString)
|
|
|
|
clean_station_item = {
|
|
"name": channel_dict["name"],
|
|
"callsign": channel_dict["name"],
|
|
"number": channel_dict["formatted-number"],
|
|
"id": channel_dict["id"],
|
|
"thumbnail": self.get_channel_thumbnail(channel_dict["id"])
|
|
}
|
|
channel_list.append(clean_station_item)
|
|
return channel_list
|
|
|
|
def get_channel_stream(self, chandict):
|
|
streamurl = ('%s%s:%s/live?channel_id=%s&client=%s' %
|
|
("https://" if self.fhdhr.config.dict["origin"]["ssl"] else "http://",
|
|
self.fhdhr.config.dict["origin"]["address"],
|
|
str(self.fhdhr.config.dict["origin"]["port"]),
|
|
str(chandict["origin_id"]),
|
|
"fhdhr_" + str(chandict["origin_number"]),
|
|
))
|
|
return streamurl
|