nehm 1.4.2 → 1.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: 720165cf1bb886b479357651ef70597a724ae003
4
- data.tar.gz: 2189aad4a535796a4099e127c50bb3aef11410e6
3
+ metadata.gz: 6f45c781d72f8543d6b8f6172bd94682d89d3589
4
+ data.tar.gz: 517a5d04219f8ff0eb36a968f9b4c0c6adb1dfb4
5
5
  SHA512:
6
- metadata.gz: 2b735c675fc41539522eab2707028d34d65f823a9c7cb6c634a61aff9c49237e0d706208595b355f5aa71b28543c587edd3492061e82aaa0b4f14d3f91ae5007
7
- data.tar.gz: 3b329df0e0171250dfa45f5906f2f2a00ae31efea6063c3e43986e32d173d5e704e4c464f64623ba3323e9674fd840443477121b93b6f36d29879f6461d96228
6
+ metadata.gz: 4a4f13bfbadced60aa02119e1e69ede64c46deb7e7a5a067afb410014590287d50d09c9f2292c30f73027f2b08100f4e0ec6466ecdc9d5ad537310a31a89e98f
7
+ data.tar.gz: 99346b65d73ee41511e922b8cce7c3124ba342be5a4b5f64d8c4838efb3ba4c8831f233ac0c4deaeec953e726aa96538af3c544bb4b9dd91e25cdfc3c1aa7768
data/CHANGELOG.md CHANGED
@@ -1,8 +1,17 @@
1
1
  # nehm change log
2
2
 
3
+ ## 1.5
4
+
5
+ * Add support for Ruby 1.9.3
6
+ * Edit application structure
7
+ * Improve performance when adding tracks to iTunes library
8
+ * Remove useless iTunes path logic
9
+ * Prettify `nehm help`
10
+
3
11
  ## 1.4.2
4
12
 
5
13
  * Fix: app fails if you didn't set up playlist (again)
14
+ * Reduce gem size
6
15
 
7
16
  ## 1.4.1
8
17
 
data/README.md CHANGED
@@ -46,7 +46,7 @@ Go to usage for further instructions
46
46
 
47
47
  **!!nehm doesn't add tracks to iTunes library, if you use Linux!!**
48
48
 
49
- * To get (download to download directory, set tags and add to Itunes library) your last like
49
+ * To get (download to download directory, set tags and add to iTunes library) your last like
50
50
 
51
51
  `nehm get like`
52
52
 
@@ -72,7 +72,7 @@ Go to usage for further instructions
72
72
 
73
73
  *(if you type `to current`, nehm will get track to current working directory)*
74
74
 
75
- * To get tracks to another playlist
75
+ * To get tracks to another iTunes playlist
76
76
 
77
77
  `nehm get post playlist MyPlaylist`
78
78
 
@@ -84,7 +84,7 @@ Go to usage for further instructions
84
84
 
85
85
  `nehm dl https://soundcloud.com/nasa/delta-iv-launch`
86
86
 
87
- * Also, you can configure nehm (change download directory, iTunes directory, permalink)
87
+ * Also, you can configure nehm (change download directory, permalink)
88
88
 
89
89
  `nehm configure`
90
90
 
data/lib/nehm.rb CHANGED
@@ -3,7 +3,7 @@ require 'paint'
3
3
 
4
4
  require 'nehm/applescript'
5
5
  require 'nehm/artwork'
6
- require 'nehm/config'
6
+ require 'nehm/cfg'
7
7
  require 'nehm/configure'
8
8
  require 'nehm/client'
9
9
  require 'nehm/get'
@@ -45,15 +45,12 @@ module App
45
45
  def init
46
46
  puts Paint['Hello!', :green]
47
47
  puts 'Before using the nehm, you should set it up:'
48
- Config.create unless Config.exist?
48
+ Cfg.create unless Cfg.exist?
49
49
 
50
50
  PathControl.set_dl_path
51
51
  puts "\n"
52
52
 
53
53
  unless OS.linux?
54
- PathControl.set_itunes_path_to_default
55
- puts "\n"
56
-
57
54
  PlaylistControl.set_playlist
58
55
  puts "\n"
59
56
  end
@@ -8,10 +8,14 @@ module AppleScript
8
8
  output.chomp.split(', ')
9
9
  end
10
10
 
11
+ def self.music_master_library
12
+ `osascript #{script_path(:music_master_library)}`
13
+ end
14
+
11
15
  module_function
12
16
 
13
17
  def script_path(script_name)
14
- applescripts_path = File.expand_path('applescripts', __dir__)
18
+ applescripts_path = File.expand_path(File.join(File.dirname(__FILE__), "applescripts"))
15
19
  File.join(applescripts_path, "#{script_name.to_s}.applescript")
16
20
  end
17
21
  end
@@ -0,0 +1,3 @@
1
+ tell application "iTunes"
2
+ get name of first playlist whose special kind is Music
3
+ end tell
@@ -1,7 +1,7 @@
1
1
  require 'yaml'
2
2
 
3
- # Config module manipulate with nehm's config file (~/.nehmconfig)
4
- module Config
3
+ # Cfg module manipulate with nehm's config file (~/.nehmconfig)
4
+ module Cfg
5
5
  def self.[](key)
6
6
  config_hash = load_config
7
7
  config_hash[key.to_s]
@@ -2,27 +2,9 @@
2
2
  module Configure
3
3
  def self.menu
4
4
  loop do
5
- output = ''
6
- options = [['Download path', Config[:dl_path], :magenta],
7
- ['Permalink', Config[:permalink], :cyan],
8
- ['iTunes path', PathControl.itunes_root_path, :magenta],
9
- ['iTunes playlist', PlaylistControl.playlist, :cyan]]
10
-
11
- options.each do |option|
12
- # option[0] - name
13
- # option[1] - value
14
- # option[2] - color
15
- output << option[0] + ': '
16
- output <<
17
- unless option[1].nil? && option[1].to_s.empty?
18
- Paint[option[1], option[2]]
19
- else
20
- Paint["doesn't set up", 'gold']
21
- end
22
- output << "\n"
23
- end
24
-
25
- puts output
5
+ puts 'Download path: ' + Paint[Cfg[:dl_path], :magenta]
6
+ puts 'Permalink: ' + Paint[Cfg[:permalink], :cyan]
7
+ puts 'iTunes playlist: ' + Paint[PlaylistControl.playlist, :cyan] unless OS.linux?
26
8
  puts "\n"
27
9
 
28
10
  HighLine.new.choose do |menu|
@@ -30,7 +12,6 @@ module Configure
30
12
 
31
13
  menu.choice('Edit download path'.freeze) { PathControl.set_dl_path }
32
14
  menu.choice('Edit permalink'.freeze) { UserControl.log_in }
33
- menu.choice('Edit iTunes path'.freeze) { PathControl.set_itunes_path } unless OS.linux?
34
15
  menu.choice('Edit iTunes playlist'.freeze) { PlaylistControl.set_playlist } unless OS.linux?
35
16
  menu.choice('Exit'.freeze) { puts 'Goodbye!'; exit }
36
17
  end
data/lib/nehm/get.rb CHANGED
@@ -46,32 +46,13 @@ module Get
46
46
  exit
47
47
  end
48
48
 
49
- # Check if iTunes path set up
50
- if !PathControl.itunes_path && get_or_dl == :get && !OS.linux?
51
- puts Paint["You don't set up iTunes path!", :yellow]
52
- puts "Your track won't add to iTunes library"
53
- itunes_set_up = false
54
- else
55
- itunes_set_up = true
56
- end
57
-
58
- # Check if iTunes playlist set up
59
49
  playlist = PlaylistControl.playlist
60
- if !playlist && !playlist.to_s.empty? && get_or_dl == :get && !OS.linux?
61
- puts Paint["You don't set up iTunes playlist!", :yellow]
62
- puts "Your track won't add to iTunes playlist"
63
- end
64
-
65
50
  tracks.each do |track|
66
51
  dl(track)
67
52
  dl(track.artwork)
68
53
  tag(track)
69
- if itunes_set_up && !OS.linux? && get_or_dl == :get
70
- cp(track)
71
- wait_while_itunes_add_track_to_lib(track) unless playlist.to_s.empty?
72
- playlist.add_track(track.file_path) unless playlist.to_s.empty?
73
- end
74
54
  track.artwork.suicide
55
+ playlist.add_track(track.file_path) if playlist && get_or_dl == :get && !OS.linux?
75
56
  end
76
57
  puts Paint['Done!', :green]
77
58
  end
@@ -111,16 +92,4 @@ module Get
111
92
  file.save
112
93
  end
113
94
  end
114
-
115
- def cp(track)
116
- puts 'Adding to iTunes library'
117
- FileUtils.cp(track.file_path, PathControl.itunes_path)
118
- end
119
-
120
- # Check when iTunes will add track to its library from 'Auto' directory
121
- def wait_while_itunes_add_track_to_lib(track)
122
- loop do
123
- break unless File.exist?(File.join(PathControl.itunes_path, track.file_name))
124
- end
125
- end
126
95
  end
data/lib/nehm/help.rb CHANGED
@@ -2,9 +2,9 @@
2
2
  module Help
3
3
  def self.available_commands
4
4
  puts Paint['Avalaible nehm commands:', :yellow]
5
- puts ' ' + Paint['get', :green] + ' - Downloading, setting tags and adding to your iTunes library last post or like from your profile'
6
- puts ' ' + Paint['dl', :green] + ' - Downloading and setting tags last post or like from your profile'
7
- puts ' ' + Paint['configure', :green] + ' - Configuring application'
5
+ puts ' ' + Paint['get', :green] + ' Downloading, setting tags and adding to your iTunes library last post or like from your profile'
6
+ puts ' ' + Paint['dl', :green] + ' Downloading and setting tags last post or like from your profile'
7
+ puts ' ' + Paint['configure', :green] + ' Configuring application'
8
8
  puts "See #{Paint['nehm help [command]', :yellow]} to read about a specific subcommand"
9
9
  end
10
10
 
@@ -17,12 +17,15 @@ module PathControl
17
17
  end
18
18
 
19
19
  path = HighLine.new.ask(path_ask + ':')
20
+
21
+ # If user press enter (set path to default)
20
22
  path = default_path if path == '' && default_path
21
23
 
24
+ # If tilde at top of the line of path
22
25
  path = PathControl.tilde_to_home(path) if PathControl.tilde_at_top?(path)
23
26
 
24
27
  if Dir.exist?(path)
25
- Config[:dl_path] = path
28
+ Cfg[:dl_path] = path
26
29
  puts Paint["Download directory set up to #{Paint[path, :magenta]}", :green]
27
30
  break
28
31
  else
@@ -46,52 +49,6 @@ module PathControl
46
49
  end
47
50
  end
48
51
 
49
- def self.itunes_path
50
- Config[:itunes_path]
51
- end
52
-
53
- # Use in Configure.menu
54
- def self.itunes_root_path
55
- PathControl.itunes_path.sub("/iTunes\ Media/Automatically\ Add\ to\ iTunes.localized", '')
56
- end
57
-
58
- def self.set_itunes_path
59
- loop do
60
- default_path = File.join(ENV['HOME'], '/Music/iTunes')
61
- path_ask = 'Enter path to iTunes directory'
62
-
63
- if Dir.exist?(default_path)
64
- path_ask << " (press enter to set it to #{Paint[default_path, :magenta]})"
65
- else
66
- default_path = nil
67
- end
68
-
69
- path = HighLine.new.ask(path_ask + ':')
70
- path = default_path if path == '' && default_path
71
-
72
- path = PathControl.tilde_to_home(path) if PathControl.tilde_at_top?(path)
73
-
74
- path = File.join(path, "iTunes\ Media/Automatically\ Add\ to\ iTunes.localized")
75
-
76
- if Dir.exist?(path)
77
- Config[:itunes_path] = path
78
- puts Paint["iTunes directory set up to #{Paint[PathControl.itunes_root_path, :magenta]}", :green]
79
- break
80
- else
81
- puts Paint["This directory doesn't exist. Please enter correct path", :red]
82
- end
83
- end
84
- end
85
-
86
- def self.set_itunes_path_to_default
87
- itunes_path = File.join(ENV['HOME'], "/Music/iTunes/iTunes\ Media/Automatically\ Add\ to\ iTunes.localized")
88
- if Dir.exist?(itunes_path)
89
- Config[:itunes_path] = itunes_path
90
- else
91
- puts Paint["Don't know where your iTunes path. Set it up manually from ", 'gold'] + Paint['nehm configure', :yellow]
92
- end
93
- end
94
-
95
52
  def self.tilde_to_home(path)
96
53
  File.join(ENV['HOME'], path[1..-1])
97
54
  end
@@ -103,8 +60,8 @@ module PathControl
103
60
  module_function
104
61
 
105
62
  def default_dl_path
106
- if Config[:dl_path]
107
- Config[:dl_path]
63
+ if Cfg[:dl_path]
64
+ Cfg[:dl_path]
108
65
  else
109
66
  puts Paint["You don't set up download path!", :red]
110
67
  puts "Set it up from #{Paint['nehm configure', :yellow]} or use #{Paint['[to PATH_TO_DIRECTORY]', :yellow]} option"
data/lib/nehm/playlist.rb CHANGED
@@ -6,7 +6,7 @@ class Playlist
6
6
  end
7
7
 
8
8
  def add_track(track_path)
