qtunes 0.0.3 → 0.0.4
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/bin/qtunes +1 -0
- data/config.ru +1 -1
- data/lib/qtunes.rb +0 -1
- data/lib/qtunes/server.rb +18 -10
- data/lib/qtunes/server/public/base.css +4 -0
- data/lib/qtunes/server/views/_song.erb +15 -0
- data/lib/qtunes/server/views/songs.erb +4 -16
- data/lib/qtunes/version.rb +1 -1
- metadata +14 -13
data/bin/qtunes
CHANGED
data/config.ru
CHANGED
data/lib/qtunes.rb
CHANGED
data/lib/qtunes/server.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'qtunes'
|
1
2
|
require 'sinatra/base'
|
2
3
|
require 'rack-flash'
|
3
4
|
require 'digest/sha2'
|
@@ -15,8 +16,11 @@ module Qtunes
|
|
15
16
|
set :public, "#{dir}/server/public"
|
16
17
|
set :static, true
|
17
18
|
|
19
|
+
before do
|
20
|
+
@current = self.class.song_to_hash(player.file)
|
21
|
+
end
|
22
|
+
|
18
23
|
get '/' do
|
19
|
-
@song = player.file
|
20
24
|
@songs = queue.values
|
21
25
|
|
22
26
|
erb :songs
|
@@ -24,7 +28,6 @@ module Qtunes
|
|
24
28
|
|
25
29
|
get '/library' do
|
26
30
|
@page = params[:page] ? params[:page].to_i : 1
|
27
|
-
@song = player.file
|
28
31
|
@songs = library.values.extend(Qtunes::Paginatable).page(@page)
|
29
32
|
|
30
33
|
erb :songs
|
@@ -86,18 +89,23 @@ module Qtunes
|
|
86
89
|
protected
|
87
90
|
def self.songs_to_hash
|
88
91
|
yield.inject({}) do |res,path|
|
89
|
-
|
90
|
-
song = AudioInfo.open(path).to_h
|
91
|
-
rescue AudioInfoError
|
92
|
-
next res
|
93
|
-
end
|
94
|
-
res[song_id(path)] = song.merge('path' => path, 'id' => song_id(path))
|
92
|
+
res[song_id(path)] = song_to_hash(path)
|
95
93
|
res
|
96
94
|
end
|
97
95
|
end
|
98
96
|
|
99
|
-
def self.song_id(
|
100
|
-
Digest::SHA256.hexdigest(
|
97
|
+
def self.song_id(path)
|
98
|
+
Digest::SHA256.hexdigest(path)[0,10]
|
99
|
+
end
|
100
|
+
|
101
|
+
def self.song_to_hash(path)
|
102
|
+
result = {}
|
103
|
+
begin
|
104
|
+
result.merge!(AudioInfo.open(path).to_h)
|
105
|
+
rescue AudioInfoError
|
106
|
+
end
|
107
|
+
result.merge!('path' => path, 'id' => song_id(path))
|
108
|
+
result
|
101
109
|
end
|
102
110
|
|
103
111
|
def debug(object)
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<div class="song <%= 'current' if defined?(current) %>">
|
2
|
+
<% if not defined?(current) %>
|
3
|
+
<span class="controls">
|
4
|
+
<% if queue[song['id']] %>
|
5
|
+
<a href="/remove/<%= song['id'] %>" title="remove from queue">-</a>
|
6
|
+
<% else %>
|
7
|
+
<a href="/add/<%= song['id'] %>" title="add to queue">+</a>
|
8
|
+
<% end %>
|
9
|
+
</span>
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
<span class="artist"><%= song['artist'] && !song['artist'].empty? ? song['artist'] : song['path'] %></span>
|
13
|
+
<span class="title"><%= song['title'] %></span>
|
14
|
+
<span class="album"><%= song['album'] %></span>
|
15
|
+
</div>
|
@@ -1,29 +1,17 @@
|
|
1
|
-
|
1
|
+
<%= erb :_song, {}, {:song => @current, :current => true} %>
|
2
2
|
|
3
3
|
<% if @page %>
|
4
4
|
<a href="?page=<%= @page - 1 %>">Previous</a>
|
5
5
|
<a href="?page=<%= @page + 1 %>">Next</a>
|
6
6
|
<% end %>
|
7
7
|
|
8
|
-
<% @songs.
|
9
|
-
|
10
|
-
<span class="controls">
|
11
|
-
<% if queue[song['id']] %>
|
12
|
-
<a href="/remove/<%= song['id'] %>" title="remove from queue">-</a>
|
13
|
-
<% else %>
|
14
|
-
<a href="/add/<%= song['id'] %>" title="add to queue">+</a>
|
15
|
-
<% end %>
|
16
|
-
</span>
|
17
|
-
|
18
|
-
<span class="artist"><%= song['artist'] %></span>
|
19
|
-
<span class="title"><%= song['title'] %></span>
|
20
|
-
<span class="album"><%= song['album'] %></span>
|
21
|
-
</div>
|
8
|
+
<% @songs.each_with_index do |song,ix| %>
|
9
|
+
<%= erb :_song, {}, {:song => song} %>
|
22
10
|
<% end %>
|
23
11
|
|
24
12
|
<% if @songs.empty? %>
|
25
13
|
<div class="content">
|
26
|
-
No songs found!
|
14
|
+
No more songs found!
|
27
15
|
</div>
|
28
16
|
<% end %>
|
29
17
|
|
data/lib/qtunes/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qtunes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -14,7 +14,7 @@ default_executable:
|
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: shotgun
|
17
|
-
requirement: &
|
17
|
+
requirement: &17686820 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *17686820
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: sinatra
|
28
|
-
requirement: &
|
28
|
+
requirement: &17686320 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 1.2.6
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *17686320
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: rack-flash
|
39
|
-
requirement: &
|
39
|
+
requirement: &17685820 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: 0.1.2
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *17685820
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: thor
|
50
|
-
requirement: &
|
50
|
+
requirement: &17685360 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ~>
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 0.14.6
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *17685360
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: cocaine
|
61
|
-
requirement: &
|
61
|
+
requirement: &17684900 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ~>
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: 0.2.0
|
67
67
|
type: :runtime
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *17684900
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: ruby-audioinfo
|
72
|
-
requirement: &
|
72
|
+
requirement: &17684440 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
@@ -77,7 +77,7 @@ dependencies:
|
|
77
77
|
version: 0.1.7
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *17684440
|
81
81
|
description: add songs to queue, let cmus eat it
|
82
82
|
email:
|
83
83
|
- gert@thinkcreate.nl
|
@@ -97,6 +97,7 @@ files:
|
|
97
97
|
- lib/qtunes/player.rb
|
98
98
|
- lib/qtunes/server.rb
|
99
99
|
- lib/qtunes/server/public/base.css
|
100
|
+
- lib/qtunes/server/views/_song.erb
|
100
101
|
- lib/qtunes/server/views/layout.erb
|
101
102
|
- lib/qtunes/server/views/songs.erb
|
102
103
|
- lib/qtunes/version.rb
|