ramiro / service.subtitles.subdivx

Subdivx.com subtitles download Add-on for Kodi/XBMC v13 Gotham up to Kodi Matrix v19.
GNU General Public License v2.0
16 stars 22 forks source link

Problema con busqueda de subtitulos #42

Closed agustinlacorazza closed 4 years ago

agustinlacorazza commented 4 years ago

Buenas,

Por alguna razon en kodi 18.6 no me esta funcionando la busqueda de subtitulos, adjunto el log con full debug para ejemplo:

( probe con la version 0.25, 0.32, 0.33 y la 0.35 del plug-in,)

> 2020-03-23 02:51:06.709 T:1431294176   DEBUG: CPythonInvoker(6, /home/pi/.kodi/addons/service.subtitles.subdivx/service.py): instantiating addon using automatically obtained id of "service.subtitles.subdivx" dependent on version 2.14.0 of the xbmc.python api
2020-03-23 02:51:07.002 T:1766826208 WARNING: CRenderManager::WaitForBuffer - timeout waiting for buffer
2020-03-23 02:51:07.187 T:1752219872   DEBUG: CWebServer[8080]: request received for /jsonrpc
2020-03-23 02:51:07.505 T:1766826208   DEBUG: Previous line repeats 7 times.
2020-03-23 02:51:07.505 T:1766826208 WARNING: CRenderManager::WaitForBuffer - timeout waiting for buffer
2020-03-23 02:51:07.714 T:1431294176  NOTICE: SUBDIVX - Version: 0.2.5 -- Action: search
2020-03-23 02:51:07.723 T:1431294176   DEBUG: SUBDIVX - Search: item = {'2let_language': ['en'],
                                             '3let_language': ['eng'],
                                             'episode': '3',
                                             'file_original_path': u'smb://192.168.1.8/stuff/series/The big bang theory/The Big Bang Theory Season 1 Complete 720p BluRay x264 [i_c]/The Big Bang Theory S01E03 The Fuzzy Boots Corollary.mkv',
                                             'manual_search': False,
                                             'rar': False,
                                             'season': '1',
                                             'temp': False,
                                             'title': 'The Fuzzy Boots Corollary',
                                             'tvshow': 'The Big Bang Theory',
                                             'year': '2007'}
2020-03-23 02:51:07.724 T:1431294176   DEBUG: SUBDIVX - Search: Search string = The Big Bang Theory S01E03
2020-03-23 02:51:07.724 T:1431294176   DEBUG: SUBDIVX - get_all_subs: Trying page 1
2020-03-23 02:51:07.726 T:1431294176   DEBUG: SUBDIVX - get_url: Fetching http://www.subdivx.com/index.php?accion=5&masdesc=&oxdown=1&pg=1&buscar=The+Big+Bang+Theory+S01E03
2020-03-23 02:51:08.018 T:1766826208 WARNING: CRenderManager::WaitForBuffer - timeout waiting for buffer
2020-03-23 02:51:14.117 T:1431294176 WARNING: Previous line repeats 11 times.
2020-03-23 02:51:14.117 T:1431294176 WARNING: SUBDIVX - get_url: Failed to fetch http://www.subdivx.com/index.php?accion=5&masdesc=&oxdown=1&pg=1&buscar=The+Big+Bang+Theory+S01E03
2020-03-23 02:51:14.118 T:1766826208 WARNING: CRenderManager::WaitForBuffer - timeout waiting for buffer
2020-03-23 02:51:14.127 T:1431294176   DEBUG: SUBDIVX - compute_ratings: subs_list = []
2020-03-23 02:51:14.129 T:1431294176    INFO: CPythonInvoker(6, /home/pi/.kodi/addons/service.subtitles.subdivx/service.py): script successfully run
2020-03-23 02:51:14.129 T:1431294176   DEBUG: onExecutionDone(6, /home/pi/.kodi/addons/service.subtitles.subdivx/service.py)
2020-03-23 02:51:14.207 T:1431294176    INFO: Python interpreter stopped
2020-03-23 02:51:14.208 T:1431294176   DEBUG: Thread LanguageInvoker 1431294176 terminating
2020-03-23 02:51:14.621 T:1766826208 WARNING: CRenderManager::WaitForBuffer - timeout waiting for buffer
2020-03-23 02:51:44.128 T:1439686880 WARNING: Previous line repeats 58 times.
2020-03-23 02:51:44.129 T:1439686880   DEBUG: Thread JobWorker 1439686880 terminating (autodelete)
2020-03-23 02:51:44.601 T:1766826208 WARNING: CRenderManager::WaitForBuffer - timeout waiting for buffer

