initial background downloader support

This commit is contained in:
marco
2019-06-17 19:56:36 +02:00
parent deb0f20ecd
commit df94b062da
2 changed files with 15 additions and 15 deletions

View File

@@ -102,9 +102,9 @@ class Downloader(object):
# Funciones
def start_dialog(self, title=config.get_localized_string(60200)):
from platformcode import platformtools
progreso = platformtools.dialog_progress(title, config.get_localized_string(60201))
progreso = platformtools.dialog_progress_bg(title, config.get_localized_string(60201))
self.start()
while self.state == self.states.downloading and not progreso.iscanceled():
while self.state == self.states.downloading:
time.sleep(0.1)
line1 = "%s" % (self.filename)
line2 = config.get_localized_string(59983) % (
@@ -112,10 +112,7 @@ class Downloader(object):
self.speed[1], self.speed[2], self.connections[0], self.connections[1])
line3 = config.get_localized_string(60202) % (self.remaining_time)
progreso.update(int(self.progress), line1, line2, line3)
if self.state == self.states.downloading:
self.stop()
progreso.close()
progreso.update(int(self.progress), line1, line2 + line3)
def start(self):
if self._state == self.states.error: return

View File

@@ -14,6 +14,7 @@ from past.utils import old_div
import re
import time
import unicodedata
from threading import Thread
from core import filetools, jsontools, scraper, scrapertools, servertools, videolibrarytools, support
@@ -21,6 +22,7 @@ from core.downloader import Downloader
from core.item import Item
from platformcode import config, logger
from platformcode import platformtools
from platformcode.launcher import downloaderObj
STATUS_COLORS = {0: "orange", 1: "orange", 2: "green", 3: "red"}
STATUS_CODES = type("StatusCode", (), {"stoped": 0, "canceled": 1, "completed": 2, "error": 3})
@@ -262,7 +264,8 @@ def menu(item):
# Opcion inicaiar descarga
if opciones[seleccion] == op[0]:
start_download(item)
th = Thread(target=start_download, args=(item,))
th.start()
# Elegir Servidor
if opciones[seleccion] == op[3]:
@@ -398,14 +401,14 @@ def get_match_list(data, match_list, order_list=None, only_ascii=False, ignoreca
{ "ID1" : ["Cadena 1", "Cadena 2", "Cadena 3"],
"ID2" : ["Cadena 4", "Cadena 5", "Cadena 6"]
}
El diccionario no pude contener una misma cadena de busqueda en varías IDs.
La busqueda se realiza por orden de tamaño de cadena de busqueda (de mas larga a mas corta) si una cadena coincide,
se elimina de la cadena a buscar para las siguientes, para que no se detecten dos categorias si una cadena es parte de otra:
por ejemplo: "Idioma Español" y "Español" si la primera aparece en la cadena "Pablo sabe hablar el Idioma Español"
por ejemplo: "Idioma Español" y "Español" si la primera aparece en la cadena "Pablo sabe hablar el Idioma Español"
coincidira con "Idioma Español" pero no con "Español" ya que la coincidencia mas larga tiene prioridad.
"""
match_dict = dict()
matches = []
@@ -459,7 +462,7 @@ def get_match_list(data, match_list, order_list=None, only_ascii=False, ignoreca
def sort_method(item):
"""
Puntua cada item en funcion de varios parametros:
Puntua cada item en funcion de varios parametros:
@type item: item
@param item: elemento que se va a valorar.
@return: puntuacion otenida
@@ -733,14 +736,14 @@ def start_download(item):
def get_episodes(item):
logger.info("contentAction: %s | contentChannel: %s | contentType: %s" % (item.contentAction, item.contentChannel, item.contentType))
logger.info("contentAction: %s | contentChannel: %s | contentType: %s" % (
item.contentAction, item.contentChannel, item.contentType))
if 'dlseason' in item:
season = True
season_number = item.dlseason
else:
season = False
# El item que pretendemos descargar YA es un episodio
if item.contentType == "episode":
episodes = [item.clone()]