Exemplo n.º 1
0
class DbWriter(AgentThreadedBase):
    
    def __init__(self):
        """
        @param interval: interval in seconds
        """
        AgentThreadedBase.__init__(self)
        self.db=None
        
    def _setup(self):
        try:     self.db=UserTracksDb()
        except:  self.db=None 
        
    def h_shutdown(self):
        try:    self.db.close()
        except: pass
        
    def h_track_to_update(self, ts, track, artist, playcount):

        self._setup()
        if self.db is None:
            return
        try:
            count=self.db.updateOne(ts, track, artist, playcount)
        except Exception,e:
            self.pub("errorDbWriting", "DbWriter - "+str(e))
            return
        
        self.pub("updated", (artist, track, playcount, count))
            
        try:
            count=self.db.UniqueTracks_InsertIfNotExists(playcount, track, "", artist, "", "", "")
            self.pub("log", "Updated artist(%s) track(%s) playcount(%s)" % (artist, track, playcount))
        except Exception,e:
            self.pub("errorDbWriting", "DbWriter - "+str(e))
            return