Пример #1
0
    def __createdb(self):

        sql_create = "CREATE TABLE IF NOT EXISTS movie ("\
                           "imdb_id TEXT, "\
                           "tmdb_id TEXT, "\
                           "title TEXT, "\
                           "year INTEGER,"\
                           "director TEXT, "\
                           "writer TEXT, "\
                           "tagline TEXT, "\
                           "credits TEXT,"\
                           "vote_average FLOAT, "\
                           "vote_count TEXT, "\
                           "runtime TEXT, "\
                           "overview TEXT,"\
                           "mpaa TEXT, "\
                           "premiered TEXT, "\
                           "genre TEXT, "\
                           "studio TEXT,"\
                           "status TEXT,"\
                           "poster_path TEXT, "\
                           "trailer TEXT, "\
                           "backdrop_path TEXT,"\
                           "playcount INTEGER,"\
                           "UNIQUE(imdb_id, tmdb_id, title, year)"\
                           ");"
        try:
            self.dbcur.execute(sql_create)
        except:
            VSlog('Erreur: ne peux pas créer de table')

        sql_create = "CREATE TABLE IF NOT EXISTS tvshow ("\
                           "imdb_id TEXT, "\
                           "tmdb_id TEXT, "\
                           "title TEXT, "\
                           "year INTEGER,"\
                           "director TEXT, "\
                           "writer TEXT, "\
                           "credits TEXT,"\
                           "vote_average FLOAT, "\
                           "vote_count TEXT, "\
                           "runtime TEXT, "\
                           "overview TEXT,"\
                           "mpaa TEXT, "\
                           "premiered TEXT, "\
                           "genre TEXT, "\
                           "studio TEXT,"\
                           "status TEXT,"\
                           "poster_path TEXT,"\
                           "trailer TEXT, "\
                           "backdrop_path TEXT,"\
                           "playcount INTEGER,"\
                           "UNIQUE(imdb_id, tmdb_id, title)"\
                           ");"

        self.dbcur.execute(sql_create)

        sql_create = "CREATE TABLE IF NOT EXISTS season ("\
                           "imdb_id TEXT, "\
                           "tmdb_id TEXT, " \
                           "season INTEGER, "\
                           "year INTEGER,"\
                           "premiered TEXT, "\
                           "poster_path TEXT,"\
                           "playcount INTEGER,"\
                           "UNIQUE(imdb_id, tmdb_id, season)"\
                           ");"

        self.dbcur.execute(sql_create)

        sql_create = "CREATE TABLE IF NOT EXISTS episode ("\
                           "imdb_id TEXT, "\
                           "tmdb_id TEXT, "\
                           "episode_id TEXT, "\
                           "season INTEGER, "\
                           "episode INTEGER, "\
                           "title TEXT, "\
                           "director TEXT, "\
                           "writer TEXT, "\
                           "overview TEXT, "\
                           "vote_average FLOAT, "\
                           "premiered TEXT, "\
                           "poster_path TEXT, "\
                           "playcount INTEGER, "\
                           "UNIQUE(imdb_id, tmdb_id, episode_id, title)"\
                           ");"

        self.dbcur.execute(sql_create)
        VSlog('table créée')
Пример #2
0
# Adult Stream = xbmcaddon.Addon('plugin.video.adult.stream')
# sLibrary = xbmc.translatePath(Adult Stream.getAddonInfo("path")).decode("utf-8")
#sys.path.append (sLibrary)

from resources.lib.comaddon import addon, dialog, VSlog, xbmc, xbmcgui, window
import xbmcvfs
import sys
import urllib
import urllib2
#from util import VStranslatePath
#from resources.lib.util import VStranslatePath

try:
    from sqlite3 import dbapi2 as sqlite
    VSlog('SQLITE 3 as DB engine')
except:
    from pysqlite2 import dbapi2 as sqlite
    VSlog('SQLITE 2 as DB engine')

try:
    import json
except:
    import simplejson as json

SITE_IDENTIFIER = 'runscript'
SITE_NAME = 'runscript'


class cClear:
Пример #3
0
def LoadLinks(htmlcode):
    VSlog('Scan des liens')

    host = 'https://www.flashx.tv'
    sPattern = '[\("\'](https*:)*(\/[^,"\'\)\s]+)[\)\'"]'
    aResult = re.findall(sPattern, htmlcode, re.DOTALL)

    #VSlog(str(aResult))
    for http, urlspam in aResult:
        sUrl = urlspam

        if http:
            sUrl = http + sUrl

        sUrl = sUrl.replace('/\/', '//')
        sUrl = sUrl.replace('\/', '/')

        #filtrage mauvaise url
        if (sUrl.count('/') < 2) or ('<'
                                     in sUrl) or ('>'
                                                  in sUrl) or (len(sUrl) < 15):
            continue
        if '[' in sUrl or ']' in sUrl:
            continue
        if '.jpg' in sUrl or '.png' in sUrl:
            continue

        #VSlog('test : ' + sUrl)

        if '\\x' in sUrl or '\\u' in sUrl:
            sUrl = ASCIIDecode(sUrl)
            if not sUrl:
                continue

        if sUrl.startswith('//'):
            sUrl = 'http:' + sUrl

        if sUrl.startswith('/'):
            sUrl = host + sUrl

        #Url ou il ne faut pas aller
        if 'dok3v' in sUrl:
            continue

        #pour test
        if ('.js' not in sUrl) or ('.cgi' not in sUrl):
            continue
        #if 'flashx' in sUrl:
        #continue

        headers8 = {
            'User-Agent': UA,
            'Referer': 'https://www.flashx.tv/dl?playthis'
        }

        try:
            request = urllib2.Request(sUrl, None, headers8)
            reponse = urllib2.urlopen(request)
            sCode = reponse.read()
            reponse.close()
            #VSlog('Worked ' + sUrl)
        except urllib2.HTTPError, e:
            if not e.geturl() == sUrl:
                try:
                    headers9 = {
                        'User-Agent': UA,
                        'Accept':
                        'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
                        'Accept-Language':
                        'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3',
                        'Accept-Encoding': 'gzip, deflate, br'
                    }
                    request = urllib2.Request(
                        e.geturl().replace('https', 'http'), None, headers9)
                    reponse = urllib2.urlopen(request)
                    sCode = reponse.read()
                    reponse.close()
                    #VSlog('Worked ' + sUrl)
                except urllib2.HTTPError, e:
                    VSlog(str(e.code))
                    #VSlog(e.read())
                    VSlog('Redirection Blocked ' + sUrl + ' Red ' + e.geturl())
                    pass
            else:
                #VSlog('Blocked ' + sUrl)
                VSlog(str(e.code))
                VSlog('>>' + e.geturl())
                VSlog(e.read())
Пример #4
0
    def __getMediaLinkForGuest(self):

        oParser = cParser()

        #recuperation de la page
        #xbmc.log('url teste : ' + self.__sUrl)
        oRequest = cRequestHandler(self.__sUrl)
        oRequest.addHeaderEntry('referer', self.__sUrl)
        oRequest.addHeaderEntry('User-Agent', UA)
        sHtmlContent1 = oRequest.request()

        #fh = open('c:\\test.txt', "w")
        #fh.write(sHtmlContent1)
        #fh.close()

        #Recuperation url cachee
        TabUrl = []
        #sPattern = '<span style="".+?id="([^"]+)">([^<]+)<\/span>'
        sPattern = '<p id="([^"]+)" *style=\"\">([^<]+)<\/p>'
        aResult = re.findall(sPattern, sHtmlContent1)
        if (aResult):
            TabUrl = aResult
        else:
            VSlog('OPL er 1')
            return False, False

        #xbmc.log("Nbre d'url : " + str(len(TabUrl)))

        #on essait de situer le code
        sPattern = '<script src="\/assets\/js\/video-js\/video\.js.+?.js"(.+)*'

        aResult = re.findall(sPattern, sHtmlContent1, re.DOTALL)
        if (aResult):
            sHtmlContent3 = aResult[0]
        else:
            VSlog('OPL er 2')
            return False, False

        #Deobfuscation, a optimiser pour accelerer le traitement
        code = ''
        maxboucle = 4
        while (maxboucle > 0):
            sHtmlContent3 = CheckCpacker(sHtmlContent3)
            sHtmlContent3 = CheckJJDecoder(sHtmlContent3)
            sHtmlContent3 = CheckAADecoder(sHtmlContent3)

            maxboucle = maxboucle - 1

        code = sHtmlContent3

        #fh = open('c:\\html.txt', "w")
        #fh.write(code)
        #fh.close()

        id_final = ""
        sPattern = 'var srclink.*?\/stream\/.*?(#[^\'"]+).*?mime=true'
        aResult = re.findall(sPattern, code)
        if (aResult):
            id_final = aResult[0]
        else:
            VSlog('OPL er 9')
            return False, False

        if not (code):
            VSlog('OPL er 3')
            return False, False

        #Search the coded url
        Coded_url = ''
        for i in TabUrl:
            if len(i[1]) > 30:
                Coded_url = i[1]
                Item_url = '#' + i[0]
                VSlog(Item_url + ' : ' + Coded_url)

        if not (Coded_url):
            VSlog('Url codée non trouvée')
            return False, False

        #Nettoyage du code pr traitement
        code = CleanCode(code, Coded_url)

        #fh = open('c:\\JS.txt', "w")
        #fh.write(code)
        #fh.close()

        VSlog('Code JS extrait')

        dialog().VSinfo('Décodage: Peut durer plus d\'une minute.',
                        self.__sDisplayName, 15)

        #interpreteur JS
        JP = JsParser()
        Liste_var = []
        JP.AddHackVar(Item_url, Coded_url)

        JP.ProcessJS(code, Liste_var)

        url = None
        #for name in [ '#streamurl', '#streamuri', '#streamurj']:
        #    if JP.IsVar( JP.HackVars, name ):
        #        url = JP.GetVarHack( name )
        #        VSlog( 'Decoded url ' + name + ' : ' + url )
        #        break
        url = JP.GetVarHack(id_final)

        if not (url):
            VSlog('Rate, debug: ' + str(Liste_var))
            return False, False

        dialog().VSinfo('Ok, lien décodé.', self.__sDisplayName, 15)

        api_call = self.__getHost() + "/stream/" + url + "?mime=true"

        if '::' in api_call:
            dialog().VSinfo('Possible problème d\'ip V6', self.__sDisplayName,
                            5)
            xbmc.sleep(5 * 1000)

        VSlog(api_call)

        if (api_call):
            return True, api_call

        return False, False
Пример #5
0
 def handle_challenge(self, ctype, **kwargs):
     if not self._first:
         VSlog("You must solve another challenge.")
     self._first = False
Пример #6
0
def showMovies(sSearch=''):

    oGui = cGui()
    oParser = cParser()
    oInputParameterHandler = cInputParameterHandler()
    sUrl = oInputParameterHandler.getValue('siteUrl')
    sTag = oInputParameterHandler.getValue('sTag')

    if sSearch:
        sUrl = sSearch

    oRequestHandler = cRequestHandler(sUrl)
    sHtmlContent = oRequestHandler.request()

    sPattern = 'th-in" href="([^"]+).+?src="([^"]+)" alt="([^"]+).+?th-tip-meta.+?(?:|<span>([^\D]+).+?)#aaa;">([^<]+)'
    aResult = oParser.parse(sHtmlContent, sPattern)

    VSlog('#### BEGIN TESTE URL = ' + sUrl)
    TAGTest = ''

    sPatternFilm = 'short-images.+?ref="([^"]*)".+?src=".([^"]*).+?alt="([^"]*).+?qualite.(.+?).html.+?langue.(.+?).html'
    #   URL_MAIN
    if (sUrl == MOVIE_NOTES[0]):  #10 les mieux notes Films Box Office
        firstIndex = sHtmlContent.index('Films Box Office')
        lastIndex = sHtmlContent.index('LES PLUS POPULAIRES')
        if firstIndex > 0 and lastIndex > 0:
            sHtmlContent = sHtmlContent[firstIndex:lastIndex]
        #url image title quality lang
        sPattern = 'images">.+?ref="([^"]*)".+?title="([^"]*)".+?src=".([^"]*)".+?qualite.+?"([^<]*)<.+?lang.+?class="([^"]*)"'
        sPattern = sPatternFilm
        aResult = oParser.parse(sHtmlContent, sPattern)  #
        TAGTESTE = '(TAG sUrl == MOVIE_NOTES[0] )'

    elif (sUrl == MOVIE_VIEWS[0]):  #
        firstIndex = sHtmlContent.index('LES PLUS POPULAIRES')
        lastIndex = sHtmlContent.index('Films Récemment Ajoutés')
        if firstIndex > 0 and lastIndex > 0:
            sHtmlContent = sHtmlContent[firstIndex:lastIndex]

        # url image name

        sPattern = 'images">.+?ref="([^"]*)".+?src=".([^"]*)".+?alt="([^"]*)"'
        aResult = oParser.parse(sHtmlContent, sPattern)  #
        TAGTESTE = '(TAG sUrl == MOVIE_VIEWS[0])'

    elif (sUrl == SERIE_NEWS_SAISONS[0]
          ):  # Derniers épisodes Séries-TV ajoutée

        #href="([^"]*).>([^"]*)Saison([^<]*).+?.total_eps">([^<]*)
        #surl  title
        sPattern = 'href="([^"]*).>([^"]*)<span class="total'

        aResult = oParser.parse(sHtmlContent, sPattern)
        TAGTESTE = '(TAG sUrl == SERIE_NEWS_SAISONS[0])'

    elif (sUrl == SERIE_NEWS_EPISODES[0]):  #Derniers épisodes

        #url title lang
        sPattern = '<li><a href="([^"]*)">([^<]*).+?class="langue.([^"]*)'
        aResult = oParser.parse(sHtmlContent, sPattern)
        TAGTESTE = 'TAG  (sUrl == SERIE_NEWS_EPISODES[0])'

    #   URL_MAIN / serie or films
    elif ('/films' in sUrl):

        #url image title quality lang

        sPattern = 'short-images.+?ref="([^"]*)".+?src=".([^"]*).+?alt="([^"]*).+?qualite.+?"([^<]*)<.+?langue.+?">([^<]*)'
        sPattern = sPatternFilm
        aResult = oParser.parse(sHtmlContent, sPattern)

        TAGTESTE = '(TAG FilmsS in sUrl)'

    elif ('/series' in sUrl):

        #url image title
        #VSlog(sHtmlContent )
        sPattern = 'images radius.+?ref=".([^"]*)".+?src=".([^"]*).+?alt="([^"]*)"'  # spat01 "inutile
        aResult = oParser.parse(sHtmlContent, sPattern)

        TAGTESTE = '(TAG serie in sUrl)'
        if (aResult[0] == False):

            VSlog('##### /series aResult[0] = False')

    else:

        TAGTESTE = '(TAG  NO FIND)'
        sPattern = 'images radius.+?ref="([^"]*)".+?src=".([^"]*).+?alt="([^"]*)'  ## spat01
        #url     image   short title
        aResult = oParser.parse(sHtmlContent, sPattern)
        #oGui.setEndOfDirectory()
        #return

    VSlog('##### TAGTESTE = ' + TAGTESTE)

    if (aResult[0] == False):

        VSlog('##### aResult[0] = False')
        oGui.addText(SITE_IDENTIFIER)

    if (aResult[0] == True):

        VSlog('##### aResult[0] = True')
        total = len(aResult[1])
        #progress_ = progress().VScreate(SITE_NAME)
        sDesc = '#'
        if sTag != False:
            sDesc = sTag
            sDesc = '[COLOR skyblue]' + sTag + '[/COLOR]'
            VSlog('#### Find tag = ' + sTag)

        for aEntry in aResult[1]:

            sUrl2 = aEntry[0]
            if not URL_MAIN in aEntry[0]:
                sUrl2 = URL_MAIN + aEntry[0]

            sThumb = ''
            sYear = ''
            sLang = ''
            sQuality = ''

            #progress_.VSupdate(progress_, total)
            #if progress_.iscanceled():
            #break

            if (sUrl == MOVIE_NOTES[0]):  #10 les mieux notes Films Box Office
                # url image title quality lang
                sTitle = aEntry[2]
                sThumb = aEntry[1]
                sLang = aEntry[4]
                sQuality = aEntry[3]

            elif (sUrl == MOVIE_VIEWS[0]):  #
                # url image title
                sTitle = aEntry[2]
                sThumb = aEntry[1]
                sDesc = 'Films Populaires '
            elif (sUrl == SERIE_NEWS_SAISONS[0]
                  ):  # Derniers épisodes Séries-TV ajoutée
                # surl  title
                sTitle = aEntry[1]
                VSlog('SERIE_NEWS_SAISONS[0]=' + sTitle)

            elif (sUrl == SERIE_NEWS_EPISODES[0]):
                ##url title lang
                sTitle = aEntry[1]
                sLang = aEntry[2]
                'Nouveaux épisodes ajoutés '
                VSlog('SERIE_NEWS_EPISODES[0]' + sTitle)

            elif ('/films' in sUrl):  ##url image title quality lang
                sTitle = aEntry[2]
                sThumb = aEntry[1]
                sLang = aEntry[4]
                sQuality = aEntry[3]

            elif ('/series' in sUrl):  #url image title
                sThumb = aEntry[1]
                sTitle = aEntry[2]

            else:
                #url     image   short title
                sTitle = aEntry[2]

            if not URL_MAIN in sThumb:
                sThumb = URL_MAIN + sThumb
            sDisplayTitle = ('%s (%s)(%s)') % (sTitle, sLang.upper(),
                                               sQuality.upper())

            VSlog('---------------------------------------------------')
            VSlog('ParameterHandler : ')
            VSlog('sThumb =  ' + sThumb)
            VSlog('description =  ' + sDesc)
            VSlog('sLang  = ' + sLang)
            VSlog('sQuality =  ' + sQuality)
            VSlog('sQuality =  ' + str(sTag))

            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl', sUrl2)
            oOutputParameterHandler.addParameter('sMovieTitle', sTitle)
            oOutputParameterHandler.addParameter('sThumb', sThumb)
            oOutputParameterHandler.addParameter('sDesc', sDesc)
            oOutputParameterHandler.addParameter('sYear', sYear)
            oOutputParameterHandler.addParameter('sLang ', sLang)
            oOutputParameterHandler.addParameter('sQuality', sQuality)
            oOutputParameterHandler.addParameter('sTag', sTag)
            VSlog('ADD')

            if '/series' in sUrl and sUrl != SERIE_NEWS_EPISODES[
                    0] and sUrl != SERIE_NEWS_SAISONS[0]:  #showSaisons
                VSlog('CALL SHOW SAISONS' + sTitle)
                oGui.addTV(SITE_IDENTIFIER, 'showSaisons', sDisplayTitle, '',
                           sThumb, sDesc, oOutputParameterHandler)
            elif sUrl == SERIE_NEWS_SAISONS[0]:
                VSlog('CALL SHOW EPISODE +sTitle')
                oGui.addTV(SITE_IDENTIFIER, 'showEpisodes', sDisplayTitle, '',
                           sThumb, sDesc, oOutputParameterHandler)

            else:
                VSlog('CALL showHosters film ou news episodes ' + sTitle)
                oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sDisplayTitle,
                              '', sThumb, sDesc, oOutputParameterHandler)

        #progress_.VSclose(progress_)

        sNextPage = __checkForNextPage(sUrl, sHtmlContent)
        if (sNextPage != False):
            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl', sNextPage)
            number = re.search('/([0-9]+)', sNextPage).group(1)
            oGui.addNext(SITE_IDENTIFIER, 'showMovies',
                         '[COLOR teal]Page ' + number + ' >>>[/COLOR]',
                         oOutputParameterHandler)

    if not sSearch:  # Le moteur de recherche du site est correct, laisser le nextPage même en globalSearch
        oGui.setEndOfDirectory()
Пример #7
0
def showHosters():

    oGui = cGui()
    oInputParameterHandler = cInputParameterHandler()
    sMovieTitle = oInputParameterHandler.getValue('sMovieTitle')
    sUrl = oInputParameterHandler.getValue('siteUrl')
    sThumb = oInputParameterHandler.getValue('sThumb')
    sDesc = oInputParameterHandler.getValue('sDesc')
    sYear = oInputParameterHandler.getValue('sYear')
    sTag = oInputParameterHandler.getValue('sTag')

    VSlog('#### def showHosters()')
    VSlog('####           sUrl = ' + sUrl)

    oRequestHandler = cRequestHandler(sUrl.replace(' ', '%20'))
    oRequestHandler.addHeaderEntry('User-Agent', UA)
    sHtmlContent = oRequestHandler.request()

    oParser = cParser()
    sPattern = '<div class="fsynopsis"><p>([^<]*)'
    aResult = oParser.parse(sHtmlContent, sPattern)
    if (aResult[0] == True):
        VSlog('description = true')
        sDesc = str(aResult[1][0])
        if (sTag != False and sTag != 'Langue'
                and sTag != 'Qualité'):  #\r\n\r\n'
            sDesc = sTag + '\r\n' + sDesc

    oParser = cParser()

    sPattern = 'data-num="([^"]*).+?data-code="([^"]*)".+?server player-([^"]*)'
    aResult = oParser.parse(sHtmlContent, sPattern)

    if (aResult[0] == True):
        total = len(aResult[1])
        progress_ = progress().VScreate(SITE_NAME)

        for aEntry in aResult[1]:
            progress_.VSupdate(progress_, total)
            if progress_.iscanceled():
                break

            sHoster = aEntry[2]
            data_num = aEntry[0]
            data_code = aEntry[1]
            sUrl2 = 'https://wvw.filmgratuit.net/streamer.php?p=' + data_num + '&c=' + data_code
            #player.php
            #sTitle = ('%s [COLOR coral]%s[/COLOR]') % (sMovieTitle, sHoster)
            sDisplayTitle = ('%s (%s) [COLOR coral]%s[/COLOR]') % (
                sMovieTitle, 'sLang', sHoster)
            sDisplayTitle = ('%s  [COLOR coral]%s[/COLOR]') % (sMovieTitle,
                                                               sHoster)

            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl', sUrl2)
            oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle)
            oOutputParameterHandler.addParameter('sThumb', sThumb)
            oOutputParameterHandler.addParameter('sDesc', sDesc)
            oOutputParameterHandler.addParameter('sYear', sYear)
            oOutputParameterHandler.addParameter('sUrlreferer', sUrl)

            #oGui.addMovie(SITE_IDENTIFIER, 'hostersLink', sTitle, '', sThumb, sDesc, oOutputParameterHandler)
            oGui.addLink(SITE_IDENTIFIER, 'hostersLink', sDisplayTitle, sThumb,
                         sDesc, oOutputParameterHandler)

        progress_.VSclose(progress_)

    oGui.setEndOfDirectory()
Пример #8
0
def showHosters(sSearch=''):  #affiche les videos disponible du live
    oGui = cGui()
    oInputParameterHandler = cInputParameterHandler()
    sUrl4 = oInputParameterHandler.getValue('siteUrl4')
    sMovieTitle2 = oInputParameterHandler.getValue('sMovieTitle2')
    sThumb = oInputParameterHandler.getValue('sThumb')

    oRequestHandler = cRequestHandler(sUrl4)
    sHtmlContent = oRequestHandler.request()

    oParser = cParser()
    if not 'aliez' in sUrl4:
        sPattern = '<td bgcolor=".+?" *align="center".+?\s*<iframe.+?src="([^"]+)".+?</iframe>'
    elif 'youtube' or 'aliez' or 'laola1tv' in sUrl4:
        sPattern = '</script>\s*<iframe.+?src="([^"]+)".+?</iframe>\s*</td>'
    else:
        sPattern = '<td bgcolor=".+?" *align="center".+?\s*<iframe.+?src="([^"]+)".+?</iframe>'

    liste_url = []

    aResult = oParser.parse(sHtmlContent, sPattern)

    if (aResult[0]):

        sHosterUrl = ''

        url = aResult[1][0]

        #url = 'http://www.sporcanli.com/frame2.html' #a garder peut etre utils pour ajouter un hébergeur

        VSlog(url)
        if 'emb.aliez.me' in url:  #Terminer
            Referer = url
            UA = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0'
            oRequestHandler = cRequestHandler(url)
            oRequestHandler.addHeaderEntry('User-Agent', UA)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = 'source: *\'(.+?)\''
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl = aResult[
                    0] + '|User-Agent=' + UA + '&referer=' + Referer
                VSlog(sHosterUrl)

        if 'emb.aliez.me' in url:  #obligatoire pour fixer bug 403
            UA = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0'
            oRequestHandler = cRequestHandler(url)
            oRequestHandler.addHeaderEntry('User-Agent', UA)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = 'source: *\'(http://a3.aliez.me.+?)\''
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl = aResult[0] + '|User-Agent=' + UA
                VSlog(sHosterUrl)

        if 'sport7.pw' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = 'videoLink = \'(.+?)\''
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl = aResult[0]

        if 'totalsport.me' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = 'source: "(.+?)"'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl = aResult[0]

        if 'sportsbar.pw' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = 'videoLink = \'(.+?)\''
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl = aResult[0]

        if 'livesoccers.pw' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = '<iframe src=\'(.+?)\''
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl2 = aResult[0]
                UA = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0'
                oRequestHandler = cRequestHandler(sHosterUrl2)
                oRequestHandler.addHeaderEntry('User-Agent', UA)
                oRequestHandler.addHeaderEntry('Referer', sHosterUrl2)
                sHtmlContent3 = oRequestHandler.request()
                #VSlog(sHtmlContent3)
                sPattern3 = '<source src="([^"]+)"'
                aResult1 = re.findall(sPattern3, sHtmlContent3)
                if aResult1:
                    sHosterUrl = aResult1[0]

        if 'assia' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = 'file:"([^"]+)"'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl = aResult[0]

        if 'sportlive.site' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = '<iframe src="(.+?)"'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl2 = aResult[0]
                #VSlog(str(sHosterUrl2))
                oRequestHandler = cRequestHandler(sHosterUrl2)
                sHtmlContent3 = oRequestHandler.request()
                sPattern3 = '<script type=\'text/javascript\'>id=\'(.+?)\''
                aResult2 = re.findall(sPattern3, sHtmlContent3)
                if aResult2:
                    sHosterUrl3 = aResult2[0]
                    sHosterUrl3 = "http://hdcast.pw/stream_jw2.php?id=" + sHosterUrl3
                    #VSlog(str(sHosterUrl3))
                    oRequestHandler = cRequestHandler(sHosterUrl3)
                    sHtmlContent4 = oRequestHandler.request()
                    sPattern4 = 'curl = "([^"]+)";'
                    aResult3 = re.findall(sPattern4, sHtmlContent4)
                    if aResult3:
                        sHosterUrl = aResult3[0]
                        sHosterUrl = base64.b64decode(sHosterUrl)
                        VSlog(sHosterUrl)

        if 'sport-stream365' in url:  #Terminé
            sPattern2 = '<td bgcolor=".+?" *align="center".+?\s*<iframe.+?src="http://sport-stream365.com.+?/?game=([^"]+)&ta.+?".+?</iframe>'
            aResult = re.findall(sPattern2, sHtmlContent)
            if aResult:
                gameId = aResult[0]
                sHosterUrl = 'http://91.192.80.210/edge0/xrecord/' + gameId + '/prog_index.m3u8'

        if 'youtube' in url:  #Je sais pas
            sPattern2 = 'youtube.com/embed/(.+?)[?]autoplay=1'
            aResult = re.findall(sPattern2, url)

            if aResult:
                video_id = aResult[0]
                VSlog(video_id)

            url = url.replace('/embed/', '/watch?v=')
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()

            sPattern2 = '\W[\'"]?t[\'"]?: ?[\'"](.+?)[\'"]'
            aResult = re.findall(sPattern2, sHtmlContent2)

            if aResult:
                token = aResult[0]
                #VSlog(token)

            params = {
                'video_id': video_id,
                'el': '$el',
                'ps': 'default',
                'eurl': 'https://youtube.googleapis.com/v/' + video_id,
                'hl': 'fr_FR',
                't': urllib2.quote(token)
            }

            url2 = 'https://youtube.com/get_video_info?video_id=' + video_id  #+ urllib.parse.urlencode(params)

            req = urllib2.Request(url2)

            response = urllib2.urlopen(req)
            sHtmlContent3 = response.read().decode('utf-8')
            #VSlog(sHtmlContent3)

            sPattern3 = '&hlsvp=(.+?).m3u8.+?'
            aResult = re.findall(sPattern3, sHtmlContent3)

            if aResult:
                sHosterUrl = urllib2.unquote(aResult[0])
                sHosterUrl = urllib2.unquote(sHosterUrl)
                sHosterUrl = sHosterUrl + '.m3u8'
                #VSlog(sHosterUrl)

        if 'streamup.me' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = '<iframe src="([^"]+)"'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl2 = aResult[0]
                VSlog(sHosterUrl2)
                oRequestHandler = cRequestHandler(sHosterUrl2)
                sHtmlContent3 = oRequestHandler.request()
                sHtmlContent3 = urllib.unquote(sHtmlContent3)
                VSlog(sHtmlContent3)
                sPattern3 = 'src: "\/\/(.+?)"'
                aResult = re.findall(sPattern3, sHtmlContent3)
                if aResult:
                    sHosterUrl = 'http://' + aResult[0]

        if 'livestream' in url:  #Je sais pas ne démarre pas de temps en temps
            sPattern2 = '<td bgcolor=".+?" *align="center".+?\s*<iframe.+?src="https://([^"]+)/player?.+?</iframe>'
            aResult = re.findall(sPattern2, sHtmlContent)
            if aResult:
                accountId = aResult[0]
            jsonUrl = 'https://player-api.new.' + accountId + '?format=short'

            oRequestHandler = cRequestHandler(jsonUrl)
            sHtmlContent = oRequestHandler.request()

            sPattern3 = '"m3u8_url":"(.+?)"'
            aResult = re.findall(sPattern3, sHtmlContent)
            if aResult:
                sHosterUrl = aResult[0]

        if 'forbet.tv' in url:  #Probleme ssl
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = 'file: "([^"]+)"'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl = aResult[0]

        if 'p.hd24.watch' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = 'data-channel="([^"]+)">'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                Host = '190-2-146-56.livesports24.online'
                sHosterUrl = 'https://' + Host + '/' + aResult[0] + '.m3u8'

        if 'hdsoccerstreams.net' in url:  #Pas terminer
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = '<script>fid="(.+?)"'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                fid = aResult[0]
                VSlog(fid)

            UA = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0'
            url2 = 'http://webtv.ws/embed.php?live=spstream' + fid + '&vw=700&vh=440'
            Referer = url
            oRequestHandler = cRequestHandler(url2)
            oRequestHandler.addHeaderEntry('User-Agent', UA)
            oRequestHandler.addHeaderEntry('Referer', Referer)
            sHtmlContent3 = oRequestHandler.request()
            #VSlog(sHtmlContent3)

        if 'thesports4u.net' in url:  #Pas terminer leurs hosters est down (erreur 404)
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = '<script>fid="(.+?)"'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                fid = aResult[0]
                VSlog(fid)

            UA = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0'
            url2 = 'http://wlive.tv/embed.php?player=desktop&live=' + fid + '&vw=700&vh=440'
            oRequestHandler = cRequestHandler(url2)
            oRequestHandler.addHeaderEntry('User-Agent', UA)
            oRequestHandler.addHeaderEntry('Referer', url2)
            sHtmlContent3 = oRequestHandler.request()
            VSlog(sHtmlContent3)

        if 'sports-stream.net' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = 'sports-stream.+?ch=(.+?)"'
            aResult = re.findall(sPattern2, sHtmlContent2)

            if aResult:
                fid = aResult[0]

            UA = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0'
            url2 = 'http://webtv.ws/embeds.php?live=spstream' + fid + '&vw=700&vh=440'
            oRequestHandler = cRequestHandler(url2)
            oRequestHandler.addHeaderEntry('User-Agent', UA)
            oRequestHandler.addHeaderEntry(
                'Referer',
                'http://www.sports-stream.net/chtv/sps.php?ch=' + fid)
            sHtmlContent2 = oRequestHandler.request()

            sPattern3 = 'source src="(.+?)".+?">'
            aResult = re.findall(sPattern3, sHtmlContent2)
            if aResult:
                sHosterUrl = aResult[0]

        if 'foot.futbol' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = '<iframe src=\'(.+?)\''
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl2 = aResult[0]
                VSlog(sHosterUrl2)
                Referer = sHosterUrl2
                UA = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
                oRequestHandler = cRequestHandler(sHosterUrl2)
                oRequestHandler.addHeaderEntry('User-Agent', UA)
                oRequestHandler.addHeaderEntry('Referer', Referer)
                sHtmlContent3 = oRequestHandler.request()
                VSlog(sHtmlContent3)
                sPattern3 = '<source src="([^"]+)"'
                aResult2 = re.findall(sPattern3, sHtmlContent3)
                if aResult2:
                    sHosterUrl = aResult2[0]

        if 'viewhd.me' in url:  #Pas terminer je sais pas comment on trouve le m3u dans hdstream
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = '<script>fid="([^"]+)"'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl2 = 'http://www.hdstream.live/embed.php?player=desktop&live=' + aResult[
                    0] + '&vw=620&vh=490'
                VSlog(sHosterUrl2)
                Referer = sHosterUrl2
                UA = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
                oRequestHandler = cRequestHandler(sHosterUrl2)
                oRequestHandler.addHeaderEntry('User-Agent', UA)
                oRequestHandler.addHeaderEntry('Referer', Referer)
                sHtmlContent3 = oRequestHandler.request()
                VSlog(sHtmlContent3)

        #if 'socolive.net' in url:#Probleme avec ea et autre (tout changé lol)
        #oRequestHandler = cRequestHandler(url)
        #sHtmlContent2 = oRequestHandler.request()
        #sPattern2 = 'channel=\'(.+?)\', g=\'(.+?)\''
        #aResult = re.findall(sPattern2, sHtmlContent2)
        #VSlog(aResult)

        #if aResult:
        #for aEntry in aResult:
        #channel = aEntry[0]
        #g = aEntry[1]
        #VSlog(channel)
        #VSlog(g)

        #UA = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
        #url2 = 'https://www.ucasterplayer.com/hembedplayer/'+ channel +'/'+ g +'/700/480'
        #VSlog(url2)
        #oRequestHandler = cRequestHandler(url2)
        #oRequestHandler.addHeaderEntry('User-Agent',UA)
        #oRequestHandler.addHeaderEntry('Referer','http://socolive.net/ch=.+?')
        #sHtmlContent2 = oRequestHandler.request()
        #VSlog(sHtmlContent2)

        #sPattern3 = '"src", "https://" \+ ea \+ "([^"]+)"'
        #sPattern4 = 'ea = "([^"]+)"'
        #aResult2 = re.findall(sPattern4, sHtmlContent2)
        #aResult1 = re.findall(sPattern3, sHtmlContent2)
        #if aResult2:
        #urldomaine = aResult2[0]
        #VSlog(urldomaine)
        #if aResult1:
        #oRequestHandler.addHeaderEntry('User-Agent',UA)
        #Referer = url2
        #UA = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
        #sHosterUrl = 'http://'+ 'p15.quest123.top' + aResult1[0] + '|User-Agent=' + UA + '&referer=' + Referer
        #VSlog(sHosterUrl)

        if '1me.club' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = '<iframe src="(.+?)"'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult[0]:

                if 'whostreams.net' in aResult[0]:  #Terminé
                    Referer = 'http://1me.club'
                    UA = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
                    VSlog(aResult[0])
                    oRequestHandler = cRequestHandler(aResult[0])
                    oRequestHandler.addHeaderEntry('User-Agent', UA)
                    oRequestHandler.addHeaderEntry('Referer', Referer)
                    sHtmlContent3 = oRequestHandler.request()

                    sPattern2 = '(\s*eval\s*\(\s*function(?:.|\s)+?{}\)\))'
                    aResult = re.findall(sPattern2, sHtmlContent3)

                    if aResult:
                        str2 = aResult[0]
                    if not str2.endswith(';'):
                        str2 = str2 + ';'

                    str = cPacker().unpack(str2)
                    VSlog(str)
                    sPattern3 = '{source:"([^"]+)"'
                    aResult1 = re.findall(sPattern3, str)
                    if aResult1:
                        sHosterUrl = aResult1[0]

                if 'widestream.io' in aResult[0]:  #Terminé
                    oRequestHandler = cRequestHandler(aResult[0])
                    sHtmlContent3 = oRequestHandler.request()
                    sPattern3 = 'file:"([^"]+)"'
                    aResult1 = re.findall(sPattern3, sHtmlContent3)
                    if aResult1:
                        sHosterUrl = aResult1[0]

        #VSlog(sHosterUrl)
        xbmc.Player().play(sHosterUrl)
        return
Пример #9
0
def showResult(sSearch=''):  # le menu resultat quand on a choisi le club
    oGui = cGui()
    if sSearch:
        sUrl = sSearch
    else:
        oInputParameterHandler = cInputParameterHandler()
        sUrl = oInputParameterHandler.getValue('siteUrl')

    oRequestHandler = cRequestHandler(sUrl)
    sHtmlContent = oRequestHandler.request()

    sPattern = '<span class="date">([^<>]+)</span>.+?<span class="graydesc">([^<>]+)</span>.+?<td align="right">([^<>]+).+?<td align="center">\s*<b>([^<>]+)</b>.+?<td>([^<>]+)</td>.+?<font color=".+?">.+?</font>.+?<a class="small" *href="([^"]+)"'

    oParser = cParser()
    aResult = oParser.parse(sHtmlContent, sPattern)
    #VSlog(str(aResult))

    if (aResult[0] == False):
        oGui.addText(SITE_IDENTIFIER)

    if (aResult[0] == True):
        total = len(aResult[1])
        progress_ = progress().VScreate(SITE_NAME)

        for aEntry in aResult[1]:
            progress_.VSupdate(progress_, total)
            if progress_.iscanceled():
                break

            sTitle = str(aEntry[2]) + str(aEntry[4])
            sUrl2 = str(aEntry[5])
            sDate = str(aEntry[0])
            sComp = str(aEntry[1])
            sEquip = str(aEntry[2])
            sScore = str(aEntry[3])
            sEquipe = str(aEntry[4])
            sThumb = ''
            #sLang = str(aEntry[3])
            #sQual = str(aEntry[4])
            #sHoster = str(aEntry[2])
            sDesc = ''

            sTitle = sTitle.decode("iso-8859-1", 'ignore')
            sTitle = cUtil().unescape(sTitle)
            sTitle = sTitle.encode("utf-8", 'ignore')

            sDate = sDate.decode("iso-8859-1", 'ignore')
            sDate = cUtil().unescape(sDate)
            sDate = sDate.encode("utf-8", 'ignore')

            sScore = sScore.decode("iso-8859-1", 'ignore')
            sScore = cUtil().unescape(sScore)
            sScore = sScore.encode("utf-8", 'ignore')

            sComp = sComp.decode("iso-8859-1", 'ignore')
            sComp = cUtil().unescape(sComp)
            sComp = sComp.encode("utf-8", 'ignore')
            sTitle = ('%s  [%s] (%s) [COLOR]%s[/COLOR]]') % (sTitle, sScore,
                                                             sDate, sComp)
            sUrl2 = URL_MAIN + sUrl2

            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl', sUrl2)
            oOutputParameterHandler.addParameter('sMovieTitlebis', sTitle)
            oOutputParameterHandler.addParameter('sThumb', sThumb)

            if '/series' in sUrl:
                oGui.addTV(SITE_IDENTIFIER, 'ShowSerieSaisonEpisodes', sTitle,
                           '', sThumb, sDesc, oOutputParameterHandler)
            else:
                oGui.addMovie(SITE_IDENTIFIER, 'showHosters2', sTitle, '',
                              sThumb, sDesc, oOutputParameterHandler)

        progress_.VSclose(progress_)

    if not sSearch:
        oGui.setEndOfDirectory()


#def showDecode(): #les hosters des lives celui que je suis bloqué
    oGui = cGui()
    oInputParameterHandler = cInputParameterHandler()
    sUrl = oInputParameterHandler.getValue('siteUrl')
    sMovieTitle2 = oInputParameterHandler.getValue('sMovieTitle2')
    sThumb = oInputParameterHandler.getValue('sThumb')

    oRequestHandler = cRequestHandler(sUrl)
    sHtmlContent = oRequestHandler.request()

    oParser = cParser()
    sPattern = '.+?(http://.+?).+?'
    #urllib.unquote(sPattern)

    aResult = oParser.parse(sHtmlContent, sPattern)
    VSlog(str(aResult))

    if (aResult[0] == True):
        for aEntry in aResult[1]:

            sHosterUrl = str(aEntry)
            sHosterUrl = sHosterUrl.decode("iso-8859-1", 'ignore')
            #sHosterUrl = cUtil().unescape(sHosterUrl)
            sHosterUrl = sHosterUrl.encode("utf-8", 'ignore')
            oHoster = cHosterGui().checkHoster(sHosterUrl)
            if (oHoster != False):
                oHoster.setDisplayName(sMovieTitle2)
                oHoster.setFileName(sMovieTitle2)
                cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumb)

    oGui.setEndOfDirectory()
Пример #10
0
    headers1.update({'X-Requested-With': 'XMLHttpRequest'})
    headers1.update(
        {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'})

    #Requete
    request = urllib2.Request(url2, data, headers1)
    try:
        reponse = urllib2.urlopen(request, timeout=5)
    except urllib2.URLError, e:
        dialogs.VSinfo("Site Dl-Protecte HS", "Erreur", 5)
        VSlog(e.read())
        VSlog(e.reason)
        return ''
    except urllib2.HTTPError, e:
        dialogs.VSinfo("Site Dl-Protecte HS", "Erreur", 5)
        VSlog(e.read())
        VSlog(e.reason)
        return ''
    except timeout:
        VSlog('timeout')
        dialogs.VSinfo("Site Dl-Protecte HS", "Erreur", 5)
        return ''

    sHtmlContent = reponse.read()

    #VSlog( 'result'  + sHtmlContent)

    #Recuperatioen et traitement cookies ???
    cookies = reponse.info()['Set-Cookie']
    c2 = re.findall('(?:^|,) *([^;,]+?)=([^;,\/]+?);', cookies)
    if not c2:
Пример #11
0
def showMovies2(
        sSearch=''):  #affiche les matchs en direct depuis la section showMovie
    oGui = cGui()
    if sSearch:
        sUrl = sSearch
    else:
        oInputParameterHandler = cInputParameterHandler()
        sUrl2 = oInputParameterHandler.getValue('siteUrl2')

    oRequestHandler = cRequestHandler(sUrl2)
    sHtmlContent = oRequestHandler.request()
    #VSlog(sHtmlContent)

    sPattern = '<a class="live" href="([^>]+)">([^>]+)</a>\s*(?:<br><img src="//cdn.livetvcdn.net/img/live.gif"><br>|<br>)\s*<span class="evdesc">([^>]+)\s*<br>\s*([^>]+)</span>'

    oParser = cParser()
    aResult = oParser.parse(sHtmlContent, sPattern)
    #VSlog(str(aResult))

    if (aResult[0] == False):
        oGui.addText(SITE_IDENTIFIER)

    if (aResult[0] == True):
        total = len(aResult[1])
        progress_ = progress().VScreate(SITE_NAME)

        for aEntry in aResult[1]:
            progress_.VSupdate(progress_, total)
            if progress_.iscanceled():
                break

            sTitle2 = str(aEntry[1]).replace('<br>', ' ')
            sUrl3 = str(aEntry[0])
            sThumb = ''
            #sLang = str(aEntry[3])
            sQual = str(aEntry[3])
            sHoster = str(aEntry[2])
            sDesc = ''

            sTitle2 = sTitle2.decode("iso-8859-1", 'ignore')
            sTitle2 = cUtil().unescape(sTitle2)
            sTitle2 = sTitle2.encode("utf-8")

            sHoster = sHoster.decode("iso-8859-1", 'ignore')
            sHoster = cUtil().unescape(sHoster)
            sHoster = sHoster.encode("utf-8")

            sQual = sQual.decode("iso-8859-1", 'ignore')
            sQual = cUtil().unescape(sQual)
            sQual = sQual.encode("utf-8", 'ignore')

            sTitle2 = ('%s (%s) [COLOR yellow]%s[/COLOR]') % (sTitle2, sHoster,
                                                              sQual)

            sUrl3 = URL_MAIN + sUrl3
            VSlog(sUrl3)

            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl3', sUrl3)
            oOutputParameterHandler.addParameter('sMovieTitle2', sTitle2)
            oOutputParameterHandler.addParameter('sThumb', sThumb)

            oGui.addMovie(SITE_IDENTIFIER, 'showMovies3', sTitle2, '', sThumb,
                          sDesc, oOutputParameterHandler)

        progress_.VSclose(progress_)

    if not sSearch:
        oGui.setEndOfDirectory()
Пример #12
0
    def __getMediaLinkForGuest(self):

        if 'yggseries.com' in self.__sUrl:
            baseUrl = 'https://yggseries.com/api/source/'
        elif 'french-vid' in self.__sUrl:
            baseUrl = 'https://www.fembed.com/api/source/'
        elif 'fembed.' in self.__sUrl:
            baseUrl = 'https://www.fembed.com/api/source/'
        elif 'vfsplayer' in self.__sUrl:
            baseUrl = 'https://vfsplayer.xyz/api/source/'
        elif 'fsimg' in self.__sUrl:
            baseUrl = 'https://www.fsimg.info/api/source/'
        elif 'fem.tohds' in self.__sUrl:
            baseUrl = 'https://feurl.com/api/source/'
        elif 'core1player' in self.__sUrl:
            baseUrl = 'https://www.core1player.com/api/source/'

        if 'fem.tohds' in self.__sUrl:
            oRequestHandler = cRequestHandler(self.__sUrl)
            sHtmlContent = oRequestHandler.request()

            sPattern = '<iframe src="([^"]+)"'
            oParser = cParser()
            aResult = oParser.parse(sHtmlContent, sPattern)

            url = baseUrl + aResult[1][0].rsplit('/', 1)[1]

            postdata = 'r=' + urllib.quote_plus(
                self.__sUrl) + '&d=' + baseUrl.replace('https://', '').replace(
                    '/api/source/', '')

        else:
            url = baseUrl + self.__sUrl.rsplit('/', 1)[1]
            postdata = 'r=' + urllib.quote_plus(
                self.__sUrl) + '&d=' + baseUrl.replace('https://', '').replace(
                    '/api/source/', '')

        VSlog(url)
        oRequest = cRequestHandler(url)
        oRequest.setRequestType(1)
        oRequest.addHeaderEntry('User-Agent', UA)
        # oRequest.addHeaderEntry('Accept', '*/*')
        # oRequest.addHeaderEntry('Accept-Encoding','gzip, deflate, br')
        # oRequest.addHeaderEntry('Accept-Language','fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3')
        # oRequest.addHeaderEntry('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
        oRequest.addHeaderEntry('Referer', self.__sUrl)
        oRequest.addParametersLine(postdata)
        sHtmlContent = oRequest.request()

        VSlog(sHtmlContent)

        page = json.loads(sHtmlContent)
        if page:
            url = []
            qua = []
            for x in page['data']:
                url.append(x['file'])
                qua.append(x['label'])

            if (url):
                api_call = dialog().VSselectqual(qua, url)

        if (api_call):
            return True, api_call

        return False, False
Пример #13
0
    def __callRequest(self):
        if self.__aParamatersLine:
            sParameters = self.__aParamatersLine
        else:
            sParameters = urllib.urlencode(self.__aParamaters)

        if (self.__cType == cRequestHandler.REQUEST_TYPE_GET):
            if (len(sParameters) > 0):
                if (self.__sUrl.find('?') == -1):
                    self.__sUrl = self.__sUrl + '?' + str(sParameters)
                    sParameters = ''
                else:
                    self.__sUrl = self.__sUrl + '&' + str(sParameters)
                    sParameters = ''

        if (len(sParameters) > 0):
            oRequest = urllib2.Request(self.__sUrl, sParameters)
        else:
            oRequest = urllib2.Request(self.__sUrl)

        for aHeader in self.__aHeaderEntries:
            for sHeaderKey, sHeaderValue in aHeader.items():
                oRequest.add_header(sHeaderKey, sHeaderValue)

        sContent = ''
        try:

            if self.BUG_SSL:
                VSlog('Retrying with SSL bug')
                import ssl
                gcontext = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
                oResponse = urllib2.urlopen(oRequest, timeout = self.__timeout,context=gcontext)
            else:
                oResponse = urllib2.urlopen(oRequest, timeout = self.__timeout)

            sContent = oResponse.read()

            self.__sResponseHeader = oResponse.info()

            #compressed page ?
            if self.__sResponseHeader.get('Content-Encoding') == 'gzip':
                import zlib
                sContent = zlib.decompress(sContent, zlib.MAX_WBITS|16)

            #https://bugs.python.org/issue4773
            self.__sRealUrl = oResponse.geturl()
            self.__sResponseHeader = oResponse.info()

            oResponse.close()

        except urllib2.HTTPError, e:
            if e.code == 503:

                #Protected by cloudFlare ?
                from resources.lib import cloudflare
                if cloudflare.CheckIfActive(e.read()):
                    self.__sResponseHeader = e.hdrs
                    cookies = self.GetCookies()
                    VSlog( 'Page protegee par cloudflare')
                    CF = cloudflare.CloudflareBypass()
                    sContent = CF.GetHtml(self.__sUrl,e.read(),cookies,sParameters,oRequest.headers)
                    self.__sRealUrl, self.__sResponseHeader = CF.GetReponseInfo()
                else:
                    sContent = e.read()
                    self.__sRealUrl = e.geturl()
                    self.__sResponseHeader = e.headers()
                    
            else:
                try:
                    VSlog("%s (%d),%s" % (self.ADDON.VSlang(30205), e.code , self.__sUrl))
                    self.__sRealUrl = e.geturl()
                    self.__sResponseHeader = e.headers
                    sContent = e.read()           
                except:
                    sContent = ''

            if not sContent:
                self.DIALOG.VSerror("%s (%d),%s" % (self.ADDON.VSlang(30205), e.code , self.__sUrl))
                return ''
Пример #14
0
def showHosters(sSearch=''):  #affiche les videos disponible du live
    oGui = cGui()
    UA = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0'
    oInputParameterHandler = cInputParameterHandler()
    sUrl4 = oInputParameterHandler.getValue('siteUrl4')
    sMovieTitle2 = oInputParameterHandler.getValue('sMovieTitle2')
    sThumb = oInputParameterHandler.getValue('sThumb')

    oRequestHandler = cRequestHandler(sUrl4)
    sHtmlContent = oRequestHandler.request()

    oParser = cParser()

    sPattern = '<iframe.+?(?:allowFullScreen=|width).+?src="([^"]+)".+?</iframe>'

    liste_url = []

    aResult = oParser.parse(sHtmlContent, sPattern)

    if (aResult[0]):

        sHosterUrl = ''

        url = aResult[1][0]
        VSlog(url)

        #url = 'http://www.sporcanli.com/frame2.html' #a garder peut etre utils pour ajouter un hébergeur

        #VSlog(url)
        if 'emb.aplayer1.me' in url:  #Terminer
            Referer = url
            oRequestHandler = cRequestHandler(url)
            oRequestHandler.addHeaderEntry('User-Agent', UA)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = 'source: *\'(.+?)\''
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl = aResult[
                    0] + '|User-Agent=' + UA + '&referer=' + Referer
                VSlog(sHosterUrl)

        if 'sport7.pw' or 'vip7stream' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = 'videoLink = \'(.+?)\''
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl = aResult[
                    0] + '|User-Agent=' + UA + '&referer=' + url

        if 'totalsport.me' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = 'source: "(.+?)"'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl = aResult[0]

        if 'sportsbar.pw' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = 'videoLink = \'(.+?)\''
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl = aResult[0]

        if 'livesoccers.pw' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = '<iframe src=\'(.+?)\''
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl2 = aResult[0]
                UA = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0'
                oRequestHandler = cRequestHandler(sHosterUrl2)
                oRequestHandler.addHeaderEntry('User-Agent', UA)
                oRequestHandler.addHeaderEntry('Referer', sHosterUrl2)
                sHtmlContent3 = oRequestHandler.request()
                #VSlog(sHtmlContent3)
                sPattern3 = '<source src="([^"]+)"'
                aResult1 = re.findall(sPattern3, sHtmlContent3)
                if aResult1:
                    sHosterUrl = aResult1[0]

        if 'assia' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = 'file:"([^"]+)"'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl = aResult[0]

        if 'sportlive.site' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = '<iframe src="(.+?)"'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl2 = aResult[0]
                #VSlog(str(sHosterUrl2))
                oRequestHandler = cRequestHandler(sHosterUrl2)
                sHtmlContent3 = oRequestHandler.request()
                sPattern3 = '<script type=\'text/javascript\'>id=\'(.+?)\''
                aResult2 = re.findall(sPattern3, sHtmlContent3)
                if aResult2:
                    sHosterUrl3 = aResult2[0]
                    sHosterUrl3 = "http://hdcast.pw/stream_jw2.php?id=" + sHosterUrl3
                    #VSlog(str(sHosterUrl3))
                    oRequestHandler = cRequestHandler(sHosterUrl3)
                    sHtmlContent4 = oRequestHandler.request()
                    sPattern4 = 'curl = "([^"]+)";'
                    aResult3 = re.findall(sPattern4, sHtmlContent4)
                    if aResult3:
                        sHosterUrl = aResult3[0]
                        sHosterUrl = base64.b64decode(sHosterUrl)
                        #VSlog(sHosterUrl)

        if 'stream365' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = '<param name="flashvars" value="ZonePlayGameId=(.+?)&'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                gameId = aResult[0]
                sHosterUrl = 'http://91.192.80.210/edge0/xrecord/' + gameId + '/prog_index.m3u8'

        if 'youtube' in url:  #Je sais pas
            dialog().VSinfo(
                'Youtube peut ne pas marcher c\'est la faute a Kodi', "Livetv",
                15)
            sPattern2 = 'youtube.com/embed/(.+?)[?]autoplay=1'
            aResult = re.findall(sPattern2, url)

            if aResult:
                video_id = aResult[0]
                #VSlog(video_id)

            url1 = url.replace('/embed/', '/watch?v=')
            oRequestHandler = cRequestHandler(url1)
            sHtmlContent2 = oRequestHandler.request()

            sPattern2 = '\W[\'"]?t[\'"]?: ?[\'"](.+?)[\'"]'
            aResult = re.findall(sPattern2, sHtmlContent2)

            if aResult:
                token = aResult[0]
                #sVSlog(token)

            params = {
                'video_id': video_id,
                'el': '$el',
                'ps': 'default',
                'eurl': 'https://youtube.googleapis.com/v/' + video_id,
                'hl': 'fr_FR',
                't': urllib2.quote(token)
            }

            url2 = 'https://youtube.com/get_video_info?video_id=' + video_id + '&sts=17488&hl=fr'

            req = urllib2.Request(url2)

            response = urllib2.urlopen(req)
            sHtmlContent3 = urllib2.unquote(response.read())
            #VSlog(sHtmlContent3)

            sPattern3 = 'hlsvp=(.+?)&'
            aResult = re.findall(sPattern3, sHtmlContent3)

            if aResult:
                sHosterUrl = aResult[
                    0] + '|User-Agent=' + UA + '&Host=manifest.googlevideo.com'

        if 'streamup.me' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = '<iframe src="([^"]+)"'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl2 = aResult[0]
                #VSlog(sHosterUrl2)
                oRequestHandler = cRequestHandler(sHosterUrl2)
                sHtmlContent3 = oRequestHandler.request()
                sHtmlContent3 = urllib.unquote(sHtmlContent3)
                #VSlog(sHtmlContent3)
                sPattern3 = 'src: "\/\/(.+?)"'
                aResult = re.findall(sPattern3, sHtmlContent3)
                if aResult:
                    sHosterUrl = 'http://' + aResult[0]

        if 'livestream' in url:  #fixé
            sPattern2 = '<td bgcolor=".+?" *align="center".+?\s*<iframe.+?src="https://([^"]+)/player?.+?</iframe>'
            aResult = re.findall(sPattern2, sHtmlContent)
            if aResult:
                accountid = aResult[0]
                jsonUrl = 'https://player-api.new.' + accountid + '?format=short'
                oRequestHandler = cRequestHandler(jsonUrl)
                sHtmlContent = oRequestHandler.request()
                sPattern3 = '"m3u8_url":"(.+?)"'
                aResult = re.findall(sPattern3, sHtmlContent)
            if aResult:
                sHosterUrl = aResult[0]

        if 'forbet.tv' in url:  #Probleme ssl
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = 'file: "([^"]+)"'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl = aResult[0]

        if 'p.hd24.watch' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = 'data-channel="([^"]+)">'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                Host = '190-2-146-56.livesports24.online'
                sHosterUrl = 'https://' + Host + '/' + aResult[0] + '.m3u8'

        if 'hdsoccerstreams.net' in url:  #Pas terminer
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = '<script>fid="(.+?)"'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                fid = aResult[0]
                #VSlog(fid)

            url2 = 'http://webtv.ws/embed.php?live=spstream' + fid + '&vw=700&vh=440'
            Referer = url
            oRequestHandler = cRequestHandler(url2)
            oRequestHandler.addHeaderEntry('User-Agent', UA)
            oRequestHandler.addHeaderEntry('Referer', Referer)
            sHtmlContent3 = oRequestHandler.request()
            #VSlog(sHtmlContent3)

        if 'thesports4u.net' in url or 'soccerstreams' in url:  #Finit
            if 'thesports4u' in url:
                oRequestHandler = cRequestHandler(url)
                sHtmlContent2 = oRequestHandler.request()
                sPattern2 = '<script>fid="(.+?)"'
                aResult = re.findall(sPattern2, sHtmlContent2)

                if aResult:
                    url2 = 'http://wlive.tv/embed.php?player=desktop&live=' + aResult[
                        0] + '&vw=700&vh=440'
                    oRequestHandler = cRequestHandler(url2)
                    oRequestHandler.addHeaderEntry('User-Agent', UA)
                    oRequestHandler.addHeaderEntry('Referer',
                                                   'http://thesports4u.net/')
                    oRequestHandler.addHeaderEntry('Host', 'www.wlive.tv')
                    sHtmlContent3 = oRequestHandler.request()

            if 'soccerstreams' in url:
                oRequestHandler = cRequestHandler(url)
                sHtmlContent = oRequestHandler.request()
                url = url.replace('/hds', '/hdss/ch')

                oRequestHandler = cRequestHandler(url)
                sHtmlContent1 = oRequestHandler.request()
                sPattern = '<script>fid="(.+?)"'
                aResult = re.findall(sPattern, sHtmlContent1)

                if aResult:
                    url2 = 'http://wlive.tv/embedra.php?player=desktop&live=' + aResult[
                        0] + '&vw=700&vh=440'
                    oRequestHandler = cRequestHandler(url2)
                    oRequestHandler.addHeaderEntry('User-Agent', UA)
                    oRequestHandler.addHeaderEntry('Referer', url)
                    oRequestHandler.addHeaderEntry('Host', 'www.wlive.tv')
                    sHtmlContent3 = oRequestHandler.request()

            m = re.search(
                'return.*?\[(.*?)\].*?\+\s+(.*)\.join.*document.*?"(.*?)"',
                sHtmlContent3)
            if m:
                timeVar = m.group(2)
                hashVar = m.group(3)

                #http://tv.wlive.tv/tv/lu2mIWw6KZ20180321/playlist.m3u8?hlsendtime=1542297480&hlsstarttime=0&hlshash=jhTrgemr-kGm9E01YIVfqkZ9VPobibqbDRiov2psf_A=
                url3 = ''.join(m.group(1).split(','))
                url3 = 'http:' + url3.replace('"', '').replace('\/', '/')

                m = re.search(timeVar + '.*?\[(.*?)\]', sHtmlContent3)
                if m:
                    timeStr = ''.join(m.group(1).split(',')).replace('"', '')
                    url3 = url3 + timeStr

                m = re.search(hashVar + '>(.*?)<', sHtmlContent3)
                if m:
                    hashStr = ''.join(m.group(1).split(',')).replace('"', '')
                    url3 = url3 + hashStr
                    sHosterUrl = url3

        if 'sports-stream.net' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = 'sports-stream.+?ch=(.+?)"'
            aResult = re.findall(sPattern2, sHtmlContent2)

            if aResult:
                fid = aResult[0]

            url2 = 'http://webtv.ws/embeds.php?live=spstream' + fid + '&vw=700&vh=440'
            oRequestHandler = cRequestHandler(url2)
            oRequestHandler.addHeaderEntry('User-Agent', UA)
            oRequestHandler.addHeaderEntry(
                'Referer',
                'http://www.sports-stream.net/chtv/sps.php?ch=' + fid)
            sHtmlContent2 = oRequestHandler.request()

            sPattern3 = 'source src="(.+?)".+?">'
            aResult = re.findall(sPattern3, sHtmlContent2)
            if aResult:
                sHosterUrl = aResult[0]

        if 'foot.futbol' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = '<iframe src=\'(.+?)\''
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl2 = aResult[0]
                #VSlog(sHosterUrl2)
                Referer = sHosterUrl2
                oRequestHandler = cRequestHandler(sHosterUrl2)
                oRequestHandler.addHeaderEntry('User-Agent', UA)
                oRequestHandler.addHeaderEntry('Referer', Referer)
                sHtmlContent3 = oRequestHandler.request()
                #VSlog(sHtmlContent3)
                sPattern3 = '<source src="([^"]+)"'
                aResult2 = re.findall(sPattern3, sHtmlContent3)
                if aResult2:
                    sHosterUrl = aResult2[0]

        if 'viewhd.me' in url:  #Pas terminer je sais pas comment on trouve le m3u dans hdstream
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = '<script>fid="([^"]+)"'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult:
                sHosterUrl2 = 'http://www.hdstream.live/embed.php?player=desktop&live=' + aResult[
                    0] + '&vw=620&vh=490'
                #VSlog(sHosterUrl2)
                Referer = sHosterUrl2
                oRequestHandler = cRequestHandler(sHosterUrl2)
                oRequestHandler.addHeaderEntry('User-Agent', UA)
                oRequestHandler.addHeaderEntry('Referer', Referer)
                sHtmlContent3 = oRequestHandler.request()
                #VSlog(sHtmlContent3)

        if 'socolive.net' in url:  #Probleme avec ea et autre (tout changé lol)
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = 'channel=\'(.+?)\', g=\'(.+?)\''
            aResult = re.findall(sPattern2, sHtmlContent2)

            if aResult:
                for aEntry in aResult:
                    channel = aEntry[0]
                    g = aEntry[1]
                    #VSlog(channel)
                    #VSlog(g)

            UA = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
            url2 = 'https://www.ucasterplayer.com/hembedplayer/' + channel + '/' + g + '/700/480'
            #VSlog(url2)
            oRequestHandler = cRequestHandler(url2)
            oRequestHandler.addHeaderEntry('User-Agent', UA)
            oRequestHandler.addHeaderEntry('Referer',
                                           'http://socolive.net/ch=.+?')
            sHtmlContent2 = oRequestHandler.request()
            #VSlog(sHtmlContent2)

            sPattern3 = '"src", "https://" \+ ea \+ "([^"]+)"'
            sPattern4 = 'url: ".+?" \+ (.+?) \+'
            aResult2 = re.findall(sPattern4, sHtmlContent2)
            aResult1 = re.findall(sPattern3, sHtmlContent2)
            if aResult2:
                urldomaine = 'https://www.lquest123b.top/loadbalancer?' + aResult2[
                    0] + '&'
                oRequestHandler = cRequestHandler(urldomaine)
                oRequestHandler.addHeaderEntry('User-Agent', UA)
                oRequestHandler.addHeaderEntry('Referer', urldomaine)
                sHtmlContent3 = oRequestHandler.request()
                sPattern5 = 'redirect=(.+?top)'
                aResult3 = re.findall(sPattern5, sHtmlContent3)
                if aResult3:
                    domaine = aResult3[0]

            if aResult1:
                oRequestHandler.addHeaderEntry('User-Agent', UA)
                Referer = url2
                UA = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
                sHosterUrl = 'https://' + domaine + aResult1[
                    0] + '|User-Agent=' + UA + '&referer=' + Referer
                #VSlog(sHosterUrl)

        if '1me.club' in url or 'sportz' in url:  #Terminé
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = '<iframe src="(.+?)"'
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult[0]:

                if 'whostreams.net' or 'streamcdn' in aResult[0]:  #Terminé
                    embedUrl = aResult[0]

                    if embedUrl.startswith('//'):
                        embedUrl = 'http:' + embedUrl

                    if 'sportz' in url:
                        Referer = url
                    else:
                        Referer = 'http://1me.club'

                    #VSlog(aResult[0])
                    oRequestHandler = cRequestHandler(embedUrl)
                    oRequestHandler.addHeaderEntry('User-Agent', UA)
                    oRequestHandler.addHeaderEntry('Referer', Referer)
                    sHtmlContent3 = oRequestHandler.request()

                    sPattern2 = '(\s*eval\s*\(\s*function(?:.|\s)+?{}\)\))'
                    aResult = re.findall(sPattern2, sHtmlContent3)

                    if aResult:
                        str2 = aResult[0]
                    if not str2.endswith(';'):
                        str2 = str2 + ';'

                    strs = cPacker().unpack(str2)
                    #VSlog(str)
                    sPattern3 = '{source:"([^"]+)"'
                    aResult1 = re.findall(sPattern3, strs)
                    if aResult1:
                        sHosterUrl = aResult1[0]

                if 'widestream.io' in aResult[0]:  #Terminé
                    oRequestHandler = cRequestHandler(aResult[0])
                    sHtmlContent3 = oRequestHandler.request()
                    sPattern3 = 'file:"([^"]+)"'
                    aResult1 = re.findall(sPattern3, sHtmlContent3)
                    if aResult1:
                        sHosterUrl = aResult1[0]

        if 'sportlevel' in url:
            oRequestHandler = cRequestHandler(url)
            sHtmlContent2 = oRequestHandler.request()
            sPattern2 = "manifestUrl: '(.+?)',"
            aResult = re.findall(sPattern2, sHtmlContent2)
            if aResult[0]:
                sHosterUrl = 'http://d.sportlevel.com' + aResult[0]

        if 'shd' in url:
            urlApi = 'https://api.livesports24.online/gethost'
            sPattern = 'channel([^"]+)'
            aResult = re.findall(sPattern, url)
            if aResult[0]:
                channel = aResult[0]

            oRequestHandler = cRequestHandler(urlApi)
            oRequestHandler.addHeaderEntry('User-Agent', UA)
            oRequestHandler.addHeaderEntry('Referer', url)
            oRequestHandler.addHeaderEntry('Origin', 'https://shd247.com')
            sHtmlContent2 = oRequestHandler.request()

            sPattern1 = '([^"]+)'
            aResult = re.findall(sPattern1, sHtmlContent2)
            if aResult[0]:
                host = aResult[0]

            sHosterUrl = 'https://' + host + channel + '.m3u8'

        oHoster = cHosterGui().checkHoster(sHosterUrl)
        if (oHoster != False):
            oHoster.setDisplayName(sMovieTitle2)  #nom affiche
            oHoster.setFileName(sMovieTitle2)  #idem
            cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumb)

        oGui.setEndOfDirectory()
Пример #15
0
    def __createdb(self, dropTable=''):
        try:
            # Permets de detruire une table pour la recreer de zero.
            if dropTable != '':
                self.dbcur.execute("DROP TABLE " + dropTable)
                self.db.commit()
        except:
            pass

        sql_create = "CREATE TABLE IF NOT EXISTS movie ("\
                     "imdb_id TEXT, "\
                     "tmdb_id TEXT, "\
                     "title TEXT, "\
                     "year INTEGER, "\
                     "director TEXT, "\
                     "writer TEXT, "\
                     "tagline TEXT, "\
                     "cast TEXT, "\
                     "crew TEXT, "\
                     "rating FLOAT, "\
                     "votes TEXT, "\
                     "duration INTEGER, "\
                     "plot TEXT, "\
                     "mpaa TEXT, "\
                     "premiered TEXT, "\
                     "genre TEXT, "\
                     "studio TEXT, "\
                     "status TEXT, "\
                     "poster_path TEXT, "\
                     "trailer TEXT, "\
                     "backdrop_path TEXT, "\
                     "UNIQUE(tmdb_id)"\
                     ");"
        try:
            self.dbcur.execute(sql_create)
            VSlog('table movie creee')
        except:
            VSlog('Error: Cannot create table movie')

        sql_create = "CREATE TABLE IF NOT EXISTS saga ("\
                     "tmdb_id TEXT, "\
                     "title TEXT, "\
                     "plot TEXT, "\
                     "genre TEXT, "\
                     "poster_path TEXT, "\
                     "backdrop_path TEXT, "\
                     "UNIQUE(tmdb_id)"\
                     ");"
        try:
            self.dbcur.execute(sql_create)
            VSlog('table saga creee')
        except:
            VSlog('Error: Cannot create table saga')

        sql_create = "CREATE TABLE IF NOT EXISTS tvshow ("\
                     "imdb_id TEXT, "\
                     "tmdb_id TEXT, "\
                     "title TEXT, "\
                     "year INTEGER, "\
                     "director TEXT, "\
                     "writer TEXT, "\
                     "cast TEXT, "\
                     "crew TEXT, "\
                     "rating FLOAT, "\
                     "votes TEXT, "\
                     "duration INTEGER, "\
                     "plot TEXT, "\
                     "mpaa TEXT, "\
                     "premiered TEXT, "\
                     "genre TEXT, "\
                     "studio TEXT, "\
                     "status TEXT, "\
                     "poster_path TEXT, "\
                     "trailer TEXT, "\
                     "backdrop_path TEXT, "\
                     "nbseasons INTEGER, "\
                     "UNIQUE(tmdb_id)"\
                     ");"
        try:
            self.dbcur.execute(sql_create)
            VSlog('table tvshow creee')
        except:
            VSlog('Error: Cannot create table tvshow')

        sql_create = "CREATE TABLE IF NOT EXISTS season ("\
                     "tmdb_id TEXT, " \
                     "season INTEGER, "\
                     "year INTEGER, "\
                     "premiered TEXT, "\
                     "poster_path TEXT, "\
                     "plot TEXT, "\
                     "episode INTEGER, "\
                     "UNIQUE(tmdb_id, season)"\
                     ");"
        try:
            self.dbcur.execute(sql_create)
            VSlog('table season creee')
        except:
            VSlog('Error: Cannot create table season')

        sql_create = "CREATE TABLE IF NOT EXISTS episode ("\
                     "tmdb_id TEXT, "\
                     "originaltitle TEXT,"\
                     "season INTEGER, "\
                     "episode INTEGER, "\
                     "year INTEGER, "\
                     "title TEXT, "\
                     "director TEXT, "\
                     "writer TEXT, "\
                     "guest_stars TEXT, "\
                     "plot TEXT, "\
                     "rating FLOAT, "\
                     "votes TEXT, "\
                     "premiered TEXT, "\
                     "tagline TEXT, "\
                     "poster_path TEXT, "\
                     "UNIQUE(tmdb_id, season, episode)"\
                     ");"

        try:
            self.dbcur.execute(sql_create)
            VSlog('table episode creee')
        except:
            VSlog('Error: Cannot create table episode')
Пример #16
0
                    VSlog(str(e.reason))

                data = response.read()
                #VSlog(data)
                response.close()

                file_url = re.search(r'"obf_link"\s*:\s*"([^"]*?)"', data)

                if file_url:
                    list_url = decodeUN(file_url.group(1).replace('\\', ''))

                #Hack, je sais pas si ca va durer longtemps, mais indispensable sur certains fichiers
                #list_url = list_url.replace("?socket", ".mp4.m3u8")

            else:
                VSlog('prb2')
        #bricolage
        api_call = list_url + '.mp4.m3u8'

        #use a fake headers
        #Header = 'User-Agent=' + UA
        #api_call = api_call + '|' + Header >> pas besoin pour l'instant

        if (api_call):
            if self.m3u8 == True and api_call.endswith('m3u8'):
                return True, api_call
            else:
                return True, api_call

        return False, False
Пример #17
0
    def AddtoDownloadListandview(self):

        oInputParameterHandler = cInputParameterHandler()
        sMediaUrl = oInputParameterHandler.getValue('sMediaUrl')
        sFileName = oInputParameterHandler.getValue('sFileName')
        # sHosterIdentifier = oInputParameterHandler.getValue('sHosterIdentifier')

        VSlog('Download ' + sMediaUrl)

        meta = {}
        meta['url'] = sMediaUrl
        meta['cat'] = oInputParameterHandler.getValue('sCat')
        meta['title'] = sFileName
        meta['icon'] = xbmc.getInfoLabel('ListItem.Art(thumb)')

        if (self.AddDownload(meta)):
            # Si pas de telechargement en cours on lance le notre
            if not self.isDownloading():
                row = cDb().get_download(meta)
                if row:

                    title = row[0][1]
                    url = UnquotePlus(row[0][2])
                    path = row[0][3]
                    # thumbnail = UnquotePlus(row[0][4])
                    # status = row[0][8]
                    if (self.download(url, title, path,
                                      True) == True):  # Download in fastmode

                        # ok on attend un peu, et on lance le stream
                        tempo = 100
                        progress_ = progress().VScreate('Bufferisation')

                        while (tempo > 0):
                            # if canceled do nothing
                            if progress_.iscanceled():
                                break
                            progress_.VSupdate(progress_, 100)
                            tempo = tempo - 1
                            xbmc.sleep(500)

                        progress_.VSclose(progress_)

                        oGuiElement = cGuiElement()
                        oGuiElement.setSiteName(SITE_IDENTIFIER)
                        oGuiElement.setMediaUrl(path)
                        oGuiElement.setTitle(title)
                        # oGuiElement.getInfoLabel()

                        oPlayer = cPlayer()

                        # if not (sys.argv[1] == '-1'):
                        # oPlayer.run(oGuiElement, title, path)
                        # else:
                        oPlayer.clearPlayList()
                        oPlayer.addItemToPlaylist(oGuiElement)
                        oPlayer.startPlayer()

                    else:
                        self.DIALOG.VSinfo('Erreur', self.ADDON.VSlang(30085))
        return
Пример #18
0
class cHoster(iHoster):
    def __init__(self):
        self.__sDisplayName = 'Netu'
        self.__sFileName = self.__sDisplayName
        self.m3u8 = False

    def getDisplayName(self):
        return self.__sDisplayName

    def setDisplayName(self, sDisplayName):
        self.__sDisplayName = sDisplayName + ' [COLOR skyblue]' + self.__sDisplayName + '[/COLOR]'

    def setFileName(self, sFileName):
        self.__sFileName = sFileName

    def getFileName(self):
        return self.__sFileName

    def setUrl(self, sUrl):
        self.__sUrl = sUrl.replace('https', 'http')
        self.__sUrl = self.__sUrl.replace('http://netu.tv/', 'http://hqq.tv/')
        self.__sUrl = self.__sUrl.replace('http://waaw.tv/', 'http://hqq.tv/')
        self.__sUrl = self.__sUrl.replace(
            'http://hqq.tv/player/hash.php?hash=',
            'http://hqq.tv/player/embed_player.php?vid=')
        self.__sUrl = self.__sUrl.replace(
            'http://hqq.tv/watch_video.php?v=',
            'http://hqq.tv/player/embed_player.php?vid=')

    def __getIdFromUrl(self):
        sPattern = 'https*:\/\/hqq\.(?:tv|player|watch)\/player\/embed_player\.php\?vid=([0-9A-Za-z]+)'
        oParser = cParser()
        aResult = oParser.parse(self.__sUrl, sPattern)

        if (aResult[0] == True):
            return aResult[1][0]
        return ''

    def getPluginIdentifier(self):
        return 'netu'

    def isDownloadable(self):
        return False

    def isM3u8(self):
        return ''

    def setM3u8(self):
        self.m3u8 = True

    def getMediaLink(self):
        return self.__getMediaLinkForGuest()

    def GetHost(self, sUrl):
        oParser = cParser()
        sPattern = 'https*:\/\/(.+?)\/'
        aResult = oParser.parse(sUrl, sPattern)
        if aResult[0]:
            return aResult[1][0]
        return ''

    def __getMediaLinkForGuest(self):

        api_call = ''

        id = self.__getIdFromUrl()

        self.__sUrl = 'http://hqq.tv/player/embed_player.php?vid=' + id + '&autoplay=no'

        headers = {
            'User-Agent':
            UA,
            #'Host' : 'hqq.tv',
            'Referer':
            'http://hqq.tv/',
            'Accept':
            'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
            #'Accept-Encoding':'gzip, deflate, br',
            #'Content-Type': 'text/html; charset=utf-8'
        }

        player_url = self.__sUrl

        req = urllib2.Request(player_url, None, headers)
        try:
            response = urllib2.urlopen(req)
            html = response.read()
            response.close()
        except urllib2.URLError, e:
            VSlog(e.read())
            VSlog(e.reason)
            html = e.read()

        Host = 'https://' + self.GetHost(player_url) + '/'

        data = ''
        code_crypt = re.search('(;eval\(function\(w,i,s,e\){.+?\)\);)\s*<',
                               html, re.DOTALL)
        if code_crypt:
            data = unwise.unwise_process(code_crypt.group(1))
        else:
            VSlog('prb1')

        if data:
            http_referer = ''
            _pass = ''

            iss = GetIp()
            vid = re.search('&vid=([^&]+)', data, re.DOTALL).group(1)
            at = re.search('&at=([^&]+)', data, re.DOTALL).group(1)
            r = re.search('&http_referer=([^&]+)', data, re.DOTALL)
            if r:
                http_referer = r.group(1)

            url2 = Host + "sec/player/embed_player.php?iss=" + iss + "&vid=" + vid + "&at=" + at + "&autoplayed=yes&referer=on&http_referer=" + http_referer + "&pass="******"&embed_from=&need_captcha=0"
            #VSlog( url2 )

            req = urllib2.Request(url2, None, headers)

            try:
                response = urllib2.urlopen(req)
                data = response.read()
                response.close()
            except urllib2.URLError, e:
                VSlog(e.read())
                VSlog(e.reason)
                data = e.read()

            data = urllib.unquote(data)

            data = DecodeAllThePage(data)

            at = re.search(r'var\s*at\s*=\s*"([^"]*?)"', data)

            l = re.search(
                r'\.get\( *"/player/get_md5.php",.+?link_1: *(.+?), *server_2: *(.+?), *vid: *"([^"]+)"}\)',
                data)
            if l:
                vid_server = re.search(r'var ' + l.group(2) + ' = "([^"]+)"',
                                       data).group(1)

                vid_link = re.search(r'var ' + l.group(1) + ' = "([^"]+)"',
                                     data).group(1)

                vid_key = l.group(3)
            else:
                VSlog("prob 3")

            #new video id, not really usefull
            # m = re.search(r' vid: "([a-zA-Z0-9]+)"}', data)
            # if m:
            # id = m.group(1)

            if vid_server and vid_link and at and vid_key:

                #get_data = {'server': vid_server.group(1), 'link': vid_link.group(1), 'at': at.group(1), 'adb': '0/','b':'1','vid':id} #,'iss':'MzEuMz'
                get_data = {
                    'server_2': vid_server,
                    'link_1': vid_link,
                    'at': at.group(1),
                    'adb': '0/',
                    'b': '1',
                    'vid': vid_key
                }

                headers['x-requested-with'] = 'XMLHttpRequest'

                req = urllib2.Request(
                    Host + "/player/get_md5.php?" + urllib.urlencode(get_data),
                    None, headers)
                try:
                    response = urllib2.urlopen(req)
                except urllib2.URLError, e:
                    VSlog(str(e.read()))
                    VSlog(str(e.reason))

                data = response.read()
                #VSlog(data)
                response.close()

                file_url = re.search(r'"obf_link"\s*:\s*"([^"]*?)"', data)

                if file_url:
                    list_url = decodeUN(file_url.group(1).replace('\\', ''))
Пример #19
0
def showEpisodes():
    oGui = cGui()

    oInputParameterHandler = cInputParameterHandler()
    sUrl = oInputParameterHandler.getValue('siteUrl')
    sMovieTitle = oInputParameterHandler.getValue('sMovieTitle')
    sThumb = oInputParameterHandler.getValue('sThumb')
    sDesc = oInputParameterHandler.getValue('sDesc')
    sTag = oInputParameterHandler.getValue('sTag')

    VSlog('########  showEpisodes() ' + sUrl)
    oRequestHandler = cRequestHandler(sUrl)
    sHtmlContent = oRequestHandler.request()

    if (sDesc == ''):
        VSlog('description = rien ' + str(sDesc))
    else:
        VSlog('description = qqles ' + str(sDesc))

    #<div class="fsynopsis"><p>([^<]*)|saison([^<]*):<\/span>|href=".([^<]*)<span>.pisode([^<]*)
    #c'est tjrs les deux rectifier
    VSlog('description = ' + str(sDesc))
    #if (sDesc == '') :
    if (True):
        oParser = cParser()
        sPattern = '<div class="fsynopsis"><p>([^<]*)'

        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            VSlog('description = true')
            sDesc = str(aResult[1][0])
            if (sTag != False):  #\r\n\r\n'
                sDesc = sTag + '\r\n' + sDesc

    #if (sThumb == ''):
    VSlog('thumb = ' + str(sDesc))
    if (True):
        oParser = cParser()
        sPattern = 'og:image" content="([^"]*)'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            sThumb = str(aResult[1][0])
            VSlog('thumb = true' + sThumb)

    sPattern = 'href=".([^<]*)<span>.pisode([^<]*)'
    sPattern = 'class="sais.+?href=".([^"]*).+?pisode([^<]*)'
    #match      href="([^"]*).>([^"]*)<span class="total

    oParser = cParser()
    aResult = oParser.parse(sHtmlContent, sPattern)

    if (aResult[0] == False):
        oGui.addText(SITE_IDENTIFIER)

    if (aResult[0] == True):
        VSlog('aResult[0] == True)')

        #for aEntry in aResult[1]:
        for aEntry in reversed(aResult[1]):
            sUrl = URL_MAIN + aEntry[0]
            sNumEp = str(aEntry[1]).replace(' ', '')
            sTitle = sMovieTitle + ' E' + sNumEp

            VSlog('ADD ' + sUrl)
            VSlog('ADD ' + sMovieTitle)

            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl', sUrl)
            oOutputParameterHandler.addParameter('sMovieTitle', sTitle)
            oOutputParameterHandler.addParameter('sThumb', sThumb)
            oOutputParameterHandler.addParameter('sDesc', sDesc)
            #oGui.addEpisode(SITE_IDENTIFIER, 'seriesHosters', sTitle, '', sThumb, sDesc, oOutputParameterHandler)
            oGui.addEpisode(SITE_IDENTIFIER, 'showHosters', sTitle, '', sThumb,
                            sDesc, oOutputParameterHandler)
    oGui.setEndOfDirectory()
Пример #20
0
def showHosters():
    oGui = cGui()

    oInputParameterHandler = cInputParameterHandler()
    sUrl = oInputParameterHandler.getValue('siteUrl')
    sThumb = oInputParameterHandler.getValue('sThumb')
    sMovieTitle = oInputParameterHandler.getValue('sMovieTitle')

    oRequestHandler = cRequestHandler(sUrl)
    sHtmlContent = oRequestHandler.request()

    # Detection de la taille des fichier pour separer les fichier premium des parties en .rar
    if not 'saison' in sUrl:
        fileSize = re.findall(
            '<strong>Taille</strong><span style="float: right;">([^<]+)</span></td>',
            sHtmlContent)
        if 'et' in str(fileSize[0]):
            taille = str(fileSize[:-7])
        else:
            taille = str(fileSize[0])

        if ' Go' in taille:
            size, unite = taille.split(' ')
            if float(size) > 4.85:
                if "1 Lien" in sHtmlContent:
                    VSlog('1 Lien premuim')
                    sPattern = '<h2 style="text-align: center;"><span style=.+?>([^<]+)<span style=".+?</h2>|<div class="prez_2">1 Lien Uptobox</div>\s*.+?>\s*.+?<a title="T.+?" href="([^"]+)" target="_blank"><strong class="hebergeur">*([^<>]+)*</strong>.+?\s*<div class="showNFO"'
                else:
                    VSlog('Pas lien premuim')
                    sPattern = '<h2 style="text-align: center;"><span style=.+?>([^<]+)<span style=".+?</h2>|<a title="T.+?" href="([^"]+)" target="_blank"><strong class="hebergeur">*([^<>]+)* Premium</strong>'
            else:
                sPattern = '<h2 style="text-align: center;"><span style=.+?>([^<]+)<span style=".+?</h2>|<a title="T.+?" href="([^"]+)" target="_blank"><strong class="hebergeur">*([^<>]+)*</strong>'
        else:
            sPattern = '<h2 style="text-align: center;"><span style=.+?>([^<]+)<span style=".+?</h2>|<a title="T.+?" href="([^"]+)" target="_blank"><strong class="hebergeur">*([^<>]+)*</strong>'
    else:
        sPattern = '<div class="prez_7">([^<]+)</div>|<a title=".+?" href="([^"]+)" target="_blank"><strong class="hebergeur">([^<>]+)</strong>'

    oParser = cParser()
    aResult = oParser.parse(sHtmlContent, sPattern)

    # Il n'existe que des fichiers en parties, non fonctionnel
    if (aResult[0] == False) and float(size) > 4.85:
        oGui.addText(SITE_IDENTIFIER)

    if (aResult[0] == True):

        for aEntry in aResult[1]:

            if aEntry[0]:
                oGui.addText(SITE_IDENTIFIER,
                             '[COLOR red]' + aEntry[0] + '[/COLOR]')
            else:
                sUrl2 = aEntry[1]
                sTitle = sMovieTitle
                if 'saison' in sUrl:
                    sDisplayTitle = ('%s [COLOR coral]%s[/COLOR]') % (
                        sMovieTitle, aEntry[2].replace('&agrave;', 'a'))
                else:
                    sDisplayTitle = ('%s [COLOR coral]%s[/COLOR]') % (
                        sMovieTitle, str(aEntry[2]))

                oOutputParameterHandler = cOutputParameterHandler()
                oOutputParameterHandler.addParameter('siteUrl', sUrl2)
                oOutputParameterHandler.addParameter('sMovieTitle', sTitle)
                oOutputParameterHandler.addParameter('sThumb', sThumb)

                oGui.addTV(SITE_IDENTIFIER, 'RecapchaBypass', sDisplayTitle,
                           '', sThumb, '', oOutputParameterHandler)

    oGui.setEndOfDirectory()
Пример #21
0
    def __callRequest(self):
        if self.__enableDNS:
            import socket
            self.save_getaddrinfo = socket.getaddrinfo
            socket.getaddrinfo = self.new_getaddrinfo

        if self.__aParamatersLine:
            sParameters = self.__aParamatersLine
            if xbmc.getInfoLabel('system.buildversion')[0:2] >= '19':
                sParameters = self.__aParamatersLine.encode("utf-8")
            else:
                sParameters = self.__aParamatersLine
        else:
            sParameters = urlEncode(self.__aParamaters)
            if xbmc.getInfoLabel('system.buildversion')[0:2] >= '19':
                sParameters = sParameters.encode()

        if (self.__cType == cRequestHandler.REQUEST_TYPE_GET):
            if (len(sParameters) > 0):
                if (self.__sUrl.find('?') == -1):
                    self.__sUrl = self.__sUrl + '?' + str(sParameters)
                    sParameters = ''
                else:
                    self.__sUrl = self.__sUrl + '&' + str(sParameters)
                    sParameters = ''

        if (len(sParameters) > 0):
            oRequest = urllib2.Request(self.__sUrl, sParameters)
        else:
            oRequest = urllib2.Request(self.__sUrl)

        for aHeader in self.__aHeaderEntries:
            for sHeaderKey, sHeaderValue in aHeader.items():
                oRequest.add_header(sHeaderKey, sHeaderValue)

        sContent = ''
        try:

            if self.BUG_SSL:
                VSlog('Retrying with SSL bug')
                import ssl
                gcontext = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
                oResponse = urllib2.urlopen(oRequest,
                                            timeout=self.__timeout,
                                            context=gcontext)
            else:
                oResponse = urllib2.urlopen(oRequest, timeout=self.__timeout)

            self.__sResponseHeader = oResponse.info()
            #En python 3 on doit décoder la reponse
            if xbmc.getInfoLabel('system.buildversion')[
                    0:2] >= '19' and not self.__sResponseHeader.get(
                        'Content-Encoding') == 'gzip':
                #Si c'est une image ou autre element en bytes, on ne le decode pas
                image_formats = ("image/png", "image/jpeg", "image/jpg",
                                 "application/download")
                if not self.__sResponseHeader.get(
                        'Content-Type') in image_formats:
                    sContent = oResponse.read()

                    if self.__sResponseHeader.get_content_charset():
                        encoding = self.__sResponseHeader.get_content_charset()
                    else:
                        encoding = 'utf-8'
                    try:

                        try:
                            sContent = sContent.decode()
                        except:
                            pass

                        sContent = str(sContent, encoding)
                    except:
                        sContent = str(sContent)
                    else:
                        pass

                else:
                    sContent = oResponse.read()

            else:
                sContent = oResponse.read()

            # compressed page ?
            if self.__sResponseHeader.get('Content-Encoding') == 'gzip':
                import zlib
                sContent = zlib.decompress(sContent, zlib.MAX_WBITS | 16)

            # https://bugs.python.org/issue4773
            self.__sRealUrl = oResponse.geturl()
            self.__sResponseHeader = oResponse.info()

            oResponse.close()

        except HttpError as e:
            if e.code == 503:

                # Protected by cloudFlare ?
                from resources.lib import cloudflare
                if cloudflare.CheckIfActive(e.read()):
                    self.__sResponseHeader = e.hdrs
                    cookies = self.GetCookies()
                    VSlog('Page protegee par cloudflare')
                    CF = cloudflare.CloudflareBypass()
                    sContent = CF.GetHtml(self.__sUrl, e.read(), cookies,
                                          sParameters, oRequest.headers)
                    self.__sRealUrl, self.__sResponseHeader = CF.GetReponseInfo(
                    )
                else:
                    sContent = e.read()
                    self.__sRealUrl = e.geturl()
                    self.__sResponseHeader = e.headers()

            else:
                try:
                    VSlog("%s (%d),%s" %
                          (self.ADDON.VSlang(30205), e.code, self.__sUrl))
                    self.__sRealUrl = e.geturl()
                    self.__sResponseHeader = e.headers
                    sContent = e.read()
                except:
                    sContent = ''

            if not sContent:
                self.DIALOG.VSerror(
                    "%s (%d),%s" %
                    (self.ADDON.VSlang(30205), e.code, self.__sUrl))

        except UrlError as e:
            if 'CERTIFICATE_VERIFY_FAILED' in str(
                    e.reason) and self.BUG_SSL == False:
                self.BUG_SSL = True
                return self.__callRequest()
            elif 'getaddrinfo failed' in str(
                    e.reason) and self.__enableDNS == False:
                # Retry with DNS only if addon is present
                import xbmcvfs
                if xbmcvfs.exists(
                        'special://home/addons/script.module.dnspython/'):
                    self.__enableDNS = True
                    return self.__callRequest()
                else:
                    error_msg = self.ADDON.VSlang(30470)
            else:
                error_msg = "%s (%s),%s" % (self.ADDON.VSlang(30205), e.reason,
                                            self.__sUrl)

            self.DIALOG.VSerror(error_msg)
            sContent = ''

        if sContent:
            if (self.__bRemoveNewLines == True):
                sContent = sContent.replace("\n", "")
                sContent = sContent.replace("\r\t", "")

            if (self.__bRemoveBreakLines == True):
                sContent = sContent.replace("&nbsp;", "")

        if self.__enableDNS:
            socket.getaddrinfo = self.save_getaddrinfo
            self.__enableDNS = False

        return sContent
Пример #22
0
    def _call(self, media_type, movie_id):

        oParser = cParser()
        data = {}

        data['aebn_id'] = movie_id

        if (media_type == 'gaymovie'):
            sUrl = self.GAY_MOVIE_INFO % movie_id
        else:
            sUrl = self.MOVIE_INFO % movie_id

        oRequestHandler = cRequestHandler(sUrl)
        oRequestHandler.addHeaderEntry('User-Agent', self.UA)
        oRequestHandler.addHeaderEntry('Content-Type',
                                       'text/html; charset=UTF-8')
        sHtmlContent = oRequestHandler.request()

        sPattern = 'data-tid="' + movie_id + '".+?>(.+)'
        sResult = oParser.parse(sHtmlContent, sPattern)

        if (sResult[0] == True):
            sPattern = '<h1>(.+?)</h1>'
            aResult = oParser.parse(sResult[1][0], sPattern)

            if (aResult[0] == True):
                sTitle = unicode(aResult[1][0], 'utf-8')
                sTitle = unicodedata.normalize('NFD', sTitle).encode(
                    'ascii', 'ignore')
                sTitle = sTitle.encode("utf-8")
                sTitle = sTitle.replace(', The', '')
                sTitle = sTitle.replace('- On Sale!', '')
                data['title'] = sTitle

                VSlog('MOVIE TITLE: %s' % (data['title']))

            sPattern = '<ul class="list-unstyled m-b-2">(.+?)</ul>'
            aResult = oParser.parse(sResult[1][0], sPattern)

            if (aResult[0] == True):
                productInfo = str(aResult[1][0])
                productInfo = productInfo.replace('<small>',
                                                  '|').replace('</small>', '')
                productInfo = productInfo.replace('<li>',
                                                  '').replace('</li>', '')

                for div in productInfo.split('|'):
                    if ':' in div:
                        name, value = div.split(':')
                        if name == 'Length':
                            name = 'runtime'
                            sRuntime = str(value.strip())
                            sRuntime = sRuntime.replace(' ', '')
                            sRuntime = sRuntime.replace('hrs', '').replace(
                                'mins', '')
                            sHours = sRuntime.split('.', 2)[0]
                            sMins = sRuntime.split('.', 2)[1]
                            sRuntime = (int(sHours)) * 60 + int(sMins)
                            data[name] = sRuntime

                            VSlog('RUNTIME: %s' % (data['runtime']))

                        if name == 'Studio':
                            name = 'studio'
                            data[name] = self.TAG_RE.sub(
                                '', str(value.strip()))

                            VSlog('STUDIO: %s' % (data['studio']))

                        if name == 'Production Year':
                            name = 'year'
                            data[name] = int(value.strip())

                            VSlog('MOVIE YEAR: %s' % (data['year']))

            # sPattern = '<div class="product-details-container">(.+?)</div>'
            sPattern = '<div class="product-details-container">(.+?)</small>'
            aResult = oParser.parse(sHtmlContent, sPattern)

            if (aResult[0] == True):
                # sPattern = '<h4.+?">(.+?)</h4>'
                sPattern = '<h4 class=".+?text-dark synopsis">(.+?)</h4>'
                aResult = oParser.parse(aResult[1][0], sPattern)

                if (aResult[0] == True):
                    sOverview = str(aResult[1][0])
                    sOverview = sOverview.replace('</p>', '\n')
                    sOverview = self.TAG_RE.sub('', sOverview)
                    sOverview = unicode(sOverview, 'utf-8')
                    sOverview = unicodedata.normalize('NFD', sOverview).encode(
                        'ascii', 'ignore')
                    sOverview = sOverview.encode("utf-8")
                    data['overview'] = sOverview

                    VSlog('OVERVIEW: %s' % (data['overview']))

            sPattern = '<ul class="list-unstyled spacing-bottom">(.+?)</ul>'
            aResult = oParser.parse(sHtmlContent, sPattern)

            if (aResult[0] == True):
                sPattern = '<a.+?>(.+?)</a>'
                aResult = oParser.parse(aResult[1][0], sPattern)

                if (aResult[0] == True):
                    category = []
                    sCount = len(aResult[1])
                    i = 0

                    while i < sCount:
                        category.append({'name': str(aResult[1][i])})
                        i += 1

                    data['genres'] = category

                    VSlog('MOVIE GENRES: %s' % (str(data['genres'])))

            page_id = movie_id[-2:]
            poster_url = self.poster % (page_id, movie_id)
            data['poster_path'] = poster_url

        return data
Пример #23
0
    def parseUrl(self):

        #import sys
        #xbmc.log('arg :' + str(sys.argv), xbmc.LOGNOTICE)
        #xbmc.log('Debug 1 >>' + str(xbmc.getInfoLabel('Container().CurrentPage')) , xbmc.LOGNOTICE)
        #xbmc.log('Debug 2 >>' + str(xbmc.getInfoLabel('Container.FolderPath')) , xbmc.LOGNOTICE)

        oInputParameterHandler = cInputParameterHandler()
        oInputParameterHandler.getAllParameter()

        if (oInputParameterHandler.exist('function')):
            sFunction = oInputParameterHandler.getValue('function')
        else:
            VSlog('call load methode')
            sFunction = "load"

        if (sFunction == 'DoNothing'):
            return

        if (not oInputParameterHandler.exist('site')):

            #mise a jour
            try:
                #from resources.lib.about import cAbout
                #cAbout().getUpdate()
                plugins = __import__('resources.lib.about',
                                     fromlist=['about']).cAbout()
                function = getattr(plugins, 'getUpdate')
                function()
            except:
                pass

            #charge home
            plugins = __import__('resources.lib.home',
                                 fromlist=['home']).cHome()
            function = getattr(plugins, 'load')
            function()
            return

        if (oInputParameterHandler.exist('site')):
            sSiteName = oInputParameterHandler.getValue('site')
            if (oInputParameterHandler.exist('title')):
                sTitle = oInputParameterHandler.getValue('title')
            else:
                sTitle = "none"

            VSlog('load site ' + sSiteName + ' and call function ' + sFunction)
            #cStatistic().callStartPlugin(sSiteName, sTitle)

            if (isHosterGui(sSiteName, sFunction) == True):
                return

            if (isGui(sSiteName, sFunction) == True):
                return

            if (isFav(sSiteName, sFunction) == True):
                return

            if (isLibrary(sSiteName, sFunction) == True):
                return

            if (isDl(sSiteName, sFunction) == True):
                return

            if (isHome(sSiteName, sFunction) == True):
                return

            if (isTrakt(sSiteName, sFunction) == True):
                return

            if sSiteName == 'globalSearch':
                searchGlobal()
                return

            if sSiteName == 'globalRun':
                __import__('resources.lib.runscript', fromlist=['runscript'])
                #function = getattr(plugins, sFunction)
                #function()
                return

            if sSiteName == 'globalSources':

                oGui = cGui()
                oPluginHandler = cPluginHandler()
                aPlugins = oPluginHandler.getAvailablePlugins(True)
                if (len(aPlugins) == 0):
                    addons = addon()
                    addons.openSettings()
                    xbmc.executebuiltin("Container.Refresh")
                else:
                    for aPlugin in aPlugins:

                        oOutputParameterHandler = cOutputParameterHandler()
                        oOutputParameterHandler.addParameter(
                            'siteUrl', 'http://venom')
                        icon = 'sites/%s.png' % (aPlugin[1])
                        #icon = 'https://imgplaceholder.com/512x512/transparent/fff?text=%s&font-family=Roboto_Bold' % aPlugin[1]
                        oGui.addDir(aPlugin[1], 'load', aPlugin[0], icon,
                                    oOutputParameterHandler)

                oGui.setEndOfDirectory()
                return

            if sSiteName == 'globalParametre':
                addons = addon()
                addons.openSettings()
                return
            #if (isAboutGui(sSiteName, sFunction) == True):
            #return

            #charge sites
            try:
                #exec "from resources.sites import " + sSiteName + " as plugin"
                #exec "plugin."+ sFunction +"()"
                plugins = __import__('resources.sites.%s' % sSiteName,
                                     fromlist=[sSiteName])
                function = getattr(plugins, sFunction)
                function()
            except Exception as e:
                VSlog('could not load site: ' + sSiteName + ' error: ' +
                      str(e))
                import traceback
                traceback.print_exc()
                return
Пример #24
0
    def search_movie_name(self, media_type, name, page):

        oParser = cParser()
        meta = {}
        movies = []

        movie_name = unicode(name, 'utf-8')
        movie_name = unicodedata.normalize('NFD', movie_name).encode(
            'ascii', 'ignore')
        movie_name = movie_name.encode('utf-8')
        movie_name = movie_name.replace('!', '')
        movie_name = movie_name.replace("'", "")
        movie_name = movie_name.replace('Trips', 'Trip')

        if (media_type == 'gaymovie'):
            sUrl = self.GAY_MOVIE_SEARCH % (page, quote_plus(movie_name))
        else:
            sUrl = self.MOVIE_SEARCH % (page, quote_plus(movie_name))

        VSlog('---------- SEARCH MOVIE DETAILS FROM ADULTDVDEMPIRE ----------')

        VSlog('SEARCH URL: %s' % (str(sUrl)))

        oRequestHandler = cRequestHandler(sUrl)
        oRequestHandler.addHeaderEntry('User-Agent', self.UA)
        oRequestHandler.addHeaderEntry('Content-Type',
                                       'text/html; charset=UTF-8')
        sHtmlContent = oRequestHandler.request()

        sPattern = '<div class="col-xs-5 col-sm-2 list-view-item-cover"><a href="([^"]+)"'
        sResult = oParser.parse(sHtmlContent, sPattern)

        if (sResult[0] == True):
            movie_id = str(sResult[1][0])
            movie_id = movie_id.split('/', 2)[1]

            VSlog('MOVIE ID: %s' % (str(movie_id)))

            movie_url = str(sResult[1][0])
            movie_url = movie_url.replace('joey-silveras-big-ass-', '')
            movie_url = movie_url.replace('joey-silveras-', '')
            movie_url = movie_url.replace('the-p**n-movies.html',
                                          'p**n-movies.html')
            movie_url = movie_url.replace('--', '-')
            movie_url = movie_url.replace('the-best', 'best')
            movie_url = movie_url.replace('-vol', '')

            movie_name = quote_plus(movie_name)
            movie_name = movie_name.replace('The+Best', 'Best')
            movie_name = movie_name.replace('The+Art', 'art')
            movie_name = movie_name.replace('%2527', '')
            movie_name = movie_name.replace('%3A', '')

            sPattern = '(.+?)\+-'
            aResult = oParser.parse(movie_name, sPattern)

            if (aResult[0] == True):
                movie_name = aResult[1][0]

            movie_name = movie_name.replace('+', '-')
            movie_name = movie_name.lower()

            sPattern = '/.+?/(.+?)-p**n-movies\.html'
            aResult = oParser.parse(movie_url, sPattern)

            if (aResult[0] == True):
                movie_url = aResult[1][0]

            # sPattern = '(.+?)-vol'
            # aResult = oParser.parse(movie_url, sPattern)

            # if (aResult[0] == True):
            #     movie_url = aResult[1][0]

            VSlog('MOVIE URL: %s' % (str(movie_url)))
            VSlog('MOVIE NAME: %s' % (str(movie_name)))

            if (movie_url != movie_name):
                if (media_type == 'pornmovie'):
                    # meta = cCDU().search_movie_name(media_type, name)
                    meta = cAFDB().search_movie_name(media_type, name)
                # else:
                #     meta = cTVTS().search_movie_name(name)
            else:
                meta = self.search_movie_id(media_type, movie_id)

        if (sResult[0] == False):
            if (media_type == 'pornmovie'):
                # meta = cCDU().search_movie_name(media_type, name)
                meta = cAFDB().search_movie_name(media_type, name)
            else:
                meta = {}
            # else:
            #     meta = cTVTS().search_movie_name(name)

        return meta
Пример #25
0
    def __getMediaLinkForGuest(self):

        oRequest = cRequestHandler(self.__sUrl)
        oRequest.addHeaderEntry('User-Agent', UA)
        sHtmlContent = oRequest.request()

        #suppression commentaires
        sHtmlContent = re.sub(r'<!--.*?-->', '', sHtmlContent)

        oParser = cParser()

        #fh = open('c:\\test0.txt', "w")
        #fh.write(sHtmlContent)
        #fh.close()

        #decodage de la pahe html
        sHtmlContent3 = sHtmlContent
        code = ''
        maxboucle = 10
        while (maxboucle > 0):
            VSlog('loop : ' + str(maxboucle))
            sHtmlContent3 = CheckCpacker(sHtmlContent3)
            #sHtmlContent3 = CheckJJDecoder(sHtmlContent3)
            sHtmlContent3 = CheckAADecoder(sHtmlContent3)

            maxboucle = maxboucle - 1

        sHtmlContent = sHtmlContent3

        VSlog('fini')

        #fh = open('c:\\test.txt', "w")
        #fh.write(sHtmlContent)
        #fh.close()

        #Desactive pour le moment
        if (True):
            Realurl = ''

            red = re.findall('location *= *[\'"]([^\'"]+)', sHtmlContent)
            if red:
                Realurl = red[0]
            else:
                VSlog("2")
                red = re.findall('location\.assign *\( *"([^"]+)" \)',
                                 sHtmlContent)
                if red:
                    Realurl = red[0]

            if 'speedvid' not in Realurl:
                Realurl = self.__getHost() + Realurl

            if not Realurl.startswith('http'):
                Realurl = 'http:' + Realurl

            if not Realurl:
                VSlog("mauvaise redirection")
                return False, False

            VSlog('Real url>> ' + Realurl)

            oRequest = cRequestHandler(Realurl)
            oRequest.addHeaderEntry('User-Agent', UA)
            oRequest.addHeaderEntry('Referer', self.__sUrl)

            sHtmlContent = oRequest.request()

        #fh = open('c:\\test.txt', "w")
        #fh.write(sHtmlContent)
        #fh.close()

        api_call = ''

        sPattern = "file\s*:\s*\'([^\']+.mp4)"
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            api_call = aResult[1][0]

        VSlog('API_CALL: ' + api_call)

        if (api_call):
            api_call = api_call + '|User-Agent=' + UA  #+ #'|Host=' + api_call.replace('http://','').rsplit('/', 2)[0]

            return True, api_call

        return False, False
Пример #26
0
# Code de depart par AnthonyBloomer
# Modif pour vStream
# https://github.com/Kodi-vStream/venom-xbmc-addons/
import re
import string
import xbmcvfs
import json
import unicodedata

from resources.lib.comaddon import addon, dialog, VSlog, VSPath, isMatrix, xbmc, xbmcgui
from resources.lib.util import QuotePlus
from resources.lib.handler.requestHandler import cRequestHandler

try:
    from sqlite3 import dbapi2 as sqlite
    VSlog('SQLITE 3 as DB engine for tmdb')
except:
    from pysqlite2 import dbapi2 as sqlite
    VSlog('SQLITE 2 as DB engine for tmdb')


class cTMDb:
    # https://developers.themoviedb.org/3/genres/get-movie-list
    # https://developers.themoviedb.org/3/genres/get-tv-list
    TMDB_GENRES = {
        12: 'Aventure',
        14: 'Fantastique',
        16: 'Animation',
        18: 'Drame',
        27: 'Horreur',
        28: 'Action',
Пример #27
0
                    reponse = urllib2.urlopen(request)
                    sCode = reponse.read()
                    reponse.close()
                    #VSlog('Worked ' + sUrl)
                except urllib2.HTTPError, e:
                    VSlog(str(e.code))
                    #VSlog(e.read())
                    VSlog('Redirection Blocked ' + sUrl + ' Red ' + e.geturl())
                    pass
            else:
                #VSlog('Blocked ' + sUrl)
                VSlog(str(e.code))
                VSlog('>>' + e.geturl())
                VSlog(e.read())

    VSlog('fin des unlock')


class cHoster(iHoster):
    def __init__(self):
        self.__sDisplayName = 'FlashX'
        self.__sFileName = self.__sDisplayName
        self.__sHD = ''

    def getDisplayName(self):
        return self.__sDisplayName

    def setDisplayName(self, sDisplayName):
        self.__sDisplayName = sDisplayName + ' [COLOR skyblue]' + self.__sDisplayName + '[/COLOR] [COLOR khaki]' + self.__sHD + '[/COLOR]'

    def setFileName(self, sFileName):
Пример #28
0
    def _cache_search(self,
                      media_type,
                      name,
                      tmdb_id='',
                      year='',
                      season='',
                      episode=''):
        if media_type == 'movie':
            sql_select = 'SELECT * FROM movie'
            if tmdb_id:
                sql_select = sql_select + ' WHERE tmdb_id = \'%s\'' % tmdb_id
            else:
                sql_select = sql_select + ' WHERE title = \'%s\'' % name
                if year:
                    sql_select = sql_select + ' AND year = %s' % year

        elif media_type == 'collection':
            sql_select = 'SELECT * FROM saga'
            if tmdb_id:
                sql_select = sql_select + ' WHERE tmdb_id = \'%s\'' % tmdb_id
            else:
                sql_select = sql_select + ' WHERE title = \'%s\'' % name

        elif media_type == 'tvshow' or media_type == 'anime':
            sql_select = 'SELECT * FROM tvshow'
            if tmdb_id:
                sql_select = sql_select + ' WHERE tvshow.tmdb_id = \'%s\'' % tmdb_id
            else:
                sql_select = sql_select + ' WHERE tvshow.title = \'%s\'' % name
                if year:
                    sql_select = sql_select + ' AND tvshow.year = %s' % year

        elif media_type == 'season':
            sql_select = 'SELECT *, season.poster_path, season.premiered, ' \
                             'season.year, season.plot FROM season LEFT JOIN tvshow ON season.tmdb_id = tvshow.tmdb_id'
            if tmdb_id:
                sql_select = sql_select + ' WHERE tvshow.tmdb_id = \'%s\'' % tmdb_id
            else:
                sql_select = sql_select + ' WHERE tvshow.title = \'%s\'' % name

            sql_select = sql_select + ' AND season.season = \'%s\'' % season

        elif media_type == 'episode':
            sql_select = 'SELECT *, episode.title, episode.poster_path, episode.premiered, '\
                'episode.guest_stars, episode.year, episode.plot, '\
                'episode.director, episode.writer, episode.rating, episode.votes '\
                'FROM episode LEFT JOIN tvshow ON episode.tmdb_id = tvshow.tmdb_id'
            if tmdb_id:
                sql_select += ' WHERE tvshow.tmdb_id = \'%s\'' % tmdb_id
            else:
                sql_select += ' WHERE tvshow.title = \'%s\'' % name
            sql_select += ' AND episode.season = \'%s\' AND episode.episode = \'%s\'' % (
                season, episode)
        else:
            return None

        try:
            self.dbcur.execute(sql_select)
            matchedrow = self.dbcur.fetchone()
        except Exception as e:
            if 'no such column' in str(e) or 'no column named' in str(e):
                # Pour les series il faut reconstruire les deux tables.
                if media_type == "tvshow":
                    self.__createdb('tvshow')
                    self.__createdb('season')
                else:
                    self.__createdb(media_type)
                VSlog('Table recreated')

                # Deuxieme tentative
                self.dbcur.execute(sql_select)
                matchedrow = self.dbcur.fetchone()
            else:
                VSlog('************* Error selecting from cache db: %s' % e, 4)
                return None

        if matchedrow:
            # VSlog('Found meta information by name in cache table')
            return dict(matchedrow)
        else:
            # VSlog('No match in local DB')
            return None
Пример #29
0
    def __getMediaLinkForGuest(self):
        api_call = False

        oParser = cParser()

        #on recupere le host atuel
        HOST = self.GetHost(self.__sUrl)

        #on recupere l'ID
        sId = self.__getIdFromUrl(self.__sUrl)
        if sId == '':
            VSlog("Id prb")
            return False, False

        #on ne garde que les chiffres
        #sId = re.sub(r'-.+', '', sId)

        #on cherche la vraie url
        sHtmlContent = self.GetRedirectHtml(self.__sUrl, sId)

        #fh = open('c:\\test.txt', "w")
        #fh.write(sHtmlContent)
        #fh.close()

        sPattern = 'href=["\'](https*:\/\/www\.flashx[^"\']+)'
        AllUrl = re.findall(sPattern, sHtmlContent, re.DOTALL)
        #VSlog(str(AllUrl))

        #Disabled for the moment
        if (False):
            if AllUrl:
                # Need to find which one is the good link
                # Use the len don't work
                for i in AllUrl:
                    if i[0] == '':
                        web_url = i[1]
            else:
                return False, False
        else:
            web_url = AllUrl[0]

        web_url = AllUrl[0]

        #Requests to unlock video
        #unlock fake video
        LoadLinks(sHtmlContent)
        #unlock bubble
        unlock = False
        url2 = re.findall('["\']([^"\']+?\.js\?cache.+?)["\']', sHtmlContent,
                          re.DOTALL)
        if not url2:
            VSlog('No special unlock url find')
        for i in url2:
            unlock = UnlockUrl(i)
            if unlock:
                break

        if not unlock:
            VSlog('No special unlock url working')
            return False, False

        #get the page
        sHtmlContent = self.GetRedirectHtml(web_url, sId, True)

        if sHtmlContent == False:
            VSlog('Passage en mode barbare')
            #ok ca a rate on passe toutes les url de AllUrl
            for i in AllUrl:
                if not i == web_url:
                    sHtmlContent = self.GetRedirectHtml(i, sId, True)
                    if sHtmlContent:
                        break

        if not sHtmlContent:
            return False, False

        if 'reload the page!' in sHtmlContent:
            #VSlog("page bloquée")

            #On recupere la bonne url
            sGoodUrl = web_url

            #on recupere la page de refresh
            sPattern = 'reload the page! <a href="([^"]+)">!! <b>'
            aResult = re.findall(sPattern, sHtmlContent)
            if not aResult:
                return False, False
            sRefresh = aResult[0]

            #on recupere le script de debloquage
            sPattern = "<script type='text/javascript' src='([^']+)'><\/script>"
            aResult = re.findall(sPattern, sHtmlContent)
            if not aResult:
                return False, False

            deblockurl = aResult[0]
            if deblockurl.startswith('//'):
                deblockurl = 'http:' + deblockurl

            #on debloque la page
            sHtmlContent = self.GetRedirectHtml(deblockurl, sId)

            #lien speciaux ?
            if sRefresh.startswith('./'):
                sRefresh = 'http://' + self.GetHost(sGoodUrl) + sRefresh[1:]

            #on rafraichit la page
            sHtmlContent = self.GetRedirectHtml(sRefresh, sId)

            #et on re-recupere la page
            sHtmlContent = self.GetRedirectHtml(sGoodUrl, sId)

        if (False):

            #A t on le lien code directement?
            sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>"
            aResult = re.findall(sPattern, sHtmlContent)

            if (aResult):
                #VSlog( "lien code")

                AllPacked = re.findall(
                    '(eval\(function\(p,a,c,k.*?)\s+<\/script>', sHtmlContent,
                    re.DOTALL)
                if AllPacked:
                    for i in AllPacked:
                        sUnpacked = cPacker().unpack(i)
                        sHtmlContent = sUnpacked
                        if "file" in sHtmlContent:
                            break
                else:
                    return False, False

        #decodage classique
        sPattern = '{file:"([^",]+)",label:"([^"<>,]+)"}'
        sPattern = '{src: *\'([^"\',]+)\'.+?label: *\'([^"<>,\']+)\''
        aResult = oParser.parse(sHtmlContent, sPattern)

        #VSlog(str(aResult))

        if (aResult[0] == True):
            #initialisation des tableaux
            url = []
            qua = []

            #Remplissage des tableaux
            for i in aResult[1]:
                url.append(str(i[0]))
                qua.append(str(i[1]))

            #Affichage du tableau
            api_call = dialog().VSselectqual(qua, url)

        if (api_call):
            return True, api_call

        return False, False
Пример #30
0
    def get_meta(self,
                 media_type,
                 name,
                 imdb_id='',
                 tmdb_id='',
                 year='',
                 season='',
                 episode='',
                 overlay=6,
                 update=False):
        '''
        Main method to get meta data for movie or tvshow. Will lookup by name/year
        if no IMDB ID supplied.

        Args:
            media_type (str): 'movie' or 'tvshow'
            name (str): full name of movie/tvshow you are searching
        Kwargs:
            imdb_id (str): IMDB ID
            tmdb_id (str): TMDB ID
            year (str): 4 digit year of video, recommended to include the year whenever possible
                        to maximize correct search results.
            season (int)
            episode (int)
            overlay (int): To set the default watched status (6=unwatched, 7=watched) on new videos

        Returns:
            DICT of meta data or None if cannot be found.
        '''

        #xbmc.log('vstream Meta', 0)
        VSlog('Attempting to retrieve meta data for %s: %s %s %s %s' %
              (media_type, name, year, imdb_id, tmdb_id))
        #recherche dans la base de données
        if not update:
            meta = self._cache_search(media_type, self._clean_title(name),
                                      tmdb_id, year, season, episode)
        else:
            meta = {}

        #recherche online

        if not meta:

            if media_type == 'movie':
                if tmdb_id:
                    meta = self.search_movie_id(tmdb_id)
                elif name:
                    meta = self.search_movie_name(name, year)
                else:
                    meta = {}
            elif media_type == 'tvshow':
                if tmdb_id:
                    meta = self.search_tvshow_id(tmdb_id)
                elif name:
                    meta = self.search_tvshow_name(name, year)
                else:
                    meta = {}
            #meta = self.__format_meta(media_type, meta, name)
            #transforme les metas
            if meta:
                #ecrit dans le cache
                self._cache_save(meta, self._clean_title(name), media_type,
                                 season, overlay)
            else:
                meta['title'] = name
                # meta['imdb_id'] = ''
                # meta['tmdb_id'] = ''
                # meta['tvdb_id'] = ''
                # meta['backdrop_url'] = ''
                # meta['cover_url'] = ''
                # meta['playcount'] = ''
                # meta['trailer'] = ''
        meta = self._format(meta, name)

        return meta