Test Ricerca per canale in cache

This commit is contained in:
Alhaziel01
2020-07-30 17:54:04 +02:00
parent 8271630d89
commit 297a894a64
3 changed files with 56 additions and 24 deletions

View File

@@ -988,6 +988,7 @@ def add_movie(item):
@param item: item to be saved.
"""
logger.info()
from platformcode.launcher import set_search_temp; set_search_temp(item)
# To disambiguate titles, TMDB is caused to ask for the really desired title
# The user can select the title among those offered on the first screen
@@ -1034,6 +1035,7 @@ def add_tvshow(item, channel=None):
"""
logger.info("show=#" + item.show + "#")
from platformcode.launcher import set_search_temp; set_search_temp(item)
if item.channel == "downloads":
itemlist = [item.clone()]

View File

@@ -8,8 +8,10 @@ PY3 = False
if sys.version_info[0] >= 3:PY3 = True; unicode = str; unichr = chr; long = int
from core.item import Item
from core import filetools
from platformcode import config, logger, platformtools
from platformcode.logger import WebErrorException
temp_search_file = config.get_temp_file('temp-search')
def start():
@@ -242,6 +244,20 @@ def run(item=None):
# Special action for searching, first asks for the words then call the "search" function
elif item.action == "search":
# from core.support import dbg;dbg()
if filetools.isfile(temp_search_file):
itemlist = []
f = filetools.read(temp_search_file)
strList = f.split(',')
if strList[0] == '[V]' and strList[1] == item.channel:
for it in strList:
if it and it not in ['[V]', item.channel]:
itemlist.append(Item().fromurl(it))
filetools.write(temp_search_file, f[4:])
return platformtools.render_items(itemlist, item)
else:
filetools.remove(temp_search_file)
logger.info("item.action=%s" % item.action.upper())
from core import channeltools
@@ -250,15 +266,11 @@ def run(item=None):
else:
last_search = ''
tecleado = platformtools.dialog_input(last_search)
search_text = platformtools.dialog_input(last_search)
if tecleado is not None:
channeltools.set_channel_setting('Last_searched', tecleado, 'search')
if 'search' in dir(channel):
itemlist = channel.search(item, tecleado)
else:
from core import support
itemlist = support.search(channel, item, tecleado)
if search_text is not None:
channeltools.set_channel_setting('Last_searched', search_text, 'search')
itemlist = new_search(item.clone(text=search_text), channel)
else:
return
@@ -276,8 +288,7 @@ def run(item=None):
trakt_tools.auth_trakt()
else:
import xbmc
if not xbmc.getCondVisibility('System.HasAddon(script.trakt)') and config.get_setting(
'install_trakt'):
if not xbmc.getCondVisibility('System.HasAddon(script.trakt)') and config.get_setting('install_trakt'):
trakt_tools.ask_install_script()
itemlist = trakt_tools.trakt_check(itemlist)
else:
@@ -330,6 +341,24 @@ def run(item=None):
log_message)
def new_search(item, channel=None):
itemlist=[]
if 'search' in dir(channel):
itemlist = channel.search(item, item.text)
else:
from core import support
itemlist = support.search(channel, item, item.text)
writelist = item.channel
for it in itemlist:
writelist += ',' + it.tourl()
filetools.write(temp_search_file, writelist)
return itemlist
def set_search_temp(item):
if filetools.isfile(temp_search_file):
f = '[V],' + filetools.read(temp_search_file)
filetools.write(temp_search_file, f)
def reorder_itemlist(itemlist):
logger.info()

View File

@@ -95,9 +95,9 @@ def saved_search(item):
def new_search(item):
logger.info()
filename = config.get_temp_file('temp-search')
if filetools.isfile(filename):
filetools.remove(filename)
temp_search_file = config.get_temp_file('temp-search')
if filetools.isfile(temp_search_file):
filetools.remove(temp_search_file)
itemlist = []
if config.get_setting('last_search'):
@@ -154,16 +154,15 @@ def new_search(item):
if item.mode == 'all' or not itemlist:
return channel_search(Item(channel=item.channel,
title=searched_text,
text=searched_text,
mode='all',
infoLabels={}))
title=searched_text,
text=searched_text,
mode='all',
infoLabels={}))
return itemlist
def channel_search(item):
from base64 import b64decode, b64encode
logger.info(item)
start = time.time()
@@ -182,16 +181,17 @@ def channel_search(item):
item.text = item.infoLabels['title']
item.title = item.text
filename = config.get_temp_file('temp-search')
if filetools.isfile(filename):
temp_search_file = config.get_temp_file('temp-search')
if filetools.isfile(temp_search_file):
itemlist = []
f = filetools.read(filename)
f = filetools.read(temp_search_file)
if f.startswith(item.text):
for it in f.split(','):
if it: itemlist.append(Item().fromurl(it))
if it and it != item.text:
itemlist.append(Item().fromurl(it))
return itemlist
else:
filetools.remove(filename)
filetools.remove(temp_search_file)
searched_id = item.infoLabels['tmdb_id']
@@ -346,11 +346,12 @@ def channel_search(item):
if results:
results.insert(0, Item(title=typo(config.get_localized_string(30025), 'color kod bold'), thumbnail=get_thumb('search.png')))
# logger.debug(results_statistic)
itlist = valid + results
writelist = item.text
for it in itlist:
writelist += ',' + it.tourl()
filetools.write(filename, str(writelist))
filetools.write(temp_search_file, writelist)
return itlist