p3-tv 0.10.1 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9b78df076b97e1ced100b706c5d3560c209739eb
4
- data.tar.gz: 889bd1c8cc65afc788b59dd5bf0333862ac012fd
3
+ metadata.gz: 6ad6250471357ce4924a594f52c862545dc7b4c9
4
+ data.tar.gz: 061b918b99aa378e90039bf727cd6c8f2eb8d64b
5
5
  SHA512:
6
- metadata.gz: e0f3ce7b2e5e510dbc7a86c89ab0223cbb930530e57facfb712c83d263da59f7547329bf3be0b89815dca34b101387429a6d471aa8e23b9629cc0089c2cadf2f
7
- data.tar.gz: 9d8dec9cad0f020a6170758fb34c479e154e27acf9d3f9f144c9fb9039f0f9fb36f5e230580fa08cdd76fac82f76a14620a708bce5a01cee1dd3ef3e8efae515
6
+ metadata.gz: dc30c3c0429ef8863e80d9ccd893acc6796b34ea5b962e3f556cf3a65d4df5b53e8396c51c5430e8fdebd2a85866903b1c2e1f65f3c7b6f4ae9ae74d3fb81567
7
+ data.tar.gz: f9da7595d4c2a6f13fd9d9bd1b576993428e3acdf64a8489e6d37f2d5786a8da054c4d4f8f7a908435d37b9b613d9c702625cb48d598a6fe9c638b7099244419
@@ -42,6 +42,10 @@ when 'remove_series'
42
42
  search = P3::TV::Search.new( settings )
43
43
  series = search.find_series_by_id( ARGV[1] )
44
44
  settings.remove_series!( series.id ) if series
45
+ when 'update_series'
46
+ search = P3::TV::Search.new( settings )
47
+ series = search.find_series_by_id( ARGV[1] )
48
+ settings.update_series!( series ) if series
45
49
  when 'episode_status'
46
50
  search = P3::TV::Search.new( settings )
47
51
  library = P3::TV::Library.new( settings )
@@ -113,8 +113,11 @@ module P3
113
113
 
114
114
  def episodes( seriesid )
115
115
  unless @episodes.has_key?( seriesid )
116
- f = File::open( File::join( series_dir( seriesid ), EPISODES_JSON ) )
117
- @episodes[ seriesid ] = JSON::parse( f.read, :symbolize_names => true )
116
+ episode_file = File::join( series_dir( seriesid ), EPISODES_JSON )
117
+ if( File::exists?( episode_file ) )
118
+ f = File::open( episode_file )
119
+ @episodes[ seriesid ] = JSON::parse( f.read, :symbolize_names => true )
120
+ end
118
121
  end
119
122
  return @episodes[ seriesid ]
120
123
  end
@@ -170,13 +173,8 @@ module P3
170
173
  return File::join( File::dirname( @path ), 'series', seriesid )
171
174
  end
172
175
 
173
- def add_series!( series )
174
- hash = series.to_h
175
- hash[:banners] = {}
176
- meta_path = series_dir( hash[:id] )
177
- hash[:banners][:poster] = download_banners!( series.posters( self[:language] ), File::join( meta_path, 'poster.jpg' ) )
178
- hash[:banners][:banner] = download_banners!( series.series_banners( self[:language] ), File::join( meta_path, 'banner.jpg' ) )
179
-
176
+ def download_episodes!( series )
177
+ meta_path = series_dir( series.id )
180
178
  episodes = []
181
179
  series.episodes.each do |episode|
182
180
  episode_hash = episode.to_h
@@ -187,6 +185,19 @@ module P3
187
185
  f.puts JSON::pretty_generate( episodes )
188
186
  f.close()
189
187
 
188
+ @episodes.delete( series.id ) #clear the cache
189
+ end
190
+
191
+ def add_series!( series )
192
+ meta_path = series_dir( series.id )
193
+
194
+ hash = series.to_h
195
+ hash[:banners] = {}
196
+ hash[:banners][:poster] = download_banners!( series.posters( self[:language] ), File::join( meta_path, 'poster.jpg' ) )
197
+ hash[:banners][:banner] = download_banners!( series.series_banners( self[:language] ), File::join( meta_path, 'banner.jpg' ) )
198
+
199
+ download_episodes!( series )
200
+
190
201
  remove_series!( hash[:id] )
191
202
  self[:series] << hash
192
203
  leading_the = /^The /
@@ -194,6 +205,21 @@ module P3
194
205
  self.save!
195
206
  end
196
207
 
208
+ def update_series!( series )
209
+ return unless series.status == "Continuing"
210
+
211
+ ep = self.episodes( series.id )
212
+ return unless( ep )
213
+
214
+ ep.select!{|e| e[:air_date] }
215
+ ep.sort!{|a,b| b[:air_date] <=> a[:air_date] } #newest episode first
216
+
217
+ today = Date::today.to_s
218
+ if( ep.empty? or ( ep[0][:air_date] < today ) )
219
+ download_episodes!( series )
220
+ end
221
+ end
222
+
197
223
  def remove_series!( seriesid )
198
224
  self[:series].reject!{|s| s[:id] == seriesid }
199
225
  self.save!
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "p3-tv"
7
- spec.version = "0.10.1"
7
+ spec.version = "0.11.0"
8
8
  spec.authors = ["Poul Hornsleth"]
9
9
  spec.email = ["poulh@umich.edu"]
10
10
  spec.summary = "TV Show Organizer, Renamer, and Downloader"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: p3-tv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Poul Hornsleth