コード例 #1
0
ファイル: run.py プロジェクト: tamayop/08_p
 def onGrabarSeleccion(self, button):
     '''
     guarda los enlaces seleccionados de la lista en la base de datos
     lo normal es hacer uso de esta funcion cuando queramos grabar en la
     base de datos enlaces resultados de alguna busqueda
     '''
     selection = self.treeview.get_selection()
     modelo,pathlist = selection.get_selected_rows()
     iters = [modelo.get_iter(path) for path in pathlist]
     
     if self.fromspider: 
         if len(iters)!=0:
             if (self.preguntarOK("Grabar seleccionados, estas seguro ?",400)):
                 basededatos = TorrentSpiderDB()
                 for myiter in iters:
                     veid = modelo.get_value(myiter,0)
                     vtitulo = modelo.get_value(myiter,1)
                     vcategoria = modelo.get_value(myiter,2)
                     venlace = modelo.get_value(myiter,3)
                     registro = [ veid, vtitulo, vcategoria, venlace]
                     basededatos.insertaRegistro(registro,"db")
                 basededatos.cierraBD()
     else:
         if len(iters)!=0:
             self.preguntarOK("Registros seleccionados ya estan en la BD!",400)             
コード例 #2
0
ファイル: run.py プロジェクト: tamayop/08_p
 def onBorrarSeleccion(self,button):
     '''
     borra enlaces de la lista, ademas si los enlaces son 
     resultado de haberlos recuperado de la base de datos tambien
     los borra de la misma
     '''
     selection = self.treeview.get_selection()
     modelo,pathlist = selection.get_selected_rows()
     iters = [modelo.get_iter(path) for path in pathlist]
     
     if self.fromspider: 
         if len(iters)!=0:
             if (self.preguntarOK("estas seguro ?",250)):
                 for myiter in iters:
                     self.listmodel.remove(myiter)
     else:
         basededatos = TorrentSpiderDB()
         
         if len(iters)!=0:
             if (self.preguntarOK("esto eliminara tambien los registros de la BAse de DAtos, estas seguro?",600)):
                 listaeid = []
                 for myiter in iters:
                     listaeid.append(modelo.get_value(myiter,0))
                 for myiter in iters:
                     self.listmodel.remove(myiter)
                 for registro in listaeid:
                     basededatos.borraRegistroEid(registro)
         basededatos.cierraBD()   
     self.statusbar.push(0,"Visualizando "+str(len(self.listmodel))+" registros")
     if (len(self.listmodel)>0):
         self.habilitaTool(True)
     else:
         self.habilitaTool(False)
コード例 #3
0
ファイル: run.py プロジェクト: tamayop/08_p
def run_spider():
    '''
    vacia la tabla temporal
    corre el spider y guarda los resultados en la tabla temporal
    '''
    basededatos = TorrentSpiderDB()
    basededatos.vaciaTmp()
    basededatos.cierraBD()
    
    subprocess.call('scrapy crawl torrent -a destino=\"tmp\"',shell=True)
コード例 #4
0
ファイル: run.py プロジェクト: tamayop/08_p
 def onRecuperarDB(self,button):
     '''
     carga en la lista los enlaces que tengamos guardados en la base de datos
     '''
     self.fromspider = False
     basededatos = TorrentSpiderDB()
     global resultados
     resultados = basededatos.cargaDatos("db")
     basededatos.cierraBD()
     self.listmodel.clear()
     for i in range(len(resultados)):
         self.listmodel.append(resultados[i])
     self.statusbar.push(0,"Cargados "+str(len(self.listmodel))+" registros")
     if (len(resultados)>0):
         self.habilitaTool(True)
     else:
         self.habilitaTool(False)
コード例 #5
0
ファイル: pipelines.py プロジェクト: tamayop/08_p
class Torrent2DB(object):
	
    def __init__(self):
        self.basededatos = TorrentSpiderDB()
        self.registro=[]
        
    def process_item(self, item, spider):
        self.spider = spider
        
        self.registro=[]        
        self.registro.append(item['eid'][0])
        self.registro.append(item['titulo'][0])
        self.registro.append(item['categoria'][0])
        self.registro.append(item['enlace'][0])
        print self.spider.destino
        self.basededatos.insertaRegistro(self.registro,self.spider.destino)
        return item
        
    def close_spider(self, spider):
        self.basededatos.cierraBD()
コード例 #6
0
ファイル: run.py プロジェクト: tamayop/08_p
 def onRunSpider(self, button):
     '''
     corre el spider, guarda los datos en la tabla temporal
     y los muestra en la lista
     '''
     #del resultados[:]
     self.fromspider = True
     run_spider()
     self.listmodel.clear()
     resultados = []
     basededatos = TorrentSpiderDB()
     resultados = basededatos.cargaDatos("tmp")
     basededatos.cierraBD()
     
     for i in range(len(resultados)):
         self.listmodel.append(resultados[i])
     self.statusbar.push(0,"Cargados "+str(len(resultados))+" registros")
     if (len(resultados)>0):
         self.habilitaTool(True)
     else:
         self.habilitaTool(False)
コード例 #7
0
ファイル: run.py プロジェクト: tamayop/08_p
    def onBuscar(self,button):
        '''
        Pasea el spider en la web usando la url de busqueda de la misma. 
        asi lo que hacemos es cambiar la start_url del mismo para recuperar
        los enlaces resultados de la busqueda
        '''
        texto = self.textoBusqueda.get_text()
        busqueda=texto.lstrip().rstrip()
        busqueda = 'http://www.elitetorrent.net/busqueda/'+busqueda.replace(' ','+')
        
        self.fromspider = True
        basededatos = TorrentSpiderDB()
        basededatos.vaciaTmp()

        subprocess.call('scrapy crawl torrent -a destino=\"tmp\" -a url=\"'+busqueda+'\"', shell=True)
        resultados = []
        resultados = basededatos.cargaDatos("tmp")
        basededatos.cierraBD()
        
        self.listmodel.clear()
        
        for i in range(len(resultados)):
            self.listmodel.append(resultados[i])
        self.statusbar.push(0,"Cargados "+str(len(resultados))+" registros")
        if (len(resultados)>0):
            self.habilitaTool(True)
        else:
            self.habilitaTool(False)
            self.preguntarOK("No se ha recuperado ningun resultado? Intenta buscar: \'horror story\'",600)
コード例 #8
0
ファイル: pipelines.py プロジェクト: tamayop/08_p
 def __init__(self):
     self.basededatos = TorrentSpiderDB()
     self.registro=[]