# -*- coding: utf-8 -*- import re from core import httptools from core import scrapertools from core import servertools from core import tmdb from core import jsontools from core.item import Item from platformcode import config, logger tgenero = {"Comedia": "https://s7.postimg.org/ne9g9zgwb/comedia.png", "Suspense": "https://s13.postimg.org/wmw6vl1cn/suspenso.png", "Drama": "https://s16.postimg.org/94sia332d/drama.png", "Acción": "https://s3.postimg.org/y6o9puflv/accion.png", "Aventura": "https://s10.postimg.org/6su40czih/aventura.png", "Romance": "https://s15.postimg.org/fb5j8cl63/romance.png", "Animación": "https://s13.postimg.org/5on877l87/animacion.png", "Ciencia ficción": "https://s9.postimg.org/diu70s7j3/cienciaficcion.png", "Terror": "https://s7.postimg.org/yi0gij3gb/terror.png", "Documental": "https://s16.postimg.org/7xjj4bmol/documental.png", "Música": "https://s29.postimg.org/bbxmdh9c7/musical.png", "Fantasía": "https://s13.postimg.org/65ylohgvb/fantasia.png", "Misterio": "https://s1.postimg.org/w7fdgf2vj/misterio.png", "Crimen": "https://s4.postimg.org/6z27zhirx/crimen.png", "Familia": "https://s7.postimg.org/6s7vdhqrf/familiar.png", "Guerra": "https://s4.postimg.org/n1h2jp2jh/guerra.png", "Western": "https://s23.postimg.org/lzyfbjzhn/western.png", "Historia": "https://s15.postimg.org/fmc050h1n/historia.png" } thumbletras = {'#': 'https://s32.postimg.org/drojt686d/image.png', 'a': 'https://s32.postimg.org/llp5ekfz9/image.png', 'b': 'https://s32.postimg.org/y1qgm1yp1/image.png', 'c': 'https://s32.postimg.org/vlon87gmd/image.png', 'd': 'https://s32.postimg.org/3zlvnix9h/image.png', 'e': 'https://s32.postimg.org/bgv32qmsl/image.png', 'f': 'https://s32.postimg.org/y6u7vq605/image.png', 'g': 'https://s32.postimg.org/9237ib6jp/image.png', 'h': 'https://s32.postimg.org/812yt6pk5/image.png', 'i': 'https://s32.postimg.org/6nbbxvqat/image.png', 'j': 'https://s32.postimg.org/axpztgvdx/image.png', 'k': 'https://s32.postimg.org/976yrzdut/image.png', 'l': 'https://s32.postimg.org/fmal2e9yd/image.png', 'm': 'https://s32.postimg.org/m19lz2go5/image.png', 'n': 'https://s32.postimg.org/b2ycgvs2t/image.png', 'o': 'https://s32.postimg.org/c6igsucpx/image.png', 'p': 'https://s32.postimg.org/jnro82291/image.png', 'q': 'https://s32.postimg.org/ve5lpfv1h/image.png', 'r': 'https://s32.postimg.org/nmovqvqw5/image.png', 's': 'https://s32.postimg.org/zd2t89jol/image.png', 't': 'https://s32.postimg.org/wk9lo8jc5/image.png', 'u': 'https://s32.postimg.org/w8s5bh2w5/image.png', 'v': 'https://s32.postimg.org/e7dlrey91/image.png', 'w': 'https://s32.postimg.org/fnp49k15x/image.png', 'x': 'https://s32.postimg.org/dkep1w1d1/image.png', 'y': 'https://s32.postimg.org/um7j3zg85/image.png', 'z': 'https://s32.postimg.org/jb4vfm9d1/image.png' } audio = {'Latino': '[COLOR limegreen]LATINO[/COLOR]', 'Español': '[COLOR yellow]ESPAÑOL[/COLOR]', 'Sub Español': '[COLOR red]SUB ESPAÑOL[/COLOR]'} host = 'http://pelisgratis.tv/' def mainlist(item): logger.info() itemlist = [] itemlist.append(item.clone(title="Estrenos", action="lista", thumbnail='https://s21.postimg.org/fy69wzm93/estrenos.png', fanart='https://s21.postimg.org/fy69wzm93/estrenos.png', url=host + 'estrenos' )) itemlist.append(item.clone(title="Todas", action="lista", thumbnail='https://s18.postimg.org/fwvaeo6qh/todas.png', fanart='https://s18.postimg.org/fwvaeo6qh/todas.png', url=host )) itemlist.append(item.clone(title="Generos", action="seccion", url=host, thumbnail='https://s3.postimg.org/5s9jg2wtf/generos.png', fanart='https://s3.postimg.org/5s9jg2wtf/generos.png', extra='generos' )) itemlist.append(item.clone(title="Alfabetico", action="seccion", url=host, thumbnail='https://s17.postimg.org/fwi1y99en/a-z.png', fanart='https://s17.postimg.org/fwi1y99en/a-z.png', extra='a-z' )) itemlist.append(item.clone(title="Mas Vistas", action="lista", thumbnail='https://s9.postimg.org/wmhzu9d7z/vistas.png', fanart='https://s9.postimg.org/wmhzu9d7z/vistas.png', url=host + 'peliculas-mas-vistas' )) itemlist.append(item.clone(title="Mas Votadas", action="lista", thumbnail='https://s7.postimg.org/9kg1nthzf/votadas.png', fanart='https://s7.postimg.org/9kg1nthzf/votadas.png', url=host + 'peliculas-mas-votadas' )) itemlist.append(item.clone(title="Buscar", action="search", url=host + '?s=', thumbnail='https://s30.postimg.org/pei7txpa9/buscar.png', fanart='https://s30.postimg.org/pei7txpa9/buscar.png' )) return itemlist def get_source(url): logger.info() data = httptools.downloadpage(url, add_referer=True).data data = re.sub(r'"|\n|\r|\t| |
|\s{2,}', "", data) return data def lista(item): logger.info() itemlist = [] data = get_source(item.url) patron = 'class=(?:MvTbImg|TPostMv).*?href=(.*?)\/(?:>| class).*?src=(.*?) class=attachment.*?' patron += '(?:strong|class=Title)>(.*?)<.*?(?:(.*?)<.*?class=Qlty>(.*?)<.*?' patron += '(?:(.*?)<(?:\/td|\/p)>' matches = re.compile(patron, re.DOTALL).findall(data) for scrapedurl, scrapedthumbnail, scrapedtitle, scrapedyear, scrapedquality, scrapedplot in matches: url = scrapedurl thumbnail = scrapedthumbnail plot = scrapedplot quality = scrapedquality contentTitle = scrapedtitle title = contentTitle + ' (%s)' % quality year = scrapedyear itemlist.append(item.clone(action='findvideos', title=title, url=url, thumbnail=thumbnail, plot=plot, contentTitle=contentTitle, quality=quality, infoLabels={'year': year} )) tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) # Paginacion if itemlist != []: actual_page_url = item.url next_page = scrapertools.find_single_match(data, '
  • (.*?)<\/li>' elif item.extra == 'a-z': patron = '
  • (\w|#)<\/a><\/li>' matches = re.compile(patron, re.DOTALL).findall(data) for scrapedurl, scrapedtitle in matches: url = scrapedurl thumbnail = '' if item.extra == 'generos': title = re.sub(r'<\/a> \(\d+\)', '', scrapedtitle) cantidad = re.findall(r'.*?<\/a> \((\d+)\)', scrapedtitle) th_title = title title = title + ' (' + cantidad[0] + ')' if th_title in tgenero: thumbnail = tgenero[th_title] else: title = scrapedtitle if title.lower() in thumbletras: thumbnail = thumbletras[title.lower()] itemlist.append(item.clone(action='lista', title=title, url=url, thumbnail=thumbnail)) return itemlist def search(item, texto): logger.info() texto = texto.replace(" ", "+") item.url = item.url + texto if texto != '': return lista(item) def findvideos(item): logger.info() itemlist = [] duplicados = [] data = get_source(item.url) patron = '
    Opción .*?' '<\/strong><\/span>.*?(.*?)<\/span'%opt) data = httptools.downloadpage(urls_page).data servers = scrapertools.find_multiple_matches(data,'