# -*- coding: utf-8 -*-
# vStream https://github.com/Kodi-vStream/venom-xbmc-addons
import re
import base64
from resources.lib.gui.hoster import cHosterGui
from resources.lib.gui.gui import cGui
from resources.lib.handler.inputParameterHandler import cInputParameterHandler
from resources.lib.handler.outputParameterHandler import cOutputParameterHandler
from resources.lib.handler.requestHandler import cRequestHandler
from resources.lib.parser import cParser
from resources.lib.comaddon import progress #, VSlog
# copie du site http://www.kaydo.ws/
# copie du site https://www.hds.to/
SITE_IDENTIFIER = 'kaydo_ws'
SITE_NAME = 'Kaydo (hdss.to)'
SITE_DESC = 'Site de streaming en HD'
URL_MAIN = 'https://hdss.to/'
MOVIE_MOVIE = (URL_MAIN + 'films-z/', 'showMovies')
MOVIE_NEWS = (URL_MAIN + 'films-z/', 'showMovies')
MOVIE_COMMENTS = (URL_MAIN + 'populaires/', 'showMovies')
MOVIE_NOTES = (URL_MAIN + 'mieux-notes/', 'showMovies')
MOVIE_GENRES = (True, 'showMovieGenres')
MOVIE_LIST = (True, 'showAlpha')
SERIE_SERIES = (URL_MAIN + 'tv-series-z/', 'showMovies')
SERIE_NEWS = (URL_MAIN + 'tv-series-z/', 'showMovies')
URL_SEARCH = (URL_MAIN + '?s=', 'showMovies')
URL_SEARCH_MOVIES = (URL_SEARCH[0], 'showMovies')
URL_SEARCH_SERIES = (URL_SEARCH[0], 'showMovies')
FUNCTION_SEARCH = 'sHowResultSearch'
UA = 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0'
def Decode(chain):
try:
chain = 'aHR' + chain
chain = 'M'.join(chain.split('7A4c1Y9T8c'))
chain = 'V'.join(chain.split('8A5d1YX84A428s'))
chain = ''.join(chain.split('$'))
return base64.b64decode(chain)
except:
return chain
def load():
oGui = cGui()
oOutputParameterHandler = cOutputParameterHandler()
oOutputParameterHandler.addParameter('siteUrl', 'http://venom/')
oGui.addDir(SITE_IDENTIFIER, 'showSearch', 'Recherche', 'search.png', oOutputParameterHandler)
oOutputParameterHandler = cOutputParameterHandler()
oOutputParameterHandler.addParameter('siteUrl', MOVIE_NEWS[0])
oGui.addDir(SITE_IDENTIFIER, MOVIE_NEWS[1], 'Films (Derniers ajouts)', 'news.png', oOutputParameterHandler)
oOutputParameterHandler = cOutputParameterHandler()
oOutputParameterHandler.addParameter('siteUrl', MOVIE_COMMENTS[0])
oGui.addDir(SITE_IDENTIFIER, MOVIE_COMMENTS[1], 'Films (Les plus commentés)', 'comments.png', oOutputParameterHandler)
oOutputParameterHandler = cOutputParameterHandler()
oOutputParameterHandler.addParameter('siteUrl', MOVIE_NOTES[0])
oGui.addDir(SITE_IDENTIFIER, MOVIE_NOTES[1], 'Films (Les mieux notés)', 'notes.png', oOutputParameterHandler)
oOutputParameterHandler = cOutputParameterHandler()
oOutputParameterHandler.addParameter('siteUrl', MOVIE_GENRES[0])
oGui.addDir(SITE_IDENTIFIER, MOVIE_GENRES[1], 'Films (Genres)', 'genres.png', oOutputParameterHandler)
oOutputParameterHandler = cOutputParameterHandler()
oOutputParameterHandler.addParameter('siteUrl', MOVIE_LIST[0])
oGui.addDir(SITE_IDENTIFIER, MOVIE_LIST[1], 'Films (Par lettre)', 'az.png', oOutputParameterHandler)
oOutputParameterHandler = cOutputParameterHandler()
oOutputParameterHandler.addParameter('siteUrl', SERIE_NEWS[0])
oGui.addDir(SITE_IDENTIFIER, SERIE_NEWS[1], 'Séries (Derniers ajouts)', 'news.png', oOutputParameterHandler)
oGui.setEndOfDirectory()
def showAlpha():
oGui = cGui()
liste = []
liste.append(['#', URL_MAIN + 'letters/0-9/'])
liste.append(['A', URL_MAIN + 'letters/a/'])
liste.append(['B', URL_MAIN + 'letters/b/'])
liste.append(['C', URL_MAIN + 'letters/c/'])
liste.append(['D', URL_MAIN + 'letters/d/'])
liste.append(['E', URL_MAIN + 'letters/e/'])
liste.append(['F', URL_MAIN + 'letters/f/'])
liste.append(['G', URL_MAIN + 'letters/g/'])
liste.append(['H', URL_MAIN + 'letters/h/'])
liste.append(['I', URL_MAIN + 'letters/i/'])
liste.append(['J', URL_MAIN + 'letters/j/'])
liste.append(['K', URL_MAIN + 'letters/k/'])
liste.append(['L', URL_MAIN + 'letters/l/'])
liste.append(['M', URL_MAIN + 'letters/m/'])
liste.append(['N', URL_MAIN + 'letters/n/'])
liste.append(['O', URL_MAIN + 'letters/o/'])
liste.append(['P', URL_MAIN + 'letters/p/'])
liste.append(['Q', URL_MAIN + 'letters/q/'])
liste.append(['R', URL_MAIN + 'letters/r/'])
liste.append(['S', URL_MAIN + 'letters/s/'])
liste.append(['T', URL_MAIN + 'letters/t/'])
liste.append(['U', URL_MAIN + 'letters/u/'])
liste.append(['V', URL_MAIN + 'letters/v/'])
liste.append(['W', URL_MAIN + 'letters/w/'])
liste.append(['X', URL_MAIN + 'letters/x/'])
liste.append(['Y', URL_MAIN + 'letters/y/'])
liste.append(['Z', URL_MAIN + 'letters/z/'])
for sTitle, sUrl in liste:
oOutputParameterHandler = cOutputParameterHandler()
oOutputParameterHandler.addParameter('siteUrl', sUrl)
oGui.addDir(SITE_IDENTIFIER, 'showMovies', 'Lettre [COLOR coral]' + sTitle + '[/COLOR]', 'listes.png', oOutputParameterHandler)
oGui.setEndOfDirectory()
def showSearch():
oGui = cGui()
sSearchText = oGui.showKeyBoard()
if (sSearchText != False):
sUrl = URL_SEARCH[0] + sSearchText
showMovies(sUrl)
oGui.setEndOfDirectory()
return
def showMovieGenres():
oGui = cGui()
liste = []
liste.append(['Action', URL_MAIN + 'action/'])
liste.append(['Animation', URL_MAIN + 'animation/'])
liste.append(['Aventure', URL_MAIN + 'aventure/'])
liste.append(['Comédie', URL_MAIN + 'comedie/'])
liste.append(['Crime',URL_MAIN + 'crime/'])
liste.append(['Documentaire',URL_MAIN + 'documentaire/'])
liste.append(['Drame', URL_MAIN + 'drame/'])
liste.append(['Etranger', URL_MAIN + 'etranger/'])
liste.append(['Fantastique', URL_MAIN + 'fantastique/'])
liste.append(['Famille', URL_MAIN + 'familial/'])
liste.append(['Guerre', URL_MAIN + 'guerre/' ])
liste.append(['Historique', URL_MAIN + 'histoire/'])
liste.append(['Horreur',URL_MAIN + 'horreur/'])
liste.append(['Musical', URL_MAIN + 'musique/'])
liste.append(['Mystere',URL_MAIN + 'mystere/'])
liste.append(['Romance', URL_MAIN + 'romance/'])
liste.append(['Science Fiction', URL_MAIN + 'science-fiction/'])
liste.append(['Telefilm', URL_MAIN + 'telefilm/'])
liste.append(['Thriller', URL_MAIN + 'thriller/'])
liste.append(['Western', URL_MAIN + 'western/'])
for sTitle, sUrl in liste:
oOutputParameterHandler = cOutputParameterHandler()
oOutputParameterHandler.addParameter('siteUrl', sUrl)
oGui.addDir(SITE_IDENTIFIER, 'showMovies', sTitle, 'genres.png', oOutputParameterHandler)
oGui.setEndOfDirectory()
def showMovies(sSearch=''):
oGui = cGui()
if sSearch:
sUrl = sSearch.replace(' ', '+')
#sPattern = 'Title">Search<.+?([^<]+).+?Year">([^<]+).+?Qlty">([^<]+).+?Description"> ([^<]+)'
else:
oInputParameterHandler = cInputParameterHandler()
sUrl = oInputParameterHandler.getValue('siteUrl')
if URL_MAIN + 'letters/' in sUrl:
sPattern = '
([^<]+)' oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() oParser = cParser() # réécriture pour prendre les séries dans le menu des genres # sHtmlContent = sHtmlContent.replace('TV