예제 #1
0
    def updateDisplay(self):
        
        #stdscr.box()
        queue, statusLookup = getStatus()
        if queue:
            title = str(queue.media_object)
        else:
            title = "NOT PLAYING"
        
        if statusLookup:
            status, stat_text = statusLookup
        else:
            
            status = "IDLE"
            stat_text="Waiting for Activity" 
        
        
        offset = self.cols-(12+len(status)+len(stat_text))
            
        self.stdscr.addstr(0,0, " GrooveBot".ljust(self.cols), curses.color_pair(3))
        self.stdscr.addstr(0,11, datetime.now().strftime("%m/%d/%y %H:%M:%S"), curses.color_pair(2))
        self.stdscr.addstr(1,2, title.ljust(offset), curses.A_BOLD)
        
        self.stdscr.addstr(1,offset, "Status:".ljust(self.cols-offset), curses.A_BOLD)
        self.stdscr.addstr(1,offset + 8, status, curses.A_UNDERLINE)
        self.stdscr.addstr(1,offset + 9 + len(status), stat_text)
  
        self.logBox.draw()
        self.queueBox.draw()

        self.stdscr.addstr(self.rows-1, 0, 
                           self.searchText + (' ' * (
                           self.cols-len(self.searchText)-2)))
        self.stdscr.move(self.rows-1, len(self.searchText))
        self.stdscr.refresh()
예제 #2
0
    def cmd(self, responder, user, channel, command, msg):
        if command == PAUSE:
            pause()
            responder("ok")

        elif command == RESUME:
            resume()
            responder("ok")

        elif command == SKIP:
            skip()
            responder("ok")

        elif command == STATUS:
            queueObj, statusLookup = getStatus()
            if queueObj:
                title = str(queueObj.media_object)
            else:
                title = ""

            if statusLookup:
                status, stat_text = statusLookup
            else:
                status = "IDLE"
                stat_text = "Waiting for Activity"

            responder(("%s %s: %s" % (status, stat_text, title)).encode("UTF-8"))

        elif command == DUMP:
            qitems = [x for x in getQueuedItems()]
            if qitems:
                responder("%d item(s) in the queue" % len(qitems))
                for item in qitems:
                    msg = "%i: %s" % (item.media_object.id, item.media_object)
                    responder(msg.encode("UTF-8"))

        elif command == REMOVE:
            if remQueuedItem(int(msg)):
                responder("ok")
            else:
                responder("Failed to remove")

        elif command == SEARCH:
            s = SearchContext(self)
            s.responder = responder
            initiateSearch(s, msg)

        elif command == ADD:
            try:
                dbId = int(msg)
            except:
                responder("Expecting Resource Id")
                return

            item = Session().query(MediaObject).filter(MediaObject.id == dbId).first()
            if item:
                if queue(item):
                    responder("ok")
                else:
                    responder("Already in Queue")
            else:
                responder("Not found")