detektorfm 0.0.4 → 0.0.5
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 +4 -4
- data/.gitignore +15 -1
- data/README.md +37 -4
- data/Rakefile +2 -29
- data/bin/detektorfm.player +45 -0
- data/bin/detektorfm.playlist +57 -0
- data/detektorfm.gemspec +2 -3
- data/lib/detektorfm/version.rb +1 -1
- metadata +8 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c4780b04d432a97dfcdd0c3ced30ae48c93c302
|
4
|
+
data.tar.gz: ef496b3efc9afd68153408d83ce8b3c5fbef569a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8772607368a82bedd5f71330f28d19c78510646677958fe7bf08b83fc48257896ccee929a245496b90de0078a30ce089f73b9a5158bbd66aa06453d646cc6d9
|
7
|
+
data.tar.gz: e03a5f79581cf6becd190f435b2bf453a5a5a00572b3103aa6e362a19ab1bdf86370776f0d534568f8f23f909215cbafa721d48e869c75b636c39be69da9624e
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -2,14 +2,17 @@
|
|
2
2
|
|
3
3
|
Library for the **detektor.fm** website.
|
4
4
|
|
5
|
+
The gem includes the following executables:
|
6
|
+
|
7
|
+
* detektorfm.player
|
8
|
+
* detektorfm.playlist
|
9
|
+
|
5
10
|
Features:
|
6
11
|
|
7
12
|
* querying last played songs
|
8
13
|
* most played artist in last 7 weeks
|
9
14
|
* ... to be extended ...
|
10
15
|
|
11
|
-
For example implementations, see [awidegreen/detektorfm-tools](https://github.com/awidegreen/detektorfm-tools)
|
12
|
-
|
13
16
|
## Installation
|
14
17
|
|
15
18
|
Add this line to your application's Gemfile:
|
@@ -24,7 +27,7 @@ Or install it yourself as:
|
|
24
27
|
|
25
28
|
$ gem install detektorfm
|
26
29
|
|
27
|
-
##
|
30
|
+
## Library usage
|
28
31
|
|
29
32
|
Get an instance of `DetektorFm::MusikStream` or `DetektorFm::WortStream` and
|
30
33
|
start querying the playlist with `played()` or get specific stream url
|
@@ -40,6 +43,37 @@ start querying the playlist with `played()` or get specific stream url
|
|
40
43
|
end
|
41
44
|
```
|
42
45
|
|
46
|
+
## Executables
|
47
|
+
Some reference implementations.
|
48
|
+
|
49
|
+
Use `-h` for help.
|
50
|
+
|
51
|
+
### detektorfm.playlist
|
52
|
+
|
53
|
+
Query last played songs (default 3) from wortstream and musikstream:
|
54
|
+
|
55
|
+
detektorfm.playlist -m -w
|
56
|
+
|
57
|
+
Query last 15 last played songs from musikstream:
|
58
|
+
|
59
|
+
detektorfm.playlist -m -l15
|
60
|
+
|
61
|
+
Query most played artists form the last 7 days, overall (both streams)
|
62
|
+
|
63
|
+
detektorfm.playlist -p
|
64
|
+
|
65
|
+
|
66
|
+
### detektorfm.player
|
67
|
+
|
68
|
+
Requires *mplayer* to be installed.
|
69
|
+
|
70
|
+
Play the musikstream
|
71
|
+
|
72
|
+
detektorfm.player musik
|
73
|
+
|
74
|
+
Play the wortstream
|
75
|
+
|
76
|
+
detektorfm.player wort
|
43
77
|
|
44
78
|
## Contributing
|
45
79
|
|
@@ -53,5 +87,4 @@ start querying the playlist with `played()` or get specific stream url
|
|
53
87
|
Licensed under BSD (2-Clause), see LICENSE.txt
|
54
88
|
|
55
89
|
|
56
|
-
|
57
90
|
[awidegreen](http://github.com/awidegreen)
|
data/Rakefile
CHANGED
@@ -1,25 +1,5 @@
|
|
1
|
-
require "
|
2
|
-
require "
|
3
|
-
require 'detektorfm/version'
|
4
|
-
|
5
|
-
desc "Build gem from gemspec"
|
6
|
-
task :build do
|
7
|
-
system "gem build detektorfm.gemspec"
|
8
|
-
end
|
9
|
-
|
10
|
-
desc "Install locally build gem"
|
11
|
-
task :install do
|
12
|
-
["build"].each do |t|
|
13
|
-
system "gem install ./detektorfm-#{DetektorFm::VERSION}.gem"
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
desc "Deploy gem to rubygems.org"
|
18
|
-
task :deploy do
|
19
|
-
["build"].each do |t|
|
20
|
-
system "gem push detektorfm-#{DetektorFm::VERSION}.gem"
|
21
|
-
end
|
22
|
-
end
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require "detektorfm/version"
|
23
3
|
|
24
4
|
desc "Tag git repo with release"
|
25
5
|
task :tag do
|
@@ -32,10 +12,3 @@ task :push_tags do
|
|
32
12
|
system "git push --tags origin master"
|
33
13
|
end
|
34
14
|
|
35
|
-
#desc "Release new version: build, deploy, and tag"
|
36
|
-
#task :release do
|
37
|
-
#["build", "deploy", "tag", "push_tags"].each do |t|
|
38
|
-
#Rake::Task[t].reenable
|
39
|
-
#Rake::Task[t].invoke
|
40
|
-
#end
|
41
|
-
#end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'detektorfm'
|
4
|
+
require 'optparse'
|
5
|
+
|
6
|
+
### options
|
7
|
+
options = { }
|
8
|
+
|
9
|
+
g_optparser = OptionParser.new do |opts|
|
10
|
+
opts.banner = "detektor.player [options]"
|
11
|
+
|
12
|
+
opts.on("-t", "--type", "Stream type") do |o|
|
13
|
+
options[:stream_type] = o
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
sub_cmds = {
|
18
|
+
"musik" => Proc.new { options[:stream] = DetektorFm::MusikStream.new } ,
|
19
|
+
"wort" => Proc.new { options[:stream] = DetektorFm::WortStream.new }
|
20
|
+
}
|
21
|
+
|
22
|
+
g_optparser.order!
|
23
|
+
command = ARGV.shift
|
24
|
+
if sub_cmds.has_key?(command)
|
25
|
+
sub_cmds[command].call
|
26
|
+
else
|
27
|
+
puts "That subcommand does not exists!"
|
28
|
+
exit
|
29
|
+
end
|
30
|
+
|
31
|
+
begin
|
32
|
+
stream = options[:stream]
|
33
|
+
player_pid = Process.spawn("mplayer #{stream.get_stream_url} >& /dev/null")
|
34
|
+
Process.detach(player_pid)
|
35
|
+
puts "Player started with #{stream.get_name}!"
|
36
|
+
loop do
|
37
|
+
stream.played(1) do |time, a, title|
|
38
|
+
puts time + ": " + a + " - " + title
|
39
|
+
end
|
40
|
+
sleep 120
|
41
|
+
end
|
42
|
+
rescue SystemExit, Interrupt
|
43
|
+
Process.kill("KILL", player_pid)
|
44
|
+
puts "Player killed!"
|
45
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'detektorfm'
|
4
|
+
require 'optparse'
|
5
|
+
|
6
|
+
### options
|
7
|
+
options = {
|
8
|
+
:streams => [],
|
9
|
+
:most_played => false,
|
10
|
+
:limit => 3
|
11
|
+
}
|
12
|
+
|
13
|
+
OptionParser.new do |opts|
|
14
|
+
opts.banner = "detektor.playlist [options]"
|
15
|
+
|
16
|
+
opts.on("-w", "--wort", "Only Wortstream") do |o|
|
17
|
+
options[:streams] << DetektorFm::WortStream.new
|
18
|
+
end
|
19
|
+
|
20
|
+
opts.on("-m", "--musik", "Only Musikstream") do |o|
|
21
|
+
options[:streams] << DetektorFm::MusikStream.new
|
22
|
+
end
|
23
|
+
|
24
|
+
opts.on("-l LIMIT", Integer, "Limit displayed entries") do |limit|
|
25
|
+
options[:limit] = limit
|
26
|
+
end
|
27
|
+
|
28
|
+
opts.on("-p", "--most-played", "Most played artists last 7 days.") do |o|
|
29
|
+
options[:most_played] = o
|
30
|
+
end
|
31
|
+
end.parse!
|
32
|
+
|
33
|
+
|
34
|
+
### main
|
35
|
+
|
36
|
+
options[:streams].each do |stream|
|
37
|
+
puts stream.get_name
|
38
|
+
stream.played(options[:limit]) do |time, artist, title|
|
39
|
+
printf " %20s %s - %s\n", time, artist, title
|
40
|
+
end
|
41
|
+
|
42
|
+
# most played handling
|
43
|
+
if options[:most_played]
|
44
|
+
puts " Most played artists last 7 days"
|
45
|
+
stream.most_played_artist().each do |a|
|
46
|
+
puts " " + a
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
if options[:most_played]
|
52
|
+
puts "Most played artists last 7 days (overall)"
|
53
|
+
DetektorFm::most_played_artist_overall.each do |a|
|
54
|
+
puts " " + a
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
data/detektorfm.gemspec
CHANGED
@@ -6,9 +6,8 @@ require 'detektorfm/version'
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = 'detektorfm'
|
8
8
|
s.version = DetektorFm::VERSION
|
9
|
-
s.
|
10
|
-
s.
|
11
|
-
s.description = 'Interfacing (Querying) the detektor.fm (webradio) website.'
|
9
|
+
s.summary = %q{detektorfm library and tools}
|
10
|
+
s.description = %q{Interfacing (Querying) the detektor.fm (webradio) website.}
|
12
11
|
s.authors = ["Armin Widegreen"]
|
13
12
|
s.email = 'armin.widegreen@gmail.com'
|
14
13
|
s.homepage = 'http://github.com/awidegreen/detektorfm'
|
data/lib/detektorfm/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: detektorfm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Armin Widegreen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-09
|
11
|
+
date: 2013-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -54,7 +54,9 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
description: Interfacing (Querying) the detektor.fm (webradio) website.
|
56
56
|
email: armin.widegreen@gmail.com
|
57
|
-
executables:
|
57
|
+
executables:
|
58
|
+
- detektorfm.player
|
59
|
+
- detektorfm.playlist
|
58
60
|
extensions: []
|
59
61
|
extra_rdoc_files: []
|
60
62
|
files:
|
@@ -63,6 +65,8 @@ files:
|
|
63
65
|
- LICENSE.txt
|
64
66
|
- README.md
|
65
67
|
- Rakefile
|
68
|
+
- bin/detektorfm.player
|
69
|
+
- bin/detektorfm.playlist
|
66
70
|
- detektorfm.gemspec
|
67
71
|
- lib/detektorfm.rb
|
68
72
|
- lib/detektorfm/version.rb
|
@@ -89,5 +93,5 @@ rubyforge_project:
|
|
89
93
|
rubygems_version: 2.0.6
|
90
94
|
signing_key:
|
91
95
|
specification_version: 4
|
92
|
-
summary: detektorfm library
|
96
|
+
summary: detektorfm library and tools
|
93
97
|
test_files: []
|