Mercurial > vixm
annotate vixm/control.py @ 19:a3385f616b53
Implemented the run shell command command
author | Josef "Jeff" Sipek <jeffpc@josefsipek.net> |
---|---|
date | Sun, 20 Aug 2006 00:31:33 -0400 |
parents | 1c769ae67af4 |
children | f39963e96ca1 |
rev | line source |
---|---|
19
a3385f616b53
Implemented the run shell command command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
17
diff
changeset
|
1 import os, xmms |
17
1c769ae67af4
Implemented the zxcvb xmms controls
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
16
diff
changeset
|
2 |
12
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
3 import playlist, util |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
4 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
5 def cmd_quit(ui, start, stop, args): |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
6 ui.shutdown = True |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
7 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
8 def cmd_number(ui, start, stop, args): |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
9 do_list(ui, start, stop, True, args) |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
10 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
11 def cmd_list(ui, start, stop, args): |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
12 do_list(ui, start, stop, False, args) |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
13 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
14 def cmd_enqueue(ui, start, stop, args): |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
15 try: |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
16 id = int(args[0])-1 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
17 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
18 if (id < 0) or \ |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
19 (id >= len(ui.lists[playlist.LIST_DEFAULT])): |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
20 raise ValueError |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
21 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
22 except ValueError: |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
23 print "Invalid song id" |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
24 return |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
25 |
16
447b47ab396f
Implemented dequeue the proper way; Cleaned up stupidity in enqueue code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
13
diff
changeset
|
26 s = ui.lists[playlist.LIST_DEFAULT][id] |
447b47ab396f
Implemented dequeue the proper way; Cleaned up stupidity in enqueue code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
13
diff
changeset
|
27 print "Enqueuing song: %s (%s)" % (s["title"], util.strtime(s["time"])) |
447b47ab396f
Implemented dequeue the proper way; Cleaned up stupidity in enqueue code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
13
diff
changeset
|
28 ui.lists[playlist.LIST_PRIO].enqueue(s) |
12
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
29 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
30 def cmd_dequeue(ui, start, stop, args): |
16
447b47ab396f
Implemented dequeue the proper way; Cleaned up stupidity in enqueue code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
13
diff
changeset
|
31 l = ui.lists[playlist.LIST_PRIO] |
447b47ab396f
Implemented dequeue the proper way; Cleaned up stupidity in enqueue code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
13
diff
changeset
|
32 |
447b47ab396f
Implemented dequeue the proper way; Cleaned up stupidity in enqueue code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
13
diff
changeset
|
33 max = len(l) |
447b47ab396f
Implemented dequeue the proper way; Cleaned up stupidity in enqueue code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
13
diff
changeset
|
34 if not max: |
447b47ab396f
Implemented dequeue the proper way; Cleaned up stupidity in enqueue code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
13
diff
changeset
|
35 return |
447b47ab396f
Implemented dequeue the proper way; Cleaned up stupidity in enqueue code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
13
diff
changeset
|
36 |
447b47ab396f
Implemented dequeue the proper way; Cleaned up stupidity in enqueue code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
13
diff
changeset
|
37 start = util.fixupint(start, max) |
447b47ab396f
Implemented dequeue the proper way; Cleaned up stupidity in enqueue code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
13
diff
changeset
|
38 stop = util.fixupint(stop, max) |
447b47ab396f
Implemented dequeue the proper way; Cleaned up stupidity in enqueue code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
13
diff
changeset
|
39 |
447b47ab396f
Implemented dequeue the proper way; Cleaned up stupidity in enqueue code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
13
diff
changeset
|
40 for i in range(start-1, stop): |
447b47ab396f
Implemented dequeue the proper way; Cleaned up stupidity in enqueue code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
13
diff
changeset
|
41 s = l[start-1] |
447b47ab396f
Implemented dequeue the proper way; Cleaned up stupidity in enqueue code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
13
diff
changeset
|
42 print "Dequeuing song: %s (%s)" % (s["title"], |
447b47ab396f
Implemented dequeue the proper way; Cleaned up stupidity in enqueue code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
13
diff
changeset
|
43 util.strtime(s["time"])) |
447b47ab396f
Implemented dequeue the proper way; Cleaned up stupidity in enqueue code
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
13
diff
changeset
|
44 l.dequeue(s) |
12
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
45 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
46 def cmd_help(ui, start, stop, args): |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
47 for c in args[0]: |
13
2ecc611d198f
Added more helpful strings for the help strings
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
12
diff
changeset
|
48 print " %s\t%s" % (args[0][c][2],args[0][c][3]) |
12
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
49 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
50 def do_list(ui, start, stop, number, args): |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
51 # get the list id from the argument or default to |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
52 # LIST_PRIO |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
53 try: |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
54 if args[1]: |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
55 listid = int(args[1]) |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
56 else: |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
57 listid = playlist.LIST_PRIO |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
58 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
59 if listid < 0 or listid >= len(ui.lists): |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
60 raise ValueError |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
61 except ValueError, e: |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
62 print "Invalid list number" |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
63 raise e |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
64 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
65 max = len(ui.lists[listid]) |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
66 if not max: |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
67 return |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
68 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
69 start = util.fixupint(start, max) |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
70 stop = util.fixupint(stop, max) |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
71 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
72 # starting number should be less than the ending |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
73 # number, as well as positive; ending number should |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
74 # be less than or equal to the size of the playlist |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
75 if start > stop or \ |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
76 start < 1 or \ |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
77 stop > max: |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
78 raise ValueError |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
79 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
80 i = 1 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
81 pfx = "" |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
82 for s in ui.lists[listid]: |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
83 if i < start or i > stop: |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
84 i += 1 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
85 continue |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
86 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
87 if number: |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
88 pfx = "%d. " % (i,) |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
89 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
90 print "%s%s (%s)" % (pfx, s["title"], |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
91 util.strtime(s["time"])) |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
92 i += 1 |
b5370c42288b
Code refactoring & implemented help command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
93 |
17
1c769ae67af4
Implemented the zxcvb xmms controls
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
16
diff
changeset
|
94 def cmd_play(ui, start, stop, args): |
1c769ae67af4
Implemented the zxcvb xmms controls
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
16
diff
changeset
|
95 xmms.control.play() |
1c769ae67af4
Implemented the zxcvb xmms controls
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
16
diff
changeset
|
96 |
1c769ae67af4
Implemented the zxcvb xmms controls
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
16
diff
changeset
|
97 def cmd_pause(ui, start, stop, args): |
1c769ae67af4
Implemented the zxcvb xmms controls
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
16
diff
changeset
|
98 xmms.control.pause() |
1c769ae67af4
Implemented the zxcvb xmms controls
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
16
diff
changeset
|
99 |
1c769ae67af4
Implemented the zxcvb xmms controls
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
16
diff
changeset
|
100 def cmd_stop(ui, start, stop, args): |
1c769ae67af4
Implemented the zxcvb xmms controls
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
16
diff
changeset
|
101 xmms.control.stop() |
1c769ae67af4
Implemented the zxcvb xmms controls
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
16
diff
changeset
|
102 |
1c769ae67af4
Implemented the zxcvb xmms controls
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
16
diff
changeset
|
103 def cmd_prev(ui, start, stop, args): |
1c769ae67af4
Implemented the zxcvb xmms controls
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
16
diff
changeset
|
104 xmms.control.playlist_prev() |
1c769ae67af4
Implemented the zxcvb xmms controls
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
16
diff
changeset
|
105 |
1c769ae67af4
Implemented the zxcvb xmms controls
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
16
diff
changeset
|
106 def cmd_next(ui, start, stop, args): |
1c769ae67af4
Implemented the zxcvb xmms controls
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
16
diff
changeset
|
107 xmms.control.playlist_next() |
1c769ae67af4
Implemented the zxcvb xmms controls
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
16
diff
changeset
|
108 |
19
a3385f616b53
Implemented the run shell command command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
17
diff
changeset
|
109 def cmd_shell(ui, start, stop, args): |
a3385f616b53
Implemented the run shell command command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
17
diff
changeset
|
110 if args[0]: |
a3385f616b53
Implemented the run shell command command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
17
diff
changeset
|
111 os.system(args[0]) |
a3385f616b53
Implemented the run shell command command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
17
diff
changeset
|
112 print "!" |
a3385f616b53
Implemented the run shell command command
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
17
diff
changeset
|
113 |