def bruteforceconvert(str): controlo.log("dicionario") dicionario = { u"\\xe1" : u"á", "\xe1": u"á", u"\\xe9" : u"é", "\xe9" : u"é", u"\\xe7" : u"ç", "\xe7" : u"ç", u"\\xe3" : u"ã", "\xe3" : u"ã", u"\\xf3" : u"ó", "\xf3" : u"ó", u"\\xed" : u"í", "\xed" : u"í", u"\\xea" : u"ê", "\xea" : u"é"} for k, v in dicionario.iteritems(): controlo.log(unicode(k, errors='ignore')+" "+v) str.replace(k, v) return str.replace("\\xe1", "!", "\xe1")
def getMediaUrl(self): videoUrl = '' api_url = 'https://{0}/api/source/{1}'.format(self.host, self.id) post = {'r': '', 'd': self.host} post = json.dumps(post) req = urllib2.Request(api_url, data=post, headers=self.headers) response = urllib2.urlopen(req) content = response.read() response.close() if response.geturl() != api_url: api_url = 'https://www.{0}/api/source/{1}'.format(self.host, self.id) req = urllib2.Request(api_url, data=post, headers=self.headers) response = urllib2.urlopen(req) content = response.read() response.close() if content: js_data = json.loads(content) if js_data.get('success'): sources = [(i.get('label'), i.get('file')) for i in js_data.get('data') if i.get('type') == 'mp4'] if len(sources) == 1: videoUrl = sources[0][1] elif len(sources) > 1: qualidade = xbmcgui.Dialog().select('Escolha a qualidade', [str(source[0]) if source[0] else 'Unknown' for source in sources]) if qualidade == -1: controlo.log("ERRO") videoUrl = sources[qualidade][1] request = urllib2.Request(videoUrl) request.get_method = lambda: 'HEAD' request.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0') for key in self.headers: request.add_header(key, self.headers[key]) response = urllib2.urlopen(request) return videoUrl+'|%s' % '&'.join(['%s=%s' % (key, urllib.quote_plus(self.headers[key])) for key in self.headers])
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 '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')