Ejemplo n.º 1
0
class MusicPipeline(object):
    def __init__(self):
        self.sock = Sock()
        self.db = DB('music', 'postgres', 'dj')
    
    def process_item(self, item, spider):
        if len(self.db.query("""SELECT * FROM songs WHERE title=%s""", (item['title'], ))) == 0:
            self.db.transaction(("""INSERT INTO songs (title, artist) VALUES (%s, %s)""",), ((item['title'],item['artist']),))
            
            msg = item.type + '[*]' + item['title'] + '[*]' + item['download_link'] 
            self.sock.send_msg(msg)
Ejemplo n.º 2
0
class StopDownloaders(object):

    def __init__(self):
        self.sock = Sock()
        dispatcher.connect(self.spider_opened, signal=signals.spider_opened)
        dispatcher.connect(self.spider_closed, signal=signals.spider_closed)

    def spider_opened(self, spider):
        #log.msg("opened spider %s" % spider.name)
        # print '[START TO CRAWL SONGS]'
        colorful.printc('[START TO CRAWL SONGS]', 'WARNING')

    def spider_closed(self, spider):
        #log.msg("closed spider %s" % spider.name)
        # print '[INFO GATHERING COMPLETE]'
        colorful.printc('[INFO GATHERING COMPLETE]', 'WARNING')
        self.sock.send_msg('TERMINATE[*]--[*]--')