コード例 #1
0
def search(query):
    global __key__
    if len(__key__)< 1: 
      __addon__.openSettings()
      __key__ = getkey()
      
    params = {"key": __key__}

    if "imdb_id" in query:
         params["imdb"] = query['imdb_id'].replace("tt","")

    if "season" in query:
        params["search_str"] = "%(title)s [Season %(season)2d/Episode%(episode)2d]" % query

    if getsettings() != ",":
        params['categtags'] = getsettings()

    if "title" in query:
        title = query["title"]
    else:
        title = query
        params["search_str"] = query.encode("utf8")

    response = provider.GET("http://87.248.186.252/rss.php", params)
    notify("Total files:" + str(len(re.findall(r'magnet:\?[^\'"\s<>\[\]]+', response.data))), title.encode("utf8") ,10000, __addon__.getAddonInfo('icon'))
    return provider.extract_magnets(response.data)
コード例 #2
0
def search(query):
    print PREFIX_LOG + ("Running search query: %s" % query)
    url = "http://katproxy.bz/usearch/%s" % query
    m = hashlib.md5()
    m.update(url)
    url_hash = m.hexdigest()
    cache_file = cache_prefix + url_hash
    print PREFIX_LOG + ("Cache file: %s" % cache_file)

    if (os.path.isfile(cache_file)):
        print PREFIX_LOG + "Pulling from cache"
        f = open(cache_file, 'r')
        data = f.read()
        f.close()
    else:
        print PREFIX_LOG + ("Requesting: %s" % url)
        response = provider.GET(url, params={"q": query})
        data = response.data
        if response.headers.get("Content-Encoding", "") == "gzip":
            import zlib
            data = zlib.decompressobj(16 + zlib.MAX_WBITS).decompress(data)
        f = open(cache_file, 'w')
        f.write(data)
        f.close()

    return provider.extract_magnets(data)
コード例 #3
0
ファイル: main.py プロジェクト: brra/script.pulsar.TPB
def search(query):
    pre1 =  __proxy__
    pre2 =  '/search/%s'
    url = pre1 + pre2
    resp = provider.GET(url % provider.quote_plus(query), params={
                        "q": query,
                        })
    return provider.extract_magnets(resp.data)
コード例 #4
0
def search(query):
    busqueda_completa = "%s" % query
    pagina_busqueda = __proxy__ + 'usearch/'
    resp = provider.GET(pagina_busqueda,
                        params={
                            "q": busqueda_completa.encode('utf-8'),
                        })
    return provider.extract_magnets(resp.data)
コード例 #5
0
def search_episode(episode):
    imdb_id = episode.get("imdb_id")
    name = episode.get("title")
    season = episode.get("season")
    episodio = episode.get("episode")
    url_pelicula = "http://api.themoviedb.org/3/find/%s?api_key=57983e31fb435df4df77afb854740ea9&language=%s&external_source=imdb_id" % (
        imdb_id, IDIOMA)
    pelicula = urllib2.urlopen(url_pelicula)
    texto1 = json.loads(pelicula.read())
    texto2 = texto1['tv_results']
    texto3 = texto2[0]

    nombre = texto3.get("name")
    if nombre == "24" and season == 9 and IDIOMA == 'es':
        nombre = u"24 vive otro dia"
        name = u"24 live other day"
        season = 1

    nombre = nombre.replace(u'á', "a")
    nombre = nombre.replace(u'é', "e")
    nombre = nombre.replace(u'í', "i")
    nombre = nombre.replace(u'ó', "o")
    nombre = nombre.replace(u'ú', "u")

    temporada = ""
    pag_bus = ""
    suf_idioma = ""
    if IDIOMA == 'es':
        suf_idioma = pag_esp
    elif IDIOMA == 'it':
        suf_idioma = pag_ita
    elif IDIOMA == 'ru':
        suf_idioma = pag_rus
    elif IDIOMA == 'fr':
        suf_idioma = pag_fra

    if nombre.lower() <> name.lower():
        nombre2 = '"' + name + '"' + suf_idioma
        nombre = '("' + nombre + '" OR ' + nombre2 + ')'

    else:
        nombre = '"' + name + '"' + suf_idioma
    nombre = nombre.replace(":", " ")

    capitulo = "%s%dX%02d%s%d%02d%s" % (" (", season, episodio, " OR ", season,
                                        episodio, " )")
    busqueda_completa = nombre + capitulo + "/"
    pagina_busqueda = __proxy__ + 'usearch/'
    resp = provider.GET(pagina_busqueda,
                        params={
                            "q": busqueda_completa.encode('utf-8'),
                        })
    return provider.extract_magnets(resp.data)