Gracias Saludos

ramiro commented 4 years ago
2020-03-23 02:51:07.726 T:1431294176   DEBUG: SUBDIVX - get_url: Fetching http://www.subdivx.com/index.php?accion=5&masdesc=&oxdown=1&pg=1&buscar=The+Big+Bang+Theory+S01E03.
...
2020-03-23 02:51:14.117 T:1431294176 WARNING: SUBDIVX - get_url: Failed to fetch http://www.subdivx.com/index.php?accion=5&masdesc=&oxdown=1&pg=1&buscar=The+Big+Bang+Theory+S01E03

Se ve como un problema de timeout al tratar de obtener esa URL. Muy posiblemente por congestión de red.

¿Te sucede con todo tipo de medios?

agustinlacorazza commented 4 years ago

Si, tira timeout feo...

El plugin de argenteam fuciona joya, y si al de subdivx le pongo "manual strings" tampoco resuelve nada,

Expolio commented 4 years ago

Hola buenas, uso mucho este servicio y desde ayer tengo el mismo problema, no arroja ningún resultado la búsqueda automática ni la manual.

rojinegr0 commented 4 years ago

Me pasa igual con kodi 18.6, loop infinito.

2020-03-23 23:05:26.506 T:448  NOTICE: SUBDIVX - Version: 0.3.2 -- Action: search
2020-03-23 23:05:26.509 T:448   DEBUG: SUBDIVX - Search: item = {'2let_language': ['en'],
2020-03-23 23:05:26.509 T:448   DEBUG: SUBDIVX - Search: Search string = Altered Carbon S01E01
2020-03-23 23:05:26.509 T:448   DEBUG: SUBDIVX - get_all_subs: Trying page 1
2020-03-23 23:05:26.510 T:448   DEBUG: SUBDIVX - get_url: Fetching http://www.subdivx.com/index.php?accion=5&masdesc=&oxdown=1&pg=1&buscar=Altered+Carbon+S01E01
2020-03-23 23:05:29.585 T:448   DEBUG: SUBDIVX - get_all_subs: Subtitles found for subdivx_id = X6XNTI2MDA0X-altered-carbon-s01e01:
2020-03-23 23:05:29.585 T:448   DEBUG: SUBDIVX - get_all_subs: "para la versión proper webrip-strife y similares español de españa"
2020-03-23 23:05:29.585 T:448   DEBUG: SUBDIVX - get_all_subs: "originales de netflix para altered carbon s01e01 en español neutro funcionan perfecto en las versiones ntb, strife, skgtv, seriously, entre otras"
2020-03-23 23:05:29.585 T:448   DEBUG: SUBDIVX - get_all_subs: Trying page 2
2020-03-23 23:05:29.585 T:448   DEBUG: SUBDIVX - get_url: Fetching http://www.subdivx.com/index.php?accion=5&masdesc=&oxdown=1&pg=2&buscar=Altered+Carbon+S01E01
2020-03-23 23:05:32.613 T:448   DEBUG: SUBDIVX - get_all_subs: Subtitles found for subdivx_id = X6XNTI2MDA0X-altered-carbon-s01e01:
2020-03-23 23:05:32.613 T:448   DEBUG: SUBDIVX - get_all_subs: "para la versión proper webrip-strife y similares español de españa"
2020-03-23 23:05:32.613 T:448   DEBUG: SUBDIVX - get_all_subs: "originales de netflix para altered carbon s01e01 en español neutro funcionan perfecto en las versiones ntb, strife, skgtv, seriously, entre otras"
2020-03-23 23:05:32.613 T:448   DEBUG: SUBDIVX - get_all_subs: Trying page 3
2020-03-23 23:05:32.614 T:448   DEBUG: SUBDIVX - get_url: Fetching http://www.subdivx.com/index.php?accion=5&masdesc=&oxdown=1&pg=3&buscar=Altered+Carbon+S01E01
2020-03-23 23:05:35.968 T:448   DEBUG: SUBDIVX - get_all_subs: Subtitles found for subdivx_id = X6XNTI2MDA0X-altered-carbon-s01e01:
2020-03-23 23:05:35.968 T:448   DEBUG: SUBDIVX - get_all_subs: "para la versión proper webrip-strife y similares español de españa"
2020-03-23 23:05:35.969 T:448   DEBUG: SUBDIVX - get_all_subs: "originales de netflix para altered carbon s01e01 en español neutro funcionan perfecto en las versiones ntb, strife, skgtv, seriously, entre otras"
2020-03-23 23:05:35.969 T:448   DEBUG: SUBDIVX - get_all_subs: Trying page 4
2020-03-23 23:05:35.969 T:448   DEBUG: SUBDIVX - get_url: Fetching http://www.subdivx.com/index.php?accion=5&masdesc=&oxdown=1&pg=4&buscar=Altered+Carbon+S01E01
2020-03-23 23:05:39.020 T:448   DEBUG: SUBDIVX - get_all_subs: Subtitles found for subdivx_id = X6XNTI2MDA0X-altered-carbon-s01e01:
2020-03-23 23:05:39.021 T:448   DEBUG: SUBDIVX - get_all_subs: "para la versión proper webrip-strife y similares español de españa"
2020-03-23 23:05:39.021 T:448   DEBUG: SUBDIVX - get_all_subs: "originales de netflix para altered carbon s01e01 en español neutro funcionan perfecto en las versiones ntb, strife, skgtv, seriously, entre otras"
2020-03-23 23:05:39.021 T:448   DEBUG: SUBDIVX - get_all_subs: Trying page 5
2020-03-23 23:05:39.021 T:448   DEBUG: SUBDIVX - get_url: Fetching http://www.subdivx.com/index.php?accion=5&masdesc=&oxdown=1&pg=5&buscar=Altered+Carbon+S01E01
2020-03-23 23:05:44.265 T:448   DEBUG: SUBDIVX - get_all_subs: Subtitles found for subdivx_id = X6XNTI2MDA0X-altered-carbon-s01e01:
2020-03-23 23:05:44.265 T:448   DEBUG: SUBDIVX - get_all_subs: "para la versión proper webrip-strife y similares español de españa"
2020-03-23 23:05:44.265 T:448   DEBUG: SUBDIVX - get_all_subs: "originales de netflix para altered carbon s01e01 en español neutro funcionan perfecto en las versiones ntb, strife, skgtv, seriously, entre otras"
2020-03-23 23:05:44.265 T:448   DEBUG: SUBDIVX - get_all_subs: Trying page 6
2020-03-23 23:05:44.266 T:448   DEBUG: SUBDIVX - get_url: Fetching http://www.subdivx.com/index.php?accion=5&masdesc=&oxdown=1&pg=6&buscar=Altered+Carbon+S01E01
2020-03-23 23:05:50.011 T:448   DEBUG: SUBDIVX - get_all_subs: Subtitles found for subdivx_id = X6XNTI2MDA0X-altered-carbon-s01e01:
2020-03-23 23:05:50.011 T:448   DEBUG: SUBDIVX - get_all_subs: "para la versión proper webrip-strife y similares español de españa"
2020-03-23 23:05:50.012 T:448   DEBUG: SUBDIVX - get_all_subs: "originales de netflix para altered carbon s01e01 en español neutro funcionan perfecto en las versiones ntb, strife, skgtv, seriously, entre otras"
2020-03-23 23:05:50.012 T:448   DEBUG: SUBDIVX - get_all_subs: Trying page 7
2020-03-23 23:05:50.013 T:448   DEBUG: SUBDIVX - get_url: Fetching http://www.subdivx.com/index.php?accion=5&masdesc=&oxdown=1&pg=7&buscar=Altered+Carbon+S01E01
2020-03-23 23:05:54.889 T:448   DEBUG: SUBDIVX - get_all_subs: Subtitles found for subdivx_id = X6XNTI2MDA0X-altered-carbon-s01e01:
2020-03-23 23:05:54.889 T:448   DEBUG: SUBDIVX - get_all_subs: "para la versión proper webrip-strife y similares español de españa"
2020-03-23 23:05:54.890 T:448   DEBUG: SUBDIVX - get_all_subs: "originales de netflix para altered carbon s01e01 en español neutro funcionan perfecto en las versiones ntb, strife, skgtv, seriously, entre otras"
2020-03-23 23:05:54.890 T:448   DEBUG: SUBDIVX - get_all_subs: Trying page 8
2020-03-23 23:05:54.891 T:448   DEBUG: SUBDIVX - get_url: Fetching http://www.subdivx.com/index.php?accion=5&masdesc=&oxdown=1&pg=8&buscar=Altered+Carbon+S01E01
2020-03-23 23:05:58.682 T:448   DEBUG: SUBDIVX - get_all_subs: Subtitles found for subdivx_id = X6XNTI2MDA0X-altered-carbon-s01e01:
2020-03-23 23:05:58.682 T:448   DEBUG: SUBDIVX - get_all_subs: "para la versión proper webrip-strife y similares español de españa"
2020-03-23 23:05:58.683 T:448   DEBUG: SUBDIVX - get_all_subs: "originales de netflix para altered carbon s01e01 en español neutro funcionan perfecto en las versiones ntb, strife, skgtv, seriously, entre otras"
2020-03-23 23:05:58.683 T:448   DEBUG: SUBDIVX - get_all_subs: Trying page 9
2020-03-23 23:05:58.683 T:448   DEBUG: SUBDIVX - get_url: Fetching http://www.subdivx.com/index.php?accion=5&masdesc=&oxdown=1&pg=9&buscar=Altered+Carbon+S01E01
2020-03-23 23:06:03.683 T:448   DEBUG: SUBDIVX - get_all_subs: Subtitles found for subdivx_id = X6XNTI2MDA0X-altered-carbon-s01e01:
2020-03-23 23:06:03.683 T:448   DEBUG: SUBDIVX - get_all_subs: "para la versión proper webrip-strife y similares español de españa"
2020-03-23 23:06:03.684 T:448   DEBUG: SUBDIVX - get_all_subs: "originales de netflix para altered carbon s01e01 en español neutro funcionan perfecto en las versiones ntb, strife, skgtv, seriously, entre otras"
2020-03-23 23:06:03.684 T:448   DEBUG: SUBDIVX - get_all_subs: Trying page 10
2020-03-23 23:06:03.684 T:448   DEBUG: SUBDIVX - get_url: Fetching http://www.subdivx.com/index.php?accion=5&masdesc=&oxdown=1&pg=10&buscar=Altered+Carbon+S01E01
2020-03-23 23:06:09.019 T:448   DEBUG: SUBDIVX - get_all_subs: Subtitles found for subdivx_id = X6XNTI2MDA0X-altered-carbon-s01e01:
2020-03-23 23:06:09.019 T:448   DEBUG: SUBDIVX - get_all_subs: "para la versión proper webrip-strife y similares español de españa"
2020-03-23 23:06:09.019 T:448   DEBUG: SUBDIVX - get_all_subs: "originales de netflix para altered carbon s01e01 en español neutro funcionan perfecto en las versiones ntb, strife, skgtv, seriously, entre otras"
methodmann commented 4 years ago

a me sucede que cuando le doy a buscar, se que buscando y ya no sale de ahí. Una vez puesta la búsqueda ya no me funciona ningún addon mas de subtitulos

TomiMc commented 4 years ago

A mi tambien me sucede, es un problema con la web de subdivx, si os fijais y haceis una busqueda grande donde haya mas de 1 pagina en los resultados de la busqueda e intentais cambiar a la pagina 2 o 3 o la que sea, no lo hace, entonces el plugin esta leyendo siempre la pagina 1 de los resultados de la busqueda y nunca acaba.

Yo mientras tanto le he metido un break al final de todo de la funcion get_all_subs(...) Quedaria asi:

    page += 1
    break

subs_list = sorted(subs_list, key=lambda s: s['sync'], reverse=True)
return subs_list

Asi solo parseara una pagina, para salir del paso mientras no arreglen la web

ramiro commented 4 years ago

¡Gracias a todos!

Se acepta toda la ayuda que podamos aportar entre todos., incluso una PR si llegado el punto queda claro que es necesario modificar el código del add-on.

Lamentablemente por ahora no dispongo ni del ancho de banda de Internet ni mental para dedicarme al asunto.

¡Gracias de nuevo!

Expolio commented 4 years ago

Confirmo que la solución de arriba funciona y como solución temporal esta muy bien, supongo que habrá que esperar un arreglo en la página. Muchas gracias TomiMc y sobretodo gracias a ramiro por la respuesta.

susobaco commented 4 years ago

Gracias, funciona el apaño.

pyro12 commented 4 years ago

Gracias a TomiMc!

abrir ... /. kodi / addons / services.subtitles.subdivx / service.py encuentra 'def get_all_subs' debajo de eso, busque 'page + = 1' agregue una nueva línea debajo de eso con la palabra 'break' guardar y Salir

Gracias a todos. Me siento perdido sin este servicio

TomiMc commented 4 years ago

Hay otra forma de arreglarlo, al parecer el paginate de subdivx funciona si cambias la variable "buscar" por "q" en la peticion GET que hace a la web. En este caso el paginate funcionaria y podria recorrer todos las paginas del resultado de la busqueda. La opcion del break romperia el bucle y solo recorreria una pagina, esto no seria un gran problema ya que normalmente buscamos por una serie temporada y episodio en concreto y esto no devuelve mas de una pagina en los resultados. La opcion de cambiar el "buscar" por una "q" el plugin recorreria todos los resultados pero dependemos de lo que haga subdivx en los proximos dias.

Salu2

P.D - A todo esto, yo no soy programador, soy sysadmin/redes asi que mi ayuda sera limitada :)

