def getMediaUrl(self):
        try:
            #sourceCode = self.abrirRapidVideo(self.url).decode('unicode_escape')
            sourceCode = self.net.http_GET(
                self.url,
                headers=self.headers).content.decode('unicode_escape')

        except:
            #sourceCode = self.abrirRapidVideo(self.url)
            headers = {
                'User-Agent':
                'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'
            }
            sourceCode = controlo.abrir_url(
                'https://ooops.rf.gd/url.php?url=' + self.url, header=headers)
            html_parser = HTMLParser.HTMLParser()
            sourceCode = html_parser.unescape(sourceCode)

            #sourceCode = self.net.http_GET(self.url, headers=self.headers).content

        videoUrl = ''
        sPattern = '<input type="hidden" value="(\d+)" name="block">'
        aResult1 = self.parse(sourceCode, sPattern)
        if (aResult1[0] == True):
            sourceCode = self.net.http_POST(
                self.url,
                'confirm.x=74&confirm.y=35&block=1',
                headeres=self.headers)

        sPattern = '"file":"([^"]+)","label":"([0-9]+)p.+?'
        aResult = self.parse(sourceCode, sPattern)
        try:
            self.legenda = "https://www.raptu.com%s" % re.compile(
                '"file":"([^"]+)","label":".+?","kind":"captions"').findall(
                    sourceCode)[0]
            #log(self.legenda)
        except:
            self.legenda = ''
        if aResult[0]:
            links = []
            qualidades = []
            for aEntry in aResult[1]:
                links.append(aEntry[0])
                if aEntry[1] == '2160':
                    qualidades.append('4K')
                else:
                    qualidades.append(aEntry[1] + 'p')

            if len(links) == 1:
                videoUrl = links[0]
            elif len(links) > 1:
                links.reverse()
                qualidades.reverse()

                qualidade = xbmcgui.Dialog().select('Escolha a qualidade',
                                                    qualidades)
                videoUrl = links[qualidade]

        return videoUrl
