mumbletune 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mumbletune (0.1.1)
4
+ mumbletune (0.1.2)
5
5
  eventmachine
6
6
  meta-spotify
7
7
  mumble-ruby
@@ -21,7 +21,14 @@ GEM
21
21
  blankslate (3.1.2)
22
22
  celt-ruby (0.0.1)
23
23
  ffi
24
+ columnize (0.3.6)
24
25
  daemons (1.1.9)
26
+ debugger (1.5.0)
27
+ columnize (>= 0.3.1)
28
+ debugger-linecache (~> 1.2.0)
29
+ debugger-ruby_core_source (~> 1.2.0)
30
+ debugger-linecache (1.2.0)
31
+ debugger-ruby_core_source (1.2.0)
25
32
  eventmachine (1.0.3)
26
33
  ffi (1.4.0)
27
34
  httparty (0.10.2)
@@ -62,5 +69,6 @@ PLATFORMS
62
69
 
63
70
  DEPENDENCIES
64
71
  bundler (~> 1.3)
72
+ debugger
65
73
  mumbletune!
66
74
  rake
data/README.md CHANGED
@@ -11,15 +11,7 @@ First, install Hexxeh's [spotify-websocket-api](https://github.com/Hexxeh/spotif
11
11
  python setup.py build
12
12
  python setup.py install
13
13
 
14
- Then, add this line to your application's Gemfile:
15
-
16
- gem 'mumbletune'
17
-
18
- And then execute:
19
-
20
- $ bundle
21
-
22
- Or install it yourself as:
14
+ Then, install the gem:
23
15
 
24
16
  $ gem install mumbletune
25
17
 
data/docs/commands.md CHANGED
@@ -1,15 +1,24 @@
1
- Command Action
2
- ------ ------
3
- play <track> Queue this song.
4
- play <artist> Queue 10 tracks by this artist.
5
- play <album> Queue this entire album.
6
- play <something> now Play this shit right now!
7
- what Show what is playing, and what is queued.
8
- next Jump to the next song in the queue.
9
- undo Undo the last addition to the queue.
10
- clear Clear the queue.
11
- volume? Get the current volume level.
12
- volume [0-100] Set the volume.
13
- ------ ------
1
+ | Command | Action |
2
+ |---------------------------------------|--------------------------------------------|
3
+ | play *track* | Queue this song. |
4
+ | play *artist* | Queue 10 tracks by this artist. |
5
+ | play *album* | Queue this entire album. |
6
+ | play *something now* | Play this shit right now! |
7
+ | what | Show what is playing, and what is queued. |
8
+ | next | Jump to the next song in the queue. |
9
+ | undo | Undo the last addition to the queue. |
10
+ | clear | Clear the queue. |
11
+ | pause | Pause. |
12
+ | unpause | Unpause. |
13
+ | volume? | Get the current volume level. |
14
+ | volume *0-100* | Set the volume. |
15
+
16
+ <br>
17
+ For example:
18
+
19
+ play coldplay
20
+ play nicki minaj starships
21
+
22
+ Mumbletune uses Spotify to find music.
14
23
 
15
24
  <!-- Generate HTML with: $ pandoc -f markdown -->
@@ -79,15 +79,19 @@ module Mumbletune
79
79
  when /^next$/i
80
80
  Mumbletune.player.next
81
81
  current = Mumbletune.player.current_song
82
- message.respond "OK, now playing #{current.artist} - #{current.name}"
82
+ message.respond_all "#{message.sender.name} skipped to #{current.artist} - #{current.name}" if current
83
83
 
84
84
  when /^clear$/i
85
85
  Mumbletune.player.clear_queue
86
- message.respond "#{message.sender.name} cleared the queue."
86
+ message.respond_all "#{message.sender.name} cleared the queue."
87
87
 
88
88
  when /^undo$/i
89
89
  removed = Mumbletune.player.undo
90
- message.respond_all "#{message.sender.name} removed #{removed.description} that #{removed.user} added."
90
+ if message.sender.name == removed.user
91
+ message.respond_all "#{message.sender.name} removed #{removed.description}."
92
+ else
93
+ message.respond_all "#{message.sender.name} removed #{removed.description} at #{removed.user} added."
94
+ end
91
95
 
92
96
 
93
97
  when /^(what|queue)$/i
@@ -8,8 +8,8 @@ module Mumbletune
8
8
 
9
9
  def initialize(host=Mumbletune.config['mpd']['host'], port=Mumbletune.config['mpd']['port'])
10
10
  @mpd = MPD.new(host, port)
11
- @mpd.connect true # 'true' enables callbacks
12
- @mpd.clear
11
+ self.connect
12
+ self.clear_all
13
13
 
14
14
  @history = Array.new
15
15
  @prev_id = 0
@@ -18,6 +18,17 @@ module Mumbletune
18
18
  self.establish_callbacks
19
19
  end
20
20
 
21
+ def connect
22
+ @disconnecting = false
23
+ @mpd.connect true # 'true' enables callbacks
24
+ end
25
+
26
+ def disconnect
27
+ @disconnecting = true
28
+ @mpd.disconnect
29
+ puts ">> Disconnected from MPD"
30
+ end
31
+
21
32
  # Setup
