p3-tv 0.11.2 → 1.0.0

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.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/bin/p3tv_web_api +137 -0
  3. data/p3-tv.gemspec +3 -2
  4. metadata +25 -19
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1e44fcb3561c60edb3a282c4c10d3a5fb9142611
4
+ data.tar.gz: f15181f0b76742d5e9a50825562f330ea4e9e529
5
+ SHA512:
6
+ metadata.gz: 82cf00530baf8a48ab4674f749a0a1d6ca0fef87bc89f0b2d07e091f70327089dfbe820f696d03424182b8ec5cbf49537c00aece41445b733c8fc9389320f4ab
7
+ data.tar.gz: fd003ebdf2606af5aaa21974a0e3e20c6be6eb03246a57c6796cdf21606899f7c70b7e57a96c1b00e3429abd535200d4d6d116434f8421c91a68a194cade3016
@@ -0,0 +1,137 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require 'p3-tv'
4
+ require 'sinatra/base'
5
+
6
+ Encoding.default_external = 'UTF-8'
7
+
8
+ P3::TV::Settings::create_default! unless P3::TV::Settings::exists?
9
+
10
+ module P3
11
+ module TV
12
+ class WebApi < Sinatra::Base
13
+ configure do
14
+ set :bind, '0.0.0.0'
15
+
16
+ tv = P3::TV::Settings.new
17
+ set :tv, tv
18
+ end
19
+
20
+
21
+ get '/settings' do
22
+ return settings.tv.to_h.to_json
23
+ end
24
+
25
+ get '/exit' do
26
+ P3::TV::WebApi::quit!
27
+ return { :success => true }.to_json
28
+ end
29
+
30
+ get '/set' do
31
+ tv = settings.tv
32
+ begin
33
+ tv[ params['key'] ] = Integer( params['val'] )
34
+ rescue
35
+ begin
36
+ tv[ params['key'] ] = Float( params['val'] )
37
+ rescue
38
+ case params['val']
39
+ when "true"
40
+ tv[ params['key'] ] = true
41
+ when "false"
42
+ tv[ params['key'] ] = false
43
+ else
44
+ tv[ params['key'] ] = params['val'] #string
45
+ end
46
+ end
47
+ end
48
+ return { :success => true }.to_json
49
+ end
50
+
51
+ get '/search' do
52
+
53
+ search = P3::TV::Search.new( settings.tv )
54
+ results = search.find_series( params['key'] )
55
+ results = results.collect{|r| r.to_h }
56
+ return results.to_json
57
+ end
58
+
59
+ get '/add_series' do
60
+ tv = settings.tv
61
+ search = P3::TV::Search.new( tv )
62
+ series = search.find_series_by_id( params['key'] )
63
+ tv.add_series!( series ) if series
64
+ return { :success => true }.to_json
65
+ end
66
+
67
+ get '/remove_series' do
68
+ tv = settings.tv
69
+ search = P3::TV::Search.new( tv )
70
+ series = search.find_series_by_id( params['key'] )
71
+ tv.remove_series!( series.id ) if series
72
+ return { :success => true }.to_json
73
+ end
74
+
75
+ get '/update_series' do
76
+ tv = settings.tv
77
+ if( tv[:series].detect{|s| s[:id] == params['key'] } ) #only update series that have already been added
78
+ search = P3::TV::Search.new( tv )
79
+ series = search.find_series_by_id( params['key'] )
80
+ tv.update_series!( series ) if series
81
+ end
82
+ return { :success => true }.to_json
83
+ end
84
+
85
+ get '/episode_status' do
86
+ tv = settings.tv
87
+ search = P3::TV::Search.new( tv )
88
+ library = P3::TV::Library.new( tv )
89
+ downloads = P3::TV::Downloads.new( tv )
90
+ files = []
91
+ tv.each_series_episode_file_status( params['key'], search, downloads, library ) do | episode_file |
92
+ files << episode_file.to_h
93
+ end
94
+ return files.to_json
95
+ end
96
+
97
+ get '/download_missing' do
98
+ tv = settings.tv
99
+ P3::TV::download_missing_series!( params['key'], tv )
100
+ return { :success => true }.to_json
101
+ end
102
+
103
+ get '/catalog_and_downloads' do
104
+ tv = settings.tv
105
+
106
+ downloads = P3::TV::Downloads.new( tv )
107
+
108
+ if( downloads.remove_completed_torrents! > 0 )
109
+ P3::TV::catalog_downloads!( tv, downloads )
110
+ end
111
+
112
+ files = []
113
+ downloads.each_downloading_file do | episode_file |
114
+ files << episode_file.to_h
115
+ end
116
+ files.sort!{|a,b| b[:percent_done] <=> a[:percent_done] } #highest percent first
117
+ return files.to_json
118
+ end
119
+
120
+ get '/catalog_downloads_for_series' do
121
+ tv = settings.tv
122
+ P3::TV::catalog_downloads_series!( params['key'], tv )
123
+ return { :success => true }.to_json
124
+ end
125
+
126
+ get '/catalog_downloads' do
127
+ tv = settings.tv
128
+ P3::TV::catalog_downloads!( tv )
129
+ return { :success => true }.to_json
130
+ end
131
+
132
+
133
+ end
134
+ end
135
+ end
136
+
137
+ P3::TV::WebApi::run!
@@ -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.11.2"
7
+ spec.version = "1.0.0"
8
8
  spec.authors = ["Poul Hornsleth"]
9
9
  spec.email = ["poulh@umich.edu"]
10
10
  spec.summary = "TV Show Organizer, Renamer, and Downloader"
@@ -18,9 +18,10 @@ Gem::Specification.new do |spec|
18
18
 
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_runtime_dependency "p3-eztv", "~> 0.0.7"
21
+ spec.add_runtime_dependency "p3-eztv", "~> 0.0.8"
22
22
  spec.add_runtime_dependency "p3-tvdb", "~> 0.9.0"
23
23
  spec.add_runtime_dependency "p3-transmission", "~> 0.0.15"
24
24
  spec.add_runtime_dependency "highline", "~> 1.7"
25
+ spec.add_runtime_dependency "sinatra", "~> 1.4.0"
25
26
 
26
27
  end
metadata CHANGED
@@ -1,36 +1,32 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: p3-tv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.2
5
- prerelease:
4
+ version: 1.0.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Poul Hornsleth
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2017-03-01 00:00:00.000000000 Z
11
+ date: 2017-03-19 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: p3-eztv
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
21
- version: 0.0.7
19
+ version: 0.0.8
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
29
- version: 0.0.7
26
+ version: 0.0.8
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: p3-tvdb
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: p3-transmission
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: highline
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ~>
68
60
  - !ruby/object:Gem::Version
@@ -70,11 +62,24 @@ 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
77
68
  version: '1.7'
69
+ - !ruby/object:Gem::Dependency
70
+ name: sinatra
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 1.4.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 1.4.0
78
83
  description: Organize and rename your TV Shows. Automatically find links to missing
79
84
  shows. Includes Command-Line Utility 'p3tv'
80
85
  email:
@@ -82,6 +87,7 @@ email:
82
87
  executables:
83
88
  - p3tv
84
89
  - p3tv_json_api
90
+ - p3tv_web_api
85
91
  extensions: []
86
92
  extra_rdoc_files: []
87
93
  files:
@@ -90,31 +96,31 @@ files:
90
96
  - README.md
91
97
  - bin/p3tv
92
98
  - bin/p3tv_json_api
99
+ - bin/p3tv_web_api
93
100
  - lib/p3-tv.rb
94
101
  - p3-tv.gemspec
95
102
  homepage: https://github.com/poulh/p3-tv
96
103
  licenses:
97
104
  - MIT
105
+ metadata: {}
98
106
  post_install_message:
99
107
  rdoc_options: []
100
108
  require_paths:
101
109
  - lib
102
110
  required_ruby_version: !ruby/object:Gem::Requirement
103
- none: false
104
111
  requirements:
105
- - - ! '>='
112
+ - - '>='
106
113
  - !ruby/object:Gem::Version
107
114
  version: '0'
108
115
  required_rubygems_version: !ruby/object:Gem::Requirement
109
- none: false
110
116
  requirements:
111
- - - ! '>='
117
+ - - '>='
112
118
  - !ruby/object:Gem::Version
113
119
  version: '0'
114
120
  requirements: []
115
121
  rubyforge_project:
116
- rubygems_version: 1.8.23
122
+ rubygems_version: 2.0.14.1
117
123
  signing_key:
118
- specification_version: 3
124
+ specification_version: 4
119
125
  summary: TV Show Organizer, Renamer, and Downloader
120
126
  test_files: []