Esempio n. 2
0
    def adicionarVistoSite(self):
        links = self.url.split('/')
        opcao = controlo.addon.getSetting('marcarVisto')
        colocar = 0
        resultado = controlo.abrir_url(self.url,
                                       header=controlo.headers,
                                       cookie=definicoes.getCookie())
        resultado = json.loads(resultado)[0]
        if 'filme' in self.url:
            id_video = resultado['id_video']
            imdb = resultado['IMBD']
            post = {'id_filme': id_video}
            url = self.API_SITE + 'index.php?action=marcar-visto-filme&idFilme=' + id_video
            tipo = 0
        elif 'serie' in self.url:
            imdb = resultado['fotoSerie'].split('/')[-1].split('.')[0]
            id_video = resultado['id_serie']
            temporadas = resultado['temporada']
            episodios = resultado['episodio']
            post = {
                'id_serie': id_video,
                'temporada': temporadas,
                'episodio': episodios
            }
            url = (
                self.API_SITE +
                'index.php?action=marcar-visto-episodio&idSerie=%s&temporada=%s&episodio=%s'
                % (id_video, temporadas, episodios))
            tipo = 1
        elif 'anime' in self.url:
            imdb = resultado['fotoSerie'].split('/')[-1].split('.')[0]
            id_video = resultado['id_serie']
            temporadas = resultado['temporada']
            episodios = resultado['episodio']
            post = {
                'id_anime': id_video,
                'temporada': temporadas,
                'episodio': episodios
            }
            url = (
                self.API_SITE +
                'index.php?action=marcar-visto-episodio&idSerie=%s&temporada=%s&episodio=%s'
                % (id_video, temporadas, episodios))
            tipo = 2

        if opcao == '0' or opcao == '2':
            pastaVisto = os.path.join(self.pastaData, 'vistos')
            try:
                os.makedirs(pastaVisto)
            except:
                pass

            if tipo == 1 or tipo == 2:
                ficheiro = os.path.join(
                    pastaVisto,
                    str(id_video) + '_S' + str(temporadas) + 'x' +
                    str(episodios) + '.mrpiracy')
            elif tipo == 0:
                ficheiro = os.path.join(pastaVisto,
                                        str(id_video) + '.mrpiracy')

            if not os.path.exists(ficheiro):
                f = open(ficheiro, 'w')
                f.write('')
                f.close()
            colocar = 1

        if opcao == '1' or opcao == '2':

            resultado = controlo.abrir_url(url,
                                           header=controlo.headers,
                                           cookie=definicoes.getCookie())

            resultado = json.loads(resultado)
            if resultado['mensagem']['codigo'] == 200:
                colocar = 1
            if resultado['mensagem']['codigo'] == 201:
                colocar = 2
            elif resultado['mensagem']['codigo'] == 204:
                colocar = 3
            userVistos = resultado['userVistos']

            if userVistos != "" or userVistos != []:
                try:
                    vistos_filmes = ','.join(
                        ast.literal_eval(userVistos).values())
                except:
                    vistos_filmes = str(0)
            else:
                vistos_filmes = str(0)
            if tipo == 0:
                controlo.escrever_ficheiro(
                    os.path.join(controlo.pastaDados,
                                 'vistos_filmes.mrpiracy'), vistos_filmes)
            if tipo == 1 or tipo == 2:
                controlo.escrever_ficheiro(
                    os.path.join(controlo.pastaDados,
                                 'vistos_series.mrpiracy'), vistos_filmes)
        if Trakt.loggedIn():
            if 'PT' in imdb:
                imdb = re.compile('(.+?)PT').findall(imdb)[0]
            if 'pt' in imdb:
                imdb = re.compile('(.+?)pt').findall(imdb)[0]
            if tipo == 2 or tipo == 1:
                if '/' in episodios:
                    ep = episodio.split('/')
                    Trakt.markwatchedEpisodioTrakt(imdb, temporadas, ep[0])
                    Trakt.markwatchedEpisodioTrakt(imdb, temporadas, ep[1])
                elif 'e' in episodios:
                    ep = episodio.split('e')
                    Trakt.markwatchedEpisodioTrakt(imdb, temporadas, ep[0])
                    Trakt.markwatchedEpisodioTrakt(imdb, temporadas, ep[1])
                else:
                    Trakt.markwatchedEpisodioTrakt(imdb, temporadas, episodios)
            elif tipo == 0:
                controlo.log('Filme: Marcar visto no Trakt')
                controlo.log(imdb)
                Trakt.markwatchedFilmeTrakt(imdb)
            mrpiracy.mrpiracy().getTrakt()
        if colocar == 1:
            xbmc.executebuiltin(
                "XBMC.Notification(MrPiracy," + "Marcado como visto" + "," +
                "6000" + "," + os.path.join(controlo.addonFolder, 'icon.png') +
                ")")
            xbmc.executebuiltin("Container.Refresh")
        if colocar == 2:
            xbmc.executebuiltin(
                "XBMC.Notification(MrPiracy," + "Marcado como não visto" +
                "," + "6000" + "," +
                os.path.join(controlo.addonFolder, 'icon.png') + ")")
            xbmc.executebuiltin("Container.Refresh")
        elif colocar == 3:
            controlo.alerta('MrPiracy', 'Ocorreu um erro ao marcar como visto')
Esempio n. 3
0
    def adicionarVistoSite(self):
        controlo.headers['Authorization'] = 'Bearer %s' % controlo.addon.getSetting('tokenMrpiracy')
        links = self.url.split('/')
        opcao = controlo.addon.getSetting('marcarVisto')
        colocar = 0
        if 'filme' in self.url:
            id_video = links[-1]
            resultado = controlo.abrir_url(self.url, header=controlo.headers)
            if resultado == 'DNS':
                controlo.alerta('MrPiracy', 'Tem de alterar os DNS para poder usufruir do addon')
                return False
            resultado = json.loads(resultado)
            imdb = resultado['IMBD']
            post = {'id_filme': id_video}
            url = self.API_SITE+'filmes/marcar-visto'
            tipo = 0
        elif 'serie' in self.url:
            resultado = controlo.abrir_url(self.url, header=controlo.headers)
            if resultado == 'DNS':
                controlo.alerta('MrPiracy', 'Tem de alterar os DNS para poder usufruir do addon')
                return False
            resultado = json.loads(resultado)
            imdb = resultado['imdbSerie']
            id_video = resultado['id_serie']
            temporadas = resultado['temporada']
            episodios = resultado['episodio']
            post = {'id_serie': id_video, 'temporada': temporadas, 'episodio':episodios}
            url = self.API_SITE+'series/marcar-visto'
            tipo = 1
        elif 'anime' in self.url:
            resultado = controlo.abrir_url(self.url, header=controlo.headers)
            if resultado == 'DNS':
                controlo.alerta('MrPiracy', 'Tem de alterar os DNS para poder usufruir do addon')
                return False
            resultado = json.loads(resultado)
            imdb = resultado['imdbSerie']
            id_video = resultado['id_serie']
            temporadas = resultado['temporada']
            episodios = resultado['episodio']
            post = {'id_anime': id_video, 'temporada': temporadas, 'episodio':episodios}
            url = self.API_SITE+'animes/marcar-visto'
            tipo = 2
        if opcao == '0' or opcao == '2': 
            pastaVisto=os.path.join(self.pastaData,'vistos')
            try:
                os.makedirs(pastaVisto)
            except:
                pass

            if tipo == 1 or tipo == 2:
                ficheiro = os.path.join(pastaVisto, str(id_video)+'_S'+str(temporadas)+'x'+str(episodios)+'.mrpiracy')
            elif tipo == 0:
                ficheiro = os.path.join(pastaVisto, str(id_video)+'.mrpiracy')


            if not os.path.exists(ficheiro):
                f = open(ficheiro, 'w')
                f.write('')
                f.close()
            colocar = 1

        if opcao == '1' or opcao == '2': 
            resultado = controlo.abrir_url(url, post=json.dumps(post), header=controlo.headers)
            if resultado == 'DNS':
                controlo.alerta('MrPiracy', 'Tem de alterar os DNS para poder usufruir do addon')
                return False
            
            resultado = json.loads(resultado)
            if resultado['codigo'] == 200:
                colocar = 1
            if resultado['codigo'] == 201:
                colocar = 2
            elif resultado['codigo'] == 204:
                colocar = 3
        if Trakt.loggedIn():
            if tipo == 2 or tipo == 1:
                if '/' in episodios:
                    ep = episodio.split('/')
                    Trakt.markwatchedEpisodioTrakt(imdb, temporadas, ep[0])
                    Trakt.markwatchedEpisodioTrakt(imdb, temporadas, ep[1])
                elif 'e' in episodios:
                    ep = episodio.split('e')
                    Trakt.markwatchedEpisodioTrakt(imdb, temporadas, ep[0])
                    Trakt.markwatchedEpisodioTrakt(imdb, temporadas, ep[1])
                else:
                    Trakt.markwatchedEpisodioTrakt(imdb, temporadas, episodios)
            elif tipo == 0:
                Trakt.markwatchedFilmeTrakt(imdb)
            mrpiracy.mrpiracy().getTrakt()
        if colocar == 1:
            xbmc.executebuiltin("XBMC.Notification(MrPiracy,"+"Marcado como visto"+","+"6000"+","+ os.path.join(controlo.addonFolder,'icon.png')+")")
            xbmc.executebuiltin("Container.Refresh")
        if colocar == 2:
            xbmc.executebuiltin("XBMC.Notification(MrPiracy,"+"Marcado como não visto"+","+"6000"+","+ os.path.join(controlo.addonFolder,'icon.png')+")")
            xbmc.executebuiltin("Container.Refresh")
        elif colocar == 3:
            controlo.alerta('MrPiracy', 'Ocorreu um erro ao marcar como visto')