excitablevulgar
Usuario novato
JackTorr (plugin.video.jacktorr) es un addon de Kodi que reproduce torrents en streaming a través de un servidor TorrServer, ya sea local o en un NAS. Usa las mismas URLs de reproducción que Torrest:
-
-
-
Por eso puede reutilizar la rama de reproducción de Torrest que ya tiene Alfa, con dos cambios pequeños:
Notas
-
plugin://plugin.video.jacktorr/play_magnet?magnet=<magnet>-
plugin://plugin.video.jacktorr/play_url?url=<url>-
plugin://plugin.video.jacktorr/play_path?path=<path>Por eso puede reutilizar la rama de reproducción de Torrest que ya tiene Alfa, con dos cambios pequeños:
- servers/torrent.json: añadir JackTorr a clients. Va al final de la lista para que el ajuste torrent_client que ya tienen guardado los usuarios siga apuntando al mismo gestor.
platformcode/platformtools.py(play_torrent): hacer que JackTorr pase por la rama de Torrest. Alfa entrega aquí los magnets ya codificados en URL y con&en lugar de&. Torrest lo tolera, pero JackTorr envía el valor tal cual a TorrServer, que responde HTTP 400 en POST /torrents. Por eso, para JackTorr, el código decodifica el enlace, cambia&por&y lo codifica una sola vez. Las rutas locales solo se codifican.
Git:
diff --git a/platformcode/platformtools.py b/platformcode/platformtools.py
index db51731..4f36654 100644
--- a/platformcode/platformtools.py
+++ b/platformcode/platformtools.py
@@ -3369,16 +3369,21 @@ def play_torrent(item, xlistitem, mediaurl):
)
downloadProgress = 1
if not result: # Si falla todo, se usa el antiguo sistema
- if torr_client == "torrest":
+ if torr_client in ["torrest", "jacktorr"]:
play_type = "path"
if mediaurl.startswith("magnet"):
play_type = "magnet"
if mediaurl.startswith("http"):
play_type = "url"
+ play_url = mediaurl
+ if torr_client == "jacktorr": # JackTorr: Alfa lo pasa codificado y con "&"; se normaliza y se codifica una vez
+ if play_type != "path":
+ play_url = urlparse.unquote(play_url).replace("&", "&")
+ play_url = urlparse.quote_plus(play_url)
xbmc.executebuiltin(
"PlayMedia("
+ torrent_options[seleccion][1]
- % (play_type, play_type, mediaurl)
+ % (play_type, play_type, play_url)
+ ")"
)
else:
diff --git a/servers/torrent.json b/servers/torrent.json
index 2fff1f0..c2738b5 100644
--- a/servers/torrent.json
+++ b/servers/torrent.json
@@ -40,6 +40,11 @@
"id": "plugin.video.torrest",
"name": "torrest",
"url": "plugin://plugin.video.torrest/play_%s?%s=%s"
+ },
+ {
+ "id": "plugin.video.jacktorr",
+ "name": "jacktorr",
+ "url": "plugin://plugin.video.jacktorr/play_%s?%s=%s"
}
],
"find_videos": {
Notas
- Torrest funciona exactamente igual que antes.
- JackTorr se admite solo para reproducir en streaming. La reanudación por la API web, la descarga en segundo plano y la gestión de RAR de Alfa no están conectadas para este gestor. En torrent_dirs() cae en la rama genérica, que escribe en el log un ERROR en torr_client: jacktorr sin consecuencias. Una rama propia ahí quitaría ese mensaje.
- Probado en Kodi (Windows), con JackTorr 1.2.2 y TorrServer en un equipo de la red local.
Última edición: