Exemplo n.º 1
0
def DecryptDlProtecte(url):
    VSlog('DecryptDlProtecte : ' + url)

    if not (url):
        return ''

    passe = 0

    # 1ere Requete on tente de voir si ca passe du 1er coup
    cookies = GestionCookie().Readcookie('www_dl-protect1_co')
    sHtmlContent = exectProtect(cookies, url)

    while (re.search(
            '<input type="submit" class="continuer" name="submit" value="Continuer" />',
            sHtmlContent)):
        if passe == 0:
            cookies = GestionCookie().Readcookie('www_dl-protect1_co')
            passe = passe + 1

        elif passe <= 3:
            #On brute force pour voir
            sHtmlContent = exectProtect(cookies, url)
            passe = passe + 1

        else:
            break

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

    return sHtmlContent
Exemplo n.º 2
0
def AddmyAccount():
    if (cConfig().getSetting('hoster_uptobox_username') == '') and (cConfig().getSetting('hoster_uptobox_password') == ''):
        return 
    oInputParameterHandler = cInputParameterHandler()
    sMediaUrl = oInputParameterHandler.getValue('sMediaUrl')

    sId = sMediaUrl.rsplit('/', 1)[1]

    Upurl = URL_MAIN + '?op=my_files&add_my_acc=' + sId

    oPremiumHandler = cPremiumHandler('uptobox')
    if (GestionCookie().Readcookie('uptobox') != ''):

        cookies = GestionCookie().Readcookie('uptobox')
        sHtmlContent = oPremiumHandler.GetHtmlwithcookies(Upurl,None,cookies)
        if (len(sHtmlContent) > 25):

            oPremiumHandler.Authentificate()
            cookies = GestionCookie().Readcookie('uptobox')
            sHtmlContent = oPremiumHandler.GetHtmlwithcookies(Upurl,None,cookies)

    else:
        sHtmlContent = oPremiumHandler.GetHtml(Upurl)
        
    xbmc.executebuiltin("Dialog.Close(all,true)") 
    if ('dded to your account' in sHtmlContent):
         xbmcgui.Dialog().notification('Info upload','Fichier ajouté à votre compte',xbmcgui.NOTIFICATION_INFO,2000,False)      
    elif ('nvalid file' in sHtmlContent):
         xbmcgui.Dialog().notification('Info upload','Fichier introuvable',xbmcgui.NOTIFICATION_INFO,2000,False)
    else:
         xbmcgui.Dialog().notification('Info upload','Erreur',xbmcgui.NOTIFICATION_ERROR,2000,False)    
Exemplo n.º 3
0
 def GetHtml(self,url,data = None):
     cookies = GestionCookie().Readcookie(self.__sHosterIdentifier)
     
     #aucun ne marche sans cookies
     if (cookies== '') and not (self.__LoginTry) and self.__Ispremium:
         self.Authentificate()
         if not (self.isLogin):
             return ''
         cookies = GestionCookie().Readcookie(self.__sHosterIdentifier)          
     
     sHtmlContent = self.GetHtmlwithcookies(url,data,cookies)
     
     #fh = open('c:\\premium.txt', "w")
     #fh.write(sHtmlContent)
     #fh.close()
     
     #Les cookies ne sont plus valables, mais on teste QUE si la personne n'a pas essaye de s'authentifier
     if not(self.Checklogged(sHtmlContent)) and not self.__LoginTry and self.__Ispremium :
         cConfig().log('Cookies non valables')
         self.Authentificate()
         if (self.isLogin):
             cookies = GestionCookie().Readcookie(self.__sHosterIdentifier)
             sHtmlContent = self.GetHtmlwithcookies(url,data,cookies)
         else:
             return ''
     
     return sHtmlContent
Exemplo n.º 4
0
    def GetHtml(self, url, data=None):
        self.hostComplet = re.sub('(https*:\/\/[^/]+)(\/*.*)', '\\1', url)
        self.host = re.sub('https*:\/\/', '', self.hostComplet)
        self.url = url

        # on cherche des precedents cookies
        cookies = GestionCookie().Readcookie(self.host.replace('.', '_'))
        htmlcontent = self.htmlrequest(url, cookies, data)

        if not self.CheckIfActive(htmlcontent):
            return htmlcontent
        elif "recaptcha3key" in htmlcontent:
            dialog().VSok('Recaptcha active, reessayer plus tard')
            return htmlcontent

        # on cherche le nouveau cookie
        try:
            cookies = self.DecryptCookie(htmlcontent)
        except:
            VSlog('Erreur decodage Stormwall')
            return ''

        VSlog('Protection Stormwall active')

        GestionCookie().SaveCookie(self.host.replace('.', '_'), cookies)
        htmlcontent = self.htmlrequest(url, cookies, data)

        return htmlcontent
Exemplo n.º 5
0
def DecryptddlProtect(url):

    if not (url): return ''

    cookies = ''
    #try to get previous cookie
    cookies = GestionCookie().Readcookie('protect_ddl_island.su')

    oRequestHandler = cRequestHandler(url)
    if cookies:
        oRequestHandler.addHeaderEntry('Cookie', cookies)
    sHtmlContent = oRequestHandler.request()

    #Si ca demande le captcha
    if 'value="Submit form"' in sHtmlContent:
        if cookies:
            GestionCookie().DeleteCookie('dl_protect.ru')
            oRequestHandler = cRequestHandler(url)
            sHtmlContent = oRequestHandler.request()

        cookies = oRequestHandler.GetCookies()

        #save cookies
        GestionCookie().SaveCookie('dl_protect.ru', cookies)

        s = re.findall('<img id="captcha" src="([^<>"]+?)"', sHtmlContent)
        if URL_PROTECT in s[0]:
            image = s[0]
        else:
            image = URL_PROTECT + s[0]

        captcha = get_response(image, cookies)
        id = url[-7:]

        oRequestHandler = cRequestHandler(url)
        oRequestHandler.setRequestType(1)
        oRequestHandler.addParameters('captcha_code', captcha)
        oRequestHandler.addParameters('submit', 'Valider')
        oRequestHandler.addHeaderEntry('Cookie', cookies)
        sHtmlContent = oRequestHandler.request()

        #print sHtmlContent
        if 'Erreur : Le code n\'est pas valide' in sHtmlContent:
            cConfig().showInfo("Erreur", 'Mauvais Captcha', 5)
            return 'rate'

        #si captcha reussi
        #save cookies
        GestionCookie().SaveCookie('dl_protect.ru', cookies)

    return sHtmlContent
Exemplo n.º 6
0
def DecryptDlProtecte(url):
    VSlog('DecryptDlProtecte : ' + url)

    if not (url):
        return ''

    passe = 0

    # 1ere Requete pour recuperer le cookie
    oRequestHandler = cRequestHandler(url)
    oRequestHandler.addHeaderEntry('User-Agent', UA)

    cookies = GestionCookie().Readcookie('www_dl-protect1_co')
    #VSlog( 'cookie'  + str(cookies))

    sHtmlContent = exectProtect(cookies, url)
    
    while (re.search('<input type="submit" class="continuer" name="submit" value="Continuer" />',sHtmlContent)):
        if passe < 4:
            sHtmlContent = exectProtect(cookies, url)
            passe = passe + 1
        else:
            break

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

    return sHtmlContent
Exemplo n.º 7
0
def load():
    addons = addon()

    if (addons.getSetting('hoster_onefichier_username')
            == '') and (addons.getSetting('hoster_onefichier_password') == ''):
        oGui = cGui()
        oGui.addText(
            SITE_IDENTIFIER, '[COLOR %s]%s[/COLOR]' %
            ('red', 'Nécessite un Compte 1Fichier Premium ou Gratuit'))

        oOutputParameterHandler = cOutputParameterHandler()
        oOutputParameterHandler.addParameter('siteUrl', 'http://venom/')
        oGui.addDir(SITE_IDENTIFIER, 'opensetting', addons.VSlang(30023),
                    'none.png', oOutputParameterHandler)
        oGui.setEndOfDirectory()
    else:
        if (GestionCookie().Readcookie('onefichier') != ''):
            showFile(URL_FILE)

        else:
            oPremiumHandler = cPremiumHandler('onefichier')
            Connection = oPremiumHandler.Authentificate()
            if (Connection == False):
                oGui = cGui()
                oGui.addText(
                    SITE_IDENTIFIER,
                    '[COLOR %s]%s[/COLOR]' % ('red', 'Connexion refusée'))
                oGui.setEndOfDirectory()

            else:
                showFile(URL_FILE)
Exemplo n.º 8
0
def load():
    oGui = cGui()
    addons = addon()
    oPremiumHandler = cPremiumHandler('uptobox')

    if (addons.getSetting('hoster_uptobox_username') == '') and (addons.getSetting('hoster_uptobox_password') == ''):
        oGui.addText(SITE_IDENTIFIER, '[COLOR red]' + 'Nécessite un Compte Uptobox Premium ou Gratuit' + '[/COLOR]')
        oOutputParameterHandler = cOutputParameterHandler()
        oOutputParameterHandler.addParameter('siteUrl', 'http://venom/')
        oGui.addDir(SITE_IDENTIFIER, 'opensetting', addons.VSlang(30023), 'none.png', oOutputParameterHandler)
    else:
        if (GestionCookie().Readcookie('uptobox') != ''):

            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl', 'http://venom/')
            oGui.addDir(SITE_IDENTIFIER, 'showSearch', 'Recherche', 'search.png', oOutputParameterHandler)

            oOutputParameterHandler.addParameter('siteUrl', 'http://venom/')
            oGui.addDir(SITE_IDENTIFIER, 'showFile', 'Mes Fichiers et Dossiers', 'genres.png', oOutputParameterHandler)

        else:
            Connection = oPremiumHandler.Authentificate()
            if (Connection == False):
                dialog().VSinfo('Connexion refusée')
                return

            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl', 'http://venom/')
            oGui.addDir(SITE_IDENTIFIER, 'showSearch', 'Recherche', 'search.png', oOutputParameterHandler)

            oOutputParameterHandler.addParameter('siteUrl', 'http://venom/')
            oGui.addDir(SITE_IDENTIFIER, 'showFile', 'Mes Fichiers et Dossiers', 'genres.png', oOutputParameterHandler)

    oGui.setEndOfDirectory()
Exemplo n.º 9
0
    def GetHeadercookie(self, url):
        Domain = re.sub(r'https*:\/\/([^/]+)(\/*.*)', '\\1', url)
        cook = GestionCookie().Readcookie(Domain.replace('.', '_'))
        if cook == '':
            return ''

        return '|' + urlEncode({'User-Agent': UA, 'Cookie': cook})
Exemplo n.º 10
0
def load():
    addons = addon()

    if (addons.getSetting('hoster_onefichier_username')
            == '') and (addons.getSetting('hoster_onefichier_password') == ''):
        oGui = cGui()
        oGui.addText(
            SITE_IDENTIFIER, "[COLOR %s]%s[/COLOR]" %
            ("red", "Nécessite Un Compte 1Fichier Premium ou Gratuit"))
        oGui.setEndOfDirectory()
    else:
        if (GestionCookie().Readcookie('onefichier') != ''):
            showFile(URL_FILE)

        else:
            oPremiumHandler = cPremiumHandler('onefichier')
            Connection = oPremiumHandler.Authentificate()
            if (Connection == False):
                oGui = cGui()
                oGui.addText(
                    SITE_IDENTIFIER,
                    "[COLOR %s]%s[/COLOR]" % ("red", "Connexion refusée"))
                oGui.setEndOfDirectory()

            else:
                showFile(URL_FILE)
Exemplo n.º 11
0
def UptomyAccount():
    if (cConfig().getSetting('hoster_uptobox_username')
            == '') and (cConfig().getSetting('hoster_uptobox_password') == ''):
        return
    oInputParameterHandler = cInputParameterHandler()
    sMediaUrl = oInputParameterHandler.getValue('sMediaUrl')

    oPremiumHandler = cPremiumHandler('uptobox')

    sHtmlContent = oPremiumHandler.GetHtml(URL_MAIN)
    cookies = GestionCookie().Readcookie('uptobox')

    aResult = re.search(
        '<div id="div_url".+?action="([^"]+)".+?name="sess_id" value="([^"]+)".+?name="srv_tmp_url" value="([^"]+)"',
        sHtmlContent, re.DOTALL)
    if (aResult):
        aCt = aResult.group(1)
        sId = aResult.group(2)
        sTmp = aResult.group(3)

        UPurl = ('%s%s&js_on=1&utype=reg&upload_type=url' % (aCt, sId))

        fields = {
            'sess_id': sId,
            'upload_type': 'url',
            'srv_tmp_url': sTmp,
            'url_mass': sMediaUrl,
            'tos': '1',
            'submit_btn': 'Uploader'
        }
        mpartdata = MPencode(fields)
        req = urllib2.Request(UPurl, mpartdata[1], headers)
        req.add_header('Content-Type', mpartdata[0])
        req.add_header('Cookie', cookies)
        req.add_header('Content-Length', len(mpartdata[1]))
        #req.add_data(mpartdata[1])
        xbmcgui.Dialog().notification('Info upload',
                                      'Envoi de la requete patienter ..',
                                      xbmcgui.NOTIFICATION_INFO, 2000, False)
        try:
            rep = urllib2.urlopen(req)
        except:
            return ''

        sHtmlContent = rep.read()
        rep.close()
        xbmc.executebuiltin("Dialog.Close(all,true)")
        if '>OK<' in sHtmlContent:
            xbmcgui.Dialog().notification('Info upload', 'Upload réussie',
                                          xbmcgui.NOTIFICATION_INFO, 2000,
                                          False)
        else:
            xbmcgui.Dialog().notification('Info upload', 'Fichier introuvable',
                                          xbmcgui.NOTIFICATION_INFO, 2000,
                                          False)
    else:
        xbmcgui.Dialog().notification('Info upload', 'Erreur pattern',
                                      xbmcgui.NOTIFICATION_ERROR, 2000, False)