22
33
 
23
34
  def defaults
@@ -27,8 +38,8 @@ module Mumbletune
27
38
 
28
39
  def establish_callbacks
29
40
  @mpd.on :connection do |status|
30
- if status == false
31
- @mpd.connect true
41
+ if status == false && !@disconnecting
42
+ self.connect
32
43
  else
33
44
  puts ">> MPD happens to be connected."
34
45
  end
@@ -95,7 +106,10 @@ module Mumbletune
95
106
  # Combine the future queue with the current track.
96
107
  # MPD puts the current track in its queue only if
97
108
  # other tracks are queued to play. Account for this.
98
- queue = @mpd.queue.unshift @mpd.current_song
109
+ queue = @mpd.queue
110
+ queue.unshift @mpd.current_song if @mpd.current_song
111
+
112
+ # Delete index 0 if first queue position and current song are duplicates.
99
113
  queue.delete_at(0) if queue[1] && queue[0] == queue[1]
100
114
 
101
115
  # Associate known Tracks with Queue items.
@@ -17,7 +17,7 @@ module Mumbletune
17
17
  end
18
18
 
19
19
  @cli.on_text_message do |data|
20
- if data[:session].include?(@cli.me[:actor]) # if message was sent to us
20
+ if data[:session].include?(@cli.me[:session]) # if message was sent to us
21
21
  # interpret the message in a separate thread
22
22
  Thread.new { Message.parse(@cli, data) }
23
23
  end
@@ -41,7 +41,10 @@ module Mumbletune
41
41
  @cli.stream_raw_audio(input)
42
42
  end
43
43
 
44
-
44
+ def disconnect
45
+ @cli.disconnect
46
+ puts ">> Disconnected from Mumble"
47
+ end
45
48
  end
46
49
 
47
50
  end
@@ -13,19 +13,19 @@
13
13
  </thead>
14
14
  <tbody>
15
15
  <tr class="odd">
16
- <td align="left">play &lt;track&gt;</td>
16
+ <td align="left">play <em>track</em></td>
17
17
  <td align="left">Queue this song.</td>
18
18
  </tr>
19
19
  <tr class="even">
20
- <td align="left">play &lt;artist&gt;</td>
20
+ <td align="left">play <em>artist</em></td>
21
21
  <td align="left">Queue 10 tracks by this artist.</td>
22
22
  </tr>
23
23
  <tr class="odd">
24
- <td align="left">play &lt;album&gt;</td>
24
+ <td align="left">play <em>album</em></td>
25
25
  <td align="left">Queue this entire album.</td>
26
26
  </tr>
27
27
  <tr class="even">
28
- <td align="left">play &lt;something&gt; now</td>
28
+ <td align="left">play <em>something now</em></td>
29
29
  <td align="left">Play this shit right now!</td>
30
30
  </tr>
31
31
  <tr class="odd">
@@ -45,12 +45,24 @@
45
45
  <td align="left">Clear the queue.</td>
46
46
  </tr>
47
47
  <tr class="odd">
48
+ <td align="left">pause</td>
49
+ <td align="left">Pause.</td>
50
+ </tr>
51
+ <tr class="even">
52
+ <td align="left">unpause</td>
53
+ <td align="left">Unpause.</td>
54
+ </tr>
55
+ <tr class="odd">
48
56
  <td align="left">volume?</td>
49
57
  <td align="left">Get the current volume level.</td>
50
58
  </tr>
51
59
  <tr class="even">
52
- <td align="left">volume [0-100]</td>
60
+ <td align="left">volume <em>0-100</em></td>
53
61
  <td align="left">Set the volume.</td>
54
62
  </tr>
55
63
  </tbody>
56
64
  </table>
65
+ <p><br> For example:</p>
66
+ <pre><code>play coldplay
67
+ play nicki minaj starships</code></pre>
68
+ <p>Mumbletune uses Spotify to find music.</p>
@@ -1,3 +1,3 @@
1
1
  module Mumbletune
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
data/lib/mumbletune.rb CHANGED
@@ -59,6 +59,8 @@ module Mumbletune
59
59
 
60
60
  # shutdown code
61
61
  def self.shutdown
62
+ self.mumble.disconnect
63
+ self.player.disconnect
62
64
  puts "\nGoodbye forever. Exiting..."
63
65
  exit
64
66
  end
data/mumbletune.gemspec CHANGED
@@ -33,4 +33,5 @@ Gem::Specification.new do |spec|
33
33
  spec.add_runtime_dependency "eventmachine"
34
34
  spec.add_runtime_dependency "text"
35
35
  spec.add_runtime_dependency "mustache"
36
+ spec.add_development_dependency "debugger"
36
37
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mumbletune
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-16 00:00:00.000000000 Z
12
+ date: 2013-03-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -187,6 +187,22 @@ dependencies:
187
187
  - - ! '>='
188
188
  - !ruby/object:Gem::Version
189
189
  version: '0'
190
+ - !ruby/object:Gem::Dependency
191
+ name: debugger
192
+ requirement: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
190
206
  description: Mumbletune connects to a mumble server and allows users to interact with
191
207
  and play a queue of music. Currently plays from Spotify alone.
192
208
  email: