initial background downloader support
This commit is contained in:
@@ -92,9 +92,9 @@ class Downloader:
|
|||||||
# Funciones
|
# Funciones
|
||||||
def start_dialog(self, title=config.get_localized_string(60200)):
|
def start_dialog(self, title=config.get_localized_string(60200)):
|
||||||
from platformcode import platformtools
|
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()
|
self.start()
|
||||||
while self.state == self.states.downloading and not progreso.iscanceled():
|
while self.state == self.states.downloading:
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
line1 = "%s" % (self.filename)
|
line1 = "%s" % (self.filename)
|
||||||
line2 = config.get_localized_string(59983) % (
|
line2 = config.get_localized_string(59983) % (
|
||||||
@@ -102,10 +102,7 @@ class Downloader:
|
|||||||
self.speed[1], self.speed[2], self.connections[0], self.connections[1])
|
self.speed[1], self.speed[2], self.connections[0], self.connections[1])
|
||||||
line3 = config.get_localized_string(60202) % (self.remaining_time)
|
line3 = config.get_localized_string(60202) % (self.remaining_time)
|
||||||
|
|
||||||
progreso.update(int(self.progress), line1, line2, line3)
|
progreso.update(int(self.progress), line1, line2 + line3)
|
||||||
if self.state == self.states.downloading:
|
|
||||||
self.stop()
|
|
||||||
progreso.close()
|
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
if self._state == self.states.error: return
|
if self._state == self.states.error: return
|
||||||
|
|||||||
@@ -7,12 +7,14 @@ import os
|
|||||||
import re
|
import re
|
||||||
import time
|
import time
|
||||||
import unicodedata
|
import unicodedata
|
||||||
|
from threading import Thread
|
||||||
|
|
||||||
from core import filetools, jsontools, scraper, scrapertools, servertools, videolibrarytools, support
|
from core import filetools, jsontools, scraper, scrapertools, servertools, videolibrarytools, support
|
||||||
from core.downloader import Downloader
|
from core.downloader import Downloader
|
||||||
from core.item import Item
|
from core.item import Item
|
||||||
from platformcode import config, logger
|
from platformcode import config, logger
|
||||||
from platformcode import platformtools
|
from platformcode import platformtools
|
||||||
|
from platformcode.launcher import downloaderObj
|
||||||
|
|
||||||
STATUS_COLORS = {0: "orange", 1: "orange", 2: "green", 3: "red"}
|
STATUS_COLORS = {0: "orange", 1: "orange", 2: "green", 3: "red"}
|
||||||
STATUS_CODES = type("StatusCode", (), {"stoped": 0, "canceled": 1, "completed": 2, "error": 3})
|
STATUS_CODES = type("StatusCode", (), {"stoped": 0, "canceled": 1, "completed": 2, "error": 3})
|
||||||
@@ -244,7 +246,8 @@ def menu(item):
|
|||||||
|
|
||||||
# Opcion inicaiar descarga
|
# Opcion inicaiar descarga
|
||||||
if opciones[seleccion] == op[0]:
|
if opciones[seleccion] == op[0]:
|
||||||
start_download(item)
|
th = Thread(target=start_download, args=(item,))
|
||||||
|
th.start()
|
||||||
|
|
||||||
# Elegir Servidor
|
# Elegir Servidor
|
||||||
if opciones[seleccion] == op[3]:
|
if opciones[seleccion] == op[3]:
|
||||||
@@ -343,14 +346,14 @@ def get_match_list(data, match_list, order_list=None, only_ascii=False, ignoreca
|
|||||||
{ "ID1" : ["Cadena 1", "Cadena 2", "Cadena 3"],
|
{ "ID1" : ["Cadena 1", "Cadena 2", "Cadena 3"],
|
||||||
"ID2" : ["Cadena 4", "Cadena 5", "Cadena 6"]
|
"ID2" : ["Cadena 4", "Cadena 5", "Cadena 6"]
|
||||||
}
|
}
|
||||||
|
|
||||||
El diccionario no pude contener una misma cadena de busqueda en varías IDs.
|
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,
|
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:
|
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.
|
coincidira con "Idioma Español" pero no con "Español" ya que la coincidencia mas larga tiene prioridad.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
match_dict = dict()
|
match_dict = dict()
|
||||||
matches = []
|
matches = []
|
||||||
@@ -400,7 +403,7 @@ def get_match_list(data, match_list, order_list=None, only_ascii=False, ignoreca
|
|||||||
|
|
||||||
def sort_method(item):
|
def sort_method(item):
|
||||||
"""
|
"""
|
||||||
Puntua cada item en funcion de varios parametros:
|
Puntua cada item en funcion de varios parametros:
|
||||||
@type item: item
|
@type item: item
|
||||||
@param item: elemento que se va a valorar.
|
@param item: elemento que se va a valorar.
|
||||||
@return: puntuacion otenida
|
@return: puntuacion otenida
|
||||||
@@ -467,7 +470,7 @@ def download_from_url(url, item):
|
|||||||
d.start_dialog(config.get_localized_string(60332))
|
d.start_dialog(config.get_localized_string(60332))
|
||||||
|
|
||||||
# Descarga detenida. Obtenemos el estado:
|
# Descarga detenida. Obtenemos el estado:
|
||||||
# Se ha producido un error en la descarga
|
# Se ha producido un error en la descarga
|
||||||
if d.state == d.states.error:
|
if d.state == d.states.error:
|
||||||
logger.info("Error trying to download %s" % (url))
|
logger.info("Error trying to download %s" % (url))
|
||||||
status = STATUS_CODES.error
|
status = STATUS_CODES.error
|
||||||
@@ -668,7 +671,7 @@ def start_download(item):
|
|||||||
def get_episodes(item):
|
def get_episodes(item):
|
||||||
logger.info("contentAction: %s | contentChannel: %s | contentType: %s" % (
|
logger.info("contentAction: %s | contentChannel: %s | contentType: %s" % (
|
||||||
item.contentAction, item.contentChannel, item.contentType))
|
item.contentAction, item.contentChannel, item.contentType))
|
||||||
|
|
||||||
# El item que pretendemos descargar YA es un episodio
|
# El item que pretendemos descargar YA es un episodio
|
||||||
if item.contentType == "episode":
|
if item.contentType == "episode":
|
||||||
episodes = [item.clone()]
|
episodes = [item.clone()]
|
||||||
|
|||||||
Reference in New Issue
Block a user