my_shows 0.0.5 → 0.0.6

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: affacc0b266251e124dbfcb358266b05b9f185e4
4
+ data.tar.gz: 0338627a95dbfdb1445379c15e4db3ffeffa8600
5
+ SHA512:
6
+ metadata.gz: e80f9bcb05f9025fc2c90944158c45b074aee3d0c0a7e0abb8a4cc1e9b1b954db6a0bed4a753d7244210ee11b18377eb8256699ab0d723279e99d82f144f745b
7
+ data.tar.gz: a95130161635485784525bd6df1bf32d725e7528493cf5f1386acdce3c3e5411b6502c9f83cc92b911f6033580d9c819bae4bee98c184d773c627a220f4182d5
data/Gemfile CHANGED
@@ -1,4 +1,5 @@
1
- source 'https://rubygems.org'
1
+ source 'http://rubygems.org'
2
+ ruby '2.0.0'
2
3
 
3
4
  gemspec
4
5
 
@@ -8,6 +8,7 @@ require 'bundler/setup'
8
8
  require 'netrc'
9
9
  require 'fuzzystringmatch'
10
10
  require 'colorize'
11
+ require 'pmap'
11
12
 
12
13
  require 'my_shows/logger'
13
14
  require 'my_shows/launcher'
@@ -30,22 +31,34 @@ module MyShows
30
31
  end
31
32
 
32
33
  def lookup_magnet_links(shows)
33
- shows.map { |show|
34
- show.episode.torrent_link!
35
- }.compact
34
+ shows.pmap do |show|
35
+ link = show.episode.torrent_link!
36
+
37
+ if link
38
+ logger.debug "Found #{link[0...10]} for #{show.name}!"
39
+ else
40
+ logger.debug "Not Found any links for #{show.name}!"
41
+ end
42
+
43
+ link
44
+ end.compact
36
45
  end
37
46
 
38
47
  def enque_to_download(links)
39
48
  links.each do |link|
40
- logger.info "Enque #{URI(link).to_s}"
41
49
  sleep 5
42
- Launchy::Application::General.new.open([URI(link).to_s])
50
+ uri = URI(link).to_s
51
+ logger.info "Enque #{uri}"
52
+ Launchy::Application::General.new.open([uri])
43
53
  end
44
54
  end
45
55
 
46
56
  def start(*args)
47
57
  print_header
48
58
  configure_client
59
+
60
+ #TODO: Episode.next_unwatched.with_links.peach { |episode| print_episode episode; enquee_to_download episode; }
61
+
49
62
  shows = Show.next_episodes
50
63
  links = lookup_magnet_links(shows)
51
64
  print_episodes shows
@@ -73,6 +86,6 @@ module MyShows
73
86
  end
74
87
 
75
88
  if __FILE__ == $0
76
- MyShows.logger.level = ::Logger::FATAL
89
+ MyShows.logger.level = ::Logger::WARN
77
90
  MyShows::CLI.start
78
91
  end
@@ -2,6 +2,9 @@ require 'my_shows/the_pirate_bay_client'
2
2
 
3
3
  module MyShows
4
4
  class Episode
5
+ MAPPING_SHOW_NAMES = Hash.new { |hash, key| hash[key] = key }
6
+ MAPPING_SHOW_NAMES['Avatar: Legend of Korra'] = 'The Legend Of Korra'
7
+
5
8
  @@jarow = FuzzyStringMatch::JaroWinkler.create(:native)
6
9
  @@tracker = ThePirateBayClient.new
7
10
 
@@ -23,6 +26,8 @@ module MyShows
23
26
  return self.magnet_link if torrent_link_with_ext_keyword(keyword)
24
27
  end
25
28
  end
29
+
30
+ nil
26
31
  end
27
32
 
28
33
  def torrent_link_with_ext_keyword(keyword)
@@ -44,7 +49,7 @@ module MyShows
44
49
  end
45
50
 
46
51
  def to_s
47
- '%s s%02de%02d' % [show.name, season, episode]
52
+ '%s s%02de%02d' % [MAPPING_SHOW_NAMES[show.name], season, episode]
48
53
  end
49
54
  end
50
55
  end
@@ -4,25 +4,30 @@ require 'hashie/mash'
4
4
  module MyShows
5
5
  class Show < Hashie::Mash
6
6
  def self.client
7
- @client ||= SidereelClient.new ENV["SIDEREEL_USERNAME"], ENV["SIDEREEL_PASSWORD"]
7
+ @client ||= SidereelClient.new ENV['SIDEREEL_USERNAME'], ENV['SIDEREEL_PASSWORD']
8
8
  end
9
9
 
10
10
  def self.client= client
11
11
  @client = client
12
12
  end
13
13
 
14
- def initialize *attrs
14
+ def initialize(*attrs)
15
15
  super
16
16
  attrs.last[:episode].show = self if attrs.last && attrs.last[:episode]
17
17
  end
18
18
 
19
19
  def self.next_episodes
20
- client.tracked_tv_shows.first[1].map(&:tv_show).reject do |show|
21
- MyShows.logger.debug "TV Show data: #{show.inspect}"
22
- show.next_episode.nil? || show.next_episode.is_upcoming
23
- end.map do |show|
24
- episode = MyShows::Episode.new(season: show.next_episode.season_number, episode: show.next_episode.season_ordinal)
25
- Show.new name: show.complete_name, episode: episode
20
+ client.tracked_tv_shows.first[1].map(&:tv_show).reject do |show_data|
21
+ MyShows.logger.debug "TV Show data: #{show_data.inspect}"
22
+ next_episode = show_data.next_episode
23
+ next_episode.nil? || next_episode.is_upcoming
24
+ end.map do |show_data|
25
+ next_episode_data = show_data.next_episode
26
+
27
+ episode = MyShows::Episode.new(season: next_episode_data.season_number,
28
+ episode: next_episode_data.season_ordinal)
29
+
30
+ Show.new name: show_data.complete_name, episode: episode
26
31
  end
27
32
  end
28
33
  end
@@ -1,3 +1,3 @@
1
1
  module MyShows
2
- VERSION = '0.0.5'
2
+ VERSION = '0.0.6'
3
3
  end
@@ -26,4 +26,5 @@ Gem::Specification.new do |gem|
26
26
  gem.add_dependency('nokogiri')
27
27
  gem.add_dependency('colorize')
28
28
  gem.add_dependency('launchy')
29
+ gem.add_dependency('pmap')
29
30
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: my_shows
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
5
- prerelease:
4
+ version: 0.0.6
6
5
  platform: ruby
7
6
  authors:
8
7
  - Paul Nikitochkin
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-05-01 00:00:00.000000000 Z
11
+ date: 2013-09-28 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: hashie
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: faraday_middleware
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: fuzzy-string-match
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ~>
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: netrc
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ~>
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ~>
76
67
  - !ruby/object:Gem::Version
@@ -78,49 +69,57 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: nokogiri
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: colorize
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :runtime
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: launchy
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - '>='
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :runtime
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pmap
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
124
123
  - !ruby/object:Gem::Version
125
124
  version: '0'
126
125
  description: My Shows get list of next episodes from Sidereel.com, find torrent links
@@ -133,7 +132,6 @@ extensions: []
133
132
  extra_rdoc_files: []
134
133
  files:
135
134
  - .gitignore
136
- - .rvmrc
137
135
  - Gemfile
138
136
  - LICENSE.md
139
137
  - README.md
@@ -152,26 +150,25 @@ files:
152
150
  - screenshots/screenshot.png
153
151
  homepage: http://github.com/pftg/my_shows
154
152
  licenses: []
153
+ metadata: {}
155
154
  post_install_message:
156
155
  rdoc_options: []
157
156
  require_paths:
158
157
  - lib
159
158
  required_ruby_version: !ruby/object:Gem::Requirement
160
- none: false
161
159
  requirements:
162
- - - ! '>='
160
+ - - '>='
163
161
  - !ruby/object:Gem::Version
164
162
  version: '0'
165
163
  required_rubygems_version: !ruby/object:Gem::Requirement
166
- none: false
167
164
  requirements:
168
- - - ! '>='
165
+ - - '>='
169
166
  - !ruby/object:Gem::Version
170
167
  version: '0'
171
168
  requirements: []
172
169
  rubyforge_project:
173
- rubygems_version: 1.8.25
170
+ rubygems_version: 2.1.3
174
171
  signing_key:
175
- specification_version: 3
172
+ specification_version: 4
176
173
  summary: New TV Show Episodes downloader
177
174
  test_files: []
data/.rvmrc DELETED
@@ -1 +0,0 @@
1
- rvm use 1.9.3