Fix News
This commit is contained in:
+24
-18
@@ -13,7 +13,6 @@ if sys.version_info[0] >= 3:
|
|||||||
else:
|
else:
|
||||||
from concurrent_py2 import futures
|
from concurrent_py2 import futures
|
||||||
|
|
||||||
progress = None
|
|
||||||
mode = config.get_setting('result_mode', 'news')
|
mode = config.get_setting('result_mode', 'news')
|
||||||
|
|
||||||
def mainlist(item):
|
def mainlist(item):
|
||||||
@@ -77,22 +76,27 @@ def news(item):
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
itemlist = []
|
itemlist = []
|
||||||
results = cache()
|
results = cache(item.extra)
|
||||||
if not results:
|
if not results:
|
||||||
|
|
||||||
global progress
|
|
||||||
progress = platformtools.dialog_progress(item.category, config.get_localized_string(60519))
|
progress = platformtools.dialog_progress(item.category, config.get_localized_string(60519))
|
||||||
channels = get_channels(item.extra)
|
channels = get_channels(item.extra)
|
||||||
|
|
||||||
|
channelNames = [c[0] for c in channels]
|
||||||
|
count = 0
|
||||||
|
progress.update(int(count / len(channels)), ', '.join(c for c in channelNames))
|
||||||
|
|
||||||
with futures.ThreadPoolExecutor() as executor:
|
with futures.ThreadPoolExecutor() as executor:
|
||||||
itlist = [executor.submit(get_newest, i, channel, item.extra, len(channels)) for i, channel in enumerate(channels)]
|
itlist = [executor.submit(get_newest, channel, item.extra, channels) for channel in channels]
|
||||||
for res in futures.as_completed(itlist):
|
for res in futures.as_completed(itlist):
|
||||||
if res.result():
|
if res.result():
|
||||||
|
name = res.result()[0]
|
||||||
|
channelNames.remove(name)
|
||||||
|
progress.update(int(count + 1 / len(channels)), ', '.join(c for c in channelNames))
|
||||||
results.append(res.result())
|
results.append(res.result())
|
||||||
if progress:
|
if progress:
|
||||||
progress.close()
|
progress.close()
|
||||||
|
|
||||||
cache(results)
|
cache(item.extra, results)
|
||||||
|
|
||||||
if mode in [2]:
|
if mode in [2]:
|
||||||
for res in results:
|
for res in results:
|
||||||
@@ -136,17 +140,15 @@ def news(item):
|
|||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
def get_newest(i, channel, category, total):
|
def get_newest(channel, category, channels):
|
||||||
global progress
|
global progress
|
||||||
cat = {'movie':'movies', 'tvshow':'shows', 'anime':'anime'}
|
|
||||||
name = channel[0]
|
name = channel[0]
|
||||||
_id = channel[1]
|
_id = channel[1]
|
||||||
|
|
||||||
module = platformtools.channel_import(_id)
|
|
||||||
logger.debug('channel_id=', _id, 'category=', category)
|
|
||||||
if progress: progress.update(int(i + 1 / total), name)
|
|
||||||
list_newest = []
|
list_newest = []
|
||||||
try:
|
try:
|
||||||
|
module = platformtools.channel_import(_id)
|
||||||
|
logger.debug('channel_id=', _id, 'category=', category)
|
||||||
|
|
||||||
if not module:
|
if not module:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
@@ -154,6 +156,8 @@ def get_newest(i, channel, category, total):
|
|||||||
for item in list_newest:
|
for item in list_newest:
|
||||||
item.channel = _id
|
item.channel = _id
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
except:
|
except:
|
||||||
logger.error("No se pueden recuperar novedades de: " + name)
|
logger.error("No se pueden recuperar novedades de: " + name)
|
||||||
import traceback
|
import traceback
|
||||||
@@ -168,20 +172,22 @@ def movies(item):
|
|||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
def cache(results=None):
|
def cache(_type, results=None):
|
||||||
from core import db
|
from core import db
|
||||||
from time import time
|
from time import time
|
||||||
news = db['news']
|
news = db['news']
|
||||||
|
# logger.dbg()
|
||||||
|
|
||||||
if results != None:
|
if results != None:
|
||||||
news['time'] = time()
|
news[_type] = {}
|
||||||
news['results'] = results
|
news[_type]['time'] = time()
|
||||||
|
news[_type]['results'] = results
|
||||||
db['news'] = news
|
db['news'] = news
|
||||||
|
|
||||||
elif news.get('time', 0) + 60 < time() :
|
elif news.get(_type, {}).get('time', 0) + 60 < time() :
|
||||||
results = []
|
results = []
|
||||||
else:
|
else:
|
||||||
results = news.get('results', [])
|
results = news.get(_type, {}).get('results', [])
|
||||||
db.close()
|
db.close()
|
||||||
return results
|
return results
|
||||||
|
|
||||||
@@ -240,7 +246,7 @@ def setting_channel(item):
|
|||||||
|
|
||||||
|
|
||||||
def save_settings(item, dict_values):
|
def save_settings(item, dict_values):
|
||||||
cache([])
|
cache({})
|
||||||
for v in dict_values:
|
for v in dict_values:
|
||||||
config.set_setting("include_in_newest_" + item.extra, dict_values[v], v)
|
config.set_setting("include_in_newest_" + item.extra, dict_values[v], v)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user