9
- puts 'Adding to playlist'
9
+ puts 'Adding to iTunes'
10
10
  AppleScript.add_track_to_playlist(track_path, @name)
11
11
  end
12
12
 
@@ -1,23 +1,19 @@
1
1
  module PlaylistControl
2
2
  def self.playlist
3
- if @temp_playlist
4
- @temp_playlist
5
- elsif !Config[:playlist].nil?
6
- Playlist.new(Config[:playlist])
7
- end
3
+ @temp_playlist || default_user_playlist || music_master_library
8
4
  end
9
5
 
10
6
  def self.set_playlist
11
7
  loop do
12
8
  playlist = HighLine.new.ask('Enter name of default iTunes playlist to which you want add tracks (press Enter to unset default playlist)')
13
9
  if playlist == ''
14
- Config[:playlist] = ''
10
+ Cfg[:playlist] = nil
15
11
  puts Paint['Default iTunes playlist unset', :green]
16
12
  break
17
13
  end
18
14
 
19
15
  if AppleScript.list_of_playlists.include? playlist
20
- Config[:playlist] = playlist
16
+ Cfg[:playlist] = playlist
21
17
  puts Paint["Default iTunes playlist set up to #{playlist}", :green]
22
18
  break
23
19
  else
@@ -34,4 +30,14 @@ module PlaylistControl
34
30
  exit
35
31
  end
36
32
  end
33
+
34
+ module_function
35
+
36
+ def default_user_playlist
37
+ Playlist.new(Cfg[:playlist]) unless Cfg[:playlist].nil?
38
+ end
39
+
40
+ def music_master_library
41
+ Playlist.new(AppleScript.music_master_library)
42
+ end
37
43
  end
@@ -1,7 +1,7 @@
1
1
  module UserControl
2
2
 
3
3
  def self.logged_in?
4
- Config.key?(:default_id)
4
+ Cfg.key?(:default_id)
5
5
  end
6
6
 
7
7
  def self.log_in
@@ -10,8 +10,8 @@ module UserControl
10
10
  url = "https://soundcloud.com/#{permalink}"
11
11
  if user_exist?(permalink)
12
12
  user = Client.get('/resolve', url: url)
13
- Config[:default_id] = user.id
14
- Config[:permalink] = permalink
13
+ Cfg[:default_id] = user.id
14
+ Cfg[:permalink] = permalink
15
15
  puts Paint['Successfully logged in!', :green]
16
16
  break
17
17
  else
@@ -38,7 +38,7 @@ module UserControl
38
38
 
39
39
  def default_user
40
40
  if UserControl.logged_in?
41
- User.new(Config[:default_id])
41
+ User.new(Cfg[:default_id])
42
42
  else
43
43
  puts Paint["You didn't logged in", :red]
44
44
  puts "Login from #{Paint['nehm configure', :yellow]} or use #{Paint['[from PERMALINK]', :yellow]} option"
data/lib/nehm/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Nehm
2
- VERSION = '1.4.2'.freeze
2
+ VERSION = '1.5'.freeze
3
3
  end
data/nehm.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.bindir = 'bin'
19
19
  spec.executables = 'nehm'
20
20
  spec.require_paths = ['lib']
21
- spec.required_ruby_version = '>= 2.0'
21
+ spec.required_ruby_version = '>= 1.9.3'
22
22
 
23
23
  spec.add_dependency 'soundcloud', '>= 0.3.2'
24
24
  spec.add_dependency 'taglib-ruby', '>= 0.7.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nehm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.2
4
+ version: '1.5'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Albert Nigmatzianov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-13 00:00:00.000000000 Z
11
+ date: 2015-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: soundcloud
@@ -115,9 +115,10 @@ files:
115
115
  - lib/nehm/applescript.rb
116
116
  - lib/nehm/applescripts/add_track_to_playlist.applescript
117
117
  - lib/nehm/applescripts/list_of_playlists.applescript
118
+ - lib/nehm/applescripts/music_master_library.applescript
118
119
  - lib/nehm/artwork.rb
120
+ - lib/nehm/cfg.rb
119
121
  - lib/nehm/client.rb
120
- - lib/nehm/config.rb
121
122
  - lib/nehm/configure.rb
122
123
  - lib/nehm/get.rb
123
124
  - lib/nehm/help.rb
@@ -142,7 +143,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
142
143
  requirements:
143
144
  - - ">="
144
145
  - !ruby/object:Gem::Version
145
- version: '2.0'
146
+ version: 1.9.3
146
147
  required_rubygems_version: !ruby/object:Gem::Requirement
147
148
  requirements:
148
149
  - - ">="