def peliculas(item): support.log() if item.extra == 'search': itemlist = support.scrape(item, r'<a href="([^"]+)">\s*<div[^=]+=[^=]+=[^=]+=[^=]+=[^=]+="(.*?)"[^>]+>[^<]+<[^>]+>\s*<h[^=]+="titleFilm">(.*?)<', ['url', 'thumb', 'title'], headers, patronNext='<a class="next page-numbers" href="([^"]+)">') else: itemlist = support.scrape(item, r'<img width[^s]+src="([^"]+)[^>]+>[^>]+>[^>]+>[^>]+><a href="([^"]+)">([^<]+)<\/a>[^>]+>[^>]+>[^>]+>(?:[^>]+>|)[^I]+IMDB\:\s*([^<]+)<', ['thumb', 'url', 'title', 'rating'], headers, patronNext='<a class="next page-numbers" href="([^"]+)">') for item in itemlist: item.title = re.sub(r'.\(.*?\)', '', item.title) return itemlist
def video(item): logger.info('[filmsenzalimiti.py] video') itemlist = [] patron = '<div class="col-mt-5 postsh">.*?<a href="([^"]+)" title="([^"]+)">.*?<span class="rating-number">(.*?)<.*?<img src="([^"]+)"' patronNext = '<a href="([^"]+)"><i class="glyphicon glyphicon-chevron-right"' support.scrape(item, itemlist, patron, ['url', 'title', 'rating', 'thumb'], patronNext=patronNext) return itemlist
def peliculas_list(item): support.log() block = r'<tbody>(.*)<\/tbody>' patron = r'<td class="mlnh-thumb"><a href="([^"]+)" title="([^"]+)".*?> <img.*?src="([^"]+)".*?<td class="mlnh-3">([0-9]+)<\/td><td class="mlnh-4">(.*?)<\/td>' return support.scrape(item, patron, ['url', 'title', 'year', 'quality'], patron_block=block)
def generos(item): patron = '<a href="([^"#]+)">([a-zA-Z]+)' return support.scrape( item, patron, ['url', 'title'], patron_block='<a href="#">Genere</a><ul class="sub-menu">.*?</ul>', action='peliculas')
def peliculas(item): support.log() if item.contentType == 'movie' or '/serietv/' not in item.url: patron = r'<div class="?card-image"?>.*?<img src="?([^" ]+)"? alt.*?<a href="?([^" >]+)(?:\/|")>([^<[(]+)(?:\[([A-Za-z0-9/-]+)])? (?:\(([0-9]{4})\))?.*?<strong>([^<>&]+).*?DURATA ([0-9]+).*?<br(?: /)?>([^<>]+)' listGroups = [ 'thumb', 'url', 'title', 'quality', 'year', 'genre', 'duration', 'plot' ] action = 'findvideos' else: patron = r'div class="card-image">.*?<img src="([^ ]+)" alt.*?<a href="([^ >]+)">([^<[(]+)<\/a>.*?<strong><span style="[^"]+">([^<>0-9(]+)\(([0-9]{4}).*?<\/(p|div)>([^<>]+)' listGroups = ['thumb', 'url', 'title', 'genre', 'year', 'plot'] action = 'episodios' return support.scrape( item, patron_block=[ r'<div class="?sequex-page-left"?>(.*?)<aside class="?sequex-page-right"?>', '<div class="?card-image"?>.*?(?=<div class="?card-image"?>|<div class="?rating"?>)' ], patron=patron, listGroups=listGroups, patronNext= '<a class="?page-link"? href="?([^>]+)"?><i class="fa fa-angle-right">', blacklist=blacklist, action=action)
def genres(item): return support.scrape( item, patron_block=r'<div id="bordobar" class="dropdown-menu(.*?)</li>', patron=r'<a class="dropdown-item" href="([^"]+)" title="([A-z]+)"', listGroups=['url', 'title'], action='video')
def last_ep(item): log('ANIME PER TUTTI') return support.scrape( item, '<a href="([^"]+)">([^<]+)<', ['url', 'title'], patron_block='<ul class="mh-tab-content-posts">(.*?)<\/ul>', action='findvideos')
def genres(item): itemlist = support.scrape( item, '<a href="([^"]+)">([^<]+)<', ['url', 'title'], action='peliculas', patron_block=r'Generi.*?<ul.*?>(.*?)<\/ul>', blacklist=['Contattaci', 'Privacy Policy', 'DMCA']) return support.thumb(itemlist)
def year(item): findhost() patron = r'<a href="([^"#]+)">(\d+)' return support.scrape( item, patron, ['url', 'title'], patron_block='<a href="#">Anno</a><ul class="sub-menu">.*?</ul>', action='peliculas', url_host=host)
def peliculas(item): return support.scrape( item, r'<h2>(.*?)</h2>\s*<img src="([^"]+)" alt="[^"]*" />\s*<A HREF="([^"]+)">', ['title', 'thumb', 'url'], headers, patronNext= r"<span class='current'>\d+</span><a rel='nofollow' class='page larger' href='([^']+)'>\d+</a>", action='episodios')
def AZlist(item): support.log() return support.scrape( item, r'<a title="([^"]+)" href="([^"]+)"', ['title', 'url'], headers, patron_block=r'<div class="movies-letter">(.*?)<\/div>', action='peliculas_list', url_host=host)
def episodios(item): item.contentType = 'episode' return support.scrape( item, patron_block=[ r'<article class="sequex-post-content">(.*?)<\/article>', r'<div class="sp-head[a-z ]*?" title="Espandi">[^<>]*?</div>(.*?)<div class="spdiv">\[riduci\]</div>' ], patron='<p>([0-9]+(?:×|×)[0-9]+)(.*?)(?:<\/p>|<br)', listGroups=['title', 'url'])
def peliculas(item): item.contentType = 'episode' return support.scrape( item, r'<h2>(.*?)</h2>\s*<img src="([^"]+)" alt="[^"]*" />\s*<A HREF="([^"]+)">.*?<span class="year">([0-9]{4}).*?<span class="calidad">([A-Z]+)', ['title', 'thumb', 'url', 'year', 'quality'], headers, patronNext= r"<span class='current'>\d+</span><a rel='nofollow' class='page larger' href='([^']+)'>\d+</a>", action='episodios')
def newest(categoria): findhost() itemlist = [] item = Item() item.url = host + '/lista-film-ultimi-100-film-aggiunti/' return support.scrape( item, r'<a href=([^>]+)>([^<([]+)(?:\[([A-Z]+)\])?\s\(([0-9]{4})\)<\/a>', ['url', 'title', 'quality', 'year'], patron_block=r'Ultimi 100 film aggiunti:.*?<\/td>')
def genre(item): itemlist = support.scrape(item, '<a href="([^"]+)">([^<]+)</a>', ['url', 'title'], headers, [ 'Serie TV', 'Serie TV Americane', 'Serie TV Italiane', 'altadefinizione' ], action='peliculas') return thumb(itemlist)
def menu(item): support.log() itemlist = support.scrape(item, '<li><a href="(.*?)">(.*?)</a></li>', ['url', 'title'], headers, patron_block='<ul class="listSubCat" id="' + str(item.args) + '">(.*?)</ul>', action='peliculas') return support.thumb(itemlist)
def categories(item): support.log(item) itemlist = support.scrape( item, '<li><a href="([^"]+)">(.*?)</a></li>', ['url', 'title'], headers, 'Altadefinizione01', patron_block='<ul class="kategori_list">(.*?)</ul>', action='peliculas', url_host=host) return support.thumb(itemlist)
def menu(item): patron_block = r'<ul class="sub-menu">.*?</ul>' patron = r'menu-category-list"><a href="([^"]+)">([^<]+)<' list_groups = ["url", "title"] return support.scrape(item, patron, list_groups, blacklist="Anime", action="peliculas_menu", patron_block=patron_block)
def episodios(item): patron = r'<td class="MvTbTtl"><a href="([^"]+)">(.*?)<\/a>.*?>\d{4}<' list_groups = ["url", "title", "year"] itemlist = support.scrape(item, patron, list_groups) for itm in itemlist: fixedtitle = scrapertools.get_season_and_episode(itm.url) itm.title = fixedtitle + " - " + itm.title itm.fulltitle = fixedtitle + " - " + itm.fulltitle return itemlist
def search_peliculas(item): logger.info(item.channel + 'search_peliculas') logger.info('TYPE= ' + item.contentType) if item.contentType == 'movie': action = 'findvideos' else: action = 'episodios' return support.scrape( item, r'<a href="([^"]+)"><span[^>]+><[^>]+><\/a>[^h]+h2>(.*?)<', ["url", "title"], patronNext="<a rel='nofollow' class=previouspostslink href='([^']+)'", headers=headers, action=action)
def peliculas(item): support.log() list_groups = ["url", "thumb", "title", "year", "rating", "duration"] patron = r'<article.*?"TPost C".*?href="([^"]+)".*?img.*?src="([^"]+)".*?<h3.*?>([^<]+).*?Year">' if item.args == "latests": patron += r'([^<]+)' else: patron += r'(\d{4}).*?AAIco-star.*?>([^<]+).*?AAIco-access_time">([^<]+).*?Qlty' patron_next = r'page-numbers current.*?href="([^"]+)"' if item.contentType == "movie": patron += r'\">([^<]+)' list_groups.append("quality") action = "findvideos" if item.contentType == "movie" else "episodios" return support.scrape(item, patron, list_groups, patronNext=patron_next, action=action)