コード例 #1
0
ファイル: raptu.py プロジェクト: Jpocas3212/salva59sg
    def __getMediaLinkForGuest(self):
        api_call = False

        sUrl = self.__sUrl

        oParser = cParser()
        oRequest = cRequestHandler(sUrl)
        sHtmlContent = oRequest.request()

        if 'rapidvideo' in sUrl:#qual site film illimite
            sPattern = '<a href="([^"]+&q=\d+p)"'
            aResult = oParser.parse(sHtmlContent, sPattern)
            if (aResult[0] == True):
                url=[]
                qua=[]
                for i in aResult[1]:
                    url.append(str(i))
                    qua.append(str(i.rsplit('&q=', 1)[1]))

                if len(url) == 1:
                    sPattern = '<source src="([^"]+)" type="video/.+?"'
                    aResult = oParser.parse(sHtmlContent, sPattern)
                    if (aResult[0] == True):
                        api_call = aResult[1][0]


                elif len(url) > 1:
                    dialog2 = xbmcgui.Dialog()
                    ret = dialog2.select('Select Quality', qua)
                    if (ret > -1):
                        oRequest = cRequestHandler(url[ret])
                        sHtmlContent = oRequest.request()
                        sPattern = '<source src="([^"]+)" type="video/.+?"'
                        aResult = oParser.parse(sHtmlContent, sPattern)
                        if (aResult[0] == True):
                            api_call = aResult[1][0]
        else:
            sPattern = '{"file":"([^"]+)","label":"([^"]+)"'
            aResult = oParser.parse(sHtmlContent, sPattern)
            if (aResult[0] == True):
                url=[]
                qua=[]
                for i in aResult[1]:
                    url.append(str(i[0]))
                    qua.append(str(i[1]))

                if len(url) == 1:
                    api_call = url[0]

                elif len(url) > 1:
                    dialog2 = xbmcgui.Dialog()
                    ret = dialog2.select('Select Quality', qua)
                    if (ret > -1):
                        api_call = url[ret]

        if (api_call):
            return True, api_call

        return False, False
コード例 #2
0
    def __getMediaLinkForGuest(self):

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()

        sPattern = 'file:"([^"]+)"(?:,label:"([^"]+)")*'
        oParser = cParser()
        aResult = oParser.parse(sHtmlContent, sPattern)

        api_call = False

        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]))

            #Si au moins 1 url
            if (url):
                #Affichage du tableau
                dialog2 = xbmcgui.Dialog()
                ret = dialog2.select('Select Quality', qua)
                if (ret > -1):
                    api_call = url[ret]

        if (api_call):
            return True, api_call

        return False, False
コード例 #3
0
ファイル: vk.py プロジェクト: TheProphet1/Prophet
    def __getMediaLinkForGuest(self):
        url = []
        qua = []

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()

        sPattern = '"url.+?":"(.+?)\.(\d+).mp4'

        oParser = cParser()
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):

            for aEntry in aResult[1]:
                url.append(aEntry[0])
                qua.append(str(aEntry[1]))

            dialog2 = xbmcgui.Dialog()
            ret = dialog2.select('Select Quality', qua)
            #sUrl = url[ret] + '.' + qua[ret] + '.mp4'
            api_call = ('%s.%s.mp4') % (url[ret], qua[ret])

            if api_call:
                return True, api_call

        return False, False
コード例 #4
0
ファイル: download.py プロジェクト: davleon/venom-xbmc-addons
    def AddDownload(self, meta):

        sTitle = meta['title']
        sUrl = meta['url']

        #titre fichier
        sTitle = self.__createTitle(sUrl, sTitle)
        sTitle = self.__createDownloadFilename(sTitle)
        sTitle = cGui().showKeyBoard(sTitle)

        if (sTitle != False and len(sTitle) > 0):

            #chemin de sauvegarde
            sPath2 = xbmc.translatePath(
                self.ADDON.getSetting('download_folder'))

            dialog = xbmcgui.Dialog()
            sPath = dialog.browse(3, 'Downloadfolder', 'files', '', False,
                                  False, sPath2)

            if (sPath != ''):
                self.ADDON.setSetting('download_folder', sPath)
                sDownloadPath = xbmc.translatePath(sPath + '%s' % (sTitle))

                if xbmcvfs.exists(sDownloadPath):
                    self.DIALOG.VSinfo('Nom déjà utilisé', sTitle)
                    return self.AddDownload(meta)
                else:
                    xbmcvfs.File(sDownloadPath, 'w')

                try:
                    VSlog('Ajout en liste de téléchargement ' + str(sUrl))
                    meta['title'] = sTitle
                    meta['path'] = sDownloadPath

                    cDb().insert_download(meta)

                    return True

                except:
                    #print_exc()
                    self.DIALOG.VSinfo('Téléchargement impossible', sTitle)
                    VSlog('Téléchargement impossible')

        return False
コード例 #5
0
ファイル: uptobox.py プロジェクト: adsav1/venom-xbmc-addons
    def GetMedialinkStreaming(self, sHtmlContent):

        oParser = cParser()
        sPattern = 'src":[\'"]([^<>\'"]+)[\'"],"type":[\'"][^\'"><]+?[\'"],"label":[\'"]([0-9]+p)[\'"].+?"lang":[\'"]([^\'"]+)'
        aResult = oParser.parse(sHtmlContent, sPattern)

        stream_url = ''

        if (aResult[0] == True):
            url = []
            qua = []

            for aEntry in aResult[1]:
                url.append(aEntry[0])
                tmp_qua = aEntry[1]
                if (aEntry[2]):
                    if 'unknow' not in aEntry[2]:
                        tmp_qua = tmp_qua + ' (' + aEntry[2] + ')'
                qua.append(tmp_qua)

            #Si une seule url
            if len(url) == 1:
                stream_url = url[0]
            #si plus de une
            elif len(url) > 1:
                #Afichage du tableau
                dialog2 = xbmcgui.Dialog()
                ret = dialog2.select('Select Quality', qua)
                if (ret > -1):
                    stream_url = url[ret]
                else:
                    return False
            else:
                return False

            stream_url = urllib.unquote(stream_url)

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

            return stream_url
        else:
            return False

        return False
コード例 #6
0
ファイル: videott.py プロジェクト: milkibreizh/zombi-addons
    def __getMediaLinkForGuest(self):
        sId = self.__getIdFromUrl(self.__sUrl)

        json_url = 'http://www.video.tt/player_control/settings.php?v=%s' % sId

        vUrl = False

        try:
            print 'debut2'

            reponse = urllib2.urlopen(json_url)

            data = json.loads(reponse.read().decode(
                reponse.info().getparam('charset') or 'utf-8'))

            vids = data['settings']['res']

            if vids:

                vUrlsCount = len(vids)

                if (vUrlsCount > 0):
                    if vUrlsCount == 1:
                        vUrl = vids[0][u'u'].decode('base-64')
                    else:
                        vid_list = []
                        url_list = []

                        for index in vids:
                            quality = index[u'l']
                            vid_list.extend(['Video TT - %sp' % quality])
                            url_list.extend([index[u'u']])

                        result = xbmcgui.Dialog().select(
                            'Choose a link', vid_list)
                        if result != -1:
                            vUrl = url_list[result].decode('base-64')

        except urllib2.URLError, e:
            print e.read()
            print e.reason
コード例 #7
0
ファイル: uptobox.py プロジェクト: adsav1/venom-xbmc-addons
    def getMediaLink(self):
        self.oPremiumHandler = cPremiumHandler(self.getPluginIdentifier())
        if (self.oPremiumHandler.isPremiumModeAvailable()):
            dialog3 = xbmcgui.Dialog()
            ret = dialog3.select('Choissisez votre mode de fonctionnement', [
                'Passer en Streaming (via Uptostream)',
                'Rester en direct (via Uptobox)'
            ])

            #mode DL
            if ret == 1:
                self.stream = False
            #mode stream
            elif ret == 0:
                self.__sUrl = self.__sUrl.replace('uptobox.com/',
                                                  'uptostream.com/')
            else:
                return False

            return self.__getMediaLinkByPremiumUser()

        else:
            VSlog('no premium')
            return self.__getMediaLinkForGuest()
