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 +4 -4
- data/bin/p3tv_json_api +4 -0
- data/lib/p3-tv.rb +35 -9
- data/p3-tv.gemspec +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ad6250471357ce4924a594f52c862545dc7b4c9
|
4
|
+
data.tar.gz: 061b918b99aa378e90039bf727cd6c8f2eb8d64b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc30c3c0429ef8863e80d9ccd893acc6796b34ea5b962e3f556cf3a65d4df5b53e8396c51c5430e8fdebd2a85866903b1c2e1f65f3c7b6f4ae9ae74d3fb81567
|
7
|
+
data.tar.gz: f9da7595d4c2a6f13fd9d9bd1b576993428e3acdf64a8489e6d37f2d5786a8da054c4d4f8f7a908435d37b9b613d9c702625cb48d598a6fe9c638b7099244419
|
data/bin/p3tv_json_api
CHANGED
@@ -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 )
|
data/lib/p3-tv.rb
CHANGED
@@ -113,8 +113,11 @@ module P3
|
|
113
113
|
|
114
114
|
def episodes( seriesid )
|
115
115
|
unless @episodes.has_key?( seriesid )
|
116
|
-
|
117
|
-
|
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
|
174
|
-
|
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!
|
data/p3-tv.gemspec
CHANGED
@@ -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.
|
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"
|