Exemplo n.º 12
0
def load():
    oGui = cGui()
    oPremiumHandler = cPremiumHandler('uptobox')

    if (cConfig().getSetting('hoster_uptobox_username')
            == '') and (cConfig().getSetting('hoster_uptobox_password') == ''):
        oGui.addText(
            SITE_IDENTIFIER, '[COLOR red]' +
            'Nécessite Un Compte Uptobox Premium ou Gratuit' + '[/COLOR]')
    else:
        if (GestionCookie().Readcookie('uptobox') != ''):

            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl', 'http://venom/')
            oGui.addDir(SITE_IDENTIFIER, 'showSearch', 'Recherche',
                        'search.png', oOutputParameterHandler)

            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl', 'http://venom/')
            oOutputParameterHandler.addParameter('file', 'fileonly')
            oGui.addDir(SITE_IDENTIFIER, 'showFile', 'Mes Fichiers',
                        'genres.png', oOutputParameterHandler)

            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl', 'http://Dossier/')
            oGui.addDir(SITE_IDENTIFIER, 'showFolder', 'Mes Dossiers',
                        'genres.png', oOutputParameterHandler)
        else:
            Connection = oPremiumHandler.Authentificate()
            if (Connection == False):
                xbmcgui.Dialog().notification('Info connexion',
                                              'Connexion refusée',
                                              xbmcgui.NOTIFICATION_ERROR, 2000,
                                              False)
                return

            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl', 'http://venom/')
            oGui.addDir(SITE_IDENTIFIER, 'showSearch', 'Recherche',
                        'search.png', oOutputParameterHandler)

            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl', 'http://venom/')
            oOutputParameterHandler.addParameter('file', 'fileonly')
            oGui.addDir(SITE_IDENTIFIER, 'showFile', 'Mes Fichiers',
                        'genres.png', oOutputParameterHandler)

            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl', 'http://Dossier/')
            oGui.addDir(SITE_IDENTIFIER, 'showFolder', 'Mes Dossiers',
                        'genres.png', oOutputParameterHandler)

    oGui.setEndOfDirectory()
Exemplo n.º 13
0
def DecryptDlProtecte(url):

    VSlog('DecryptDlProtecte : ' + url)
    dialogs = dialog()

    if not (url):
        return ''
    #VSlog(url)

    # 1ere Requete pour recuperer le cookie
    oRequestHandler = cRequestHandler(url)
    oRequestHandler.addHeaderEntry('User-Agent', UA)
    sHtmlContent = oRequestHandler.request()

    cookies = GestionCookie().Readcookie('www_dl-protect1_com')
    #VSlog( 'cookie'  + str(cookies))

    #Tout ca a virer et utiliser oRequestHandler.addMultipartFiled('sess_id':sId,'upload_type':'url','srv_tmp_url':sTmp) quand ca marchera
    import string
    _BOUNDARY_CHARS = string.digits
    boundary = ''.join(random.choice(_BOUNDARY_CHARS) for i in range(15))
    multipart_form_data = {'submit': 'continuer', 'submit': 'Continuer'}
    data, headersMulti = encode_multipart(multipart_form_data, {}, boundary)

    #2 eme requete pour avoir le lien
    oRequestHandler = cRequestHandler(url)
    oRequestHandler.setRequestType(1)
    oRequestHandler.addHeaderEntry('Host', 'www.dl-protect1.com')
    oRequestHandler.addHeaderEntry('Referer', url)
    oRequestHandler.addHeaderEntry(
        'Accept',
        'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')
    oRequestHandler.addHeaderEntry('User-Agent', UA)
    oRequestHandler.addHeaderEntry('Accept-Language',
                                   'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3')
    oRequestHandler.addHeaderEntry('Content-Length',
                                   headersMulti['Content-Length'])
    oRequestHandler.addHeaderEntry('Content-Type',
                                   headersMulti['Content-Type'])
    oRequestHandler.addHeaderEntry('Cookie', cookies)
    oRequestHandler.addHeaderEntry('Accept-Encoding', 'gzip, deflate')

    oRequestHandler.addParametersLine(data)

    sHtmlContent = oRequestHandler.request()

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

    return sHtmlContent
Exemplo n.º 14
0
def Rename():
    #voir public ou privée
    oInputParameterHandler = cInputParameterHandler()

    aParams = oInputParameterHandler.getAllParameter()
    sTitle = oInputParameterHandler.getValue('sFileName')
    #sTitle = sTitle.replace('.mp4','')
    xbmc.log(str(aParams))
    sUrl = oInputParameterHandler.getValue('siteUrl')

    sText = cConfig().showKeyBoard(sTitle)
    if sText == False:
        return

    post_data = {}

    if 'fld_id=' in sUrl:
        sId = sUrl.replace('https://uptobox.com/?op=my_files&fld_id=',
                           '').replace(
                               'http://uptobox.com/?op=my_files&fld_id=', '')
        sUrl = 'http://uptobox.com/?op=fld_edit&fld_id=' + sId

        post_data['op'] = 'fld_edit'
        post_data['fld_id'] = sId
        post_data['fld_name'] = sText
        post_data['save'] = 'Soumettre'

    else:
        sId = sUrl.replace('https://uptobox.com/',
                           '').replace('http://uptobox.com/', '')
        sUrl = 'https://uptobox.com/?op=file_edit&file_code=' + sId

        post_data['op'] = 'file_edit'
        post_data['file_code'] = sId
        post_data['file_name'] = sText
        post_data['save'] = 'Soumettre'

    oPremiumHandler = cPremiumHandler('uptobox')
    cookies = GestionCookie().Readcookie('uptobox')

    req = urllib2.Request(sUrl, urllib.urlencode(post_data), headers)
    req.add_header('Cookie', cookies)
    try:
        rep = urllib2.urlopen(req)
    except:
        return ''

    rep.close()

    xbmc.executebuiltin("Container.Refresh")