コード例 #6
0
def search(query):
    provider.log.debug("QUERY : %s" % query)
    if (query['query']):
        query = query['query']
    query_normalize = unicodedata.normalize('NFKD', query)
    query = ''.join(c for c in query_normalize
                    if (not unicodedata.combining(c)))
    url = "%s/%s?query=%s" % (__baseUrl__, ACTION_SEARCH,
                              provider.quote_plus(query))
    provider.log.info("SEARCH : %s" % url)
    response = provider.GET(url)
    if response.geturl() is not url:
        # Redirection 30x followed to individual page - Return the magnet link
        provider.log.info(
            'Redirection 30x followed to individual page - Return the magnet link'
        )
        return provider.extract_magnets(response.data)
        #return [{"uri": magnet} for magnet in re.findall(r'magnet:\?[^\'"\s<>\[\]]+', response.data)]
    else:
        # Multiple torrent page - Parse page to get individual page
        provider.log.info('Multiple torrent page - Parsing')
        # Parse the table result
        table = common.parseDOM(response.data,
                                'table',
                                attrs={"class": "table_corps"})
        liens = common.parseDOM(table,
                                'a',
                                attrs={"class": "torrent"},
                                ret='href')
        provider.log.debug('liens : %s' % liens)
        threads = []
        magnets = []
        q = Queue.Queue()

        # Call each individual page in parallel
        for lien in liens:
            thread = Thread(target=directLink,
                            args=('%s%s' % (__baseUrl__, lien), q))
            thread.start()
            threads.append(thread)

        # And get all the results
        for t in threads:
            t.join()
        while not q.empty():
            magnets.append(q.get()[0])

        provider.log.info('Magnets List : %s' % magnets)
        return magnets
コード例 #7
0
def search_episode(episode):
    imdb_id = episode.get("imdb_id") 
    name = episode.get("title")  
    season = episode.get("season")  
    episodio = episode.get("episode") 
    url_pelicula = "http://api.themoviedb.org/3/find/%s?api_key=57983e31fb435df4df77afb854740ea9&language=%s&external_source=imdb_id" % (imdb_id, IDIOMA)
    pelicula = urllib2.urlopen(url_pelicula)
    texto1 = json.loads(pelicula.read())
    texto2 = texto1['tv_results']
    texto3 = texto2[0]

    nombre = texto3.get("name")
    if nombre == "24" and season == 9 and IDIOMA == 'es':
                 nombre = u"24 vive otro dia"
                 name = u"24 live other day"
                 season = 1

    nombre = nombre.replace(u'á', "a")
    nombre = nombre.replace(u'é', "e")
    nombre = nombre.replace(u'í', "i")
    nombre = nombre.replace(u'ó', "o")
    nombre = nombre.replace(u'ú', "u")  
    
    temporada = "" 
    pag_bus = ""
    suf_idioma = ""
    if IDIOMA == 'es':
            suf_idioma = pag_esp
    elif IDIOMA == 'it':
            suf_idioma = pag_ita
    elif IDIOMA == 'ru':
            suf_idioma = pag_rus 
    elif IDIOMA == 'fr':
            suf_idioma = pag_fra 
    
    if nombre.lower() <> name.lower():
        nombre2 = '"' + name + '"' + suf_idioma
        nombre = '("' + nombre + '" OR ' + nombre2 + ')' 
   
    else:    
        nombre = '"' + name + '"' + suf_idioma   
    nombre = nombre.replace(":", " ")     

    capitulo = "%s%dX%02d%s%d%02d%s" % (" (",season, episodio, " OR ", season, episodio, " )")
    busqueda_completa =  nombre + capitulo + "/"
    pagina_busqueda = __proxy__ + 'usearch/'
    resp = provider.GET(pagina_busqueda, params={"q": busqueda_completa.encode('utf-8'),})
    return provider.extract_magnets(resp.data)
