示例#1
0
文件: mpdclient.py 项目: alip/boogie
    def repeat(self, state=None):
        if state is None:
            # Toggle random mode
            current_state = self.mpc.status()["repeat"]
            if current_state == "0":
                new_state = 1
            elif current_state == "1":
                new_state = 0
        elif state in BOOLEAN_TRUE:
            new_state = 0
        elif state in BOOLEAN_FALSE:
            new_state = 1
        else:
            printError("not_boolean", state=state,
                    boolean_true=BOOLEAN_TRUE, boolean_false=BOOLEAN_FALSE)
            return None

        if self.output:
            printByName("repeat", state=new_state)
        ret = self.mpc.repeat(new_state)

        if self.after_status:
            self.status()
        return ret
示例#2
0
文件: mpdclient.py 项目: alip/boogie
    def delete(self, position):
        """Delete song specified at position,
        Position can be a range like num-num
        If position is 0, remove the current playing song."""
        if "-" in position:
            split_position = position.split("-")
            if len(split_position) != 2:
                printError("delete_parse", position=position)
                return None
            elif not split_position[0]:
                # Negative number?
                try:
                    end = -1 * int(split_position[1])
                except ValueError:
                    printError("delete_parse", position=position)
                else:
                    printError("delete_negative", position=[end,])
                return None
            else:
                begin, end = split_position

            try:
                begin = int(begin) - 1
                end = int(end) - 1
            except ValueError:
                printError("delete_parse", position=position)
                return None

            if begin < 0 or end < 0:
                printError("delete_negative", position=[begin+1, end+1])
                return None

            if begin > end:
                begin, end = end, begin
            elif begin == end:
                end+=1

            printByName("delete", position=list(range(begin+1, end+1)))

            self.mpc.command_list_ok_begin()
            diff = 0
            for pos in range(begin, end):
                self.mpc.delete(pos - diff)
                diff += 1
            return self.mpc.command_list_end()

        if position == "0":
            # Remove current song
            pos = int(self.mpc.currentsong()["pos"])
        else:
            try:
                pos = int(position) - 1
            except ValueError:
                printError("delete_parse", position=position)
                return None

        printByName("delete", position=[pos+1,])

        return self.mpc.delete(pos)