Exemplo n.º 15
0
def UptomyAccount():
    if (cConfig().getSetting('hoster_uptobox_username')
            == '') and (cConfig().getSetting('hoster_uptobox_password') == ''):
        return
    oInputParameterHandler = cInputParameterHandler()
    sMediaUrl = oInputParameterHandler.getValue('sMediaUrl')

    oPremiumHandler = cPremiumHandler('uptobox')

    sHtmlContent = oPremiumHandler.GetHtml(URL_MAIN)
    cookies = GestionCookie().Readcookie('uptobox')

    aResult = re.search("request.open\('POST', '([^']+)'\);", sHtmlContent,
                        re.DOTALL)
    if (aResult):
        UPurl = aResult.group(1)
        fields = {'urls': '["' + sMediaUrl + '"]'}
        mpartdata = MPencode(fields)

        req = urllib2.Request(UPurl, mpartdata[1], headers)
        req.add_header('Content-Type', mpartdata[0].replace(',', ';'))
        req.add_header('Cookie', cookies)
        req.add_header('Content-Length', len(mpartdata[1]))

        xbmcgui.Dialog().notification('Info upload',
                                      'Envoi de la requete patienter ..',
                                      xbmcgui.NOTIFICATION_INFO, 2000, False)
        try:
            rep = urllib2.urlopen(req)
        except urllib2.URLError, e:
            #VSlog(e.code)
            #VSlog(e.reason)
            return ''

        sHtmlContent = rep.read()
        #VSlog(sHtmlContent)
        rep.close()
        xbmc.executebuiltin("Dialog.Close(all,true)")
        if 'success' in sHtmlContent:
            xbmcgui.Dialog().notification('Info upload', 'Upload réussie',
                                          xbmcgui.NOTIFICATION_INFO, 2000,
                                          False)
        else:
            xbmcgui.Dialog().notification('Info upload', 'Fichier introuvable',
                                          xbmcgui.NOTIFICATION_INFO, 2000,
                                          False)
Exemplo n.º 16
0
    def SaveCookie(self, head, xfss=None):
        cookies = ''
        if 'Set-Cookie' in head:
            oParser = cParser()
            sPattern = '(?:^|,) *([^;,]+?)=([^;,\/]+?);'
            aResult = oParser.parse(str(head['Set-Cookie']), sPattern)
            #print aResult
            if (aResult[0] == True):
                for cook in aResult[1]:
                    if 'deleted' in cook[1]:
                        continue
                    cookies = cookies + cook[0] + '=' + cook[1] + ';'
                    if cook[0] == 'xfss':
                        # cMySqlDB().updateXFSS(cook[1], self.xfss)
                        self.xfss = cook[1]

        if xfss:
            cookies = cookies + "xfss=%s;" % (xfss)

        #save cookie
        GestionCookie().SaveCookie(self.__sHosterIdentifier, cookies)
Exemplo n.º 17
0
    def __getMediaLinkForGuest(self):
        api_call = ''
        UA = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'

        oParser = cParser()

        headers = {'User-Agent': UA}
        sHtml = Unquote(
            requests.get(self.__sUrl,
                         cookies={
                             'CONSENT': GestionCookie().Readcookie("youtube")
                         },
                         headers=headers).text)

        sHtmlContent = self.deescape(
            sHtml[7 + sHtml.find('formats'):sHtml.rfind('adaptiveFormats')])
        sPattern = '"url":"([^"]+)".+?"qualityLabel":"([^"]+)"'
        aResult = oParser.parse(sHtmlContent, sPattern)

        if (aResult[0] == True):
            url = []
            qua = []
            for aEntry in aResult[1]:
                # Py3 a besoin de la deuxieme version, je laisse le 1er replace au cas où pour Py2
                url.append(aEntry[0].replace('/&', '&').replace(
                    "\\\\u0026", "&").replace("\u0026", "&"))
                qua.append(aEntry[1])

            if url:
                if self.__res:
                    for i in range(len(qua)):
                        if qua[i] == self.__res:
                            api_call = url[i]
                if not api_call:
                    api_call = dialog().VSselectqual(qua, url)

        if api_call:
            return True, api_call
        else:
            return False
Exemplo n.º 18
0
def login():
    oGui = cGui()
    name = oGui.showKeyBoard()
    password = oGui.showKeyBoard()
    cookies = ''
    
    oRequestHandler = cRequestHandler(URL_MAIN)
    oRequestHandler.setRequestType(cRequestHandler.REQUEST_TYPE_POST)
    #oRequestHandler.addHeaderEntry('Origin',URL_MAIN)
    oRequestHandler.addHeaderEntry('Referer',URL_MAIN)
    oRequestHandler.addParameters('login_name', name)
    oRequestHandler.addParameters('login_password', password)
    oRequestHandler.addParameters('login', 'submit')
        
    sHtmlContent = oRequestHandler.request()
    cookies = oRequestHandler.GetCookies()
    print cookies
    if cookies:
        cConfig().showInfo('vStream', 'Login OK')
        #save cookies
        GestionCookie().SaveCookie('streamase.com',cookies)
    
    oGui.setEndOfDirectory()
    return