コード例 #8
0
ファイル: googlevideo.py プロジェクト: akuala/repo.kuala
    def __getMediaLinkForGuest(self):

        r = self.get_host_and_id(self.__sUrl)

        #si lien deja decode
        if (r == False):
            if 'https://lh3.googleusercontent.com' in self.__sUrl:
                #Nouveaute, avec cookie now

                VSlog(self.__sUrl)

                import requests
                r = requests.get(self.__sUrl, allow_redirects=False)
                url = r.headers['Location']
                cookies = r.headers['set-cookie']

                # Impossible a faire fonctionner, si quelqu'un y arrive .....
                #class NoRedirect(urllib2.HTTPRedirectHandler):
                #    def redirect_request(self, req, fp, code, msg, hdrs, newurl):
                #        return newurl
                #opener = urllib2.build_opener(NoRedirect)
                #HttpReponse = opener.open(self.__sUrl)
                #htmlcontent = HttpReponse.read()
                #head = HttpReponse.headers
                #VSlog(str(head))

                VSlog(url)
                VSlog(cookies)

                return True, url + '|Cookie=' + cookies
            #Peut etre un peu brutal, peut provoquer des bugs
            if 'lh3.googleusercontent.com' in self.__sUrl:
                VSlog('Attention: lien sans cookies')
                return True, self.__sUrl

        web_url = self.getUrl(r[0], r[1])

        headers = {'Referer': web_url}

        stream_url = ''
        vid_sel = web_url

        try:
            if 'picasaweb.' in r[0]:

                request = urllib2.Request(web_url, None, headers)

                try:
                    reponse = urllib2.urlopen(request)
                except URLError, e:
                    print e.read()
                    print e.reason

                resp = reponse.read()

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

                vid_sel = ''
                vid_id = re.search('.*?#(.+?)$', web_url)

                if vid_id:
                    vid_id = vid_id.group(1)
                    html = re.search(
                        '\["shared_group_' + re.escape(vid_id) +
                        '"\](.+?),"ccOverride":"false"}', resp, re.DOTALL)
                else:
                    #Methode brute en test
                    html = re.search(
                        '(?:,|\[)"shared_group_[0-9]+"\](.+?),"ccOverride":"false"}',
                        resp, re.DOTALL)

                if html:
                    vid_list = []
                    url_list = []
                    best = 0
                    quality = 0

                    videos = re.compile(
                        ',{"url":"(https:\/\/redirector\.googlevideo\.com\/[^<>"]+?)","height":([0-9]+?),"width":([0-9]+?),"type":"video\/.+?"}'
                    ).findall(html.group(1))

                    if not videos:
                        videos = re.compile(
                            ',{"url":"(https:\/\/lh3\.googleusercontent\.com\/[^<>"]+?)","height":([0-9]+?),"width":([0-9]+?),"type":"video\/.+?"}'
                        ).findall(html.group(1))

                    if videos:
                        if len(videos) > 1:
                            for index, video in enumerate(videos):
                                if int(video[1]) > quality: best = index
                                quality = int(video[2])
                                vid_list.extend(
                                    ['GoogleVideo - %sp' % quality])
                                url_list.extend([video[0]])
                        if len(videos) == 1: vid_sel = videos[0][0]
                        else:
                            result = xbmcgui.Dialog().select(
                                'Choose a link', vid_list)
                            if result != -1: vid_sel = url_list[result]
                            else:
                                return self.unresolvable(0, 'No link selected')

            if vid_sel:
                if 'googleusercontent' in vid_sel:
                    stream_url = urllib2.urlopen(vid_sel).geturl()
                elif 'redirector.' in vid_sel:
                    stream_url = urllib2.urlopen(vid_sel).geturl()
                elif 'google' in vid_sel:
                    stream_url = vid_sel
コード例 #9
0
def UptomyAccount():
    addons = addon()

    if (addons.getSetting('hoster_uptobox_username')
            == '') and (addons.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('<form id="fileupload" action="([^"]+)"', sHtmlContent,
                        re.DOTALL)
    if (aResult):
        UPurl = aResult.group(1).replace('upload?', 'remote?')

        if UPurl.startswith('//'):
            UPurl = 'https:' + UPurl

        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]))

        #penible ce dialog auth
        xbmc.executebuiltin("Dialog.Close(all,true)")
        xbmcgui.Dialog().notification('Requete envoyé',
                                      'vous pouvez faire autre chose',
                                      xbmcgui.NOTIFICATION_INFO, 4000, False)

        try:
            rep = urllib2.urlopen(req)
        except urllib2.URLError, e:
            return ''

        sHtmlContent = rep.read()
        rep.close()

        sPattern = '{"id":.+?,(?:"size":|"progress":)([0-9]+)'
        oParser = cParser()
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            total = aResult[1][0]
            del aResult[1][0]

            dialog = xbmcgui.DialogProgressBG()
            dialog.create(SITE_NAME,
                          'Transfert de fichiers sur votre compte Uptobox')

            for aEntry in aResult[1]:
                dialog.update(
                    int(aEntry) * 100 / int(total), 'Upload en cours...')

                xbmc.sleep(500)
            dialog.close()

        else:
            #penible ce dialog auth
            xbmc.executebuiltin("Dialog.Close(all,true)")
            xbmcgui.Dialog().notification('Info upload', 'Fichier introuvable',
                                          xbmcgui.NOTIFICATION_INFO, 2000,
                                          False)
コード例 #10
0
        sPattern = '{"id":.+?,(?:"size":|"progress":)([0-9]+)'
        oParser = cParser()
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            total = aResult[1][0]
            del aResult[1][0]

            dialog = xbmcgui.DialogProgressBG()
            dialog.create(SITE_NAME,
                          'Transfert de fichiers sur votre compte Uptobox')

            for aEntry in aResult[1]:
                dialog.update(
                    int(aEntry) * 100 / int(total), 'Upload en cours...')

                xbmc.sleep(500)
            dialog.close()

        else:
            #penible ce dialog auth
            xbmc.executebuiltin("Dialog.Close(all,true)")
            xbmcgui.Dialog().notification('Info upload', 'Fichier introuvable',
                                          xbmcgui.NOTIFICATION_INFO, 2000,
                                          False)
    else:
        #penible ce dialog auth
        xbmc.executebuiltin("Dialog.Close(all,true)")
        xbmcgui.Dialog().notification('Info upload', 'Erreur pattern',
                                      xbmcgui.NOTIFICATION_ERROR, 2000, False)