my_shows 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -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