Exemplo n.º 19
0
def showHosters():
    oGui = cGui()
    oParser = cParser()
    oInputParameterHandler = cInputParameterHandler()
    sUrl = oInputParameterHandler.getValue('siteUrl')
    sMovieTitle = oInputParameterHandler.getValue('sMovieTitle')
    sThumb = oInputParameterHandler.getValue('sThumb')

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

    sPattern = '<span class="(?:14|15)"><a href="([^"]+)"'
    aResult = oParser.parse(sHtmlContent, sPattern)

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

            if "ReviveLink" in aEntry:
                url2 = 'http://' + (
                    aEntry.split('/')[2]).lower() + '/qcap/Qaptcha.jquery.php'
                idUrl = aEntry.split('/')[3]

                # Make random key
                s = "azertyupqsdfghjkmwxcvbn23456789AZERTYUPQSDFGHJKMWXCVBN_-#@"
                RandomKey = ''.join(random.choice(s) for i in range(32))

                oRequestHandler = cRequestHandler(url2)
                oRequestHandler.setRequestType(1)
                oRequestHandler.addHeaderEntry('Host', 'revivelink.com')
                oRequestHandler.addHeaderEntry('User-Agent', UA)
                oRequestHandler.addHeaderEntry(
                    'Accept', 'application/json, text/javascript, */*; q=0.01')
                oRequestHandler.addHeaderEntry(
                    'Accept-Language', 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3')
                oRequestHandler.addHeaderEntry('Referer', aEntry)
                oRequestHandler.addHeaderEntry(
                    'Content-Type',
                    'application/x-www-form-urlencoded; charset=UTF-8')
                oRequestHandler.addHeaderEntry('X-Requested-With',
                                               'XMLHttpRequest')
                oRequestHandler.addParameters('action', 'qaptcha')
                oRequestHandler.addParameters('qaptcha_key', RandomKey)

                sHtmlContent = oRequestHandler.request()

                cookies = oRequestHandler.GetCookies()
                GestionCookie().SaveCookie('revivelink.com', cookies)
                # VSlog('result' + sHtmlContent)

                if not '"error":false' in sHtmlContent:
                    VSlog('Captcha rate')
                    VSlog(sHtmlContent)
                    return

                cookies = GestionCookie().Readcookie('revivelink.com')
                oRequestHandler = cRequestHandler(
                    'http://revivelink.com/slinks.php?R=' + idUrl + '&' +
                    RandomKey)
                oRequestHandler.addHeaderEntry('Host', 'revivelink.com')
                oRequestHandler.addHeaderEntry('Referer', aEntry)
                oRequestHandler.addHeaderEntry(
                    'Accept', 'application/json, text/javascript, */*; q=0.01')
                oRequestHandler.addHeaderEntry('User-Agent', UA)
                oRequestHandler.addHeaderEntry(
                    'Accept-Language', 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4')
                oRequestHandler.addHeaderEntry(
                    'Content-Type',
                    'application/x-www-form-urlencoded; charset=UTF-8')
                oRequestHandler.addHeaderEntry('X-Requested-With',
                                               'XMLHttpRequest')
                oRequestHandler.addHeaderEntry('Cookie', cookies)

                sHtmlContent = oRequestHandler.request()

                result = re.findall('<td><a href="([^"]+)" title=\'([^<]+)\'>',
                                    sHtmlContent)
                for url, title in result:
                    sHosterUrl = url
                    oHoster = cHosterGui().checkHoster(sHosterUrl)
                    if (oHoster != False):
                        oHoster.setDisplayName(title)
                        oHoster.setFileName(title)
                        cHosterGui().showHoster(oGui, oHoster, sHosterUrl,
                                                sThumb)
            else:

                sHosterUrl = aEntry
                oHoster = cHosterGui().checkHoster(sHosterUrl)
                if (oHoster != False):
                    oHoster.setDisplayName(sMovieTitle)
                    oHoster.setFileName(sMovieTitle)
                    cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumb)

    oGui.setEndOfDirectory()
Exemplo n.º 20
0
 def CheckCookie(self):
     cookies = GestionCookie().Readcookie(self.__sHosterIdentifier)
     if cookies != '':
         return True
     return False
Exemplo n.º 21
0
 def AddCookies(self):
     cookies = GestionCookie().Readcookie(self.__sHosterIdentifier)
     return 'Cookie=' + cookies
Exemplo n.º 22
0
        #get cookie
        cookies = ''
        if 'Set-Cookie' in head:
            oParser = cParser()
            sPattern = '(?:^|,) *([^;,]+?)=([^;,\/]+?);'
            aResult = oParser.parse(str(head['Set-Cookie']), sPattern)
            #print aResult
            if (aResult[0] == True):
                for cook in aResult[1]:
                    if 'deleted' in cook[1]:
                        continue
                    cookies = cookies + cook[0] + '=' + cook[1] + ';'

        #save cookie
        GestionCookie().SaveCookie(self.__sHosterIdentifier, cookies)

        self.DIALOG.VSinfo('Authentification reussie', self.__sDisplayName)
        VSlog('Auhentification reussie')

        return True

    def GetHtmlwithcookies(self, url, data, cookies):

        req = urllib2.Request(url, data, headers)

        if not (data == None):
            req.add_header('Referer', url)

        req.add_header('Cookie', cookies)
Exemplo n.º 23
0
    def getMediaLink(self):
        self.oPremiumHandler = cPremiumHandler('uptobox')
        premium = self.oPremiumHandler.isPremiumModeAvailable()
        api_call = False
        SubTitle = ""

        if premium:
            self.oPremiumHandler.Authentificate()
        else:
            dialog().VSok('Ce hoster demande un login, meme gratuit.')
            return False, False

        cookies = GestionCookie().Readcookie("uptobox")
        import requests, re

        s = requests.Session()
        s.headers.update({"Cookie": cookies})

        r = s.get('https://uptobox.com/api/streaming?file_code=' +
                  self.__sUrl.split('/')[-1]).json()

        if r["statusCode"] != 0:  # Erreur
            dialog().VSinfo(r["data"])
            return False, False

        r1 = s.get(r["data"]["user_url"]).text
        tok = re.search('token.+?;.+?;(.+?)&', r1).group(1)

        r1 = s.post("https://uptobox.com/api/user/pin/validate?token=" + tok,
                    json={
                        "pin": r["data"]["pin"]
                    }).json()
        s.headers.update(
            {"Referer": "https://uptobox.com/pin?pin=" + r["data"]["pin"]})

        r = s.get(r["data"]["check_url"]).json()["data"]

        sPattern = "'(.+?)': {(.+?)}"

        oParser = cParser()
        aResult = oParser.parse(r["streamLinks"], sPattern)

        url = []
        qua = []
        api_call = False

        for aEntry in aResult[1]:
            QUAL = aEntry[0]
            d = re.findall("'u*(.+?)': u*'(.+?)'", aEntry[1])
            for aEntry1 in d:
                url.append(aEntry1[1])
                qua.append(QUAL + ' (' + aEntry1[0] + ')')

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

        SubTitle = self.checkSubtitle(r["subs"])

        if (api_call):
            if SubTitle:
                return True, api_call, SubTitle
            else:
                return True, api_call

        return False, False
def DecryptddlProtect(url):
    #print 'entering DecryptddlProtect'
    if not (url): return ''

    #Get host
    tmp = url.split('/')
    host = tmp[0] + '//' + tmp[2] + '/'

    cookies = ''
    dialogs = dialog()
    #try to get previous cookie
    cookies = GestionCookie().Readcookie('liens_free-telechargement_org')

    oRequestHandler = cRequestHandler(url)
    if cookies:
        oRequestHandler.addHeaderEntry('Cookie', cookies)
    sHtmlContent = oRequestHandler.request()

    #A partir de la on a les bon cookies pr la protection cloudflare

    #Si ca demande le captcha
    if 'Veuillez recopier le captcha ci-dessus' in sHtmlContent:
        if cookies:
            GestionCookie().DeleteCookie('liens_free-telechargement_org')
            oRequestHandler = cRequestHandler(url)
            sHtmlContent = oRequestHandler.request()

        s = re.findall('src=".\/([^<>"]+?)" alt="CAPTCHA Image"', sHtmlContent)
        if host in s[0]:
            image = s[0]
        else:
            image = host + s[0]

        captcha,cookies2 = get_response(image, cookies)
        cookies = cookies + '; ' + cookies2

        oRequestHandler = cRequestHandler(url)
        oRequestHandler.setRequestType(1)
        oRequestHandler.addHeaderEntry('User-Agent', UA)
        oRequestHandler.addHeaderEntry('Accept-Language', 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4')
        oRequestHandler.addHeaderEntry('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8')
        oRequestHandler.addHeaderEntry('Cookie', cookies)
        oRequestHandler.addHeaderEntry('Referer', url)

        oRequestHandler.addParameters('do', 'contact')
        oRequestHandler.addParameters('ct_captcha', captcha)

        sHtmlContent = oRequestHandler.request()

        if 'Code de securite incorrect' in sHtmlContent:
            dialogs.VSinfo("Mauvais Captcha")
            return 'rate'

        if 'Veuillez recopier le captcha ci-dessus' in sHtmlContent:
            dialogs.VSinfo("Rattage")
            return 'rate'

        #si captcha reussi
        #save cookies
        GestionCookie().SaveCookie('liens_free-telechargement_org', cookies)

    return sHtmlContent
Exemplo n.º 25
0
def DecryptDlProtecte(url):

    VSlog('DecryptDlProtecte : ' + url)
    dialogs = dialog()

    if not (url):
        return ''

    #url2 = 'https://www.dl-protecte.org/php/Qaptcha.jquery.php'
    #url2 = 'https://www.protect-zt.com/php/Qaptcha.jquery.php'
    url2 = 'https://' + url.split('/')[2] + '/php/Qaptcha.jquery.php'

    #VSlog(url2)

    #Make random key
    s = "azertyupqsdfghjkmwxcvbn23456789AZERTYUPQSDFGHJKMWXCVBN_-#@";
    RandomKey = ''.join(random.choice(s) for i in range(32))

    oRequestHandler = cRequestHandler(url2)
    oRequestHandler.setRequestType(1)
    oRequestHandler.addHeaderEntry('Host', 'www.dl-protect.ru')
    oRequestHandler.addHeaderEntry('Referer', url)
    oRequestHandler.addHeaderEntry('Accept', 'application/json, text/javascript, */*; q=0.01')
    oRequestHandler.addHeaderEntry('User-Agent', UA)
    oRequestHandler.addHeaderEntry('Accept-Language', 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4')
    oRequestHandler.addHeaderEntry('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
    oRequestHandler.addHeaderEntry('X-Requested-With','XMLHttpRequest')
    oRequestHandler.addParameters('action', 'qaptcha')
    oRequestHandler.addParameters('qaptcha_key', RandomKey)

    sHtmlContent = oRequestHandler.request()

    cookies = oRequestHandler.GetCookies()
    GestionCookie().SaveCookie('dl_protect.ru',cookies)
    #VSlog( 'result'  + sHtmlContent)

    if not '"error":false' in sHtmlContent:
        VSlog('Captcha rate')
        VSlog(sHtmlContent)
        return

    #tempo pas necessaire
    #cGui().showInfo("Patientez", 'Décodage en cours', 2)
    #xbmc.sleep(1000)

    #Ancienne methode avec POST
    #query_args = ( ( 'YnJYHKk4xYUUu4uWQdxxuH@JEJ2yrmJS', '' ) , ('submit', 'Valider' ) )
    #data = urllib.urlencode(query_args)

    #Nouvelle methode avec multipart
    #multipart_form_data = { RandomKey : '', 'submit' : 'Valider' }

    import string
    _BOUNDARY_CHARS = string.digits + string.ascii_letters
    boundary = ''.join(random.choice(_BOUNDARY_CHARS) for i in range(30))

    multipart_form_data = { RandomKey : '', 'submit' : 'Valider' }
    data, headersMulti = encode_multipart(multipart_form_data, {}, boundary)
    #VSlog( 'header 2'  + str(headersMulti))
    #VSlog( 'data 2'  + str(data))

    #2 eme requete pour avoir le lien
    cookies = GestionCookie().Readcookie('dl_protect.ru')
    oRequestHandler = cRequestHandler(url)
    oRequestHandler.setRequestType(1)
    oRequestHandler.addHeaderEntry('Host', 'www.dl-protect.ru')
    oRequestHandler.addHeaderEntry('Referer', url)
    oRequestHandler.addHeaderEntry('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')
    oRequestHandler.addHeaderEntry('User-Agent', UA)
    oRequestHandler.addHeaderEntry('Accept-Language', 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3')
    oRequestHandler.addHeaderEntry('Content-Length', headersMulti['Content-Length'])
    oRequestHandler.addHeaderEntry('Content-Type', headersMulti['Content-Type'])
    oRequestHandler.addHeaderEntry('Cookie', cookies)
    oRequestHandler.addHeaderEntry('Accept-Encoding', 'gzip, deflate')

    oRequestHandler.addParametersLine(data)

    sHtmlContent = oRequestHandler.request()

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

    return sHtmlContent
Exemplo n.º 26
0
def DecryptddlProtect(url):
    #VSlog 'entering DecryptddlProtect'
    if not (url): return ''

    #Get host
    tmp = url.split('/')
    host = tmp[0] + '//' + tmp[2] + '/' + tmp[3] + '/'
    host1 = tmp[2]

    cookies = ''
    dialogs = dialog()
    #try to get previous cookie
    cookies = GestionCookie().Readcookie('cinemegatoil_org')

    oRequestHandler = cRequestHandler(url)
    if cookies:
        oRequestHandler.addHeaderEntry('Cookie', cookies)
    sHtmlContent = oRequestHandler.request()

    #A partir de la on a les bon cookies pr la protection cloudflare

    #Si ca demande le captcha
    if 'Vérification Captcha:' in sHtmlContent:
        if cookies:
            GestionCookie().DeleteCookie('cinemegatoil_org')
            oRequestHandler = cRequestHandler(url)
            sHtmlContent = oRequestHandler.request()

        s = re.findall('<img src="([^<>"]+?)" /><br />', sHtmlContent)
        if host in s[0]:
            image = s[0]
        else:
            image = host + s[0]

        captcha,cookies2 = get_response(image, cookies)
        cookies = cookies2.replace(';', '')

        oRequestHandler = cRequestHandler(url)
        oRequestHandler.setRequestType(1)
        oRequestHandler.addHeaderEntry('Host',host1)
        oRequestHandler.addHeaderEntry('User-Agent', UA)
        oRequestHandler.addHeaderEntry('Accept-Language', 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4')
        oRequestHandler.addHeaderEntry('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8')
        oRequestHandler.addHeaderEntry('Cookie', cookies)
        oRequestHandler.addHeaderEntry('Referer', url)

        oRequestHandler.addParameters('submit1', 'Submit')
        oRequestHandler.addParameters('security_code', captcha)

        sHtmlContent = oRequestHandler.request()

        if 'Code de securite incorrect' in sHtmlContent:
            dialogs.VSinfo("Mauvais Captcha")
            return 'rate'

        if 'Veuillez recopier le captcha ci-dessus' in sHtmlContent:
            dialogs.VSinfo("Rattage")
            return 'rate'

        #si captcha reussi
        #save cookies
        GestionCookie().SaveCookie('cinemegatoil_org', cookies)

    return sHtmlContent
Exemplo n.º 27
0
def DecryptddlProtect(url):
    #print 'entering DecryptddlProtect'
    if not (url): return ''

    #Get host
    tmp = url.split('/')
    host = tmp[0] + '//' + tmp[2] + '/'
    #VSlog(host)

    cookies = ''
    dialogs = dialog()
    #try to get previous cookie
    cookies = GestionCookie().Readcookie('wawacity')

    oRequestHandler = cRequestHandler(url)
    if cookies:
        oRequestHandler.addHeaderEntry('Cookie', cookies)
    sHtmlContent = oRequestHandler.request()
    #VSlog(sHtmlContent)

    #A partir de la on a les bon cookies pr la protection cloudflare

    #Si ca demande le captcha
    if 'Recopiez :' in sHtmlContent:
        if cookies:
            GestionCookie().DeleteCookie('wawacity')
            oRequestHandler = cRequestHandler(url)
            sHtmlContent = oRequestHandler.request()

        s = re.findall('<label for=".+? >.+?</label><img src="(.+?)"',
                       sHtmlContent)
        if host in s[0]:
            image = s[0]
        else:
            image = host + s[0]

        captcha, cookies2 = get_response(image, cookies)
        cookies = cookies + '; ' + cookies2

        oRequestHandler = cRequestHandler(url)
        oRequestHandler.setRequestType(1)
        oRequestHandler.addHeaderEntry('User-Agent', UA)
        oRequestHandler.addHeaderEntry('Accept-Language',
                                       'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3')
        oRequestHandler.addHeaderEntry(
            'Accept',
            'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
        )
        oRequestHandler.addHeaderEntry('Cookie', cookies)
        oRequestHandler.addHeaderEntry('Referer', url)

        oRequestHandler.addParameters('submit', 'unlock')
        oRequestHandler.addParameters('cr-nvar', captcha.upper())

        sHtmlContent = oRequestHandler.request()

        if 'Code de securite incorrect' in sHtmlContent:
            dialogs.VSinfo("Mauvais Captcha")
            return 'rate'

        if 'Veuillez recopier le captcha ci-dessus' in sHtmlContent:
            dialogs.VSinfo("Rattage")
            return 'rate'

        #si captcha reussi
        #save cookies
        GestionCookie().SaveCookie('wawacity', cookies)

    return sHtmlContent
Exemplo n.º 28
0
def showMovies(sSearch=''):
    oGui = cGui()
    oInputParameterHandler = cInputParameterHandler()
    sMovieTitle = oInputParameterHandler.getValue('sMovieTitle')

    if sSearch:
        sUrl = sSearch

        #Desactive pr le moment , mais on garde car ca bouge souvent
        if False:
            #need a cookie for search
            oRequestHandler = cRequestHandler(URL_MAIN)
            sHtmlContent = oRequestHandler.request()

            head = oRequestHandler.GetHeaders()

            c = re.search('Set-Cookie: PHPSESSID=(.+?);', str(head))
            if c:
                cookiesearch = 'PHPSESSID=' + c.group(1)

                #on recupere les cookie cloudflare
                oRequestHandler = cRequestHandler(sUrl)
                sHtmlContent = oRequestHandler.request()

                from resources.lib.config import GestionCookie
                cookies = GestionCookie().Readcookie('sokrostream_biz')

                #on ajoute les deux
                cookies = cookies + '; ' + cookiesearch

                #xbmc.log('NEW ****' + cookies, xbmc.LOGNOTICE)

            oRequestHandler = cRequestHandler(sUrl)
            oRequestHandler.addHeaderEntry('Cookie', cookies)
            oRequestHandler.addHeaderEntry('Referer', sUrl)
            oRequestHandler.addHeaderEntry(
                'Accept-Language', 'fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4')
            oRequestHandler.addHeaderEntry(
                'Accept',
                'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
            )
            oRequestHandler.addHeaderEntry('Content-Type',
                                           'text/html; charset=utf-8')
            sHtmlContent = oRequestHandler.request()

        else:
            oRequestHandler = cRequestHandler(sUrl)
            oRequestHandler.addHeaderEntry('Referer', sUrl)
            sHtmlContent = oRequestHandler.request()

    else:
        sUrl = oInputParameterHandler.getValue('siteUrl')

        oRequestHandler = cRequestHandler(sUrl)
        sHtmlContent = oRequestHandler.request()
        #sHtmlContent = SucurieBypass().GetHtml(sUrl)

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

    sHtmlContent = sHtmlContent.replace(
        '<span class="tr-dublaj"></span>',
        '').replace('<span class="tr-altyazi"></span>',
                    '').replace('<small>', '').replace('</small>', '').replace(
                        '<span class="likeThis">', '').replace('</span>', '')

    if (sSearch or ('/series' in sUrl) or ('/search/' in sUrl)):
        sHtmlContent = sHtmlContent.replace("\n", "")
        sHtmlContent = re.sub('<div class="yazitip">Series similaires</div>.+',
                              '', sHtmlContent)
        sPattern = '<div class="moviefilm">\s+<a href=".+?">\s+<img src="([^<]+)" alt=".+?".+?<\/a>\s+<div class="movief"><a href="([^<]+)">(.+?)<\/a>'
    else:
        sPattern = '<div class="moviefilm"> *<a href=".+?"> *<img src="([^<]+)" alt=".+?" height=".+?" width=".+?" \/><\/a> *<div class="ozet">.+?</div> *<div class="movief"><a href="([^<]+)">([^<]+)<\/a><\/div> *<div class="movie.+?">(.+?)<\/div>'

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

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

    if (aResult[0] == True):
        total = len(aResult[1])
        dialog = cConfig().createDialog(SITE_NAME)

        for aEntry in aResult[1]:
            cConfig().updateDialog(dialog, total)

            #on n'affiche pas les contenus similaires
            if (URL_MAIN + 'series/' in sUrl) and ('-saison-'
                                                   not in aEntry[1]):
                continue

            if (sSearch or ('categories/series' in sUrl)
                    or ('/series/' in sUrl) or ('/series-tv/' in sUrl)
                    or ('/search/' in sUrl)):
                sTitle = aEntry[2]
            else:
                sTitle = aEntry[2] + ' (' + aEntry[3] + ')'

            if sMovieTitle:
                sTitle = sMovieTitle + sTitle

            sDisplayTitle = cUtil().DecoTitle(sTitle)
            sUrl2 = str(aEntry[1])

            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl', sUrl2)
            oOutputParameterHandler.addParameter('sMovieTitle', sTitle)
            oOutputParameterHandler.addParameter('sThumbnail', str(aEntry[0]))

            if ('-saison-' in sUrl2):
                oGui.addTV(SITE_IDENTIFIER, 'showEpisode', sDisplayTitle, '',
                           aEntry[0], '', oOutputParameterHandler)
            elif ('/series/' in sUrl2):
                oGui.addTV(SITE_IDENTIFIER, 'showMovies', sDisplayTitle, '',
                           aEntry[0], '', oOutputParameterHandler)
            else:
                oGui.addMovie(SITE_IDENTIFIER, 'showLinks', sDisplayTitle, '',
                              aEntry[0], '', oOutputParameterHandler)

        cConfig().finishDialog(dialog)

        sNextPage = __checkForNextPage(sHtmlContent)
        if (sNextPage != False):
            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl', sNextPage)
            oGui.addNext(SITE_IDENTIFIER, 'showMovies',
                         '[COLOR teal]Next >>>[/COLOR]',
                         oOutputParameterHandler)

    if not sSearch:
        oGui.setEndOfDirectory()
Exemplo n.º 29
0
def showMovies(sSearch=''):
    oGui = cGui()
    oParser = cParser()

    if sSearch:
        sUrl = sSearch.replace(' ', '+')
    else:
        oInputParameterHandler = cInputParameterHandler()
        sUrl = oInputParameterHandler.getValue('siteUrl')

    Cookie = GestionCookie().Readcookie('time2watch')

    oRequestHandler = cRequestHandler(sUrl)
    if Cookie:
        oRequestHandler.addHeaderEntry('Cookie', Cookie)
    sHtmlContent = oRequestHandler.request()

    # Connection pour passer la limite
    if not 'Déconnexion' in sHtmlContent and ADDON.getSetting(
            'hoster_time2watch_premium') == "true":
        VSlog("Connection")

        data = {
            'username': ADDON.getSetting('hoster_time2watch_username'),
            'pwd': ADDON.getSetting('hoster_time2watch_password')
        }

        data = urlEncode(data)

        opener = Noredirection()

        opener.addheaders = [('User-Agent', UA)]
        opener.addheaders.append(
            ('Content-Type', 'application/x-www-form-urlencoded'))
        opener.addheaders.append(('Accept-Encoding', 'gzip, deflate'))
        opener.addheaders.append(('Content-Length', str(len(data))))

        response = opener.open("https://time2watch.io/login/", data)
        head = response.info()

        # get cookie
        Cookie = ''
        if 'Set-Cookie' in head:
            oParser = cParser()
            sPattern = '(?:^|,) *([^;,]+?)=([^;,\/]+?);'
            aResult = oParser.parse(str(head['Set-Cookie']), sPattern)
            # print(aResult)
            if (aResult[0] == True):
                for cook in aResult[1]:
                    if 'deleted' in cook[1]:
                        continue
                    Cookie = Cookie + cook[0] + '=' + cook[1] + ';'

        GestionCookie().SaveCookie('time2watch', Cookie)

        oRequestHandler = cRequestHandler(sUrl)
        oRequestHandler.addHeaderEntry('Cookie', Cookie)
        sHtmlContent = oRequestHandler.request()

    sPattern = '<div class="col-lg-4.+?<a href="([^"]+)">.+?affiche_liste" src="([^"]+)".+?alt="([^"]+)".+?<i class="fa fa-tv"></i>([^<]+)<.+?div class="synopsis_hover".+?>([^<]+)<'
    aResult = oParser.parse(sHtmlContent, sPattern)

    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

            sUrl2 = URL_MAIN + aEntry[0]
            sThumb = URL_MAIN + aEntry[1]
            sTitle = aEntry[2]
            sQual = aEntry[3].replace(' ', '')
            sDesc = aEntry[4]

            sTitle = sTitle.replace('En streaming', '')

            sDisplayTitle = ('%s [%s]') % (sTitle, sQual)

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

            if '/serie/' in sUrl2 or '/anime/' in sUrl2:
                oGui.addTV(SITE_IDENTIFIER, 'showSaisonEpisodes',
                           sDisplayTitle, '', sThumb, sDesc,
                           oOutputParameterHandler)
            else:
                oGui.addMovie(SITE_IDENTIFIER, 'showMoviesLink', sDisplayTitle,
                              '', sThumb, sDesc, oOutputParameterHandler)

        progress_.VSclose(progress_)

    if not sSearch:
        sNextPage = __checkForNextPage(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)

        oGui.setEndOfDirectory()
Exemplo n.º 30
0
    def GetHtml(self,url,htmlcontent = '',cookies = '',postdata = None,Gived_headers = ''):

        #Memorise headers
        self.Memorised_Headers = Gived_headers

        #Memorise postdata
        self.Memorised_PostData = postdata

        #Memorise cookie
        self.Memorised_Cookies = cookies
        #VSlog(cookies)

        #cookies in headers ?
        if Gived_headers != '':
            if Gived_headers.get('Cookie',None):
                if cookies:
                    self.Memorised_Cookies = cookies + '; ' + Gived_headers.get('Cookie')
                else:
                    self.Memorised_Cookies = Gived_headers['Cookie']

        #For debug
        if (Mode_Debug):
            VSlog('Headers present ' + str(Gived_headers))
            VSlog('url ' + url)
            if (htmlcontent):
                VSlog('code html ok')
            VSlog('cookies passés' + self.Memorised_Cookies)
            VSlog('post data :' + str(postdata))

        self.hostComplet = re.sub(r'(https*:\/\/[^/]+)(\/*.*)','\\1',url)
        self.host = re.sub(r'https*:\/\/','',self.hostComplet)
        self.url = url

        cookieMem = GestionCookie().Readcookie(self.host.replace('.', '_'))
        if not (cookieMem == ''):
            if (Mode_Debug):
                VSlog('cookies present sur disque :' + cookieMem )
            if not (self.Memorised_Cookies):
                cookies = cookieMem
            else:
                cookies = self.Memorised_Cookies + '; ' + cookieMem
        else:
            if (Mode_Debug):
                VSlog('Pas de cookies present sur disque ' )
                
        data = {}
        if postdata:
            method = 'POST'
            #Need to convert data to dictionnary
            d = postdata.split('&')
            for dd in d:
                ddd = dd.split('=')
                data[ddd[0]] = ddd[1]
        else:
            method = 'GET'

        s = CloudflareScraper()
        
        r = s.request(method,url,headers = self.SetHeader() , cookies = self.ParseCookies(cookies) , data = data )
        if r:
            sContent = r.text.encode("utf-8")
            self.RedirectionUrl = r.url
            self.Header = r.headers
        else:
            VSlog("Erreur, delete cookie" )
            sContent = ''
            #self.RedirectionUrl = r.url
            #self.Header = r.headers
            s.MemCookie = ''
            GestionCookie().DeleteCookie(self.host.replace('.', '_'))
        
        #fh = open('c:\\test.txt', "w")
        #fh.write(sContent)
        #fh.close()
            
        #Memorisation des cookies
        c = ''
        cookie = s.MemCookie
        if cookie:
            for i in cookie:
                c = c + i + '=' + cookie[i] + ';'
            #Write them
            GestionCookie().SaveCookie(self.host.replace('.', '_'),c)
            if Mode_Debug:
                VSlog("Sauvegarde cookies : " + str(c) )
        
        return sContent