potenziato match tmdb e alcuni fix per la ricerca globale

This commit is contained in:
marco
2020-08-27 11:39:51 +02:00
parent 52bcbf7130
commit 7c850118e9
6 changed files with 63 additions and 31 deletions
+3
View File
@@ -110,6 +110,7 @@ def peliculas(item):
patron = r'<li><a href="(?P<url>[^"]+)"[^=]+="(?P<thumb>[^"]+)"><div> <div[^>]+>(?P<title>[^\(\[<]+)(?:\[(?P<quality1>HD)\])?[ ]?(?:\(|\[)?(?P<lang>Sub-ITA)?(?:\)|\])?[ ]?(?:\[(?P<quality>.+?)\])?[ ]?(?:\((?P<year>\d+)\))?<' patron = r'<li><a href="(?P<url>[^"]+)"[^=]+="(?P<thumb>[^"]+)"><div> <div[^>]+>(?P<title>[^\(\[<]+)(?:\[(?P<quality1>HD)\])?[ ]?(?:\(|\[)?(?P<lang>Sub-ITA)?(?:\)|\])?[ ]?(?:\[(?P<quality>.+?)\])?[ ]?(?:\((?P<year>\d+)\))?<'
patronNext = r'<a href="([^"]+)" >Pagina' patronNext = r'<a href="([^"]+)" >Pagina'
# debug = True
def itemHook(item): def itemHook(item):
if item.quality1: if item.quality1:
@@ -120,6 +121,8 @@ def peliculas(item):
item.title += support.typo(item.lang2, '_ [] color kod') item.title += support.typo(item.lang2, '_ [] color kod')
if item.args == 'novita': if item.args == 'novita':
item.title = item.title 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 item
return locals() return locals()
+2 -4
View File
@@ -10,8 +10,6 @@ from core.item import Item
from platformcode import config from platformcode import config
# rimanda a .today che contiene tutti link a .plus # rimanda a .today che contiene tutti link a .plus
# def findhost(): # def findhost():
# permUrl = httptools.downloadpage('https://www.cinemalibero.online/', follow_redirects=False).headers # permUrl = httptools.downloadpage('https://www.cinemalibero.online/', follow_redirects=False).headers
@@ -121,9 +119,9 @@ def genres(item):
def search(item, texto): def search(item, texto):
support.log(item.url,texto) support.log(item.url,texto)
text = texto.replace(' ', '+') texto = texto.replace(' ', '+')
item.url = host + "/?s=" + texto item.url = host + "/?s=" + texto
item.contentType = 'tv' # item.contentType = 'tv'
item.args = 'search' item.args = 'search'
try: try:
return peliculas(item) return peliculas(item)
+14 -18
View File
@@ -20,20 +20,20 @@ headers = [['Referer', host]]
def mainlist(item): def mainlist(item):
menu = [ menu = [
('BDRiP {film}', ['/categoria.php?active=0&category=1&order=data&by=DESC&page=', 'peliculas', [0, 'movie', True]]), ('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]]), ('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]]), ('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]]), ('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]]), ('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]]), ('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]]), ('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]]), ('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]]), ('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]]), ('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]]), ('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]]), ('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]]), ('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]]), ('Cerca Audiolibri.. {submenu}', ['/torrent-ita/18/', 'search', ['search', 'music', False], 'music']),
# mostrerebbe anche risultati non "multimediali" e allungherebbero inutilmente la ricerca globale # 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]]), # ('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]]), # ('Cerca altro.. {submenu}', ['/torrent-ita/4/', 'search', ['search', 'other', False]]),
@@ -53,10 +53,6 @@ def peliculas(item):
patron = r'>(?P<quality>[^"<]+)' patron = r'>(?P<quality>[^"<]+)'
patron += '</td> <TD[^>]+><A class="tab" HREF="(?P<url>[^"]+)"\s*>(?P<title>[^<]+)<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<size>[^<]+)<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<seed>[^<]+)' 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: if 'search' not in item.args:
item.url += str(item.args[0]) item.url += str(item.args[0])
def itemlistHook(itemlist): def itemlistHook(itemlist):
+5
View File
@@ -305,12 +305,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) longtitle += 'x' + str(parsedTitle.get('episode')[0]).zfill(2) + '-' + str(parsedTitle.get('episode')[-1]).zfill(2)
else: else:
longtitle += 'x' + str(parsedTitle.get('episode')).zfill(2) 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: 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]) longtitle += s + config.get_localized_string(30140) + " " +str(parsedTitle.get('season')[0]) + '-' + str(parsedTitle.get('season')[-1])
elif parsedTitle.get('season'): elif parsedTitle.get('season'):
longtitle += s + config.get_localized_string(60027) % str(parsedTitle.get('season')) longtitle += s + config.get_localized_string(60027) % str(parsedTitle.get('season'))
item.contentSeason = parsedTitle.get('season')
if parsedTitle.get('episode_title'): if parsedTitle.get('episode_title'):
longtitle += s + parsedTitle.get('episode_title') longtitle += s + parsedTitle.get('episode_title')
item.contentEpisodeTitle = parsedTitle.get('episode_title')
except: except:
log('Error') log('Error')
+38 -7
View File
@@ -444,23 +444,54 @@ def set_infoLabels_item(item, seekTmdb=True, idioma_busqueda=def_lang, lock=None
# The search has found a valid result # The search has found a valid result
__leer_datos(otmdb) __leer_datos(otmdb)
return len(item.infoLabels) 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... # We check what type of content it is...
if item.contentType == 'movie': if item.contentType == 'movie':
tipo_busqueda = 'movie' tipo_busqueda = 'movie'
elif item.contentType == 'undefined': # don't know elif item.contentType == 'undefined': # don't know
results = search(otmdb_global, 'movie') def detect():
if results: # try movie first
item.contentType = 'movie' results = search(otmdb_global, 'movie')
else: 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') results = search(otmdb_global, 'tv')
if results: if results:
item.contentType = 'tvshow' item.contentType = 'tvshow'
else:
item.infoLabels = infoMovie
return results
results = detect()
if not results:
if splitTitle():
results = detect()
return results return results
else: else:
tipo_busqueda = 'tv' 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 # Search in tmdb is deactivated or has not given result
# item.contentType = item.infoLabels['mediatype'] # item.contentType = item.infoLabels['mediatype']
return -1 * len(item.infoLabels) return -1 * len(item.infoLabels)
+1 -2
View File
@@ -172,7 +172,6 @@ def channel_search(item):
valid = list() valid = list()
ch_list = dict() ch_list = dict()
mode = item.mode mode = item.mode
max_results = 10
if item.infoLabels['tvshowtitle']: if item.infoLabels['tvshowtitle']:
item.text = item.infoLabels['tvshowtitle'].split('-')[0] item.text = item.infoLabels['tvshowtitle'].split('-')[0]
@@ -263,7 +262,7 @@ def channel_search(item):
grouped = list() grouped = list()
cnt += 1 cnt += 1
progress.update(old_div((cnt * 100), len(ch_list)), config.get_localized_string(60295) + '\n' + config.get_localized_string(60293)) progress.update(old_div((cnt * 100), len(ch_list)), config.get_localized_string(60295) + '\n' + config.get_localized_string(60293))
if len(value) <= max_results and item.mode != 'all': if item.mode != 'all':
if len(value) == 1: if len(value) == 1:
if not value[0].action or config.get_localized_string(70006).lower() in value[0].title.lower(): if not value[0].action or config.get_localized_string(70006).lower() in value[0].title.lower():
continue continue