def dictOfMainDirs(filtres): liste = [] liste.append({ 'genreId': -2, 'nom': '[B]Populaires[/B]', 'url': POPULAIRE_URL, 'resume': 'Les videos populaires du moment.' }) liste.append({ 'genreId': -1, 'nom': '[B]Dossiers[/B]', 'url': DOSSIERS_URL, 'resume': 'Des segments abordant un sujet commun.' }) for item in liste: item['isDir'] = True item['nom'] = urllib2.unquote(item['nom']) item['image'] = xbmcaddon.Addon().getAddonInfo('path') + '/icon.png' item['fanart'] = xbmcaddon.Addon().getAddonInfo('path') + '/fanart.jpg' item['filtres'] = parse.getCopy(filtres) item['filtres']['content']['genreId'] = item['genreId'] item['filtres']['show'] = {} item['filtres']['fullNameItems'].append('nomDuShow') return liste
def dictOfPopulaires(filtres): liste = [{ 'genreId': -21, 'nom': 'Populaires en ce moment', 'url': 'Day/', 'resume': 'Les videos populaires en ce moment.' }] liste.append({ 'genreId': -22, 'nom': 'Populaires cette semaine', 'url': 'Week/', 'resume': 'Les videos populaires cette semaine.' }) liste.append({ 'genreId': -23, 'nom': 'Populaires depuis 1 mois', 'url': 'Month/', 'resume': 'Les videos populaires depuis 1 mois.' }) for item in liste: item['isDir'] = True item['nom'] = urllib2.unquote(item['nom']) item['image'] = xbmcaddon.Addon().getAddonInfo('path') + '/icon.png' item['fanart'] = xbmcaddon.Addon().getAddonInfo('path') + '/fanart.jpg' item['filtres'] = parse.getCopy(filtres) item['filtres']['content']['genreId'] = item['genreId'] item['filtres']['content']['url'] = item['url'] item['filtres']['show'] = {} item['filtres']['fullNameItems'].append('nomDuShow') return liste
def dictOfGenres(filtres): liste = [] liste.append({ 'genreId': 0, 'nom': '[B]A %C3%A0 Z - Toutes les cat%C3%A9gories[/B]', 'resume': 'Tout le contenu disponible.' }) liste.append({ 'genreId': 1, 'nom': 'Documentaires', 'resume': 'Les documentaires.' }) liste.append({ 'genreId': 2, 'nom': 'Famille', 'resume': 'Pour toute la famille.' }) liste.append({'genreId': 3, 'nom': 'Films', 'resume': 'Les films.'}) liste.append({ 'genreId': 6, 'nom': 'Jeunesse - tout-petits', 'resume': 'Pour les petits.' }) liste.append({ 'genreId': 4, 'nom': 'Jeunesse - grands', 'resume': 'Pour les plus grands.' }) liste.append({ 'genreId': 5, 'nom': 'Jeunesse - plus grands', 'resume': 'Pour les vraiment grands.' }) liste.append({ 'genreId': 7, 'nom': 'Magazines', 'resume': 'Les magasines.' }) liste.append({ 'genreId': 9, 'nom': 'S%C3%A9ries de fiction', 'resume': 'La fiction.' }) liste.append({ 'genreId': 10, 'nom': 'Vari%C3%A9t%C3%A9s', 'resume': 'Pour se divertir.' }) for item in liste: item['isDir'] = True item['nom'] = urllib2.unquote(item['nom']) item['url'] = AZ_URL item['image'] = xbmcaddon.Addon().getAddonInfo('path') + '/icon.png' item['fanart'] = xbmcaddon.Addon().getAddonInfo('path') + '/fanart.jpg' item['filtres'] = parse.getCopy(filtres) item['filtres']['content']['genreId'] = item['genreId'] return liste
def dictOfMainDirs(filtres): liste = [{'genreId': -1, 'nom': '-- Dossiers --', 'url': DOSSIERS_URL,'resume':'Des segments abordant un sujet commun.'}] #liste.append({'genreId': -2, 'nom': '-- Populaires --', 'url' : POPULAIRE_URL}) #liste.append({'genreId': -3, 'nom': '-- R%C3%A9cents --', 'url' : RECENTS_URL}) for item in liste : item['isDir']= True item['nom']= urllib2.unquote(item['nom']) item['image']=xbmcaddon.Addon().getAddonInfo('path')+'/icon.png' item['fanart']=xbmcaddon.Addon().getAddonInfo('path')+'/fanart.jpg' item['filtres']= parse.getCopy(filtres) item['filtres']['content']['genreId'] = item['genreId'] item['filtres']['show']={} item['filtres']['fullNameItems'].append('nomDuShow') return liste
def dictOfMainDirs(filtres): liste = [] #liste = [{'genreId': -1, 'nom': '-- EN DIRECT --', 'url': DOSSIERS_URL,'resume':'Aucune emission est en direct presentement'}] for item in liste: item['isDir'] = True item['forceSort'] = True item['nom'] = urllib2.unquote(item['nom']) item['image'] = xbmcaddon.Addon().getAddonInfo('path') + '/icon.png' item['fanart'] = xbmcaddon.Addon().getAddonInfo('path') + '/fanart.jpg' item['filtres'] = parse.getCopy(filtres) item['filtres']['content']['genreId'] = item['genreId'] item['filtres']['show'] = {} item['filtres']['fullNameItems'].append('nomDuShow') return liste
def formatListe(liste, filtres): newListe = [] for item in liste: newItem = {} newItem['isDir'] = True newItem['nom'] = item['view']['title'] newItem['mediaBundleId'] = item['mediaBundleId'] newItem['url'] = MEDIA_BUNDLE_URL + str(item['mediaBundleId']) newItem['image'] = getThumbnails(item) newItem['genreId'] = '' newItem['nomComplet'] = item['view']['title'] newItem['resume'] = item['view']['description'] newItem['fanart'] = getFanArt(item) newItem['filtres'] = parse.getCopy(filtres) newItem['filtres']['content']['mediaBundleId'] = item['mediaBundleId'] newListe.append(newItem) return newListe
def dictOfGenres(filtres): liste = [{'genreId': 0, 'nom': 'A %C3%A0 Z - Toutes les cat%C3%A9gories','resume':'Tout le contenu disponible.'}] liste.append({'genreId': 1, 'nom': 'Documentaires','resume':'Les documentaires.'}) liste.append({'genreId': 2, 'nom': 'Famille', 'resume':'Pour toute la famill.e'}) liste.append({'genreId': 3, 'nom': 'Films','resume':'Les films.'}) liste.append({'genreId': 6, 'nom': 'Jeunesse - tout-petits','resume':'Pour les petits.'}) liste.append({'genreId': 4, 'nom': 'Jeunesse - grands','resume':'Pour les plus grands.'}) liste.append({'genreId': 5, 'nom': 'Jeunesse - plus grands','resume':'Pour les vraiment grands.'}) liste.append({'genreId': 7, 'nom': 'Magazines','resume':'Les magasines.'}) liste.append({'genreId': 9, 'nom': 'S%C3%A9ries de fiction','resume':'La fiction.'}) liste.append({'genreId': 10, 'nom': 'Vari%C3%A9t%C3%A9s','resume':'Pour se divertir.'}) for item in liste : item['isDir']= True item['nom']= urllib2.unquote(item['nom']) item['url'] = AZ_URL item['image']=xbmcaddon.Addon().getAddonInfo('path')+'/icon.png' item['fanart']=xbmcaddon.Addon().getAddonInfo('path')+'/fanart.jpg' item['filtres'] = parse.getCopy(filtres) item['filtres']['content']['genreId'] = item['genreId'] return liste
def dictOfGenres(filtres): log("dictOfGenres") liste = [] log("contenu") contenu = cache.get_cached_content( BASE_URL + "/configurations?uuid=5a0f10e5f31d1a2&gid=&appId=5955fc5423eec60006c951ef&locale=en", False) log(contenu) config = json.loads(contenu, encoding='utf-8') #elems = ET.fromstring(data) #startpage = elems.findtext( "startPage" ) #log(startpage) #cat_scrapers = elems.find( "scrapers" ).findall( "entry" ) #soup = BeautifulStoneSoup(config, convertEntities=BeautifulStoneSoup.XML_ENTITIES) log(config) #id de la page de démarrage startPage = config['startPage'] log(startPage) policyKey = config['policyKey'] xbmcaddon.Addon().setSetting('policyKey', policyKey) log(policyKey) accueil = json.loads(cache.get_cached_content( BASE_URL + "/page/" + startPage + "?uuid=5a0f10e5f31d1a2&gid=&appId=5955fc5423eec60006c951ef&locale=en"), encoding='utf-8') #soup_data = BeautifulStoneSoup(data, convertEntities=BeautifulStoneSoup.XML_ENTITIES) log("---accueil----") log(accueil) containers = accueil['container'] menu = config['menu']['menuItems'] #menu = soup.findAll('menuitems') #log(menu) #cartes = soup.findAll("div", { "class" : "card" }) #cartes = soup.findAll("div", {'class': re.compile(r'\card\b')}) i = 1 for carte in menu: log("u(carte['title'])") log(carte) log(u(carte['title'])) #pageid if 'pageId' in carte: #log(carte.findAll("img")[0]['src']) #log("------------------------------") newItem = { 'genreId': i, 'nom': u(carte['title']), 'resume': ".", #getDescription(carte.findAll("a")[0]['href']), 'image': None, #BASE_URL + carte.findAll("img")[0]['src'], 'url': u(carte['pageId']), 'filtres': parse.getCopy(filtres) } newItem['filtres']['content']['url'] = carte['pageId'] if u(carte['title']) == "Rattrapage" or u( carte['title']) == "Thématiques": liste.append(newItem) else: newItem['nom'] = newItem['nom'] + " - NON FONCTIONNEL" liste.append(newItem) #for carte in containers : # # if 'title' in carte: # log("carte['title']") # # log(u(carte['title'])) # #pageid # # # #log(carte.findAll("img")[0]['src']) # #log("------------------------------") # newItem = { 'genreId': i, # 'nom': u(carte['title']), # 'resume': ".", #getDescription(carte.findAll("a")[0]['href']), # 'image' : None, #BASE_URL + carte.findAll("img")[0]['src'], # 'url' : "self", # 'filtres' : parse.getCopy(filtres) # } # # newItem['filtres']['content']['url'] = "self" # # liste.append(newItem) for item in liste: item['isDir'] = True item['forceSort'] = False item['nom'] = urllib2.unquote(item['nom']) #item['url'] = item['url'] or None item['image'] = item['image'] or xbmcaddon.Addon().getAddonInfo( 'path') + '/icon.png' item['fanart'] = xbmcaddon.Addon().getAddonInfo('path') + '/fanart.jpg' #item['filtres'] = parse.getCopy(filtres) item['filtres']['content']['genreId'] = item['genreId'] #log(liste) #while num_threads > 0: # pass return liste
def AjouterSectionAListe(section, infoDict, filtres): liste = [] #for carte in section : #carte = carte.parent #log(u(carte.getText())) #log(carte.findAll("img")[0]['src']) #log("------------------------------") if 'video-duration' in infoDict: duration = -1 duration = int(infoDict['video-duration']) / 1000 url = infoDict['assetId'] newItem = { 'genreId': 1, 'nom': u(infoDict['title']), 'resume': "", 'image': infoDict['image-background'], 'url': url, 'sourceUrl': url, 'duree': duration, 'filtres': parse.getCopy(filtres) } if 'description' in infoDict: newItem['resume'] = u(infoDict['description']) elif 'shortDescription' in infoDict: newItem['resume'] = u(infoDict['shortDescription']) newItem['filtres']['content']['url'] = url liste.append(newItem) for item in liste: #log("--url--") #log(correctEmissionPageURL(carte.findAll("a")[0]['href'])) item['isDir'] = False item['forceSort'] = False item['nom'] = urllib2.unquote(item['nom']) #item['url'] = item['url'] or None #item['image'] = item['image'] or xbmcaddon.Addon().getAddonInfo('path')+'/icon.png' item['fanart'] = None #filtres['content']['cover'] #item['filtres'] = parse.getCopy(filtres) item['filtres']['content']['genreId'] = item['genreId'] item[LABEL] = None # nomBloc item['categoryType'] = None #episode['categoryType'] item['url'] = None #episode['permalink'] #item['image'] = None #getThumbnails(episode) item['genreId'] = '' item['nomComplet'] = item['nom'] #episode['view']['title'] #item['resume'] =None # episode['view']['description'] item[SEASON] = None #'Saison ' + str(episode['seasonNo']) #item['duree'] = 300 #None #episode['duration']/1000 item['seasonNo'] = None #episode['seasonNo'] item['episodeNo'] = None #episode['episodeNo'] item['startDate'] = None #episode['startDate'] item['endDate'] = None #episode['endDate'] item['endDateTxt'] = None #episode['view']['endDate'] item['streamInfo'] = None #episode['streamInfo'] item['nomDuShow'] = None #mainShowName #item['sourceUrl'] = correctEmissionPageURL(carte.findAll("a")[0]['href']) #"55" #episode['streamInfo']['sourceId'] item['url'] = "url" #episode['streamInfo']['sourceId'] item[ EPISODE] = None #'Episode ' + str(episode['episodeNo']).zfill(2) #item['fanart'] = None #fanart_url #item['nom'] = '' else: newItem = { 'genreId': 1, 'nom': u(infoDict['title']), 'resume': ".", #getDescription(carte.findAll("a")[0]['href']), #'image' : infoDict['image-background'], #BASE_URL + carte.findAll("img")[0]['src'], #'url' : infoDict['pageId'], 'filtres': parse.getCopy(filtres) } if 'image-background' in infoDict: newItem['image'] = infoDict['image-background'] if 'url' in infoDict: newItem['url'] = infoDict['pageId'] else: newItem['url'] = "accueil" if 'description' in infoDict: newItem['resume'] = u(infoDict['description']) elif 'shortDescription' in infoDict: newItem['resume'] = u(infoDict['shortDescription']) newItem['filtres']['content']['url'] = newItem['url'] liste.append(newItem) for item in liste: item['isDir'] = True item['forceSort'] = True item['nom'] = urllib2.unquote(item['nom']) #item['url'] = item['url'] or None item['image'] = item['image'] or xbmcaddon.Addon().getAddonInfo( 'path') + '/icon.png' item['fanart'] = xbmcaddon.Addon().getAddonInfo( 'path') + '/fanart.jpg' #item['filtres'] = parse.getCopy(filtres) item['filtres']['content']['genreId'] = item['genreId'] return liste
def loadListeSaison(filtres): liste = [] data = cache.get_cached_content(filtres['content']['url']) soup = BeautifulSoup(data, convertEntities=BeautifulSoup.HTML_ENTITIES) clip = soup.findAll( "div", {'class': re.compile('clip-equalizer')}) #|clip-equalizer equalizer = soup.find( "div", {'class': re.compile('video-equalizer')}) #|clip-equalizer cartes = None if equalizer: cartes = equalizer.findAll("div", {"class": "card__thumb"}) saisons = soup.findAll("a", {'href': re.compile('.*/saisons/.*')}) log(saisons) cover = xbmcaddon.Addon().getAddonInfo('path') + '/fanart.jpg' if soup: coverdiv = soup.find("div", {'class': re.compile('banner__cover')}) if coverdiv: cover = BASE_URL + coverdiv.find("img")['src'] filtres['content']['cover'] = cover plot = "" if cartes: plot = "" else: plot = " (vide)" for saison in saisons: newItem = { 'genreId': 2, 'nom': u(saison.getText() + plot), 'resume': "Voir les épisodes de la " + u(saison.getText()), 'image': "DefaultFolder.png", 'url': saison['href'], 'filtres': parse.getCopy(filtres) } newItem['filtres']['content']['url'] = correctEmissionPageURL( saison['href']) newItem['filtres']['content']['cover'] = cover liste.append(newItem) #newItem = { 'genreId': i, # 'nom': "Capsules", # 'resume': "", # 'image' : None, # 'url' : "", # 'sourceUrl' : "", # 'filtres' : parse.getCopy(filtres) # } # #liste.append(newItem) for item in liste: item['isDir'] = True item['forceSort'] = False item['nom'] = urllib2.unquote(item['nom']) #item['url'] = item['url'] or None item['image'] = item['image'] or xbmcaddon.Addon().getAddonInfo( 'path') + '/icon.png' item['fanart'] = filtres['content'][ 'cover'] #cover #xbmcaddon.Addon().getAddonInfo('path')+'/fanart.jpg' #item['filtres'] = parse.getCopy(filtres) item['filtres']['content']['genreId'] = item['genreId'] #item['filtres']['content']['cover'] = cover if clip: for c in clip: cartes = c.findAll("div", {"class": "card__thumb"}) log("--cartes--") #log(cartes) liste = liste + listerEqualiser(cartes, filtres) #else: # newItem = { 'genreId': i, # 'nom': "Aucun contenu", # 'resume': "Désolé", # 'image' : None, # 'url' : "", # 'sourceUrl' : "", # 'filtres' : parse.getCopy(filtres) # } # # liste.append(newItem) return liste
def listerEqualiser(cartes, filtres): liste = [] for carte in cartes: carte = carte.parent #log(u(carte.getText())) #log(carte.findAll("img")[0]['src']) #log("------------------------------") duration = -1 durationDiv = carte.find('ul', {"class": 'card__meta'}) if durationDiv: duration = durationDiv.find('li').getText() try: duration = time.strptime(duration, '%M m %S s') except: try: duration = time.strptime(duration, '%H H %M m') except: duration = -1 duration = datetime.timedelta( hours=duration.tm_hour, minutes=duration.tm_min, seconds=duration.tm_sec).total_seconds() newItem = { 'genreId': 1, 'nom': u(carte.find("div", { "class": "card__body" }).find("a").getText()), 'resume': u(carte.find("div", { "class": "card__typography" }).getText()), 'image': BASE_URL + carte.findAll("img")[0]['src'], 'url': correctEmissionPageURL(carte.findAll("a")[0]['href']), 'sourceUrl': correctEmissionPageURL(carte.findAll("a")[0]['href']), 'duree': duration, 'filtres': parse.getCopy(filtres) } newItem['filtres']['content']['url'] = correctEmissionPageURL( carte.findAll("a")[0]['href']) liste.append(newItem) for item in liste: #log("--url--") #log(correctEmissionPageURL(carte.findAll("a")[0]['href'])) item['isDir'] = False item['forceSort'] = False item['nom'] = urllib2.unquote(item['nom']) #item['url'] = item['url'] or None #item['image'] = item['image'] or xbmcaddon.Addon().getAddonInfo('path')+'/icon.png' item['fanart'] = filtres['content']['cover'] #item['filtres'] = parse.getCopy(filtres) item['filtres']['content']['genreId'] = item['genreId'] item[LABEL] = None # nomBloc item['categoryType'] = None #episode['categoryType'] item['url'] = None #episode['permalink'] #item['image'] = None #getThumbnails(episode) item['genreId'] = '' item['nomComplet'] = item['nom'] #episode['view']['title'] #item['resume'] =None # episode['view']['description'] item[SEASON] = None #'Saison ' + str(episode['seasonNo']) #item['duree'] = 300 #None #episode['duration']/1000 item['seasonNo'] = None #episode['seasonNo'] item['episodeNo'] = None #episode['episodeNo'] item['startDate'] = None #episode['startDate'] item['endDate'] = None #episode['endDate'] item['endDateTxt'] = None #episode['view']['endDate'] item['streamInfo'] = None #episode['streamInfo'] item['nomDuShow'] = None #mainShowName #item['sourceUrl'] = correctEmissionPageURL(carte.findAll("a")[0]['href']) #"55" #episode['streamInfo']['sourceId'] item['url'] = correctEmissionPageURL( carte.findAll("a")[0]['href']) #episode['streamInfo']['sourceId'] item[EPISODE] = None #'Episode ' + str(episode['episodeNo']).zfill(2) #item['fanart'] = None #fanart_url #item['nom'] = '' return liste