コード例 #8
0
ファイル: main.py プロジェクト: Inter95/tutvguia
def search(query):
    provider.log.debug("QUERY : %s" % query)
    if(query['query']) : 
        query = query['query']
    query_normalize = unicodedata.normalize('NFKD',query)
    query = ''.join(c for c in query_normalize if (not unicodedata.combining(c)))
    url = "%s/%s?query=%s" % (__baseUrl__, ACTION_SEARCH, provider.quote_plus(query))
    provider.log.info("SEARCH : %s" % url)
    response = provider.GET(url)
    if response.geturl() is not url:
        # Redirection 30x followed to individual page - Return the magnet link
        provider.log.info('Redirection 30x followed to individual page - Return the magnet link')
        return provider.extract_magnets(response.data)
        #return [{"uri": magnet} for magnet in re.findall(r'magnet:\?[^\'"\s<>\[\]]+', response.data)]
    else:
        # Multiple torrent page - Parse page to get individual page
        provider.log.info('Multiple torrent page - Parsing')
        # Parse the table result
        table = common.parseDOM(response.data, 'table', attrs = { "class": "table_corps" })
        liens = common.parseDOM(table, 'a', attrs = { "class": "torrent" }, ret = 'href')
        provider.log.debug('liens : %s' % liens)
        threads = []
        magnets = []
        q = Queue.Queue()

        # Call each individual page in parallel
        for lien in liens :
            thread = Thread(target=directLink, args = ('%s%s' % (__baseUrl__, lien), q))
            thread.start()
            threads.append(thread)

        # And get all the results
        for t in threads :
            t.join()
        while not q.empty():
            magnets.append(q.get()[0])

        provider.log.info('Magnets List : %s' % magnets)
        return magnets
コード例 #9
0
def search(query):
    resp = provider.GET("http://kickass.to/search", params={
        "q": query,
    })
    return provider.extract_magnets(resp.data)
コード例 #10
0
def search_generic(base_url, search_string):
    data = urllib2.urlopen(base_url + search_string)
    return provider.extract_magnets(data.read())
コード例 #11
0
def search(query):
	resp = provider.GET("http://kickass.so/usearch", params={
		"q": query,
	})
	return provider.extract_magnets(resp.data)
コード例 #12
0
def search_movie(movie):
  
  # Busqueda de titulo en idioma de audio ------------------------ 
    if IDIOMA <> 'en':
      inicio_proceso = time.time()
      imdb_id = movie.get("imdb_id")
      name = movie.get("title")
      url_pelicula = "http://api.themoviedb.org/3/find/%s?api_key=57983e31fb435df4df77afb854740ea9&language=%s&external_source=imdb_id" % (imdb_id, IDIOMA)

      pelicula = urllib2.urlopen(url_pelicula)
      texto1 = json.loads(pelicula.read())
      
      texto2 = texto1['movie_results']
      texto3 = texto2[0]
      nombre = texto3.get("title")
      nombre = nombre.replace(u'á', "a")
      nombre = nombre.replace(u'é', "e")
      nombre = nombre.replace(u'í', "i")
      nombre = nombre.replace(u'ó', "o")
      nombre = nombre.replace(u'ú', "u")
    else:
      nombre = name  
  # -------------------------------------------------------------
    var_1 = "%s" % name
    var_2 = "%s" % nombre
    suf_idioma = ""
 
      
    if IDIOMA == 'es':
            suf_idioma = pag_esp
    elif IDIOMA == 'it':
            suf_idioma = pag_ita
    elif IDIOMA == 'ru':
            suf_idioma = pag_rus 
    elif IDIOMA == 'fr':
            suf_idioma = pag_fra         
 
    nombre2 = '"' + name + '"' + suf_idioma 
    var_1 = var_1.lower()
    var_2 = var_2.lower()
    if var_1 == var_2:
        nombre = nombre2
    else:    
         nombre = '"' + nombre + '"'
  #----Calidad ------------------------------------      
    if only_HD == "true": 
             nombre = nombre + alta_definicion 
    else: 
        if use_screener == "true": 
          nombre = nombre + screener
          
    if use_3D == "false":      
         nombre = nombre + sin_3d    
  #----------------------------------------------------------       
    nombre = nombre.replace(":", " ") 
    
    pagina_busqueda = __proxy__ + 'usearch/'
    busqueda_completa =  nombre + u' category:movies'

    busqueda_completa = busqueda_completa.encode('utf-8')

    resp = provider.GET(pagina_busqueda, params={"q": busqueda_completa,})
    return provider.extract_magnets(resp.data)
