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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b40905daed6ecb1f2052b99af8293ee3cf4605ff
4
- data.tar.gz: 35c12e104e7a0e893384172b80774520475f76e2
3
+ metadata.gz: 4c4780b04d432a97dfcdd0c3ced30ae48c93c302
4
+ data.tar.gz: ef496b3efc9afd68153408d83ce8b3c5fbef569a
5
5
  SHA512:
6
- metadata.gz: c07a7f76a8780b62b296c42642b2bfb83cf6558fba3f72d593c994348456bc81442e5692848a5cacd8262223f4ac37f41c7c0036eefeda0f2027ac4951052597
7
- data.tar.gz: c9028c695be6e5770a57726e89c91262653a3bea74432e3d8994b29b1ce28a8e01a92322e2722572198186772bc4d7a770006672308c466e0cd161a087b9effb
6
+ metadata.gz: f8772607368a82bedd5f71330f28d19c78510646677958fe7bf08b83fc48257896ccee929a245496b90de0078a30ce089f73b9a5158bbd66aa06453d646cc6d9
7
+ data.tar.gz: e03a5f79581cf6becd190f435b2bf453a5a5a00572b3103aa6e362a19ab1bdf86370776f0d534568f8f23f909215cbafa721d48e869c75b636c39be69da9624e
data/.gitignore CHANGED
@@ -1,3 +1,17 @@
1
1
  *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
2
6
  Gemfile.lock
3
-
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
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
- ## Usage
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 "rubygems"
2
- require "rake"
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
+
@@ -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.date = '2013-09-24'
10
- s.summary = 'detektorfm library'
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'
@@ -1,3 +1,3 @@
1
1
  module DetektorFm
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
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
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-24 00:00:00.000000000 Z
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: []