kagu 0.4.7 → 1.0.0
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/README.mdown +9 -0
- data/VERSION +1 -1
- data/lib/kagu/finder.rb +4 -1
- data/lib/kagu/playlist.rb +3 -0
- data/lib/kagu/playlists.rb +1 -0
- data/lib/kagu/tracks.rb +1 -0
- data/lib/kagu.rb +8 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1cc4fa20633a483023599a2d5db4d1cfa98dfa2d
|
4
|
+
data.tar.gz: ef1c98202b4db8848f137667241a8d2ff49565b5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9f773466e3c04f84c292bca74cf0277a15dbd3fca6cb197fea176dfbfd16743c16e4ce8fa22efc26a383e0ee82e2821243a86520df1dff6dca52cab54cbdfe4
|
7
|
+
data.tar.gz: 2b39cf4d9a94479848bb3e28a03d0537cbf4d94906fe391983dc59af961371364713ef17cde4a4f2fc2ad30e5b18a0ba1bc66c29426a00b19b2153c0685aa166
|
data/README.mdown
CHANGED
@@ -52,6 +52,15 @@ library.finder.find(artist: 'Serial Killaz', title: 'Walk and Skank').each do
|
|
52
52
|
end
|
53
53
|
```
|
54
54
|
|
55
|
+
### Configuring logger
|
56
|
+
|
57
|
+
In order to have some debug informations about what kagu does, you could
|
58
|
+
configure its logger:
|
59
|
+
|
60
|
+
```ruby
|
61
|
+
Kagu.logger = Logger.new(STDERR)
|
62
|
+
```
|
63
|
+
|
55
64
|
## Executing test suite
|
56
65
|
|
57
66
|
This project is fully tested with [Rspec 3](http://github.com/rspec/rspec).
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
1.0.0
|
data/lib/kagu/finder.rb
CHANGED
@@ -114,7 +114,10 @@ module Kagu
|
|
114
114
|
end
|
115
115
|
|
116
116
|
def tracks
|
117
|
-
@tracks
|
117
|
+
return @tracks if @tracks
|
118
|
+
(@tracks = library.tracks.to_a).tap do |tracks|
|
119
|
+
Kagu.logger.debug('Kagu') { "Loaded #{tracks.size} track(s) from iTunes library" }
|
120
|
+
end
|
118
121
|
end
|
119
122
|
|
120
123
|
def tracks_digests
|
data/lib/kagu/playlist.rb
CHANGED
@@ -28,6 +28,7 @@ module Kagu
|
|
28
28
|
private
|
29
29
|
|
30
30
|
def add_tracks
|
31
|
+
Kagu.logger.info('Kagu') { "Adding #{tracks.size} track(s) to iTunes playlist #{name.inspect}" }
|
31
32
|
tracks.map(&:id).each_slice(500) do |ids|
|
32
33
|
AppleScript.execute(%Q{
|
33
34
|
tell application "iTunes"
|
@@ -45,6 +46,7 @@ module Kagu
|
|
45
46
|
end
|
46
47
|
|
47
48
|
def clear
|
49
|
+
Kagu.logger.info('Kagu') { "Removing all tracks from iTunes playlist #{name.inspect}" }
|
48
50
|
AppleScript.execute(%Q{
|
49
51
|
tell application "iTunes"
|
50
52
|
delete tracks of playlist #{name.inspect}
|
@@ -56,6 +58,7 @@ module Kagu
|
|
56
58
|
end
|
57
59
|
|
58
60
|
def create
|
61
|
+
Kagu.logger.info('Kagu') { "Creating iTunes playlist #{name.inspect}" }
|
59
62
|
AppleScript.execute(%Q{
|
60
63
|
tell application "iTunes"
|
61
64
|
if not (exists user playlist #{name.inspect}) then
|
data/lib/kagu/playlists.rb
CHANGED
@@ -24,6 +24,7 @@ module Kagu
|
|
24
24
|
tracks = {}.tap do |tracks|
|
25
25
|
library.tracks.each { |track| tracks[track.id] = track }
|
26
26
|
end
|
27
|
+
Kagu.logger.debug('Kagu') { "Reading iTunes library playlists from #{library.path.inspect}" }
|
27
28
|
File.open(library.path, 'r') do |file|
|
28
29
|
begin
|
29
30
|
line = file.readline.strip
|
data/lib/kagu/tracks.rb
CHANGED
@@ -15,6 +15,7 @@ module Kagu
|
|
15
15
|
|
16
16
|
def each(&block)
|
17
17
|
return unless block_given?
|
18
|
+
Kagu.logger.debug('Kagu') { "Loading iTunes library tracks from #{library.path.inspect}" }
|
18
19
|
File.open(library.path, 'r') do |file|
|
19
20
|
while !file.eof? && (line = file.readline.strip)
|
20
21
|
next unless line.starts_with?('<key>Track ID</key>')
|
data/lib/kagu.rb
CHANGED
@@ -3,9 +3,17 @@ require 'active_support/core_ext'
|
|
3
3
|
require 'applescript'
|
4
4
|
require 'byebug' if ENV['DEBUGGER']
|
5
5
|
require 'htmlentities'
|
6
|
+
require 'logger'
|
6
7
|
|
7
8
|
lib_path = "#{__dir__}/kagu"
|
8
9
|
|
10
|
+
module Kagu
|
11
|
+
|
12
|
+
mattr_accessor :logger
|
13
|
+
self.logger = Logger.new(nil)
|
14
|
+
|
15
|
+
end
|
16
|
+
|
9
17
|
require "#{lib_path}/attributes_initializer"
|
10
18
|
require "#{lib_path}/error"
|
11
19
|
require "#{lib_path}/finder"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kagu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexis Toulotte
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -181,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
181
181
|
version: '0'
|
182
182
|
requirements: []
|
183
183
|
rubyforge_project: kagu
|
184
|
-
rubygems_version: 2.5.
|
184
|
+
rubygems_version: 2.5.2
|
185
185
|
signing_key:
|
186
186
|
specification_version: 4
|
187
187
|
summary: API for iTunes
|