From 653841d791f27e10ae10ff6ec3dd373b8ce60d9f Mon Sep 17 00:00:00 2001
From: Intel1 <25161862+Intel11@users.noreply.github.com>
Date: Tue, 26 Jun 2018 09:55:17 -0500
Subject: [PATCH 01/20] scrapertools: fix temporadas especiales
---
plugin.video.alfa/core/scrapertools.py | 88 ++------------------------
1 file changed, 4 insertions(+), 84 deletions(-)
diff --git a/plugin.video.alfa/core/scrapertools.py b/plugin.video.alfa/core/scrapertools.py
index faa20dde..e93ee8cd 100755
--- a/plugin.video.alfa/core/scrapertools.py
+++ b/plugin.video.alfa/core/scrapertools.py
@@ -22,28 +22,12 @@ def cachePage(url, post=None, headers=None, modoCache=None, timeout=None):
def downloadpage(url, post=None, headers=None, follow_redirects=True, timeout=None, header_to_get=None):
response = httptools.downloadpage(url, post=post, headers=headers, follow_redirects=follow_redirects,
timeout=timeout)
-
if header_to_get:
return response.headers.get(header_to_get)
else:
return response.data
-# def downloadpageWithResult(url, post=None, headers=None, follow_redirects=True, timeout=None, header_to_get=None):
-# response = httptools.downloadpage(url, post=post, headers=headers, follow_redirects=follow_redirects,
-# timeout=timeout)
-#
-# if header_to_get:
-# return response.headers.get(header_to_get)
-# else:
-# return response.data, response.code
-
-
-# def downloadpageWithoutCookies(url):
-# response = httptools.downloadpage(url, cookies=False)
-# return response.data
-
-
def downloadpageGzip(url):
response = httptools.downloadpage(url, add_referer=True)
return response.data
@@ -60,23 +44,12 @@ def get_header_from_response(url, header_to_get="", post=None, headers=None):
return response.headers.get(header_to_get)
-# def get_headers_from_response(url, post=None, headers=None):
-# response = httptools.downloadpage(url, post=post, headers=headers, only_headers=True)
-# return response.headers.items()
-
-
def read_body_and_headers(url, post=None, headers=None, follow_redirects=False, timeout=None):
response = httptools.downloadpage(url, post=post, headers=headers, follow_redirects=follow_redirects,
timeout=timeout)
return response.data, response.headers
-# def anti_cloudflare(url, host="", headers=None, post=None, location=False):
-# # anti_cloudfare ya integrado en httptools por defecto
-# response = httptools.downloadpage(url, post=post, headers=headers)
-# return response.data
-
-
def printMatches(matches):
i = 0
for match in matches:
@@ -130,17 +103,6 @@ def unescape(text):
else:
# named entity
try:
- '''
- if text[1:-1] == "amp":
- text = "&"
- elif text[1:-1] == "gt":
- text = ">"
- elif text[1:-1] == "lt":
- text = "<"
- else:
- print text[1:-1]
- text = unichr(htmlentitydefs.name2codepoint[text[1:-1]]).encode("utf-8")
- '''
import htmlentitydefs
text = unichr(htmlentitydefs.name2codepoint[text[1:-1]]).encode("utf-8")
except KeyError:
@@ -385,27 +347,6 @@ def remove_show_from_title(title, show):
return title
-# def getRandom(str):
-# return get_md5(str)
-
-
-# def unseo(cadena):
-# if cadena.upper().startswith("VER GRATIS LA PELICULA "):
-# cadena = cadena[23:]
-# elif cadena.upper().startswith("VER GRATIS PELICULA "):
-# cadena = cadena[20:]
-# elif cadena.upper().startswith("VER ONLINE LA PELICULA "):
-# cadena = cadena[23:]
-# elif cadena.upper().startswith("VER GRATIS "):
-# cadena = cadena[11:]
-# elif cadena.upper().startswith("VER ONLINE "):
-# cadena = cadena[11:]
-# elif cadena.upper().startswith("DESCARGA DIRECTA "):
-# cadena = cadena[17:]
-# return cadena
-
-
-# scrapertools.get_filename_from_url(media_url)[-4:]
def get_filename_from_url(url):
import urlparse
parsed_url = urlparse.urlparse(url)
@@ -465,7 +406,10 @@ def get_season_and_episode(title):
try:
matches = re.compile(patron, re.I).search(title)
if matches:
- filename = matches.group(1).lstrip('0') + "x" + matches.group(2).zfill(2)
+ if len(matches.group(1)) == 1:
+ filename = matches.group(1) + "x" + matches.group(2).zfill(2)
+ else:
+ filename = matches.group(1).lstrip('0') + "x" + matches.group(2).zfill(2)
break
except:
pass
@@ -473,27 +417,3 @@ def get_season_and_episode(title):
logger.info("'" + title + "' -> '" + filename + "'")
return filename
-
-
-# def get_sha1(cadena):
-# try:
-# import hashlib
-# devuelve = hashlib.sha1(cadena).hexdigest()
-# except:
-# import sha
-# import binascii
-# devuelve = binascii.hexlify(sha.new(cadena).digest())
-#
-# return devuelve
-
-
-# def get_md5(cadena):
-# try:
-# import hashlib
-# devuelve = hashlib.md5(cadena).hexdigest()
-# except:
-# import md5
-# import binascii
-# devuelve = binascii.hexlify(md5.new(cadena).digest())
-#
-# return devuelve
From f1176365bf87b1bfe76597bc6ff775257436af90 Mon Sep 17 00:00:00 2001
From: Intel1 <25161862+Intel11@users.noreply.github.com>
Date: Tue, 26 Jun 2018 09:57:51 -0500
Subject: [PATCH 02/20] hdfull: fix temp
---
plugin.video.alfa/channels/hdfull.py | 3 ---
1 file changed, 3 deletions(-)
diff --git a/plugin.video.alfa/channels/hdfull.py b/plugin.video.alfa/channels/hdfull.py
index 10982992..f02dff6f 100644
--- a/plugin.video.alfa/channels/hdfull.py
+++ b/plugin.video.alfa/channels/hdfull.py
@@ -413,9 +413,6 @@ def episodios(item):
patron = "
[^<]+"
matches = re.compile(patron, re.DOTALL).findall(data)
for scrapedurl in matches:
- if "temporada-0" in scrapedurl:
- continue
- ## Episodios
data = agrupa_datos(httptools.downloadpage(scrapedurl).data)
sid = scrapertools.get_match(data, "")
+ unpacked = jsunpack.unpack(packed)
video_urls = []
- videos = scrapertools.find_multiple_matches(data, 'file:"([^"]+).*?label:"([^"]+)')
+ videos = scrapertools.find_multiple_matches(unpacked, 'file:"([^"]+).*?label:"([^"]+)')
for video, label in videos:
video_urls.append([label + " [clipwatching]", video])
logger.info("Url: %s" %videos)
diff --git a/plugin.video.alfa/servers/cloudvideo.json b/plugin.video.alfa/servers/cloudvideo.json
new file mode 100644
index 00000000..bdb34dfb
--- /dev/null
+++ b/plugin.video.alfa/servers/cloudvideo.json
@@ -0,0 +1,42 @@
+{
+ "active": true,
+ "find_videos": {
+ "ignore_urls": [],
+ "patterns": [
+ {
+ "pattern": "https://cloudvideo.tv/embed-([a-z0-9]+).html",
+ "url": "https://cloudvideo.tv/embed-\\1.html"
+ }
+ ]
+ },
+ "free": true,
+ "id": "cloudvideo",
+ "name": "cloudvideo",
+ "settings": [
+ {
+ "default": false,
+ "enabled": true,
+ "id": "black_list",
+ "label": "Incluir en lista negra",
+ "type": "bool",
+ "visible": true
+ },
+ {
+ "default": 0,
+ "enabled": true,
+ "id": "favorites_servers_list",
+ "label": "Incluir en lista de favoritos",
+ "lvalues": [
+ "No",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5"
+ ],
+ "type": "list",
+ "visible": false
+ }
+ ],
+ "thumbnail": "https://cloudvideo.tv/static/img/logo5.png"
+}
diff --git a/plugin.video.alfa/servers/cloudvideo.py b/plugin.video.alfa/servers/cloudvideo.py
new file mode 100644
index 00000000..5ce34553
--- /dev/null
+++ b/plugin.video.alfa/servers/cloudvideo.py
@@ -0,0 +1,43 @@
+# Conector Cloudvideo By Alfa development Group
+# --------------------------------------------------------
+
+import re
+from core import httptools
+from core import scrapertools
+from lib import jsunpack
+from platformcode import logger
+
+
+def test_video_exists(page_url):
+ logger.info("(page_url='%s')" % page_url)
+
+ data = httptools.downloadpage(page_url)
+
+ if data.code == 404:
+ return False, "[Cloud] El archivo no existe o ha sido borrado"
+
+ return True, ""
+
+
+def get_video_url(page_url, premium=False, user="", password="", video_password=""):
+ logger.info("url=" + page_url)
+
+ video_urls = []
+ data = httptools.downloadpage(page_url).data
+ data = re.sub(r'"|\n|\r|\t| |
|\s{2,}', "", data)
+ enc_data = scrapertools.find_single_match(data, "type='text/javascript'>(.*?)")
+ dec_data = jsunpack.unpack(enc_data)
+ sources = scrapertools.find_single_match(dec_data, "sources:\[(.*?)]")
+ patron = "{file:(.*?)}"
+ matches = re.compile(patron, re.DOTALL).findall(sources)
+ scrapertools.printMatches(matches)
+ for url in matches:
+ quality = 'm3u8'
+ video_url = url
+ if 'label' in url:
+ url = url.split(',')
+ video_url = url[0]
+ quality = url[1].replace('label:','')
+ video_urls.append(['cloudvideo [%s]' % quality, video_url])
+
+ return video_urls
\ No newline at end of file
diff --git a/plugin.video.alfa/servers/filevideo.json b/plugin.video.alfa/servers/filevideo.json
new file mode 100644
index 00000000..9098f191
--- /dev/null
+++ b/plugin.video.alfa/servers/filevideo.json
@@ -0,0 +1,42 @@
+{
+ "active": true,
+ "find_videos": {
+ "ignore_urls": [],
+ "patterns": [
+ {
+ "pattern": "https://www.filevideo.net/embed-(?:embed-|)([A-z0-9]+)",
+ "url": "http://filevideo.net/embed-\\1.html"
+ }
+ ]
+ },
+ "free": true,
+ "id": "filevideo",
+ "name": "filevideo",
+ "settings": [
+ {
+ "default": false,
+ "enabled": true,
+ "id": "black_list",
+ "label": "Incluir en lista negra",
+ "type": "bool",
+ "visible": true
+ },
+ {
+ "default": 0,
+ "enabled": true,
+ "id": "favorites_servers_list",
+ "label": "Incluir en lista de favoritos",
+ "lvalues": [
+ "No",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5"
+ ],
+ "type": "list",
+ "visible": false
+ }
+ ],
+ "thumbnail": "https://s15.postimg.cc/b7jj9dbbf/filevideo.png"
+}
\ No newline at end of file
diff --git a/plugin.video.alfa/servers/filevideo.py b/plugin.video.alfa/servers/filevideo.py
new file mode 100644
index 00000000..c456b5ff
--- /dev/null
+++ b/plugin.video.alfa/servers/filevideo.py
@@ -0,0 +1,42 @@
+# -*- coding: utf-8 -*-
+
+from core import httptools
+from core import scrapertools
+from lib import jsunpack
+from platformcode import logger
+
+
+def test_video_exists(page_url):
+ logger.info("(page_url='%s')" % page_url)
+
+ data = httptools.downloadpage(page_url).data
+
+ if "Not Found" in data or "File was deleted" in data:
+ return False, "[Filevideo] El fichero no existe o ha sido borrado"
+
+ return True, ""
+
+
+def get_video_url(page_url, premium=False, user="", password="", video_password=""):
+ logger.info("url=" + page_url)
+
+ data = httptools.downloadpage(page_url).data
+ enc_data = scrapertools.find_single_match(data, "type='text/javascript'>(eval.*?)\s*")
+ dec_data = jsunpack.unpack(enc_data)
+
+ video_urls = []
+ media_urls = scrapertools.find_multiple_matches(dec_data, '\{file\s*:\s*"([^"]+)",label\s*:\s*"([^"]+)"\}')
+ for media_url, label in media_urls:
+ ext = scrapertools.get_filename_from_url(media_url)[-4:]
+ video_urls.append(["%s %sp [filevideo]" % (ext, label), media_url])
+
+ video_urls.reverse()
+ m3u8 = scrapertools.find_single_match(dec_data, '\{file\:"(.*?.m3u8)"\}')
+ if m3u8:
+ title = video_urls[-1][0].split(" ", 1)[1]
+ video_urls.insert(0, [".m3u8 %s" % title, m3u8])
+
+ for video_url in video_urls:
+ logger.info("%s - %s" % (video_url[0], video_url[1]))
+
+ return video_urls
diff --git a/plugin.video.alfa/servers/upvid.json b/plugin.video.alfa/servers/upvid.json
new file mode 100644
index 00000000..058fae74
--- /dev/null
+++ b/plugin.video.alfa/servers/upvid.json
@@ -0,0 +1,42 @@
+{
+ "active": true,
+ "find_videos": {
+ "ignore_urls": [],
+ "patterns": [
+ {
+ "pattern": "https://upvid.co/embed-([a-z0-9]+).html",
+ "url": "https://upvid.co/embed-\\1.html"
+ }
+ ]
+ },
+ "free": true,
+ "id": "upvid",
+ "name": "upvid",
+ "settings": [
+ {
+ "default": false,
+ "enabled": true,
+ "id": "black_list",
+ "label": "Incluir en lista negra",
+ "type": "bool",
+ "visible": true
+ },
+ {
+ "default": 0,
+ "enabled": true,
+ "id": "favorites_servers_list",
+ "label": "Incluir en lista de favoritos",
+ "lvalues": [
+ "No",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5"
+ ],
+ "type": "list",
+ "visible": false
+ }
+ ],
+ "thumbnail": "https://s15.postimg.cc/gz0tee0gb/zt_Oi_E6_S-_400x400.jpg"
+}
diff --git a/plugin.video.alfa/servers/upvid.py b/plugin.video.alfa/servers/upvid.py
new file mode 100644
index 00000000..c8686f81
--- /dev/null
+++ b/plugin.video.alfa/servers/upvid.py
@@ -0,0 +1,83 @@
+# -*- coding: utf-8 -*-
+# --------------------------------------------------------
+# Conector UpVID By Alfa development Group
+# --------------------------------------------------------
+
+import re
+import urllib
+from core import httptools
+from core import scrapertools
+from platformcode import logger
+
+import sys, os
+import re, base64
+from lib.aadecode import decode as aadecode
+
+
+def test_video_exists(page_url):
+ logger.info("(page_url='%s')" % page_url)
+
+ data = httptools.downloadpage(page_url)
+
+ if data.code == 404:
+ return False, "[upvid] El archivo no existe o ha sido borrado"
+
+ return True, ""
+
+
+def get_video_url(page_url, premium = False, user = "", password = "", video_password = ""):
+ logger.info("url=" + page_url)
+
+ video_urls = []
+ headers = {'referer': page_url}
+
+ for i in range(0, 3):
+ data = httptools.downloadpage(page_url, headers=headers).data
+ data = re.sub(r'"|\n|\r|\t| |
|\s{2,}', "", data)
+ if '\s*゚ω゚(.*?)', data, flags=re.DOTALL)[0]
+ text_decode = aadecode(code)
+ funcion, clave = re.findall("func\.innerHTML = (\w*)\('([^']*)', ", text_decode, flags=re.DOTALL)[0]
+
+ # decodificar javascript en campos html hidden
+ # --------------------------------------------
+ oculto = re.findall('|\s{2,}', "", data)
+ logger.debug(data)
+ patron = "src=([^ ]+) type='.*?/(.*?)'"
+ matches = re.compile(patron, re.DOTALL).findall(data)
+
+ for url, type in matches:
+ video_urls.append(['vidzella %s' % type, url])
+
+ return video_urls
diff --git a/plugin.video.alfa/servers/vivo.json b/plugin.video.alfa/servers/vivo.json
new file mode 100644
index 00000000..3b308512
--- /dev/null
+++ b/plugin.video.alfa/servers/vivo.json
@@ -0,0 +1,42 @@
+{
+ "active": true,
+ "find_videos": {
+ "ignore_urls": [],
+ "patterns": [
+ {
+ "pattern": "https://vivo.sx/([a-zA-Z0-9]+)",
+ "url": "https://vivo.sx/\\1"
+ }
+ ]
+ },
+ "free": true,
+ "id": "vivo",
+ "name": "vivo",
+ "settings": [
+ {
+ "default": false,
+ "enabled": true,
+ "id": "black_list",
+ "label": "Incluir en lista negra",
+ "type": "bool",
+ "visible": true
+ },
+ {
+ "default": 0,
+ "enabled": true,
+ "id": "favorites_servers_list",
+ "label": "Incluir en lista de favoritos",
+ "lvalues": [
+ "No",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5"
+ ],
+ "type": "list",
+ "visible": false
+ }
+ ],
+ "thumbnail": "https://s15.postimg.cc/oiyhtpdqj/vivo.png"
+}
\ No newline at end of file
diff --git a/plugin.video.alfa/servers/vivo.py b/plugin.video.alfa/servers/vivo.py
new file mode 100644
index 00000000..587926fb
--- /dev/null
+++ b/plugin.video.alfa/servers/vivo.py
@@ -0,0 +1,39 @@
+# Conector Vivo By Alfa development Group
+# --------------------------------------------------------
+
+import re
+import base64
+from core import httptools
+from core import scrapertools
+from platformcode import logger
+
+
+
+def test_video_exists(page_url):
+ logger.info("(page_url='%s')" % page_url)
+
+ data = httptools.downloadpage(page_url)
+
+ if data.code == 404:
+ return False, "[Vivo] El archivo no existe o ha sido borrado"
+
+ return True, ""
+
+
+def get_video_url(page_url, premium=False, user="", password="", video_password=""):
+ logger.info("url=" + page_url)
+
+ video_urls = []
+ data = httptools.downloadpage(page_url).data
+ data = re.sub(r'"|\n|\r|\t| |
|\s{2,}', "", data)
+
+ enc_data = scrapertools.find_single_match(data, "Core.InitializeStream \('(.*?)'\)")
+ logger.debug(enc_data)
+ dec_data = base64.b64decode(enc_data)
+
+ logger.debug(dec_data)
+
+ for url in eval(dec_data):
+ video_urls.append(['vivo', url])
+
+ return video_urls
diff --git a/plugin.video.alfa/servers/watchvideo.json b/plugin.video.alfa/servers/watchvideo.json
index 4ade5b32..60ff614a 100755
--- a/plugin.video.alfa/servers/watchvideo.json
+++ b/plugin.video.alfa/servers/watchvideo.json
@@ -6,6 +6,10 @@
{
"pattern": "watchvideo.us/(?:embed-|)([A-z0-9]+)",
"url": "http://watchvideo.us/embed-\\1.html"
+ },
+ {
+ "pattern": "watchvideo17.us/(?:embed-|)([A-z0-9]+)",
+ "url": "http://watchvideo.us/embed-\\1.html"
}
]
},
diff --git a/plugin.video.alfa/servers/watchvideo.py b/plugin.video.alfa/servers/watchvideo.py
index 8f426bd3..879fe6eb 100755
--- a/plugin.video.alfa/servers/watchvideo.py
+++ b/plugin.video.alfa/servers/watchvideo.py
@@ -2,6 +2,7 @@
from core import httptools
from core import scrapertools
+from lib import jsunpack
from platformcode import logger
@@ -20,15 +21,17 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
logger.info("url=" + page_url)
data = httptools.downloadpage(page_url).data
+ enc_data = scrapertools.find_single_match(data, "type='text/javascript'>(eval.*?)\s*")
+ dec_data = jsunpack.unpack(enc_data)
video_urls = []
- media_urls = scrapertools.find_multiple_matches(data, '\{file\s*:\s*"([^"]+)",label\s*:\s*"([^"]+)"\}')
+ media_urls = scrapertools.find_multiple_matches(dec_data, '\{file\s*:\s*"([^"]+)",label\s*:\s*"([^"]+)"\}')
for media_url, label in media_urls:
ext = scrapertools.get_filename_from_url(media_url)[-4:]
video_urls.append(["%s %sp [watchvideo]" % (ext, label), media_url])
video_urls.reverse()
- m3u8 = scrapertools.find_single_match(data, '\{file\:"(.*?.m3u8)"\}')
+ m3u8 = scrapertools.find_single_match(dec_data, '\{file\:"(.*?.m3u8)"\}')
if m3u8:
title = video_urls[-1][0].split(" ", 1)[1]
video_urls.insert(0, [".m3u8 %s" % title, m3u8])
From 966410f15aa2b794cf939b5552d5ed2fd38291cf Mon Sep 17 00:00:00 2001
From: Intel1 <25161862+Intel11@users.noreply.github.com>
Date: Wed, 27 Jun 2018 14:44:56 -0500
Subject: [PATCH 16/20] =?UTF-8?q?fix=20marcaci=C3=B3n=20videoteca?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
plugin.video.alfa/videolibrary_service.py | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/plugin.video.alfa/videolibrary_service.py b/plugin.video.alfa/videolibrary_service.py
index 1252fd80..2d578d31 100644
--- a/plugin.video.alfa/videolibrary_service.py
+++ b/plugin.video.alfa/videolibrary_service.py
@@ -13,11 +13,14 @@ from core import filetools
from core import videolibrarytools
from platformcode import config, logger
from platformcode import platformtools
+from channels import videolibrary
def update(path, p_dialog, i, t, serie, overwrite):
logger.info("Actualizando " + path)
insertados_total = 0
+ #logger.debug(serie)
+ head_nfo, it = videolibrarytools.read_nfo(path + '/tvshow.nfo')
# logger.debug("%s: %s" %(serie.contentSerieName,str(list_canales) ))
for channel, url in serie.library_urls.items():
@@ -35,6 +38,7 @@ def update(path, p_dialog, i, t, serie, overwrite):
pathchannels = filetools.join(config.get_runtime_path(), "channels", serie.channel + '.py')
logger.info("Cargando canal: " + pathchannels + " " +
serie.channel)
+ logger.debug(serie)
if serie.library_filter_show:
serie.show = serie.library_filter_show.get(channel, serie.contentSerieName)
@@ -46,10 +50,16 @@ def update(path, p_dialog, i, t, serie, overwrite):
if int(overwrite) == 3:
# Sobrescribir todos los archivos (tvshow.nfo, 1x01.nfo, 1x01 [canal].json, 1x01.strm, etc...)
insertados, sobreescritos, fallidos = videolibrarytools.save_tvshow(serie, itemlist)
+ serie= videolibrary.check_season_playcount(serie, serie.contentSeason)
+ if filetools.write(path + '/tvshow.nfo', head_nfo + it.tojson()):
+ serie.infoLabels['playcount'] = serie.playcount
else:
insertados, sobreescritos, fallidos = videolibrarytools.save_episodes(path, itemlist, serie,
silent=True,
overwrite=overwrite)
+ it = videolibrary.check_season_playcount(it, it.contentSeason)
+ if filetools.write(path + '/tvshow.nfo', head_nfo + it.tojson()):
+ serie.infoLabels['playcount'] = serie.playcount
insertados_total += insertados
except Exception, ex:
From ddf1c220b7cb6f5ed173a76a280e6c3d787bb0f5 Mon Sep 17 00:00:00 2001
From: Intel1 <25161862+Intel11@users.noreply.github.com>
Date: Wed, 27 Jun 2018 14:48:21 -0500
Subject: [PATCH 17/20] =?UTF-8?q?fix=20marcaci=C3=B3n=20videoteca?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
plugin.video.alfa/platformcode/xbmc_videolibrary.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugin.video.alfa/platformcode/xbmc_videolibrary.py b/plugin.video.alfa/platformcode/xbmc_videolibrary.py
index 38358fdb..fab5352a 100755
--- a/plugin.video.alfa/platformcode/xbmc_videolibrary.py
+++ b/plugin.video.alfa/platformcode/xbmc_videolibrary.py
@@ -52,7 +52,7 @@ def mark_auto_as_watched(item):
item.playcount = 1
sync_with_trakt = True
from channels import videolibrary
- videolibrary.mark_content_as_watched(item)
+ videolibrary.mark_content_as_watched2(item)
break
time.sleep(30)
From 98175e49752ac95850c8b3ee217859ef3503854e Mon Sep 17 00:00:00 2001
From: Intel1 <25161862+Intel11@users.noreply.github.com>
Date: Wed, 27 Jun 2018 14:49:56 -0500
Subject: [PATCH 18/20] =?UTF-8?q?fix=20marcaci=C3=B3n=20videoteca?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
plugin.video.alfa/channels/videolibrary.py | 67 ++++++++++++++++++++--
1 file changed, 62 insertions(+), 5 deletions(-)
diff --git a/plugin.video.alfa/channels/videolibrary.py b/plugin.video.alfa/channels/videolibrary.py
index b37528cc..0946f92c 100644
--- a/plugin.video.alfa/channels/videolibrary.py
+++ b/plugin.video.alfa/channels/videolibrary.py
@@ -494,9 +494,62 @@ def update_tvshow(item):
p_dialog.close()
+def mark_content_as_watched2(item):
+ logger.info()
+ # logger.debug("item:\n" + item.tostring('\n'))
+
+ if filetools.exists(item.nfo):
+ head_nfo, it = videolibrarytools.read_nfo(item.nfo)
+ #logger.debug(it)
+
+ if item.contentType == 'movie':
+ name_file = os.path.splitext(os.path.basename(item.nfo))[0]
+
+ if name_file != 'tvshow' :
+ it.library_playcounts.update({name_file: item.playcount})
+
+ if item.contentType == 'episode' or item.contentType == 'list' or name_file == 'tvshow':
+ # elif item.contentType == 'episode':
+ name_file = os.path.splitext(os.path.basename(item.strm_path))[0]
+ num_season = name_file [0]
+ item.__setattr__('contentType', 'episode')
+ item.__setattr__('contentSeason', num_season)
+ #logger.debug(name_file)
+
+ else:
+ name_file = item.contentTitle
+ # logger.debug(name_file)
+
+ if not hasattr(it, 'library_playcounts'):
+ it.library_playcounts = {}
+ it.library_playcounts.update({name_file: item.playcount})
+
+ # se comprueba que si todos los episodios de una temporada están marcados, se marque tb la temporada
+ if item.contentType != 'movie':
+ it = check_season_playcount(it, item.contentSeason)
+ #logger.debug(it)
+
+ # Guardamos los cambios en item.nfo
+ if filetools.write(item.nfo, head_nfo + it.tojson()):
+ item.infoLabels['playcount'] = item.playcount
+ logger.debug(item.playcount)
+
+ # if item.contentType == 'episodesss':
+ # Actualizar toda la serie
+ #new_item = item.clone(contentSeason=-1)
+ #mark_season_as_watched(new_item)
+
+ if config.is_xbmc():
+ from platformcode import xbmc_videolibrary
+ xbmc_videolibrary.mark_content_as_watched_on_kodi(item , item.playcount)
+ # logger.debug(item)
+
+ platformtools.itemlist_refresh()
+
+
def mark_content_as_watched(item):
logger.info()
- # logger.debug("item:\n" + item.tostring('\n'))
+ logger.debug("item:\n" + item.tostring('\n'))
if filetools.exists(item.nfo):
head_nfo, it = videolibrarytools.read_nfo(item.nfo)
@@ -520,10 +573,11 @@ def mark_content_as_watched(item):
if filetools.write(item.nfo, head_nfo + it.tojson()):
item.infoLabels['playcount'] = item.playcount
- if item.contentType == 'tvshow':
+ if item.contentType == 'tvshow' and item.type != 'episode' :
# Actualizar toda la serie
new_item = item.clone(contentSeason=-1)
mark_season_as_watched(new_item)
+
if config.is_xbmc(): #and item.contentType == 'episode':
from platformcode import xbmc_videolibrary
xbmc_videolibrary.mark_content_as_watched_on_kodi(item, item.playcount)
@@ -555,7 +609,7 @@ def mark_season_as_watched(item):
season, episode = season_episode.split("x")
if int(item.contentSeason) == -1 or int(season) == int(item.contentSeason):
- name_file = os.path.splitext(os.path.basename(f))[0]
+ name_file = os.path.splitext(os.path.basename(i))[0]
it.library_playcounts[name_file] = item.playcount
episodios_marcados += 1
@@ -685,16 +739,19 @@ def check_season_playcount(item, season):
def check_tvshow_playcount(item, season):
logger.info()
+ # logger.debug(item)
if season:
temporadas_serie = 0
temporadas_vistas_serie = 0
for key, value in item.library_playcounts.iteritems():
- if key == ("season %s" % season):
+ #if key.startswith("season %s" % season):
+ if key.startswith("season" ):
temporadas_serie += 1
if value > 0:
temporadas_vistas_serie += 1
+ #logger.debug(temporadas_serie)
- if temporadas_serie == temporadas_vistas_serie:
+ if temporadas_serie == temporadas_vistas_serie:
item.library_playcounts.update({item.title: 1})
else:
item.library_playcounts.update({item.title: 0})
From 0750c99df4033623e2c073afb6d380fac46a97d9 Mon Sep 17 00:00:00 2001
From: Intel1 <25161862+Intel11@users.noreply.github.com>
Date: Wed, 27 Jun 2018 15:00:09 -0500
Subject: [PATCH 19/20] news: fix para mediaserver
---
plugin.video.alfa/channels/news.py | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/plugin.video.alfa/channels/news.py b/plugin.video.alfa/channels/news.py
index 27d198ee..8f36a2a9 100644
--- a/plugin.video.alfa/channels/news.py
+++ b/plugin.video.alfa/channels/news.py
@@ -16,7 +16,7 @@ from core.item import Item
from platformcode import config, logger
from platformcode import platformtools
from core import jsontools
-from channels import side_menu
+
THUMBNAILS = {'0': 'posters', '1': 'banners', '2': 'squares'}
@@ -245,13 +245,15 @@ def novedades(item):
list_canales, any_active = get_channels_list()
- if mode=='silent' and any_active and len(list_canales[item.extra]) > 0:
- side_menu.set_menu_settings(item)
- aux_list=[]
- for canal in list_canales[item.extra]:
- if len(aux_list)<2:
- aux_list.append(canal)
- list_canales[item.extra]=aux_list
+ if config.is_xbmc():
+ from channels import side_menu
+ if mode=='silent' and any_active and len(list_canales[item.extra]) > 0:
+ side_menu.set_menu_settings(item)
+ aux_list=[]
+ for canal in list_canales[item.extra]:
+ if len(aux_list)<2:
+ aux_list.append(canal)
+ list_canales[item.extra]=aux_list
if mode == 'set_cache':
list_canales[item.extra] = list_canales[item.extra][2:]
From 5cf89dd58a0ae039407d4eb037ed896064ef9d57 Mon Sep 17 00:00:00 2001
From: Alfa <30527549+alfa-addon@users.noreply.github.com>
Date: Wed, 27 Jun 2018 16:15:10 -0500
Subject: [PATCH 20/20] v2.5.21
---
plugin.video.alfa/addon.xml | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/plugin.video.alfa/addon.xml b/plugin.video.alfa/addon.xml
index fe136a21..f9207650 100755
--- a/plugin.video.alfa/addon.xml
+++ b/plugin.video.alfa/addon.xml
@@ -1,5 +1,5 @@
-
+
@@ -22,12 +22,14 @@
» grantorrent » descargas2020
» torrentlocura » torrentrapid
» tumejortorrent » tvsinpagar
- » mispelisyseries » kbagi
- » animemovil » pelismagnet
- » pelisultra » seriesdanko
- » seriespapaya » seriesverde
- » ultrapeliculas » wikiseries
- ¤ arreglos internos
+ » mispelisyseries » playview
+ » clipwatching » cloudvideo
+ » filevideo » upvid
+ » vidzella » vivo
+ » watchvideo » vshare
+ ¤ arreglos internos y actualizado la versión mediaserver
+
+ ¤ Agradecimientos a @alaquepasa y @Pixo506 por colaborar con ésta versión.
Navega con Kodi por páginas web para ver sus videos de manera fácil.