hearken 0.1.2 → 0.1.3
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 +5 -5
- data/.rubocop.yml +14 -0
- data/.tool-versions +1 -0
- data/Gemfile +7 -1
- data/Gemfile.lock +95 -0
- data/{README.rdoc → README.md} +12 -50
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/exe/hearken +9 -0
- data/exe/hearken_index +13 -0
- data/hearken.gemspec +35 -35
- data/lib/hearken/command/enqueue.rb +35 -10
- data/lib/hearken/command/reload.rb +18 -6
- data/lib/hearken/command/search.rb +31 -20
- data/lib/hearken/console.rb +11 -28
- data/lib/hearken/debug.rb +6 -6
- data/lib/hearken/indexing/indexer.rb +32 -24
- data/lib/hearken/library.rb +49 -41
- data/lib/hearken/monkey_violence.rb +9 -7
- data/lib/hearken/paths.rb +13 -19
- data/lib/hearken/range_expander.rb +18 -13
- data/lib/hearken/tagged.rb +15 -11
- data/lib/hearken/track.rb +53 -41
- data/lib/hearken.rb +2 -2
- metadata +26 -105
- data/.gitignore +0 -5
- data/HISTORY.rdoc +0 -38
- data/MIT-LICENSE +0 -20
- data/bin/hearken +0 -7
- data/bin/hearken_index +0 -12
- data/bin/hearken_scrobble +0 -35
- data/bin/hearken_tags +0 -11
- data/lib/hearken/command/list.rb +0 -32
- data/lib/hearken/command/love.rb +0 -7
- data/lib/hearken/command/profile.rb +0 -7
- data/lib/hearken/command/recent.rb +0 -38
- data/lib/hearken/command/remove.rb +0 -15
- data/lib/hearken/command/restart.rb +0 -7
- data/lib/hearken/command/scrobbling.rb +0 -14
- data/lib/hearken/command/setup_scrobbling.rb +0 -7
- data/lib/hearken/command/shuffle.rb +0 -13
- data/lib/hearken/command/start.rb +0 -7
- data/lib/hearken/command/status.rb +0 -7
- data/lib/hearken/command/stop.rb +0 -7
- data/lib/hearken/command.rb +0 -35
- data/lib/hearken/notification/growl_notifier.rb +0 -15
- data/lib/hearken/player.rb +0 -130
- data/lib/hearken/preferences.rb +0 -33
- data/lib/hearken/queue.rb +0 -33
- data/lib/hearken/scrobbler.rb +0 -82
- data/lib/hearken/simple_scrobbler.rb +0 -94
- data/media/ice_cream.png +0 -0
- data/spec/hearken/command/enqueue_spec.rb +0 -24
- data/spec/hearken/command/list_spec.rb +0 -31
- data/spec/hearken/command/reload_spec.rb +0 -21
- data/spec/hearken/command/shuffle_spec.rb +0 -33
- data/spec/hearken/player_spec.rb +0 -38
- data/spec/hearken/range_expander_spec.rb +0 -28
- data/spec/spec_helper.rb +0 -16
data/lib/hearken/library.rb
CHANGED
@@ -1,43 +1,51 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
id
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "hearken/debug"
|
4
|
+
require "hearken/paths"
|
5
|
+
require "hearken/track"
|
6
|
+
|
7
|
+
module Hearken
|
8
|
+
class Library
|
9
|
+
include Hearken::Paths
|
10
|
+
|
11
|
+
FILE_FIELDS = %w[path timestamp].freeze
|
12
|
+
TAG_FIELDS = %w[album track title artist time date albumartist puid mbartistid mbalbumid mbalbumartistid asin].freeze
|
13
|
+
FIELDS = FILE_FIELDS + TAG_FIELDS
|
14
|
+
|
15
|
+
include Hearken::Debug
|
16
|
+
attr_reader :tracks
|
17
|
+
|
18
|
+
def initialize
|
19
|
+
@tracks = []
|
20
|
+
create_paths
|
21
|
+
reload
|
22
|
+
end
|
23
|
+
|
24
|
+
def count
|
25
|
+
@tracks.count
|
26
|
+
end
|
27
|
+
|
28
|
+
def row(id)
|
29
|
+
@tracks[id]
|
30
|
+
end
|
31
|
+
|
32
|
+
def with_track(id)
|
33
|
+
yield @tracks[id]
|
34
|
+
end
|
35
|
+
|
36
|
+
def reload
|
37
|
+
return unless File.exist?(index_path)
|
38
|
+
|
39
|
+
File.open index_path do |file|
|
40
|
+
id = 0
|
41
|
+
while (line = file.gets)
|
42
|
+
row = line.chomp.split "<->"
|
43
|
+
track = Hearken::Track.new id
|
44
|
+
FIELDS.each { |field| track.send "#{field}=", row.shift }
|
45
|
+
@tracks << track
|
46
|
+
id += 1
|
47
|
+
end
|
40
48
|
end
|
41
|
-
end
|
49
|
+
end
|
42
50
|
end
|
43
|
-
end
|
51
|
+
end
|
@@ -1,21 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class String
|
2
4
|
def from_home
|
3
|
-
File.expand_path(
|
5
|
+
"#{File.expand_path("~")}/#{self}"
|
4
6
|
end
|
5
7
|
|
6
|
-
def escape
|
8
|
+
def escape(char)
|
7
9
|
gsub(char) { "\\#{char}" }
|
8
10
|
end
|
9
11
|
|
10
|
-
def escape_all
|
11
|
-
chars.inject(self) {|s,t| s.escape t }
|
12
|
+
def escape_all(chars)
|
13
|
+
chars.inject(self) { |s, t| s.escape t }
|
12
14
|
end
|
13
15
|
|
14
16
|
def escape_for_sh
|
15
|
-
|
17
|
+
escape_all " `';&!()$".scan(/./)
|
16
18
|
end
|
17
19
|
|
18
20
|
def escape_for_sh_quoted
|
19
|
-
|
21
|
+
escape "`"
|
20
22
|
end
|
21
|
-
end
|
23
|
+
end
|
data/lib/hearken/paths.rb
CHANGED
@@ -1,24 +1,18 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
attr_reader :base_path, :preferences_path, :queue_path, :index_path
|
3
|
+
require "fileutils"
|
5
4
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
@queue_path = '.hearken/queue'.from_home
|
10
|
-
@index_path = '.hearken/music'.from_home
|
11
|
-
FileUtils.mv '.hearken'.from_home, '.hearken.tmp'.from_home if File.exist?('.hearken'.from_home) && File.file?('.hearken'.from_home)
|
12
|
-
FileUtils.mkdir_p '.hearken/queue'.from_home
|
13
|
-
FileUtils.mv '.hearken.tmp'.from_home, @preferences_path if File.exist? '.hearken.tmp'.from_home
|
14
|
-
FileUtils.mv '.music'.from_home, @index_path if File.exist? '.music'.from_home
|
15
|
-
end
|
5
|
+
module Hearken
|
6
|
+
module Paths
|
7
|
+
attr_reader :base_path, :index_path
|
16
8
|
|
17
|
-
|
18
|
-
|
19
|
-
|
9
|
+
def create_paths
|
10
|
+
@base_path = ".hearken".from_home
|
11
|
+
@index_path = ".hearken/music".from_home
|
12
|
+
end
|
20
13
|
|
21
|
-
|
22
|
-
|
14
|
+
def in_base_dir(&block)
|
15
|
+
Dir.chdir(base_path, &block)
|
16
|
+
end
|
23
17
|
end
|
24
|
-
end
|
18
|
+
end
|
@@ -1,30 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Hearken
|
2
4
|
class RangeExpander
|
3
|
-
def expand
|
4
|
-
text.split(/[^0-9a-z-]/).inject([]) {|acc, term| acc + expand_term(term) }
|
5
|
+
def expand(text)
|
6
|
+
text.split(/[^0-9a-z-]/).inject([]) { |acc, term| acc + expand_term(term) }
|
5
7
|
end
|
6
8
|
|
7
|
-
def expand_to_ids
|
8
|
-
expand(text).map {|number| from_number number }
|
9
|
+
def expand_to_ids(text)
|
10
|
+
expand(text).map { |number| from_number number }
|
9
11
|
end
|
10
|
-
|
11
|
-
|
12
|
-
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def expand_term(term)
|
16
|
+
words = term.split "-"
|
13
17
|
words.empty? ? [] : range(words.first, words.last)
|
14
18
|
end
|
15
19
|
|
16
|
-
def range
|
17
|
-
f
|
18
|
-
t = to_number(
|
20
|
+
def range(from, to)
|
21
|
+
f = to_number(from)
|
22
|
+
t = to_number(to)
|
23
|
+
t = to_number(from.slice(0...from.size - to.size) + to) if t < f
|
19
24
|
(f..t).to_a
|
20
25
|
end
|
21
26
|
|
22
|
-
def from_number
|
27
|
+
def from_number(term)
|
23
28
|
term.to_s 36
|
24
29
|
end
|
25
30
|
|
26
|
-
def to_number
|
31
|
+
def to_number(term)
|
27
32
|
term.to_i 36
|
28
33
|
end
|
29
34
|
end
|
30
|
-
end
|
35
|
+
end
|
data/lib/hearken/tagged.rb
CHANGED
@@ -1,15 +1,19 @@
|
|
1
|
-
|
2
|
-
FILE_FIELDS = %w{path timestamp}
|
3
|
-
TAG_FIELDS = %w{album track title artist time date albumartist puid mbartistid mbalbumid mbalbumartistid asin}
|
4
|
-
FIELDS = FILE_FIELDS + TAG_FIELDS
|
1
|
+
# frozen_string_literal: true
|
5
2
|
|
6
|
-
|
3
|
+
module Hearken
|
4
|
+
module Tagged
|
5
|
+
FILE_FIELDS = %w[path timestamp].freeze
|
6
|
+
TAG_FIELDS = %w[album track title artist time date albumartist puid mbartistid mbalbumid mbalbumartistid asin].freeze
|
7
|
+
FIELDS = FILE_FIELDS + TAG_FIELDS
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
9
|
+
attr_accessor(*FIELDS.map(&:to_sym))
|
10
|
+
|
11
|
+
def no_tag_fields?
|
12
|
+
TAG_FIELDS.select { |field| send field }.empty?
|
13
|
+
end
|
11
14
|
|
12
|
-
|
13
|
-
|
15
|
+
def to_a
|
16
|
+
FIELDS.map { |field| send field }
|
17
|
+
end
|
14
18
|
end
|
15
|
-
end
|
19
|
+
end
|
data/lib/hearken/track.rb
CHANGED
@@ -1,41 +1,53 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "hearken/tagged"
|
4
|
+
require "hearken/colour"
|
5
|
+
|
6
|
+
module Hearken
|
7
|
+
class Track
|
8
|
+
include Hearken::Tagged
|
9
|
+
include Hearken::Colour
|
10
|
+
|
11
|
+
attr_accessor :id, :started
|
12
|
+
|
13
|
+
def initialize(id = nil)
|
14
|
+
@id = id
|
15
|
+
end
|
16
|
+
|
17
|
+
def [](key)
|
18
|
+
send key
|
19
|
+
end
|
20
|
+
|
21
|
+
def valid?
|
22
|
+
@track
|
23
|
+
end
|
24
|
+
|
25
|
+
def search_id
|
26
|
+
id.to_s 36
|
27
|
+
end
|
28
|
+
|
29
|
+
def search_string
|
30
|
+
"#{artist.to_s.downcase}#{album.to_s.downcase}#{title.to_s.downcase}#{date}"
|
31
|
+
end
|
32
|
+
|
33
|
+
def to_s
|
34
|
+
[
|
35
|
+
"[#{my(:search_id, :white)}]",
|
36
|
+
my(:artist, :yellow),
|
37
|
+
my(:album, :cyan),
|
38
|
+
my(:track, :magenta),
|
39
|
+
my(:title, :green),
|
40
|
+
my(:date, :white),
|
41
|
+
my(:time, :white)
|
42
|
+
].join(" ")
|
43
|
+
end
|
44
|
+
|
45
|
+
def to_short_s
|
46
|
+
"#{track} #{title}\n#{artist}\n#{album}"
|
47
|
+
end
|
48
|
+
|
49
|
+
def my(field, colour)
|
50
|
+
c send(field).to_s, colour
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
data/lib/hearken.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
module Hearken
|
2
|
-
VERSION = '0.1.
|
3
|
-
end
|
2
|
+
VERSION = '0.1.3'
|
3
|
+
end
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hearken
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Ryall
|
8
|
-
autorequire:
|
9
|
-
bindir:
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: shell_shock
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: rainbow
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,51 +25,23 @@ dependencies:
|
|
39
25
|
- !ruby/object:Gem::Version
|
40
26
|
version: '2'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '1'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '1'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rake
|
28
|
+
name: shell_shock
|
57
29
|
requirement: !ruby/object:Gem::Requirement
|
58
30
|
requirements:
|
59
|
-
- - "
|
31
|
+
- - ">="
|
60
32
|
- !ruby/object:Gem::Version
|
61
33
|
version: '0'
|
62
|
-
type: :
|
34
|
+
type: :runtime
|
63
35
|
prerelease: false
|
64
36
|
version_requirements: !ruby/object:Gem::Requirement
|
65
37
|
requirements:
|
66
|
-
- - "
|
38
|
+
- - ">="
|
67
39
|
- !ruby/object:Gem::Version
|
68
40
|
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rspec
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '3'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '3'
|
83
41
|
description: |
|
84
|
-
A command line tool to enqueue and play music
|
42
|
+
A command line tool to enqueue and play music trackspec.
|
85
43
|
|
86
|
-
This also extracts the tags from a collection of
|
44
|
+
This also extracts the tags from a collection of folderspec.
|
87
45
|
|
88
46
|
This replaces and combines the functionality from a couple of other gems (audio_library and songbirdsh).
|
89
47
|
email:
|
@@ -91,8 +49,6 @@ email:
|
|
91
49
|
executables:
|
92
50
|
- hearken
|
93
51
|
- hearken_index
|
94
|
-
- hearken_scrobble
|
95
|
-
- hearken_tags
|
96
52
|
extensions: []
|
97
53
|
extra_rdoc_files: []
|
98
54
|
files:
|
@@ -104,35 +60,22 @@ files:
|
|
104
60
|
- ".cards/94f23de2-4e0c-417a-aa82-3147908e2481"
|
105
61
|
- ".cards/a5be50c4-2117-4ecf-bc64-e9977f4d52c1"
|
106
62
|
- ".cards/f742a9f4-36af-43e5-a7cb-480049a43821"
|
107
|
-
- ".
|
63
|
+
- ".rubocop.yml"
|
64
|
+
- ".tool-versions"
|
108
65
|
- Gemfile
|
109
|
-
-
|
110
|
-
-
|
111
|
-
- README.rdoc
|
66
|
+
- Gemfile.lock
|
67
|
+
- README.md
|
112
68
|
- Rakefile
|
113
|
-
- bin/
|
114
|
-
- bin/
|
115
|
-
-
|
116
|
-
-
|
69
|
+
- bin/console
|
70
|
+
- bin/setup
|
71
|
+
- exe/hearken
|
72
|
+
- exe/hearken_index
|
117
73
|
- hearken.gemspec
|
118
74
|
- lib/hearken.rb
|
119
75
|
- lib/hearken/colour.rb
|
120
|
-
- lib/hearken/command.rb
|
121
76
|
- lib/hearken/command/enqueue.rb
|
122
|
-
- lib/hearken/command/list.rb
|
123
|
-
- lib/hearken/command/love.rb
|
124
|
-
- lib/hearken/command/profile.rb
|
125
|
-
- lib/hearken/command/recent.rb
|
126
77
|
- lib/hearken/command/reload.rb
|
127
|
-
- lib/hearken/command/remove.rb
|
128
|
-
- lib/hearken/command/restart.rb
|
129
|
-
- lib/hearken/command/scrobbling.rb
|
130
78
|
- lib/hearken/command/search.rb
|
131
|
-
- lib/hearken/command/setup_scrobbling.rb
|
132
|
-
- lib/hearken/command/shuffle.rb
|
133
|
-
- lib/hearken/command/start.rb
|
134
|
-
- lib/hearken/command/status.rb
|
135
|
-
- lib/hearken/command/stop.rb
|
136
79
|
- lib/hearken/console.rb
|
137
80
|
- lib/hearken/debug.rb
|
138
81
|
- lib/hearken/indexing.rb
|
@@ -146,29 +89,15 @@ files:
|
|
146
89
|
- lib/hearken/indexing/persisted_traverser.rb
|
147
90
|
- lib/hearken/library.rb
|
148
91
|
- lib/hearken/monkey_violence.rb
|
149
|
-
- lib/hearken/notification/growl_notifier.rb
|
150
92
|
- lib/hearken/paths.rb
|
151
|
-
- lib/hearken/player.rb
|
152
|
-
- lib/hearken/preferences.rb
|
153
|
-
- lib/hearken/queue.rb
|
154
93
|
- lib/hearken/range_expander.rb
|
155
|
-
- lib/hearken/scrobbler.rb
|
156
|
-
- lib/hearken/simple_scrobbler.rb
|
157
94
|
- lib/hearken/tagged.rb
|
158
95
|
- lib/hearken/track.rb
|
159
96
|
- media/applause.mp3
|
160
|
-
- media/ice_cream.png
|
161
|
-
- spec/hearken/command/enqueue_spec.rb
|
162
|
-
- spec/hearken/command/list_spec.rb
|
163
|
-
- spec/hearken/command/reload_spec.rb
|
164
|
-
- spec/hearken/command/shuffle_spec.rb
|
165
|
-
- spec/hearken/player_spec.rb
|
166
|
-
- spec/hearken/range_expander_spec.rb
|
167
|
-
- spec/spec_helper.rb
|
168
97
|
homepage: http://github.com/markryall/hearken
|
169
|
-
licenses:
|
170
|
-
|
171
|
-
|
98
|
+
licenses: []
|
99
|
+
metadata:
|
100
|
+
rubygems_mfa_required: 'true'
|
172
101
|
post_install_message: |
|
173
102
|
Hey - thanks for installing hearken.
|
174
103
|
|
@@ -178,7 +107,7 @@ post_install_message: |
|
|
178
107
|
|
179
108
|
This could take a while if you have a large collection - you should hear some applause when it's done
|
180
109
|
|
181
|
-
After that just run hearken to start
|
110
|
+
After that just run hearken to start searching for and then queueing tracks.
|
182
111
|
rdoc_options: []
|
183
112
|
require_paths:
|
184
113
|
- lib
|
@@ -186,23 +115,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
186
115
|
requirements:
|
187
116
|
- - ">="
|
188
117
|
- !ruby/object:Gem::Version
|
189
|
-
version:
|
118
|
+
version: 2.6.0
|
190
119
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
191
120
|
requirements:
|
192
121
|
- - ">="
|
193
122
|
- !ruby/object:Gem::Version
|
194
123
|
version: '0'
|
195
124
|
requirements: []
|
196
|
-
|
197
|
-
|
198
|
-
signing_key:
|
125
|
+
rubygems_version: 3.3.3
|
126
|
+
signing_key:
|
199
127
|
specification_version: 4
|
200
128
|
summary: command line music player
|
201
|
-
test_files:
|
202
|
-
- spec/hearken/command/enqueue_spec.rb
|
203
|
-
- spec/hearken/command/list_spec.rb
|
204
|
-
- spec/hearken/command/reload_spec.rb
|
205
|
-
- spec/hearken/command/shuffle_spec.rb
|
206
|
-
- spec/hearken/player_spec.rb
|
207
|
-
- spec/hearken/range_expander_spec.rb
|
208
|
-
- spec/spec_helper.rb
|
129
|
+
test_files: []
|
data/HISTORY.rdoc
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
= 0.1.1
|
2
|
-
|
3
|
-
* added use of sox to play more audio file formats (now m4a and mp3 with afplay and sox for everything else)
|
4
|
-
* fixed some issues with the parsing of ffmpeg output to get correct tag information
|
5
|
-
* added logging of played tracks to history file
|
6
|
-
* removed splat dependency (because it is just silly)
|
7
|
-
|
8
|
-
= 0.1.0
|
9
|
-
|
10
|
-
* removed several dependencies - simple_scrobbler and thor
|
11
|
-
* split hearken command into two
|
12
|
-
* added 'love' command (to mark current track as loved)
|
13
|
-
* added 'profile' command (to launch last.fm profile to see track history)
|
14
|
-
* replaced 'flush' with an 'rm' command that can remove tracks matches criteria
|
15
|
-
|
16
|
-
= 0.0.5
|
17
|
-
|
18
|
-
* fixed 'recent' command - the library is sorted on file modification date
|
19
|
-
* moved 'current_song' from working directory to .hearken directory
|
20
|
-
* Changed dequeue to return track instead of id - this fixed a bug where reindexing would cause player to start playing the wrong files.
|
21
|
-
|
22
|
-
= 0.0.4
|
23
|
-
|
24
|
-
* Partially fixed bug with growl (correctly escaping characters in message)
|
25
|
-
* moved all configuration, queues and index to a .hearken directory
|
26
|
-
|
27
|
-
= 0.0.3
|
28
|
-
|
29
|
-
* Fixed bug in setup_scrobbling command (using $stdin directly - 'gets' seems to have been aliased by thor)
|
30
|
-
* Added growl notification
|
31
|
-
|
32
|
-
= 0.0.2
|
33
|
-
|
34
|
-
* First functioning version - combination of features from audio_library and songbirdsh
|
35
|
-
|
36
|
-
= 0.0.1
|
37
|
-
|
38
|
-
* Released empty gem (to claim the name before proceeding any further)
|
data/MIT-LICENSE
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
Copyright (c) 2011 Mark Ryall
|
2
|
-
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
-
a copy of this software and associated documentation files (the
|
5
|
-
"Software"), to deal in the Software without restriction, including
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
9
|
-
the following conditions:
|
10
|
-
|
11
|
-
The above copyright notice and this permission notice shall be
|
12
|
-
included in all copies or substantial portions of the Software.
|
13
|
-
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/bin/hearken
DELETED
data/bin/hearken_index
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
$: << File.dirname(__FILE__)+'/../lib'
|
4
|
-
|
5
|
-
require 'hearken/indexing'
|
6
|
-
|
7
|
-
unless ARGV.size == 1
|
8
|
-
puts "usage: hearken_index path_to_directory_containing_music_collection"
|
9
|
-
exit
|
10
|
-
end
|
11
|
-
|
12
|
-
Hearken::Indexing::Indexer.new(ARGV.shift).execute
|