.*?href="([^"]+)" title="([^<]+)"'
- matches = re.compile(patron, re.DOTALL).findall(data)
- if len(matches) == 0:
- itemlist.append(Item(channel=item.channel, title="[COLOR gold][B]No hay resultados...[/B][/COLOR]",
- thumbnail="http://s6.postimg.org/fay99h9ox/briconoisethumb.png",
- fanart="http://pic.raise5.com/user_pictures/user-1423992581-237429.jpg", folder=False))
- for scrapedurl, scrapedtitle in matches:
- ###Busqueda poster temporada tmdb
- scrapedtitle = scrapedtitle.replace(scrapedtitle, "[COLOR springgreen]" + scrapedtitle + "[/COLOR]")
- temporada = scrapertools.get_match(scrapedtitle, 'Temporada (\d+)')
- scrapedtitle = scrapedtitle.replace("Temporada", "[COLOR darkorange]Temporada[/COLOR]")
-
- ###Busca poster de temporada Tmdb
- urltmdb_temp = "http://api.themoviedb.org/3/tv/" + item.show.split("|")[
- 5] + "/season/" + temporada + "/images?api_key=" + api_key
- data = httptools.downloadpage(urltmdb_temp).data
- data = re.sub(r"\n|\r|\t|\s{2}| ", "", data)
- patron = '{"id".*?"file_path":"(.*?)","height"'
- matches = re.compile(patron, re.DOTALL).findall(data)
- if len(matches) == 0:
- thumbnail = item.thumbnail
- for temp in matches:
- thumbnail = "https://image.tmdb.org/t/p/original" + temp
- extra = item.extra + "|" + temporada
-
- itemlist.append(
- Item(channel=item.channel, title=scrapedtitle, action="capitulos", url=scrapedurl, thumbnail=thumbnail,
- fanart=item.show.split("|")[0], show=item.show, extra=extra, category=item.category, folder=True))
-
- return itemlist
-
-
-def capitulos(item):
- logger.info()
-
- itemlist = []
-
- data = dhe(httptools.downloadpage(item.url).data)
- patron = '
.*?href="([^"]+)" title="([^<]+)".*?= 5 and int(check_rat_tmdba) < 8:
- rating = "[COLOR springgreen][B]" + rating_tmdba_tvdb + "[/B][/COLOR]"
- elif int(check_rat_tmdba) >= 8 or rating_tmdba_tvdb == 10:
- rating = "[COLOR yellow][B]" + rating_tmdba_tvdb + "[/B][/COLOR]"
- else:
- rating = "[COLOR crimson][B]" + rating_tmdba_tvdb + "[/B][/COLOR]"
- print "lolaymaue"
- except:
- rating = "[COLOR crimson][B]" + rating_tmdba_tvdb + "[/B][/COLOR]"
- if "10." in rating:
- rating = re.sub(r'10\.\d+', '10', rating)
- try:
- check_rat_filma = scrapertools.get_match(rating_filma, '(\d)')
- print "paco"
- print check_rat_filma
- if int(check_rat_filma) >= 5 and int(check_rat_filma) < 8:
- print "dios"
- print check_rat_filma
- rating_filma = "[COLOR springgreen][B]" + rating_filma + "[/B][/COLOR]"
- elif int(check_rat_filma) >= 8:
-
- print check_rat_filma
- rating_filma = "[COLOR yellow][B]" + rating_filma + "[/B][/COLOR]"
- else:
- rating_filma = "[COLOR crimson][B]" + rating_filma + "[/B][/COLOR]"
- print "rojo??"
- print check_rat_filma
- except:
- rating_filma = "[COLOR crimson][B]" + rating_filma + "[/B][/COLOR]"
-
- try:
- if not "serie" in item.url:
- url_plot = "http://api.themoviedb.org/3/movie/" + item.extra.split("|")[
- 1] + "?api_key=" + api_key + "&append_to_response=credits&language=es"
- data_plot = httptools.downloadpage(url_plot).data
- plot, tagline = scrapertools.find_single_match(data_plot, '"overview":"(.*?)",.*?"tagline":(".*?")')
- if plot == "":
- plot = item.show.split("|")[2]
-
- plot = "[COLOR moccasin][B]" + plot + "[/B][/COLOR]"
- plot = re.sub(r"\\", "", plot)
-
- else:
- plot = item.show.split("|")[2]
- plot = "[COLOR moccasin][B]" + plot + "[/B][/COLOR]"
- plot = re.sub(r"\\", "", plot)
-
- if item.extra.split("|")[7] != "":
- tagline = item.extra.split("|")[7]
- # tagline= re.sub(r',','.',tagline)
- else:
- tagline = ""
- except:
- title = "[COLOR red][B]LO SENTIMOS...[/B][/COLOR]"
- plot = "Esta pelicula no tiene informacion..."
- plot = plot.replace(plot, "[COLOR yellow][B]" + plot + "[/B][/COLOR]")
- photo = "http://s6.postimg.org/nm3gk1xox/noinfosup2.png"
- foto = "http://s6.postimg.org/ub7pb76c1/noinfo.png"
- info = ""
- rating = ""
- rating_filam = ""
-
- if "serie" in item.url:
- check2 = "serie"
-
- icon = "http://s6.postimg.org/hzcjag975/tvdb.png"
- foto = item.show.split("|")[1]
- if not "image.tmdb" in foto:
- foto = ""
- if item.extra.split("|")[5] != "":
- critica = item.extra.split("|")[5]
- else:
- critica = "Esta serie no tiene críticas..."
-
- photo = item.extra.split("|")[0].replace(" ", "%20")
- if not ".png" in photo:
- photo = ""
- try:
- tagline = "[COLOR aquamarine][B]" + tagline + "[/B][/COLOR]"
- except:
- tagline = ""
-
- else:
-
- critica = item.extra.split("|")[5]
- if "%20" in critica:
- critica = "No hay críticas"
- icon = "http://imgur.com/SenkyxF.png"
-
- photo = item.extra.split("|")[0].replace(" ", "%20")
- foto = item.show.split("|")[1]
-
- try:
- if tagline == "\"\"":
- tagline = " "
- except:
- tagline = " "
- tagline = "[COLOR aquamarine][B]" + tagline + "[/B][/COLOR]"
- check2 = "pelicula"
- # Tambien te puede interesar
- peliculas = []
- if "serie" in item.url:
-
- url_tpi = "http://api.themoviedb.org/3/tv/" + item.show.split("|")[
- 5] + "/recommendations?api_key=" + api_key + "&language=es"
- data_tpi = httptools.downloadpage(url_tpi).data
- tpi = scrapertools.find_multiple_matches(data_tpi,
- 'id":(.*?),.*?"original_name":"(.*?)",.*?"poster_path":(.*?),"popularity"')
-
- else:
- url_tpi = "http://api.themoviedb.org/3/movie/" + item.extra.split("|")[
- 1] + "/recommendations?api_key=" + api_key + "&language=es"
- data_tpi = httptools.downloadpage(url_tpi).data
- tpi = scrapertools.find_multiple_matches(data_tpi,
- 'id":(.*?),.*?"original_title":"(.*?)",.*?"poster_path":(.*?),"popularity"')
-
- for idp, peli, thumb in tpi:
-
- thumb = re.sub(r'"|}', '', thumb)
- if "null" in thumb:
- thumb = "http://s6.postimg.org/tw1vhymj5/noposter.png"
- else:
- thumb = "https://image.tmdb.org/t/p/original" + thumb
- peliculas.append([idp, peli, thumb])
-
- check2 = check2.replace("pelicula", "movie").replace("serie", "tvshow")
- infoLabels = {'title': title, 'plot': plot, 'thumbnail': photo, 'fanart': foto, 'tagline': tagline,
- 'rating': rating}
- item_info = item.clone(info=infoLabels, icon=icon, extra=id, rating=rating, rating_filma=rating_filma,
- critica=critica, contentType=check2, thumb_busqueda="http://imgur.com/zKjAjzB.png")
- from channels import infoplus
- infoplus.start(item_info, peliculas)
-
-
-def info_capitulos(item):
- logger.info()
-
- url = "https://api.themoviedb.org/3/tv/" + item.show.split("|")[5] + "/season/" + item.extra.split("|")[
- 2] + "/episode/" + item.extra.split("|")[3] + "?api_key=" + api_key + "&language=es"
-
- if "/0" in url:
- url = url.replace("/0", "/")
-
- data = httptools.downloadpage(url).data
- data = re.sub(r"\n|\r|\t|\s{2}| ", "", data)
-
- patron = '],"name":"(.*?)","overview":"(.*?)".*?"still_path":(.*?),"vote_average":(\d+\.\d).*?,"'
- matches = re.compile(patron, re.DOTALL).findall(data)
-
- if len(matches) == 0:
-
- url = "http://thetvdb.com/api/1D62F2F90030C444/series/" + item.category + "/default/" + item.extra.split("|")[
- 2] + "/" + item.extra.split("|")[3] + "/es.xml"
- if "/0" in url:
- url = url.replace("/0", "/")
- data = httptools.downloadpage(url).data
- data = re.sub(r"\n|\r|\t|\s{2}| ", "", data)
-
- patron = '.*?([^<]+).*?(.*?).*?(.*?)'
-
- matches = re.compile(patron, re.DOTALL).findall(data)
-
- if len(matches) == 0:
-
- title = "[COLOR red][B]LO SENTIMOS...[/B][/COLOR]"
- plot = "Este capitulo no tiene informacion..."
- plot = "[COLOR yellow][B]" + plot + "[/B][/COLOR]"
- image = "http://s6.postimg.org/ub7pb76c1/noinfo.png"
- foto = "http://s6.postimg.org/nm3gk1xox/noinfosup2.png"
- rating = ""
-
-
- else:
-
- for name_epi, info, rating in matches:
- if "episodes" in data:
- foto = scrapertools.get_match(data, '.*?(.*?)')
- fanart = "http://thetvdb.com/banners/" + foto
- else:
- fanart = "http://imgur.com/ZiEAVOD.png"
- plot = info
- plot = "[COLOR peachpuff][B]" + plot + "[/B][/COLOR]"
- title = name_epi.upper()
- title = "[COLOR bisque][B]" + title + "[/B][/COLOR]"
- image = fanart
- foto = item.extra.split("|")[0]
- if not ".png" in foto:
- foto = "http://imgur.com/zKjAjzB.png"
-
- foto = re.sub(r'\(.*?\)|" "|" "', '', foto)
- foto = re.sub(r' ', '', foto)
- try:
-
- check_rating = scrapertools.get_match(rating, '(\d+).')
-
- if int(check_rating) >= 5 and int(check_rating) < 8:
- rating = "Puntuación " + "[COLOR springgreen][B]" + rating + "[/B][/COLOR]"
- elif int(check_rating) >= 8 and int(check_rating) < 10:
- rating = "Puntuación " + "[COLOR yellow][B]" + rating + "[/B][/COLOR]"
- elif int(check_rating) == 10:
- rating = "Puntuación " + "[COLOR orangered][B]" + rating + "[/B][/COLOR]"
- else:
- rating = "Puntuación " + "[COLOR crimson][B]" + rating + "[/B][/COLOR]"
-
- except:
- rating = "Puntuación " + "[COLOR crimson][B]" + rating + "[/B][/COLOR]"
- if "10." in rating:
- rating = re.sub(r'10\.\d+', '10', rating)
- else:
- for name_epi, info, fanart, rating in matches:
- if info == "" or info == "\\":
- info = "Sin informacion del capítulo aún..."
- plot = info
- plot = re.sub(r'/n', '', plot)
- plot = "[COLOR peachpuff][B]" + plot + "[/B][/COLOR]"
- title = name_epi.upper()
- title = "[COLOR bisque][B]" + title + "[/B][/COLOR]"
- image = fanart
- image = re.sub(r'"|}', '', image)
- if "null" in image:
- image = "http://imgur.com/ZiEAVOD.png"
- else:
- image = "https://image.tmdb.org/t/p/original" + image
- foto = item.extra.split("|")[0]
- if not ".png" in foto:
- foto = "http://imgur.com/zKjAjzB.png"
- foto = re.sub(r'\(.*?\)|" "|" "', '', foto)
- foto = re.sub(r' ', '', foto)
- try:
-
- check_rating = scrapertools.get_match(rating, '(\d+).')
-
- if int(check_rating) >= 5 and int(check_rating) < 8:
- rating = "Puntuación " + "[COLOR springgreen][B]" + rating + "[/B][/COLOR]"
- elif int(check_rating) >= 8 and int(check_rating) < 10:
- rating = "Puntuación " + "[COLOR yellow][B]" + rating + "[/B][/COLOR]"
- elif int(check_rating) == 10:
- rating = "Puntuación " + "[COLOR orangered][B]" + rating + "[/B][/COLOR]"
- else:
- rating = "Puntuación " + "[COLOR crimson][B]" + rating + "[/B][/COLOR]"
-
- except:
- rating = "Puntuación " + "[COLOR crimson][B]" + rating + "[/B][/COLOR]"
- if "10." in rating:
- rating = re.sub(r'10\.\d+', '10', rating)
- ventana = TextBox2(title=title, plot=plot, thumbnail=image, fanart=foto, rating=rating)
- ventana.doModal()
-
-
-class TextBox2(xbmcgui.WindowDialog):
- """ Create a skinned textbox window """
-
- def __init__(self, *args, **kwargs):
- self.getTitle = kwargs.get('title')
- self.getPlot = kwargs.get('plot')
- self.getThumbnail = kwargs.get('thumbnail')
- self.getFanart = kwargs.get('fanart')
- self.getRating = kwargs.get('rating')
-
- self.background = xbmcgui.ControlImage(70, 20, 1150, 630, 'http://imgur.com/mpMQp6c.jpg')
- self.title = xbmcgui.ControlTextBox(120, 60, 430, 50)
- self.rating = xbmcgui.ControlTextBox(145, 112, 1030, 45)
- self.plot = xbmcgui.ControlTextBox(120, 150, 1056, 100)
- self.thumbnail = xbmcgui.ControlImage(120, 300, 1056, 300, self.getThumbnail)
- self.fanart = xbmcgui.ControlImage(780, 43, 390, 100, self.getFanart)
-
- self.addControl(self.background)
- self.background.setAnimations(
- [('conditional', 'effect=slide start=1000% end=0% time=1500 condition=true tween=bounce',),
- ('WindowClose', 'effect=slide delay=800 start=0% end=1000% time=800 condition=true',)])
- self.addControl(self.thumbnail)
- self.thumbnail.setAnimations([('conditional',
- 'effect=zoom start=0% end=100% delay=2700 time=1500 condition=true tween=elastic easing=inout',),
- ('WindowClose', 'effect=slide end=0,700% time=300 condition=true',)])
- self.addControl(self.plot)
- self.plot.setAnimations(
- [('conditional', 'effect=zoom delay=2000 center=auto start=0 end=100 time=800 condition=true ',), (
- 'conditional',
- 'effect=rotate delay=2000 center=auto aceleration=6000 start=0% end=360% time=800 condition=true',),
- ('WindowClose', 'effect=zoom center=auto start=100% end=-0% time=600 condition=true',)])
- self.addControl(self.fanart)
- self.fanart.setAnimations(
- [('WindowOpen', 'effect=slide start=0,-700 delay=1000 time=2500 tween=bounce condition=true',), (
- 'conditional',
- 'effect=rotate center=auto start=0% end=360% delay=3000 time=2500 tween=bounce condition=true',),
- ('WindowClose', 'effect=slide end=0,-700% time=1000 condition=true',)])
- self.addControl(self.title)
- self.title.setText(self.getTitle)
- self.title.setAnimations(
- [('conditional', 'effect=slide start=-1500% end=0% delay=1000 time=2000 condition=true tween=elastic',),
- ('WindowClose', 'effect=slide start=0% end=-1500% time=800 condition=true',)])
- self.addControl(self.rating)
- self.rating.setText(self.getRating)
- self.rating.setAnimations(
- [('conditional', 'effect=fade start=0% end=100% delay=3000 time=1500 condition=true',),
- ('WindowClose', 'effect=slide end=0,-700% time=600 condition=true',)])
- xbmc.sleep(200)
-
- try:
- self.plot.autoScroll(7000, 6000, 30000)
- except:
-
- xbmc.executebuiltin(
- 'Notification([COLOR red][B]Actualiza Kodi a su última versión[/B][/COLOR], [COLOR skyblue]para mejor info[/COLOR],8000,"https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/kodi-icon.png")')
- self.plot.setText(self.getPlot)
-
- def get(self):
- self.show()
-
- def onAction(self, action):
- if action == ACTION_PREVIOUS_MENU or action.getId() == ACTION_GESTURE_SWIPE_LEFT or action == 110 or action == 92:
- self.close()
-
-
-def test():
- return True
-
-
-def translate(to_translate, to_langage="auto", langage="auto"):
- '''Return the translation using google translate
- you must shortcut the langage you define (French = fr, English = en, Spanish = es, etc...)
- if you don't define anything it will detect it or use english by default
- Example:
- print(translate("salut tu vas bien?", "en"))
- hello you alright?'''
- agents = {
- 'User-Agent': "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)"}
- before_trans = 'class="t0">'
- link = "http://translate.google.com/m?hl=%s&sl=%s&q=%s" % (to_langage, langage, to_translate.replace(" ", "+"))
- request = urllib2.Request(link, headers=agents)
- page = urllib2.urlopen(request).read()
- result = page[page.find(before_trans) + len(before_trans):]
- result = result.split("<")[0]
- return result
-
-
-if __name__ == '__main__':
- to_translate = 'Hola como estas?'
- print("%s >> %s" % (to_translate, translate(to_translate)))
- print("%s >> %s" % (to_translate, translate(to_translate, 'fr')))
-# should print Hola como estas >> Hello how are you
-# and Hola como estas? >> Bonjour comment allez-vous?