From 176b04c64b6807cc04f58375a18471e582b08df8 Mon Sep 17 00:00:00 2001 From: marco Date: Thu, 27 Aug 2020 11:39:51 +0200 Subject: [PATCH] potenziato match tmdb e alcuni fix per la ricerca globale --- channels/casacinema.py | 3 +++ channels/cinemalibero.py | 6 ++---- channels/ilcorsaronero.py | 32 ++++++++++++---------------- core/support.py | 5 +++++ core/tmdb.py | 45 +++++++++++++++++++++++++++++++++------ specials/search.py | 5 ++--- 6 files changed, 64 insertions(+), 32 deletions(-) diff --git a/channels/casacinema.py b/channels/casacinema.py index f5a5e1ce..d1728b06 100644 --- a/channels/casacinema.py +++ b/channels/casacinema.py @@ -110,6 +110,7 @@ def peliculas(item): patron = r'
  • [^"]+)">
    ]+>(?P[^\(\[<]+)(?:\[(?P<quality1>HD)\])?[ ]?(?:\(|\[)?(?P<lang>Sub-ITA)?(?:\)|\])?[ ]?(?:\[(?P<quality>.+?)\])?[ ]?(?:\((?P<year>\d+)\))?<' patronNext = r'<a href="([^"]+)" >Pagina' + # debug = True def itemHook(item): if item.quality1: @@ -120,6 +121,8 @@ def peliculas(item): item.title += support.typo(item.lang2, '_ [] color kod') if item.args == 'novita': item.title = item.title + if 'wp-content' in item.thumbnail and not item.infoLabels['year']: + item.infoLabels['year'] = item.thumbnail.split('/')[5] return item return locals() diff --git a/channels/cinemalibero.py b/channels/cinemalibero.py index 4d8f0a5a..2fedaf89 100644 --- a/channels/cinemalibero.py +++ b/channels/cinemalibero.py @@ -10,8 +10,6 @@ from core.item import Item from platformcode import config - - # rimanda a .today che contiene tutti link a .plus # def findhost(): # permUrl = httptools.downloadpage('https://www.cinemalibero.online/', follow_redirects=False).headers @@ -121,9 +119,9 @@ def genres(item): def search(item, texto): support.log(item.url,texto) - text = texto.replace(' ', '+') + texto = texto.replace(' ', '+') item.url = host + "/?s=" + texto - item.contentType = 'tv' + # item.contentType = 'tv' item.args = 'search' try: return peliculas(item) diff --git a/channels/ilcorsaronero.py b/channels/ilcorsaronero.py index 68e1f57f..6f4a6502 100644 --- a/channels/ilcorsaronero.py +++ b/channels/ilcorsaronero.py @@ -20,20 +20,20 @@ headers = [['Referer', host]] def mainlist(item): menu = [ - ('BDRiP {film}', ['/categoria.php?active=0&category=1&order=data&by=DESC&page=', 'peliculas', [0, 'movie', True]]), - ('Cerca BDRiP... {submenu} {film}', ['/torrent-ita/1/', 'search', ['search', 'movie', True]]), - ('DVD {film}', ['/categoria.php?active=0&category=20&order=data&by=DESC&page=', 'peliculas', [0, 'movie', True]]), - ('Cerca DVD... {submenu} {film}', ['/torrent-ita/20/', 'search', ['search', 'movie', True]]), - ('Screener {film}', ['/categoria.php?active=0&category=19&order=data&by=DESC&page=', 'peliculas', [0, 'movie', True]]), - ('Cerca Screener.. {submenu} {film}', ['/torrent-ita/19/', 'search', ['search', 'movie', True]]), - ('Serie TV', ['/categoria.php?active=0&category=15&order=data&by=DES&page=', 'peliculas', [0 , 'tvshow', True]]), - ('Cerca Serie TV.. {submenu}', ['/torrent-ita/15/', 'search', ['search', 'tvshow',True]]), - ('Anime', ['/categoria.php?active=0&category=5&order=data&by=DESC&page=', 'peliculas', [0, 'anime', True]]), - ('Cerca Anime.. {submenu}', ['/torrent-ita/5/', 'search', ['search', 'anime', True]]), - ('Musica', ['/categoria.php?active=0&category=2&order=data&by=DESC&page=', 'peliculas', [0, 'music', False]]), - ('Cerca Musica.. {submenu}', ['/torrent-ita/2/', 'search', ['search', 'music', False]]), - ('Audiolibri {musica}', ['/categoria.php?active=0&category=18&order=data&by=DESC&page=', 'peliculas', [0, 'music', False]]), - ('Cerca Audiolibri.. {submenu}', ['/torrent-ita/18/', 'search', ['search', 'music', False]]), + ('BDRiP {film}', ['/categoria.php?active=0&category=1&order=data&by=DESC&page=', 'peliculas', [0, 'movie', True], 'movie']), + ('Cerca BDRiP... {submenu} {film}', ['/torrent-ita/1/', 'search', ['search', 'movie', True], 'movie']), + ('DVD {film}', ['/categoria.php?active=0&category=20&order=data&by=DESC&page=', 'peliculas', [0, 'movie', True], 'movie']), + ('Cerca DVD... {submenu} {film}', ['/torrent-ita/20/', 'search', ['search', 'movie', True], 'movie']), + ('Screener {film}', ['/categoria.php?active=0&category=19&order=data&by=DESC&page=', 'peliculas', [0, 'movie', True], 'movie']), + ('Cerca Screener.. {submenu} {film}', ['/torrent-ita/19/', 'search', ['search', 'movie', True], 'movie']), + ('Serie TV', ['/categoria.php?active=0&category=15&order=data&by=DES&page=', 'peliculas', [0 , 'tvshow', True], 'tvshow']), + ('Cerca Serie TV.. {submenu}', ['/torrent-ita/15/', 'search', ['search', 'tvshow',True], 'tvshow']), + ('Anime', ['/categoria.php?active=0&category=5&order=data&by=DESC&page=', 'peliculas', [0, 'anime', True], 'tvshow']), + ('Cerca Anime.. {submenu}', ['/torrent-ita/5/', 'search', ['search', 'anime', True], 'tvshow']), + ('Musica', ['/categoria.php?active=0&category=2&order=data&by=DESC&page=', 'peliculas', [0, 'music', False], 'music']), + ('Cerca Musica.. {submenu}', ['/torrent-ita/2/', 'search', ['search', 'music', False], 'music']), + ('Audiolibri {musica}', ['/categoria.php?active=0&category=18&order=data&by=DESC&page=', 'peliculas', [0, 'music', False], 'music']), + ('Cerca Audiolibri.. {submenu}', ['/torrent-ita/18/', 'search', ['search', 'music', False], 'music']), # mostrerebbe anche risultati non "multimediali" e allungherebbero inutilmente la ricerca globale # ('Altro {film}', ['/categoria.php?active=0&category=4&order=data&by=DESC&page=', 'peliculas', [0, 'other', False]]), # ('Cerca altro.. {submenu}', ['/torrent-ita/4/', 'search', ['search', 'other', False]]), @@ -53,10 +53,6 @@ def peliculas(item): patron = r'>(?P<quality>[^"<]+)' patron += '</td> <TD[^>]+><A class="tab" HREF="(?P<url>[^"]+)"\s*>(?P<title>[^<]+)<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<size>[^<]+)<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<seed>[^<]+)' - def itemHook(item): - item.contentType = item.args[1] - - return item if 'search' not in item.args: item.url += str(item.args[0]) def itemlistHook(itemlist): diff --git a/core/support.py b/core/support.py index 81e783fb..3636e596 100755 --- a/core/support.py +++ b/core/support.py @@ -320,12 +320,17 @@ def scrapeBlock(item, args, block, patron, headers, action, pagination, debug, t longtitle += 'x' + str(parsedTitle.get('episode')[0]).zfill(2) + '-' + str(parsedTitle.get('episode')[-1]).zfill(2) else: longtitle += 'x' + str(parsedTitle.get('episode')).zfill(2) + + item.contentSeason = parsedTitle.get('season') + item.contentEpisodeNumber = parsedTitle.get('episode') elif parsedTitle.get('season') and type(parsedTitle.get('season')) == list: longtitle += s + config.get_localized_string(30140) + " " +str(parsedTitle.get('season')[0]) + '-' + str(parsedTitle.get('season')[-1]) elif parsedTitle.get('season'): longtitle += s + config.get_localized_string(60027) % str(parsedTitle.get('season')) + item.contentSeason = parsedTitle.get('season') if parsedTitle.get('episode_title'): longtitle += s + parsedTitle.get('episode_title') + item.contentEpisodeTitle = parsedTitle.get('episode_title') except: log('Error') diff --git a/core/tmdb.py b/core/tmdb.py index fb0a6015..ee9666c6 100644 --- a/core/tmdb.py +++ b/core/tmdb.py @@ -444,23 +444,54 @@ def set_infoLabels_item(item, seekTmdb=True, idioma_busqueda=def_lang, lock=None # The search has found a valid result __leer_datos(otmdb) return len(item.infoLabels) + + # title might contain - or : --> try to search only second title + def splitTitle(): + if '-' in item.fulltitle: + item.infoLabels['tvshowtitle'] = item.fulltitle.split('-')[1] + item.infoLabels['title'] = item.infoLabels['tvshowtitle'] + elif ':' in item.fulltitle: + item.infoLabels['tvshowtitle'] = item.fulltitle.split(':')[1] + item.infoLabels['title'] = item.infoLabels['tvshowtitle'] + else: + return False + return True # We check what type of content it is... if item.contentType == 'movie': tipo_busqueda = 'movie' - elif item.contentType == 'undefined': # don't know - results = search(otmdb_global, 'movie') - if results: - item.contentType = 'movie' - else: + elif item.contentType == 'undefined': # don't know + def detect(): + # try movie first + results = search(otmdb_global, 'movie') + if results: + item.contentType = 'movie' + infoMovie = item.infoLabels + if infoMovie['title'] == item.fulltitle: # exact match -> it's probably correct + return results + + # try tvshow then + item.infoLabels = {'tvshowtitle': item.infoLabels['tvshowtitle']} # reset infolabels results = search(otmdb_global, 'tv') if results: item.contentType = 'tvshow' + else: + item.infoLabels = infoMovie + + return results + + results = detect() + if not results: + if splitTitle(): + results = detect() return results else: tipo_busqueda = 'tv' - return search(otmdb_global, tipo_busqueda) - + ret = search(otmdb_global, tipo_busqueda) + if not ret: + if splitTitle(): + ret = search(otmdb_global, tipo_busqueda) + return ret # Search in tmdb is deactivated or has not given result # item.contentType = item.infoLabels['mediatype'] return -1 * len(item.infoLabels) diff --git a/specials/search.py b/specials/search.py index 920f2331..4a6b8b4f 100644 --- a/specials/search.py +++ b/specials/search.py @@ -172,7 +172,6 @@ def channel_search(item): valid = list() ch_list = dict() mode = item.mode - max_results = 10 if item.infoLabels['tvshowtitle']: item.text = item.infoLabels['tvshowtitle'].split('-')[0] @@ -262,8 +261,8 @@ def channel_search(item): ch_name = channel_titles[channel_list.index(key)] grouped = list() cnt += 1 - progress.update(old_div((cnt * 100), len(ch_list)), config.get_localized_string(60295), config.get_localized_string(60293)) - if len(value) <= max_results and item.mode != 'all': + progress.update(old_div((cnt * 100), len(ch_list)), config.get_localized_string(60295) + '\n' + config.get_localized_string(60293)) + if item.mode != 'all': if len(value) == 1: if not value[0].action or config.get_localized_string(70006).lower() in value[0].title.lower(): continue