def extract_json(self, data): """ Performs pre-process actions for data processing. Accepts an data from the process_folder_list method, BEFORE the items are processed. Allows setting of parameters (like title etc) for the channel. Inside this method the <data> could be changed and additional items can be created. The return values should always be instantiated in at least ("", []). :param str data: The retrieve data that was loaded for the current item and URL. :return: A tuple of the data and a list of MediaItems that were generated. :rtype: tuple[str|JsonHelper,list[MediaItem]] """ Logger.info("Performing Pre-Processing") items = [] json_data = Regexer.do_regex('type="application/json">([^<]+)<', data) if not json_data: Logger.warning("No JSON data found.") return data, items json = JsonHelper(json_data[0]) result = [] for key, value in json.json.items(): result.append(value) value["title"] = key # set new json and return JsonHelper object json.json = result return json, items
def load_all_episodes(self, data): episodes_json = [] data, items = self.add_live_channel(data) for i in range(0, 20): url = "https://at5news.vinsontv.com/api/news?source=web&slug=tv&page={}".format( i) data = UriHandler.open(url, proxy=self.proxy) json_data = JsonHelper(data) item_data = json_data.get_value("category", "news", fallback=[]) episodes_json += item_data if len(item_data) < json_data.get_value("pageSize"): break dummy = JsonHelper("{}") dummy.json = episodes_json return dummy, items
def extract_live_channel_data(self, data): """ Adds the channel items to the listing. :param str data: The retrieve data that was loaded for the current item and URL. :return: A tuple of the data and a list of MediaItems that were generated. :rtype: tuple[str|JsonHelper,list[MediaItem]] """ json_string, _ = self.extract_json_data(data) json_data = JsonHelper(json_string) channels = json_data.get_value("channelsPage", "schedule") channel_list = [] for channel_name, channel_data in channels.items(): if "channel" not in channel_data: continue channel_list.append(channel_data) json_data.json = channel_list return json_data, []