p3-tv 0.11.2 → 1.0.0

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