コード例 #13
0
def search(query):
    busqueda_completa = "%s" % query
    pagina_busqueda = __proxy__ + 'usearch/'
    resp = provider.GET(pagina_busqueda, params={"q": busqueda_completa.encode('utf-8'),})
    return provider.extract_magnets(resp.data)
コード例 #14
0
ファイル: main.py プロジェクト: JesseJams/script.pulsar.dummy
def search(query):
    # Will issue a GET call to http://foo.bar/search?q=query (properly urlencoded)
    resp = provider.GET("http://foo.bar/search", params={
        "q": query,
    })
    return provider.extract_magnets(resp.data)
コード例 #15
0
def search(query):
    resp = provider.GET("https://kickass.to/usearch/%s%20" % provider.quote_plus(query))
    return provider.extract_magnets(resp.data)
コード例 #16
0
def search(query):
    response = provider.GET("https://yts.re/api/listimdb.json?imdb_id=%s" %
                            provider.quote_plus(query))
    print 'YIFI - Time: ' + str((time.time() - start))
    return provider.extract_magnets(response.data)
コード例 #17
0
def search(query):
    # Will issue a GET call to http://foo.bar/search?q=query (properly urlencoded)
    resp = provider.GET("http://foo.bar/search", params={
        "q": query,
    })
    return provider.extract_magnets(resp.data)
コード例 #18
0
def search_movie(movie):

    # Busqueda de titulo en idioma de audio ------------------------
    if IDIOMA <> 'en':
        inicio_proceso = time.time()
        imdb_id = movie.get("imdb_id")
        name = movie.get("title")
        url_pelicula = "http://api.themoviedb.org/3/find/%s?api_key=57983e31fb435df4df77afb854740ea9&language=%s&external_source=imdb_id" % (
            imdb_id, IDIOMA)

        pelicula = urllib2.urlopen(url_pelicula)
        texto1 = json.loads(pelicula.read())

        texto2 = texto1['movie_results']
        texto3 = texto2[0]
        nombre = texto3.get("title")
        nombre = nombre.replace(u'á', "a")
        nombre = nombre.replace(u'é', "e")
        nombre = nombre.replace(u'í', "i")
        nombre = nombre.replace(u'ó', "o")
        nombre = nombre.replace(u'ú', "u")
    else:
        nombre = name
# -------------------------------------------------------------
    var_1 = "%s" % name
    var_2 = "%s" % nombre
    suf_idioma = ""

    if IDIOMA == 'es':
        suf_idioma = pag_esp
    elif IDIOMA == 'it':
        suf_idioma = pag_ita
    elif IDIOMA == 'ru':
        suf_idioma = pag_rus
    elif IDIOMA == 'fr':
        suf_idioma = pag_fra

    nombre2 = '"' + name + '"' + suf_idioma
    var_1 = var_1.lower()
    var_2 = var_2.lower()
    if var_1 == var_2:
        nombre = nombre2
    else:
        nombre = '"' + nombre + '"'
#----Calidad ------------------------------------
    if only_HD == "true":
        nombre = nombre + alta_definicion
    else:
        if use_screener == "true":
            nombre = nombre + screener

    if use_3D == "false":
        nombre = nombre + sin_3d
#----------------------------------------------------------
    nombre = nombre.replace(":", " ")

    pagina_busqueda = __proxy__ + 'usearch/'
    busqueda_completa = nombre + u' category:movies'

    busqueda_completa = busqueda_completa.encode('utf-8')

    resp = provider.GET(pagina_busqueda, params={
        "q": busqueda_completa,
    })
    return provider.extract_magnets(resp.data)
コード例 #19
0
def search_generic(base_url, search_string):
    data = urllib2.urlopen(base_url + search_string)
    return provider.extract_magnets(data.read())
コード例 #20
0
def search(query):
    response = provider.GET("https://yts.re/api/listimdb.json?imdb_id=%s" % provider.quote_plus(query))
    print 'YIFI - Time: ' + str((time.time() - start))
    return provider.extract_magnets(response.data)