class Channel: def __init__(self, name, web, resolution, logo, epg_id): self.name = name self.web = web self.resolution = resolution self.logo = logo self.epg_id = epg_id self.options = [] def add_option(self, format, url): self.options.append(self.Web(format, url)) def get_name(self): return self.name def get_resolution(self): return self.get_resolution def get_logo(self): return self.logo def get_epg(self): return self.epg_id def get_options(self): return self.options def __str__(self): options_string = "" for option in self.options: options_string += "[Format: " + option.get_format() + ", URL: " + option.get_url() + "]" return self.name + " " + options_string def __options_to_json__(self): options_list = [] for option in self.options: options_list.append(option.to_json()) return options_list def to_json(self): return { "name": self.name, "web": self.web, "logo": self.logo, "resolution": self.resolution, "epg_id": self.epg_id, "options": self.__options_to_json__() } def to_m3u8(self, ambit, option): info = '#EXTINF:-1' if self.epg_id != "": info += ' tvg-id="' + self.epg_id + '"' if self.logo != "": info += ' tvg-logo="' + self.logo + '"' if ambit != "": info += ' group-title="' + ambit + '"' info += ', ' + self.name info += '\n' + option.get_url() + '\n' return info class Web: def __init__(self, format, url): self.format = format self.url = url def is_m3u8_valid(self): return self.format == "m3u8" def get_format(self): return self.format def get_url(self): return self.url def __str__(self): return self.format + ", " + self.url def to_json(self): return { "format": self.format, "url": self.url }