def getProgramItems(section_name, url=None): """ Returns a list of program items for a show. Program items have 'title', 'thumbnail', 'url' and 'info' keys. """ if not url: url = "/" html = getPage(url + "?sida=2") video_list_class = "[^\"']*play_videolist[^\"']*" container = common.parseDOM(html, "div", attrs = { "id" : section_name }) if not container: helper.errorMsg("No container found for section "+section_name+"!") return None container = container[0] item_class = "[^\"']*play_vertical-list__item[^\"']*" items = common.parseDOM(container, "li", attrs = { "class" : item_class }) if not items: helper.errorMsg("No items found in container \""+section_name+"\"") return None new_articles = [] for index, item in enumerate(items): live_item = False if "play_live-countdown" in item: live_item = True helper.infoMsg("Skipping live item!") continue info = {} new_article = {} title = common.parseDOM(item, "a", attrs = { "class" : "[^\"']*play_vertical-list__header-link[^\"']*" })[0] plot = common.parseDOM(item, "p", attrs = { "class" : "[^\"']*play_vertical-list__description-text[^\"']*" })[0] new_article["url"] = common.parseDOM(item, "a", attrs = { "class": "[^\"']*play_vertical-list__header-link[^\"']*" }, ret = "href")[0] thumbnail = common.parseDOM(item, "img", attrs = { "class": "[^\"']*play_vertical-list__image[^\"']*" }, ret = "src")[0] new_article["thumbnail"] = helper.prepareThumb(thumbnail, baseUrl=BASE_URL) duration = common.parseDOM(item, "time", attrs = {}, )[0] aired = common.parseDOM(item, "p", attrs = { "class" : "[^\"']*play_vertical-list__meta-info[^\"']*" }) if aired: aired = aired[0].replace("Publicerades ", "") else: # Some items does not contain this meta data aired = "" plot = common.replaceHTMLCodes(plot) new_article["title"] = title info["title"] = title info["plot"] = plot info["aired"] = helper.convertDate(aired) info["duration"] = helper.convertDuration(duration) info["fanart"] = helper.prepareFanart(thumbnail, baseUrl=BASE_URL) new_article["info"] = info new_articles.append(new_article) return new_articles
def getArticles(section_name, url=None): """ Returns a list of the articles in a section as program items. Program items have 'title', 'thumbnail', 'url' and 'info' keys. """ if not url: url = "/" html = getPage(url) video_list_class = "[^\"']*play_videolist[^\"']*" container = common.parseDOM(html, "div", attrs = { "class" : video_list_class, "id" : section_name }) if not container: helper.errorMsg("No container found for section "+section_name+"!") return None container = container[0] article_class = "[^\"']*play_videolist-element[^\"']*" articles = common.parseDOM(container, "article", attrs = { "class" : article_class }) titles = common.parseDOM(container, "article", attrs = { "class" : article_class }, ret = "data-title") plots = common.parseDOM(container, "article", attrs = { "class" : article_class }, ret = "data-description") airtimes = common.parseDOM(container, "article", attrs = { "class" : article_class }, ret = "data-broadcasted") if section_name == SECTION_LATEST_CLIPS: airtimes = common.parseDOM(container, "article", attrs = { "class" : article_class }, ret = "data-published") durations = common.parseDOM(container, "article", attrs = { "class" : article_class }, ret = "data-length") new_articles = [] if not articles: helper.errorMsg("No articles found for section '"+section_name+"' !") return None for index, article in enumerate(articles): info = {} new_article = {} plot = plots[index] aired = airtimes[index] duration = durations[index] title = titles[index] new_article["url"] = common.parseDOM(article, "a", attrs = { "class": "[^\"']*play_videolist-element__link[^\"']*" }, ret = "href")[0] thumbnail = common.parseDOM(article, "img", attrs = { "class": "[^\"']*play_videolist-element__thumbnail-image[^\"']*" }, ret = "src")[0] new_article["thumbnail"] = helper.prepareThumb(thumbnail, baseUrl=BASE_URL) if section_name == SECTION_LIVE_PROGRAMS: notlive = common.parseDOM(article, "span", attrs = {"class": "[^\"']*play_graphics-live[^\"']*is-inactive[^\"']*"}) if notlive: new_article["live"] = False else: new_article["live"] = True title = common.replaceHTMLCodes(title) plot = common.replaceHTMLCodes(plot) new_article["title"] = title info["title"] = title info["plot"] = plot info["aired"] = helper.convertDate(aired) info["duration"] = helper.convertDuration(duration) info["fanart"] = helper.prepareFanart(thumbnail, baseUrl=BASE_URL) new_article["info"] = info new_articles.append(new_article) return new_articles