cultome_player 2.0.0 → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +24 -79
- data/Rakefile +38 -4
- data/bin/cultome_player +16 -4
- data/config/environment.yml +4 -0
- data/cultome_player.gemspec +8 -1
- data/lib/cultome_player.rb +45 -19
- data/lib/cultome_player/command/language.rb +3 -4
- data/lib/cultome_player/command/processor.rb +9 -7
- data/lib/cultome_player/command/reader.rb +11 -2
- data/lib/cultome_player/environment.rb +21 -13
- data/lib/cultome_player/events.rb +7 -7
- data/lib/cultome_player/objects/album.rb +9 -2
- data/lib/cultome_player/objects/artist.rb +9 -2
- data/lib/cultome_player/objects/command.rb +10 -1
- data/lib/cultome_player/objects/drive.rb +4 -1
- data/lib/cultome_player/objects/genre.rb +4 -1
- data/lib/cultome_player/objects/parameter.rb +21 -1
- data/lib/cultome_player/objects/response.rb +5 -1
- data/lib/cultome_player/objects/song.rb +9 -4
- data/lib/cultome_player/player/adapter/mpg123.rb +3 -4
- data/lib/cultome_player/player/interactive.rb +67 -11
- data/lib/cultome_player/player/interface/basic.rb +13 -9
- data/lib/cultome_player/player/interface/extended.rb +26 -12
- data/lib/cultome_player/player/interface/helper.rb +73 -9
- data/lib/cultome_player/plugins.rb +44 -18
- data/lib/cultome_player/plugins/alias.rb +85 -0
- data/lib/cultome_player/plugins/gestures.rb +90 -0
- data/lib/cultome_player/plugins/help.rb +4 -4
- data/lib/cultome_player/plugins/keyboard_special_keys.rb +22 -0
- data/lib/cultome_player/plugins/points.rb +51 -0
- data/lib/cultome_player/utils.rb +117 -7
- data/lib/cultome_player/version.rb +1 -1
- data/xbindkeys/xbindkeysrc +12 -0
- metadata +37 -89
- data/.coveralls.yml +0 -1
- data/.gitignore +0 -24
- data/.rspec +0 -2
- data/.travis.yml +0 -7
- data/db/001_create_schema.rb +0 -58
- data/spec/config.yml +0 -0
- data/spec/cultome_player/command/processor_spec.rb +0 -168
- data/spec/cultome_player/command/reader_spec.rb +0 -45
- data/spec/cultome_player/cultome_player_spec.rb +0 -17
- data/spec/cultome_player/environment_spec.rb +0 -65
- data/spec/cultome_player/events_spec.rb +0 -22
- data/spec/cultome_player/media_spec.rb +0 -41
- data/spec/cultome_player/player/adapter/mpg123_spec.rb +0 -82
- data/spec/cultome_player/player/interface/basic_spec.rb +0 -168
- data/spec/cultome_player/player/interface/extended/connect_spec.rb +0 -117
- data/spec/cultome_player/player/interface/extended/search_spec.rb +0 -90
- data/spec/cultome_player/player/interface/extended/show_spec.rb +0 -36
- data/spec/cultome_player/player/interface/extended/shuffle_spec.rb +0 -26
- data/spec/cultome_player/player/interface/extended_spec.rb +0 -136
- data/spec/cultome_player/player/interface/helper_spec.rb +0 -63
- data/spec/cultome_player/player/interface_spec.rb +0 -17
- data/spec/cultome_player/player/playlist_spec.rb +0 -301
- data/spec/cultome_player/plugins/help_spec.rb +0 -21
- data/spec/cultome_player/plugins_spec.rb +0 -19
- data/spec/cultome_player/utils_spec.rb +0 -15
- data/spec/spec_helper.rb +0 -108
- data/spec/test/uno/dos/dos.mp3 +0 -0
- data/spec/test/uno/dos/tres/tres.mp3 +0 -0
- data/spec/test/uno/uno.mp3 +0 -0
- data/tasks/console.rake +0 -19
- data/tasks/db.rake +0 -19
- data/tasks/run.rake +0 -7
@@ -0,0 +1,90 @@
|
|
1
|
+
module CultomePlayer
|
2
|
+
module Plugins
|
3
|
+
module Gestures
|
4
|
+
|
5
|
+
include CultomePlayer::Objects
|
6
|
+
|
7
|
+
def init_plugin_gestures
|
8
|
+
register_listener(:after_command){|cmd, res| check_gesture(cmd) }
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def actions_history
|
14
|
+
@history ||= []
|
15
|
+
end
|
16
|
+
|
17
|
+
def check_gesture(cmd)
|
18
|
+
if cmd.history?
|
19
|
+
actions_history << [cmd, Time.new]
|
20
|
+
check_looking_for_something
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def recents(secs)
|
25
|
+
return actions_history.select{|cmd, time| time >= Time.new - secs}
|
26
|
+
end
|
27
|
+
|
28
|
+
def check_looking_for_something
|
29
|
+
if recents(60).count{|cmd, time| cmd.action == "next"} >= 5
|
30
|
+
delete_from_history "next"
|
31
|
+
suggest_songs
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def delete_from_history(cmd)
|
36
|
+
actions_history.delete_if {|cmd, time| cmd.action == "next"}
|
37
|
+
end
|
38
|
+
|
39
|
+
def suggest_songs
|
40
|
+
display "Hey! cant find anything? Try one of these:"
|
41
|
+
suggestions = get_suggestions
|
42
|
+
display to_display_list(suggestions)
|
43
|
+
playlists[:focus] <= suggestions
|
44
|
+
return suggestions
|
45
|
+
end
|
46
|
+
|
47
|
+
def select_suggestion
|
48
|
+
return (1..10).to_a.sample(1).first
|
49
|
+
end
|
50
|
+
|
51
|
+
def get_suggestions
|
52
|
+
id = select_suggestion
|
53
|
+
if (1..7).cover?(id)
|
54
|
+
criteria = case id
|
55
|
+
when 1 # los que tienen mas puntos
|
56
|
+
"points desc"
|
57
|
+
when 2 # los que tienen menos puntos
|
58
|
+
"points"
|
59
|
+
when 3 # las mas tocadas
|
60
|
+
"plays desc"
|
61
|
+
when 4 # los menos tocados
|
62
|
+
"plays"
|
63
|
+
when 5 # los agregados recientemente
|
64
|
+
"created_at desc"
|
65
|
+
when 6 # los recientemente tocados
|
66
|
+
"last_played_at"
|
67
|
+
when 7 # los recientemente tocados
|
68
|
+
"points desc, plays desc"
|
69
|
+
end
|
70
|
+
|
71
|
+
return Song.order(criteria).limit(5).to_a
|
72
|
+
|
73
|
+
else # mas complejos
|
74
|
+
case (id)
|
75
|
+
when 8 # Por artista popular
|
76
|
+
artist = Artist.order("points desc").limit(5).sample(1).first
|
77
|
+
return [] if artist.nil?
|
78
|
+
return artist.songs.sample(5)
|
79
|
+
when 9 # Por album popular
|
80
|
+
album = Album.order("points desc").limit(5).sample(1).first
|
81
|
+
return [] if album.nil?
|
82
|
+
return album.songs.sample(5)
|
83
|
+
else
|
84
|
+
return Song.all.sample(5)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end #sugestions
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
@@ -14,15 +14,15 @@ module CultomePlayer
|
|
14
14
|
else
|
15
15
|
help = send("usage_#{cmd.params.first.value}")
|
16
16
|
if help.nil?
|
17
|
-
failure("No help is available for '#{cmd.first.value}'.")
|
17
|
+
failure("No help is available for '#{cmd.params.first.value}'.")
|
18
18
|
else
|
19
19
|
success(message: help)
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
def
|
25
|
-
|
24
|
+
def sintax_help
|
25
|
+
/^literal (literal)$/
|
26
26
|
end
|
27
27
|
|
28
28
|
# Description of the action help.
|
@@ -55,4 +55,4 @@ To see the usage for play command:
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
end
|
58
|
-
end
|
58
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module CultomePlayer
|
2
|
+
module Plugins
|
3
|
+
module KeyboardSpecialKeys
|
4
|
+
def init_plugin_keyboard_special_keys
|
5
|
+
Thread.new do
|
6
|
+
start_cmd = "tail -f #{command_pipe}"
|
7
|
+
pipe = IO.popen(start_cmd, "rw")
|
8
|
+
pipe.each do |line|
|
9
|
+
#IO.popen(start_cmd).each do |line|
|
10
|
+
# planchamos el prompt...
|
11
|
+
display_over("")
|
12
|
+
# ejecutamos el comando
|
13
|
+
execute_interactively line
|
14
|
+
# y luego lo regeneramos
|
15
|
+
display_over c5(CultomePlayer::Interactive::PROMPT)
|
16
|
+
end # IO
|
17
|
+
end # Thread
|
18
|
+
end
|
19
|
+
end # module
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module CultomePlayer
|
2
|
+
module Plugins
|
3
|
+
module Points
|
4
|
+
def init_plugin_points
|
5
|
+
register_listener(:playback_finish){|song| on_playback_finish(song) }
|
6
|
+
register_listener(:before_command_next){|cmd, res| on_before_change(cmd) }
|
7
|
+
register_listener(:before_command_prev){|cmd, res| on_before_change(cmd) }
|
8
|
+
register_listener(:after_command_prev){|cmd, res| on_after_prev(cmd, res) }
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def on_before_change(cmd)
|
14
|
+
# current_song => the old song
|
15
|
+
return if current_song.nil?
|
16
|
+
|
17
|
+
percent_played = playback_position * 100 / playback_length
|
18
|
+
gain = case percent_played
|
19
|
+
when (10..50) then -1
|
20
|
+
when (81..100) then 1
|
21
|
+
else 0
|
22
|
+
end
|
23
|
+
|
24
|
+
update_points(gain)
|
25
|
+
end
|
26
|
+
|
27
|
+
def on_after_prev(cmd, response)
|
28
|
+
# # current_song => the new song
|
29
|
+
return if current_song.nil?
|
30
|
+
|
31
|
+
if response.success?
|
32
|
+
update_points(1)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def on_playback_finish(song)
|
37
|
+
update_points(1)
|
38
|
+
end
|
39
|
+
|
40
|
+
def update_points(diff)
|
41
|
+
if current_song
|
42
|
+
current_song.update(points: current_song.points + diff)
|
43
|
+
current_song.artist.update(points: current_song.artist.points + diff) unless current_song.artist.nil?
|
44
|
+
current_song.album.update(points: current_song.album.points + diff) unless current_song.album.nil?
|
45
|
+
current_song.genres.each{|g| g.update(points: g.points + diff) } unless current_song.genres.nil?
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
data/lib/cultome_player/utils.rb
CHANGED
@@ -1,8 +1,16 @@
|
|
1
|
+
require 'cultome_player/objects'
|
1
2
|
require 'active_record'
|
3
|
+
require 'colorize'
|
2
4
|
|
3
5
|
module CultomePlayer
|
4
6
|
module Utils
|
5
7
|
|
8
|
+
def to_display_list(list)
|
9
|
+
return list.collect.with_index do |elem, idx|
|
10
|
+
c4("#{(idx + 1).to_s.ljust(3)} | ") + elem.to_s
|
11
|
+
end.join("\n")
|
12
|
+
end
|
13
|
+
|
6
14
|
# Check if a string value can be a positive boolean value.
|
7
15
|
#
|
8
16
|
# @param value [String] String to check if can be a positive boolean value.
|
@@ -17,7 +25,7 @@ module CultomePlayer
|
|
17
25
|
# @return [String] The value printed.
|
18
26
|
def display(msg)
|
19
27
|
stdout.puts msg
|
20
|
-
return msg
|
28
|
+
return "#{msg}\n"
|
21
29
|
end
|
22
30
|
|
23
31
|
# Print a string into stdout (not STDOUT) but before insert a carriage return and dont append a newline character at the end.
|
@@ -25,14 +33,34 @@ module CultomePlayer
|
|
25
33
|
# @param msg [String] The value to be printed.
|
26
34
|
# @return [String] The value printed.
|
27
35
|
def display_over(msg)
|
28
|
-
|
36
|
+
msg = "\r#{msg}"
|
37
|
+
stdout.print msg
|
29
38
|
return msg
|
30
39
|
end
|
31
40
|
|
32
|
-
# Define the
|
33
|
-
(1..
|
41
|
+
# Define the 18 colors allowed in my console scheme
|
42
|
+
(1..18).each do |idx|
|
34
43
|
define_method :"c#{idx}" do |str|
|
35
|
-
|
44
|
+
case idx
|
45
|
+
when 1 then str.colorize(:blue)
|
46
|
+
when 2 then str.colorize(:black)
|
47
|
+
when 3 then str.colorize(:red)
|
48
|
+
when 4 then str.colorize(:green)
|
49
|
+
when 5 then str.colorize(:yellow)
|
50
|
+
when 6 then str.colorize(:blue)
|
51
|
+
when 7 then str.colorize(:magenta)
|
52
|
+
when 8 then str.colorize(:cyan)
|
53
|
+
when 9 then str.colorize(:white)
|
54
|
+
when 10 then str.colorize(:default)
|
55
|
+
when 11 then str.colorize(:light_black)
|
56
|
+
when 12 then str.colorize(:light_red)
|
57
|
+
when 13 then str.colorize(:light_green)
|
58
|
+
when 14 then str.colorize(:light_yellow)
|
59
|
+
when 15 then str.colorize(:light_blue)
|
60
|
+
when 16 then str.colorize(:light_magenta)
|
61
|
+
when 17 then str.colorize(:light_cyan)
|
62
|
+
when 18 then str.colorize(:light_white)
|
63
|
+
end
|
36
64
|
end
|
37
65
|
end
|
38
66
|
|
@@ -45,11 +73,11 @@ module CultomePlayer
|
|
45
73
|
def arrange_in_columns(cols, widths, border)
|
46
74
|
row = ""
|
47
75
|
idxs = cols.collect{|c| 0 }
|
48
|
-
|
76
|
+
|
49
77
|
while cols.zip(idxs).any?{|col| col[0].length > col[1] }
|
50
78
|
cols.each.with_index do |col, idx|
|
51
79
|
slice_width = widths[idx]
|
52
|
-
|
80
|
+
|
53
81
|
slice = col.slice(idxs[idx], slice_width) || "" # sacamos el pedazo de la columna
|
54
82
|
row << slice.ljust(slice_width) # concatenamos a la fila
|
55
83
|
idxs[idx] += slice_width # recorremos el indice
|
@@ -91,5 +119,87 @@ module CultomePlayer
|
|
91
119
|
|
92
120
|
ActiveRecord::Base.connection_pool.with_connection(&db_logic)
|
93
121
|
end
|
122
|
+
|
123
|
+
def ensure_db_schema
|
124
|
+
begin
|
125
|
+
# hacemos una simple query a la base de datos para verificar
|
126
|
+
with_connection{ CultomePlayer::Objects::Song.first }
|
127
|
+
rescue
|
128
|
+
# si la query no funciona recreamos el esquema
|
129
|
+
recreate_db_schema
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
def recreate_db_schema
|
134
|
+
with_connection do
|
135
|
+
swallow_stdout do
|
136
|
+
begin
|
137
|
+
ActiveRecord::Schema.drop_table('songs')
|
138
|
+
ActiveRecord::Schema.drop_table('albums')
|
139
|
+
ActiveRecord::Schema.drop_table('artists')
|
140
|
+
ActiveRecord::Schema.drop_table('genres')
|
141
|
+
ActiveRecord::Schema.drop_table('genres_songs')
|
142
|
+
ActiveRecord::Schema.drop_table('drives')
|
143
|
+
rescue
|
144
|
+
end
|
145
|
+
|
146
|
+
begin
|
147
|
+
ActiveRecord::Schema.define do
|
148
|
+
create_table :songs do |t|
|
149
|
+
t.string :name # If I Had A Gun
|
150
|
+
t.integer :artist_id, default: 0 # Noel Gallagher
|
151
|
+
t.integer :album_id, default: 0 # High Flying Birds
|
152
|
+
t.integer :year # 2011
|
153
|
+
t.integer :track # 3
|
154
|
+
t.integer :duration # 210 sec
|
155
|
+
t.integer :drive_id
|
156
|
+
t.string :relative_path
|
157
|
+
t.integer :points, default: 0
|
158
|
+
t.integer :plays, default: 0
|
159
|
+
t.datetime :last_played_at
|
160
|
+
t.timestamps
|
161
|
+
end
|
162
|
+
|
163
|
+
create_table :albums do |t|
|
164
|
+
t.string :name
|
165
|
+
t.integer :points, default: 0
|
166
|
+
t.timestamps
|
167
|
+
end
|
168
|
+
|
169
|
+
create_table :artists do |t|
|
170
|
+
t.string :name
|
171
|
+
t.integer :points, default: 0
|
172
|
+
t.timestamps
|
173
|
+
end
|
174
|
+
|
175
|
+
create_table :genres do |t|
|
176
|
+
t.integer :points, default: 0
|
177
|
+
t.string :name
|
178
|
+
end
|
179
|
+
|
180
|
+
create_table :genres_songs, id: false do |t|
|
181
|
+
t.integer :song_id
|
182
|
+
t.integer :genre_id
|
183
|
+
end
|
184
|
+
|
185
|
+
create_table :drives do |t|
|
186
|
+
t.string :name
|
187
|
+
t.string :path
|
188
|
+
t.boolean :connected, default: true
|
189
|
+
t.timestamps
|
190
|
+
end
|
191
|
+
end
|
192
|
+
rescue
|
193
|
+
end # begin
|
194
|
+
end # swallow_stdout
|
195
|
+
|
196
|
+
# Default and required values
|
197
|
+
CultomePlayer::Objects::Album.find_or_create_by(id: 0, name: 'Unknown')
|
198
|
+
CultomePlayer::Objects::Artist.find_or_create_by(id: 0, name: 'Unknown')
|
199
|
+
|
200
|
+
return true
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
94
204
|
end
|
95
205
|
end
|
metadata
CHANGED
@@ -1,195 +1,195 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cultome_player
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carlos Soria
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activesupport
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: taglib-ruby
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rb-readline
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: sqlite3
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: colorize
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rake
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: coveralls
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: rspec
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- -
|
129
|
+
- - ">="
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '0'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- -
|
136
|
+
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: bundler
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- -
|
143
|
+
- - ">="
|
144
144
|
- !ruby/object:Gem::Version
|
145
145
|
version: '0'
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- -
|
150
|
+
- - ">="
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: database_cleaner
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- -
|
157
|
+
- - ">="
|
158
158
|
- !ruby/object:Gem::Version
|
159
159
|
version: '0'
|
160
160
|
type: :development
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
|
-
- -
|
164
|
+
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: pry
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
|
-
- -
|
171
|
+
- - ">="
|
172
172
|
- !ruby/object:Gem::Version
|
173
173
|
version: '0'
|
174
174
|
type: :development
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
|
-
- -
|
178
|
+
- - ">="
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: '0'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: yard
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
184
184
|
requirements:
|
185
|
-
- -
|
185
|
+
- - ">="
|
186
186
|
- !ruby/object:Gem::Version
|
187
187
|
version: '0'
|
188
188
|
type: :development
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
|
-
- -
|
192
|
+
- - ">="
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: '0'
|
195
195
|
description: A console music library explorer and player
|
@@ -199,10 +199,6 @@ executables:
|
|
199
199
|
extensions: []
|
200
200
|
extra_rdoc_files: []
|
201
201
|
files:
|
202
|
-
- .coveralls.yml
|
203
|
-
- .gitignore
|
204
|
-
- .rspec
|
205
|
-
- .travis.yml
|
206
202
|
- Gemfile
|
207
203
|
- LICENSE.txt
|
208
204
|
- README.md
|
@@ -210,7 +206,6 @@ files:
|
|
210
206
|
- bin/cultome_player
|
211
207
|
- config/environment.yml
|
212
208
|
- cultome_player.gemspec
|
213
|
-
- db/001_create_schema.rb
|
214
209
|
- lib/cultome_player.rb
|
215
210
|
- lib/cultome_player/command.rb
|
216
211
|
- lib/cultome_player/command/language.rb
|
@@ -239,37 +234,15 @@ files:
|
|
239
234
|
- lib/cultome_player/player/interface/helper.rb
|
240
235
|
- lib/cultome_player/player/playlist.rb
|
241
236
|
- lib/cultome_player/plugins.rb
|
237
|
+
- lib/cultome_player/plugins/alias.rb
|
238
|
+
- lib/cultome_player/plugins/gestures.rb
|
242
239
|
- lib/cultome_player/plugins/help.rb
|
240
|
+
- lib/cultome_player/plugins/keyboard_special_keys.rb
|
241
|
+
- lib/cultome_player/plugins/points.rb
|
243
242
|
- lib/cultome_player/state_checker.rb
|
244
243
|
- lib/cultome_player/utils.rb
|
245
244
|
- lib/cultome_player/version.rb
|
246
|
-
-
|
247
|
-
- spec/cultome_player/command/processor_spec.rb
|
248
|
-
- spec/cultome_player/command/reader_spec.rb
|
249
|
-
- spec/cultome_player/cultome_player_spec.rb
|
250
|
-
- spec/cultome_player/environment_spec.rb
|
251
|
-
- spec/cultome_player/events_spec.rb
|
252
|
-
- spec/cultome_player/media_spec.rb
|
253
|
-
- spec/cultome_player/player/adapter/mpg123_spec.rb
|
254
|
-
- spec/cultome_player/player/interface/basic_spec.rb
|
255
|
-
- spec/cultome_player/player/interface/extended/connect_spec.rb
|
256
|
-
- spec/cultome_player/player/interface/extended/search_spec.rb
|
257
|
-
- spec/cultome_player/player/interface/extended/show_spec.rb
|
258
|
-
- spec/cultome_player/player/interface/extended/shuffle_spec.rb
|
259
|
-
- spec/cultome_player/player/interface/extended_spec.rb
|
260
|
-
- spec/cultome_player/player/interface/helper_spec.rb
|
261
|
-
- spec/cultome_player/player/interface_spec.rb
|
262
|
-
- spec/cultome_player/player/playlist_spec.rb
|
263
|
-
- spec/cultome_player/plugins/help_spec.rb
|
264
|
-
- spec/cultome_player/plugins_spec.rb
|
265
|
-
- spec/cultome_player/utils_spec.rb
|
266
|
-
- spec/spec_helper.rb
|
267
|
-
- spec/test/uno/dos/dos.mp3
|
268
|
-
- spec/test/uno/dos/tres/tres.mp3
|
269
|
-
- spec/test/uno/uno.mp3
|
270
|
-
- tasks/console.rake
|
271
|
-
- tasks/db.rake
|
272
|
-
- tasks/run.rake
|
245
|
+
- xbindkeys/xbindkeysrc
|
273
246
|
homepage: https://github.com/cultome/cultome_player
|
274
247
|
licenses:
|
275
248
|
- MIT
|
@@ -280,43 +253,18 @@ require_paths:
|
|
280
253
|
- lib
|
281
254
|
required_ruby_version: !ruby/object:Gem::Requirement
|
282
255
|
requirements:
|
283
|
-
- -
|
256
|
+
- - ">="
|
284
257
|
- !ruby/object:Gem::Version
|
285
258
|
version: '0'
|
286
259
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
287
260
|
requirements:
|
288
|
-
- -
|
261
|
+
- - ">="
|
289
262
|
- !ruby/object:Gem::Version
|
290
263
|
version: '0'
|
291
264
|
requirements: []
|
292
265
|
rubyforge_project:
|
293
|
-
rubygems_version: 2.
|
266
|
+
rubygems_version: 2.5.1
|
294
267
|
signing_key:
|
295
268
|
specification_version: 4
|
296
269
|
summary: CulToMe Player
|
297
|
-
test_files:
|
298
|
-
- spec/config.yml
|
299
|
-
- spec/cultome_player/command/processor_spec.rb
|
300
|
-
- spec/cultome_player/command/reader_spec.rb
|
301
|
-
- spec/cultome_player/cultome_player_spec.rb
|
302
|
-
- spec/cultome_player/environment_spec.rb
|
303
|
-
- spec/cultome_player/events_spec.rb
|
304
|
-
- spec/cultome_player/media_spec.rb
|
305
|
-
- spec/cultome_player/player/adapter/mpg123_spec.rb
|
306
|
-
- spec/cultome_player/player/interface/basic_spec.rb
|
307
|
-
- spec/cultome_player/player/interface/extended/connect_spec.rb
|
308
|
-
- spec/cultome_player/player/interface/extended/search_spec.rb
|
309
|
-
- spec/cultome_player/player/interface/extended/show_spec.rb
|
310
|
-
- spec/cultome_player/player/interface/extended/shuffle_spec.rb
|
311
|
-
- spec/cultome_player/player/interface/extended_spec.rb
|
312
|
-
- spec/cultome_player/player/interface/helper_spec.rb
|
313
|
-
- spec/cultome_player/player/interface_spec.rb
|
314
|
-
- spec/cultome_player/player/playlist_spec.rb
|
315
|
-
- spec/cultome_player/plugins/help_spec.rb
|
316
|
-
- spec/cultome_player/plugins_spec.rb
|
317
|
-
- spec/cultome_player/utils_spec.rb
|
318
|
-
- spec/spec_helper.rb
|
319
|
-
- spec/test/uno/dos/dos.mp3
|
320
|
-
- spec/test/uno/dos/tres/tres.mp3
|
321
|
-
- spec/test/uno/uno.mp3
|
322
|
-
has_rdoc:
|
270
|
+
test_files: []
|