File: addqueue.py

package info (click to toggle)
mc-foo 0.0.13
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 268 kB
  • ctags: 532
  • sloc: python: 1,967; makefile: 6
file content (47 lines) | stat: -rw-r--r-- 1,333 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
"""add a song to queue"""

import McFoo.client
import sys, os.path
from twisted.internet import reactor
from twisted.python import usage
from twisted.internet.defer import DeferredList

class Options(usage.Options):
    synopsis = "Usage: %s [options] addqueue [--priority=N] FILENAME.." % os.path.basename(sys.argv[0])

    def __init__(self):
        usage.Options.__init__(self)
        self.pri=10

    def parseArgs(self, *filenames):
        if not filenames:
            self.opt_help()
            return
        self.filenames=filenames

    def postOptions(self):
        c = McFooClientAddqueue(self.pri, self.filenames)
        c()

    def opt_priority(self, pri):
        try:
            pri=int(pri)
        except ValueError:
            raise
        self.pri=pri

class McFooClientAddqueue(McFoo.client.McFooClientSimple):
    def __init__(self, pri, files):
        McFoo.client.McFooClientSimple.__init__(self)
        self.pri=pri
        self.files=files

    def handle_login(self, perspective):
        McFoo.client.McFooClientSimple.handle_login(self, perspective)
        deferreds = []
        for file in self.files:
            d = self.remote.callRemote("addqueue", file, self.pri)
            deferreds.append(d)
        dl = DeferredList(deferreds)
        dl.addCallback(self.stop)
        dl.arm()