IvanRF commented 4 years ago

@TomiMc buen punto, estoy mirando que la primer URL que pasaron hace un redirect 302 Moved Temporarily cambiando el parámetro buscar por q, como bien decís. La propia página de subdivx tiene mal los links de paginación. Si se paran arriba de los números van a ver que la URL tiene el buscar y no andan en la propia web. Cambiar buscar por q sería la solución, en un rato lo pruebo en el plugin.

ramiro commented 4 years ago

¿Qué les parece una solución como #43 ?

En mis pruebas básicas me ha funcionado.

TomiMc commented 4 years ago

¿Qué les parece una solución como #43 ?

En mis pruebas básicas me ha funcionado.

La solucion hoy por hoy seria esa. Lo que no sabemos es si subdivx lo va a dejar como antes, o no.:) Aparte de eso yo le pondria un limite al While(True) de la funcion get_all_subs, yo creo que si page ==100 (ya me parece absurdamente grande) un break, para no caer en un loop infinito

ramiro commented 4 years ago

La solucion hoy por hoy seria esa. Lo que no sabemos es si subdivx lo va a dejar como antes, o no.:)

Ahora maneja los 2 valores ('q' y 'buscar') pero no nos protege contra un hipotético 3er. valor hasta que suceda :-(

Aparte de eso yo le pondria un limite al While(True) de la funcion get_all_subs, yo creo que si page ==100 (ya me parece absurdamente grande) un break, para no caer en un loop infinito

en otro commit queria implementar algo que compare la lista de subs de la pagina actual con la de la pág. anterior (si existe) y si son iguales salir del loop.

TomiMc commented 4 years ago

Acabo de mirar el commit y asi echandole un ojo y con mi escaso conocimiento, me surge una duda. Si la variable SEARCH_QS_NAMES = ('q', 'buscar') tuviera el buscar antes que la q, se quedaria en bucle infinito?. Entiendo que se quedaria igual.

ramiro commented 4 years ago

El contenido de los resultados es vacío, capaz se puede cortar el loop cuando pasa eso.

Eso era lo que hacía (y espero que siga haciendo) el algoritmo. Esa era la forma de detectar que tenia que terminar de loopear:

https://github.com/ramiro/service.subtitles.subdivx/blob/0f89912c2ab6ecb980cce4e10ee35f0c64e8aaad/service.py#L181-L182

methodmann commented 4 years ago

Agradeceros el trabajo que estáis haciendo. Ojala pudiera ayudaros pero 0 idea de programación. Gracias

IvanRF commented 4 years ago

El contenido de los resultados es vacío, capaz se puede cortar el loop cuando pasa eso.

Eso era lo que hacía (y espero que siga haciendo) el algoritmo. Esa era la forma de detectar que tenia que terminar de loopear:

https://github.com/ramiro/service.subtitles.subdivx/blob/0f89912c2ab6ecb980cce4e10ee35f0c64e8aaad/service.py#L181-L182

Sí, lo ví después, lo edité en https://github.com/ramiro/service.subtitles.subdivx/issues/44#issuecomment-605287599

TomiMc commented 4 years ago

Yo tenia esto escrito:

`def get_all_subs(searchstring, languageshort, file_orig_path): if languageshort != "es": return []

subs_list = []
search_param_works = False
paginate_error = False
param = 'q'
previous_content = None
page = 1

while True:
    log(u"Search param name: '%s'" % param)
    log(u"Trying page %d" % page)

    if paginate_error:
        param = 'buscar'

    url = SEARCH_PAGE_URL % {'page': page,
                            'query': quote_plus(searchstring),
                            'param': param }
    content = get_url(url)

    if page > 1:

        if content == previous_content:
            # No esta cambiando de pagina
            paginate_error = 1
            subs_list = []
            page = 1
            continue

    if content is None or not SUBTITLE_RE.search(content):
        break

    for counter, match in enumerate(SUBTITLE_RE.finditer(content)):
        groups = match.groupdict()

        subdivx_id = groups['subdivx_id']

        dls = re.sub(r'[,.]', '', groups['downloads'])
        downloads = int(dls)

        descr = cleanup_subdivx_comment(groups['comment'].decode(PAGE_ENCODING))

        # If our actual video file's name appears in the description
        # then set sync to True because it has better chances of its
        # synchronization to match
        _, fn = os.path.split(file_orig_path)
        name, _ = os.path.splitext(fn)
        sync = re.search(re.escape(name), descr, re.I) is not None

        try:
            if not counter:
                log(u'Subtitles found for subdivx_id = %s:' % subdivx_id)
            log(u'"%s"' % descr)
        except Exception:
            pass
        item = {
            'descr': descr,
            'sync': sync,
            'subdivx_id': subdivx_id.decode(PAGE_ENCODING),
            'uploader': groups['uploader'],
            'downloads': downloads,
            'score': int(groups['calif']),
        }
        subs_list.append(item)
    page += 1
    previous_content = copy.copy(content)

subs_list = sorted(subs_list, key=lambda s: s['sync'], reverse=True)
return subs_list`
IvanRF commented 4 years ago

El problema de que no cambia de página (y muestra el mismo contenido) es sólo porque se utiliza buscar y los de subdivx deben haber configurado mal los redirect. En una búsqueda normal hacen el redirect 302 Moved Temporarily cambiando el parámetro buscar por q.

El tema es que si se usa pg (page) junto con buscar, falla. Ejemplo: http://www.subdivx.com/index.php?accion=5&buscar=s15e01&masdesc=&idusuario=&nick=&oxfecha=&oxcd=&oxdown=&pg=3 redirecciona a http://www.subdivx.com/index.php?q=s15e01&accion=5&masdesc=&subtitulos=1&realiza_b=1

Ellos cambian buscar por q pero se olvidaron del parámetro pg.

Lo más simple es cambiar en el código del plugin buscar por q.

jamesdm commented 4 years ago

Como dice Ivan reemplaza el buscar por q y me funciona. Poner el break solo me daba errores.

ramiro commented 4 years ago

Por si es de ayuda:

Lamentablemente el release de la versión 0.3.5 del addon mediante el repositorio oficial de addons de Kodi viene demorado.

Mientras tanto, para quienes estuvieron modificando el archivo service.py del addon y saben en qué ruta se encuentra el mismo para su equipo (WIndows, Andorid, ...), aca pueden encontrar un service.py que incluye el arreglo para este problema que será incluido en 0.3.5:

https://gist.githubusercontent.com/ramiro/8313fb66f0a0cc7be6377a575e97bff4/raw/6257174115cdef23752cc5c07ba78cb725c67966/service.py