spotify_http_remote 0.1.0
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 +7 -0
- data/.gitignore +10 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/README.md +52 -0
- data/Rakefile +8 -0
- data/bin/spotify_http_remote +5 -0
- data/lib/spotify_http_remote.rb +11 -0
- data/lib/spotify_http_remote/application/server.rb +33 -0
- data/lib/spotify_http_remote/version.rb +3 -0
- data/spotify_http_remote.gemspec +25 -0
- metadata +111 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 72e5b39cdc8be13430e43c08386d65fc2c7347b4
|
|
4
|
+
data.tar.gz: 5c961ea965eb0e688a53240d2fb82288213f6d74
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: e4aefa4f443fdaade4efa3c7a049e9b6735ef76aa90dcedab83a22348bbfcba48f2e0e2cf26237f5fe78449c66cb805376eebfdb4f64446fd5f4f9b022214785
|
|
7
|
+
data.tar.gz: a8b8831cf6d1517ec545e2a01b12741ffa02057abc7cb77a62f67cf9732bd190b52a31e81356c9591a59720f88a91a4ac0cfa95e656baf462cf97f7393e77ae0
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# SpotifyHttpRemote
|
|
2
|
+
|
|
3
|
+
HTTP API for sending basic playback commands to a spotify client running on OSX.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Add this line to your application's Gemfile:
|
|
8
|
+
|
|
9
|
+
```ruby
|
|
10
|
+
gem 'spotify_http_remote'
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
And then execute:
|
|
14
|
+
|
|
15
|
+
$ bundle
|
|
16
|
+
|
|
17
|
+
Or install it yourself as:
|
|
18
|
+
|
|
19
|
+
$ gem install spotify_http_remote
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
Start server:
|
|
24
|
+
|
|
25
|
+
$ spotify_http_remote <port> - Default port is 8080
|
|
26
|
+
|
|
27
|
+
In development mode 'localhost' is the default hostname.
|
|
28
|
+
|
|
29
|
+
Switch to production mode and start sending commands from other devices on the network by setting `RACK_ENV` variable to 'production':
|
|
30
|
+
|
|
31
|
+
$ export RACK_ENV=production
|
|
32
|
+
|
|
33
|
+
To allow devices from outside your network to send requests to the client, the router needs to be configured to forward traffic to the client's local IP.
|
|
34
|
+
|
|
35
|
+
### HTTP routes
|
|
36
|
+
|
|
37
|
+
Start playback: `<your-domain>:<port>/play`
|
|
38
|
+
|
|
39
|
+
Start playing The Beatles: `<your-domain>:<port>/play?artist=beatles`
|
|
40
|
+
|
|
41
|
+
Start playing Drive My Car by The Beatles: `<your-domain>:<port>/play?artist=beatles&track=drive%20my%20car`
|
|
42
|
+
|
|
43
|
+
Start playing the album Help: `<your-domain>:<port>/play?album=Help!`
|
|
44
|
+
|
|
45
|
+
Stop playback: `<your-domain>:<port>/stop`
|
|
46
|
+
|
|
47
|
+
Next track: `<your-domain>:<port>/next`
|
|
48
|
+
|
|
49
|
+
Previous track: `<your-domain>:<port>/previous`
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
data/Rakefile
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require 'sinatra'
|
|
2
|
+
require 'spotify_osx_controller'
|
|
3
|
+
|
|
4
|
+
module SpotifyHttpRemote
|
|
5
|
+
|
|
6
|
+
class Server < Sinatra::Base
|
|
7
|
+
|
|
8
|
+
get '/play' do
|
|
9
|
+
params.keys.each do |key|
|
|
10
|
+
params[(key.to_sym rescue key) || key] = params.delete(key)
|
|
11
|
+
end
|
|
12
|
+
SpotifyOsxController.play params
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
get '/stop' do
|
|
16
|
+
SpotifyOsxController.stop
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
get '/playpause' do
|
|
20
|
+
SpotifyOsxController.play_pause
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
get '/next' do
|
|
24
|
+
SpotifyOsxController.next
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
get '/previous' do
|
|
28
|
+
SpotifyOsxController.previous
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'spotify_http_remote/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = "spotify_http_remote"
|
|
8
|
+
spec.version = SpotifyHttpRemote::VERSION
|
|
9
|
+
spec.authors = ["Daniel Swensson"]
|
|
10
|
+
spec.email = ["daniel@danielswensson.se"]
|
|
11
|
+
|
|
12
|
+
spec.summary = %q{HTTP API for controlling Spotify OSX client}
|
|
13
|
+
spec.homepage = "https://github.com/DanielSwensson/spotify_http_remote"
|
|
14
|
+
spec.licenses = ['MIT']
|
|
15
|
+
|
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
17
|
+
spec.bindir = "bin"
|
|
18
|
+
spec.executables = "spotify_http_remote"
|
|
19
|
+
spec.require_paths = ["lib"]
|
|
20
|
+
|
|
21
|
+
spec.add_dependency "spotify_osx_controller", "~> 2.0"
|
|
22
|
+
spec.add_dependency "sinatra", "~> 1.0"
|
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.10"
|
|
24
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
|
25
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: spotify_http_remote
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Daniel Swensson
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2016-02-22 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: spotify_osx_controller
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '2.0'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '2.0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: sinatra
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '1.0'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '1.0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: bundler
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '1.10'
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '1.10'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: rake
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '10.0'
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '10.0'
|
|
69
|
+
description:
|
|
70
|
+
email:
|
|
71
|
+
- daniel@danielswensson.se
|
|
72
|
+
executables:
|
|
73
|
+
- spotify_http_remote
|
|
74
|
+
extensions: []
|
|
75
|
+
extra_rdoc_files: []
|
|
76
|
+
files:
|
|
77
|
+
- ".gitignore"
|
|
78
|
+
- ".travis.yml"
|
|
79
|
+
- Gemfile
|
|
80
|
+
- README.md
|
|
81
|
+
- Rakefile
|
|
82
|
+
- bin/spotify_http_remote
|
|
83
|
+
- lib/spotify_http_remote.rb
|
|
84
|
+
- lib/spotify_http_remote/application/server.rb
|
|
85
|
+
- lib/spotify_http_remote/version.rb
|
|
86
|
+
- spotify_http_remote.gemspec
|
|
87
|
+
homepage: https://github.com/DanielSwensson/spotify_http_remote
|
|
88
|
+
licenses:
|
|
89
|
+
- MIT
|
|
90
|
+
metadata: {}
|
|
91
|
+
post_install_message:
|
|
92
|
+
rdoc_options: []
|
|
93
|
+
require_paths:
|
|
94
|
+
- lib
|
|
95
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
96
|
+
requirements:
|
|
97
|
+
- - ">="
|
|
98
|
+
- !ruby/object:Gem::Version
|
|
99
|
+
version: '0'
|
|
100
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
101
|
+
requirements:
|
|
102
|
+
- - ">="
|
|
103
|
+
- !ruby/object:Gem::Version
|
|
104
|
+
version: '0'
|
|
105
|
+
requirements: []
|
|
106
|
+
rubyforge_project:
|
|
107
|
+
rubygems_version: 2.4.6
|
|
108
|
+
signing_key:
|
|
109
|
+
specification_version: 4
|
|
110
|
+
summary: HTTP API for controlling Spotify OSX client
|
|
111
|
+
test_files: []
|