From 73efed17d0cb53e7f309fad8dd68a34a203172d9 Mon Sep 17 00:00:00 2001
From: William Lopez
Date: Sat, 15 Sep 2018 15:38:07 -0400
Subject: [PATCH] yts.am working
---
plugin.video.alfa/channels/yts.json | 23 ++++
plugin.video.alfa/channels/yts.py | 123 ++++++++++++++++++
.../resources/media/channels/thumb/yts.jpg | Bin 0 -> 18739 bytes
3 files changed, 146 insertions(+)
create mode 100644 plugin.video.alfa/channels/yts.json
create mode 100644 plugin.video.alfa/channels/yts.py
create mode 100644 plugin.video.alfa/resources/media/channels/thumb/yts.jpg
diff --git a/plugin.video.alfa/channels/yts.json b/plugin.video.alfa/channels/yts.json
new file mode 100644
index 00000000..c3a13cb6
--- /dev/null
+++ b/plugin.video.alfa/channels/yts.json
@@ -0,0 +1,23 @@
+{
+ "id": "yts",
+ "name": "Yts",
+ "active": true,
+ "adult": false,
+ "language": ["*"],
+ "thumbnail": "yts.jpg",
+ "categories": [
+ "movie",
+ "torrent",
+ "vos"
+ ],
+ "settings":[
+ {
+ "id": "include_in_global_search",
+ "type": "bool",
+ "label": "Incluir en busqueda global",
+ "default": false,
+ "enabled": true,
+ "visible": true
+ }
+ ]
+}
\ No newline at end of file
diff --git a/plugin.video.alfa/channels/yts.py b/plugin.video.alfa/channels/yts.py
new file mode 100644
index 00000000..183629ff
--- /dev/null
+++ b/plugin.video.alfa/channels/yts.py
@@ -0,0 +1,123 @@
+# -*- coding: utf-8 -*-
+
+from core import httptools
+from core import scrapertools
+from core import servertools
+from core import tmdb
+from core.item import Item
+from lib import generictools
+from platformcode import logger
+
+def mainlist(item):
+ logger.info()
+ itemlist = []
+ itemlist.append(Item(channel = item.channel,
+ title = "Browse",
+ action = "movies",
+ opt = 0,
+ url = "https://yts.am/browse-movies"
+ ))
+
+ itemlist.append(Item(channel = item.channel,
+ title = "Popular",
+ action = "movies",
+ opt = 1,
+ url = "https://yts.am" ))
+
+ itemlist.append(Item(channel = item.channel,
+ title = "Search",
+ action = "search",
+ opt = 0,
+ url = "https://yts.am/browse-movies"
+ ))
+
+ return itemlist
+
+def movies(item):
+ logger.info()
+ itemlist = []
+ infoLabels = {}
+ data = httptools.downloadpage(item.url).data
+
+ patron = '(?s)class="browse-movie-wrap.*?a href="([^"]+).*?' #Movie link
+ patron += 'img class.*?src="([^"]+).*?' #Image
+ patron += 'movie-title">.*?([^<]+)' #Movie title
+ patron += '.*?year">(.*?)<' #Year
+
+ matches = scrapertools.find_multiple_matches(data, patron)
+ idx = 0
+
+ for scrapedurl, scrapedthumbnail, scrapedtitle, year in matches:
+ if item.opt == 1:
+ scrapedthumbnail = 'https://yts.am' + scrapedthumbnail
+ infoLabels['plot'] = findplot(scrapedurl)
+
+ itemlist.append(Item(action = "findvideo",
+ channel = item.channel,
+ infoLabels = infoLabels,
+ title = scrapedtitle + ' (' + year + ')',
+ thumbnail = scrapedthumbnail,
+ url = scrapedurl
+ ))
+ idx += 1
+ if item.opt == 1 and idx == 4:
+ break
+ if itemlist != []:
+ actual_page = item.url
+ pattern = '(?s)href="([^"]+)">Next.*?'
+ next_page = scrapertools.find_single_match(data, pattern)
+
+ if next_page != '':
+ itemlist.append(Item(channel=item.channel,
+ action="movies",
+ title='Next >>>',
+ url='https://yts.am' + next_page))
+
+ return itemlist
+
+def findplot(url):
+ data = httptools.downloadpage(url).data
+
+ pattern = '(?s)(.*?)
' #Synopsis
+
+ plot = scrapertools.find_single_match(data, pattern)
+
+ return plot
+
+def findvideo(item):
+ itemlist = []
+ data = httptools.downloadpage(item.url).data
+
+ patron = '(?s)modal-quality.*?(.*?)' #Quality
+ patron += '.*?size">(.*?)
' #Type
+ patron += '.*?href="([^"]+)" rel' #Torrent link
+
+ matches = scrapertools.find_multiple_matches(data, patron)
+
+ for quality, videoType, link in matches:
+
+ title = item.title + ' ' + quality + ' ' + videoType
+ itemlist.append(Item(channel = item.channel,
+ title=title,
+ url = link,
+ thumbnail = item.thumbnail,
+ action='play',
+ server='torrent'
+ ))
+
+ return itemlist
+
+def search(item, text):
+ logger.info('search: ' + text)
+
+ try:
+ item.url = 'https://yts.am/browse-movies/' + text + '/all/all/0/latest'
+ itemlist = movies(item)
+
+ return itemlist
+
+ except:
+ import sys
+ for line in sys.exc_info():
+ logger.error("%s" % line)
+ return []
\ No newline at end of file
diff --git a/plugin.video.alfa/resources/media/channels/thumb/yts.jpg b/plugin.video.alfa/resources/media/channels/thumb/yts.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6804b34aec626afc3cf971f7465f55eb32bc966c
GIT binary patch
literal 18739
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
literal 0
HcmV?d00001