controlio 0.0.6 → 0.0.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c6c75b8046bd0d3bd8682d38f809df03e5f05b37
4
- data.tar.gz: f6bbb79fe9d682cb69019497e3ac1b7234f90718
3
+ metadata.gz: 2decd01fc4b6db84d0855e447638883230f76888
4
+ data.tar.gz: 912360f620adc5af2c511ef0d7caa802659c375d
5
5
  SHA512:
6
- metadata.gz: e9d59c8303f87c6ec097db331e119d672329ff413ab1f40ef33b666390354d7484e1fb16af411850919c9ce5ca21150030719bf2437c6121b7a5468edb5c1315
7
- data.tar.gz: 505ba665c8bff794b7735ef77d9b9a08974ad0b4f2b9b3a5a4950e9be5124f6b36cf572fe86ec7c902288b74ea3b910db3ed01c915ee3e5217eaae98a1bee5bb
6
+ metadata.gz: e04a064a71468730f2a6a87289a222f62426cba1c34f8122f7d60a90951dc1e70959ed293822ea87f47bdd45680b4157ece2e8e4ce4e70770a5231b977c8ac7d
7
+ data.tar.gz: c7adb4ef75f1a0642260dde20a380153ac6cc9d1616d72f049d4ee3bfba23f87c81577c1cdde5260ced0a325d2abd50c1592d141abace4142a410e6eb66bda69
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- controlio (0.0.6)
4
+ controlio (0.0.7)
5
5
  activesupport (~> 4.1.6)
6
6
  rest_client (~> 1.7.3)
7
7
 
@@ -13,6 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.required_ruby_version = ">= 2.0"
14
14
 
15
15
  spec.files = `git ls-files -z`.split("\x0")
16
+ spec.files << 'sbin/controlio-imagesnap'
16
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
19
  spec.require_paths = ["lib"]
@@ -1,7 +1,9 @@
1
+ require "helpers/player"
2
+
1
3
  module Commands
2
4
  class Pause
3
5
  def initialize(args, settings)
4
- @app = args.first || settings.get('default_player')
6
+ @app = args.first || Helpers::Player.to_s || settings.get('default_player')
5
7
  end
6
8
 
7
9
  def go
@@ -9,7 +9,7 @@ module Commands
9
9
  end
10
10
 
11
11
  def go
12
- `imagesnap -q #{FILE_LOCATION}`
12
+ `#{File.expand_path("#{File.dirname(__FILE__)}/../../sbin/controlio-imagesnap")} -q #{FILE_LOCATION}`
13
13
  response = RestClient.post "#{@api_root}/upload", file: File.new(FILE_LOCATION, 'rb')
14
14
  @url = JSON.load(response)['url']
15
15
  end
@@ -1,7 +1,9 @@
1
+ require "helpers/player"
2
+
1
3
  module Commands
2
4
  class Play
3
5
  def initialize(args, settings)
4
- @app = args.first || settings.get('default_player')
6
+ @app = args.first || Helpers::Player.to_s || settings.get('default_player')
5
7
  end
6
8
 
7
9
  def go
@@ -11,6 +13,7 @@ module Commands
11
13
  end
12
14
 
13
15
  def respond
16
+ puts @app
14
17
  "Now playing: #{`osascript -e 'tell application "#{@app}" to get the name of the current track'`}".chomp rescue ""
15
18
  end
16
19
 
@@ -1,7 +1,9 @@
1
+ require "helpers/player"
2
+
1
3
  module Commands
2
4
  class Skip
3
5
  def initialize(args, settings)
4
- @app = args.first || settings.get('default_player')
6
+ @app = args.first || Helpers::Player.to_s || settings.get('default_player')
5
7
  end
6
8
 
7
9
  def go
@@ -20,7 +20,7 @@ module Controlio
20
20
  if klass.present?
21
21
  puts "Running #{klass} (#{args})"
22
22
  instance = klass.new(args, @settings)
23
- instance.go
23
+ spawn_and_timeout instance
24
24
  send instance.respond, instance.media?
25
25
  else
26
26
  send "Command '#{c['message']}' was not found!"
@@ -33,6 +33,22 @@ module Controlio
33
33
 
34
34
  private
35
35
 
36
+ def spawn_and_timeout(instance)
37
+ pid = fork do
38
+ instance.go
39
+ end
40
+ Process.detach pid
41
+ pid2 = fork do
42
+ sleep 10
43
+ begin
44
+ Process.kill "TERM", pid
45
+ rescue
46
+ end
47
+ end
48
+ Process.detach pid2
49
+ pid
50
+ end
51
+
36
52
  def authorize
37
53
  @settings = Settings.new
38
54
  @api_key = @settings.get('api_key')
@@ -23,7 +23,7 @@ module Controlio
23
23
  private
24
24
 
25
25
  def create_new_settings
26
- settings = {api_root: API_ROOT}
26
+ settings = {api_root: API_ROOT, default_player: 'iTunes'}
27
27
  puts "Enter your phone number"
28
28
  number = gets.chomp
29
29
  if JSON.load(RestClient.get("#{API_ROOT}/check/#{number}"))['registered']
@@ -1,3 +1,3 @@
1
1
  module Controlio
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -0,0 +1,15 @@
1
+ module Helpers
2
+ class Player
3
+
4
+ def self.app_names
5
+ ["Spotify", "Rdio", "iTunes"]
6
+ end
7
+
8
+ def self.to_s
9
+ app_names.each do |app|
10
+ return "#{app}.app" if `ps aux | grep "#{app}"`.include? "#{app}.app"
11
+ end
12
+ nil
13
+ end
14
+ end
15
+ end
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: controlio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yasyf Mohamedali
@@ -101,6 +101,8 @@ files:
101
101
  - lib/controlio/client.rb
102
102
  - lib/controlio/settings.rb
103
103
  - lib/controlio/version.rb
104
+ - lib/helpers/player.rb
105
+ - sbin/controlio-imagesnap
104
106
  homepage: https://github.com/yasyf/controlio
105
107
  licenses: []
106
108
  metadata: {}