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