shin 1.2.1 → 1.3.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.
- checksums.yaml +4 -4
- data/lib/shin/data/previewnetworks.rb +14 -40
- data/lib/shin/play/cmore.rb +109 -0
- data/lib/shin/play.rb +6 -2
- data/lib/shin/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ecec717d7cca804f8e00aa1ebf8beda52e5efeed
|
4
|
+
data.tar.gz: 7a384eb0d0b040bdaff6da63228f012cb5dfcb30
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6072eedbb446dbba05c6a2a7a3c9b12bde0262702add8f82e149f400dc4f9c9637b7af16eb2930f2afb67f06342855bb7ab38f276f9ed820224567fb37d9769a
|
7
|
+
data.tar.gz: 2e5fb16c83675088f8245581f57e257cd2cb91efe32390b98d6844d80b5c39e5ef2b39485d405765098c4130f38e2c1ab9a292697b31b8bafbcb9b37261fc5ad
|
@@ -4,61 +4,35 @@ require 'date'
|
|
4
4
|
module Shin
|
5
5
|
module Data
|
6
6
|
class Previewnetworks
|
7
|
-
|
7
|
+
|
8
8
|
def new
|
9
9
|
self
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
# Fix these before running
|
13
13
|
def before(params={})
|
14
14
|
raise MissingArgument, "You are missing the argument 'previewnetworks_key' which is required to use this source." unless Shin.get[:previewnetworks_key] != nil
|
15
|
-
|
15
|
+
|
16
16
|
# Timestamp
|
17
17
|
Shin.get[:previewnetworks_country] ||= "se"
|
18
|
-
|
19
|
-
"http://" + Shin.get[:previewnetworks_country] + ".feed.previewnetworks.com"
|
20
|
-
end
|
21
|
-
|
22
|
-
# Search (on title)
|
23
|
-
def search(params={})
|
24
|
-
url = before()
|
25
|
-
|
26
|
-
# Response
|
27
|
-
response = Base.get(url + '/v3.1/all/search-2/' + Shin.get[:previewnetworks_key] + '/?' + URI.encode_www_form(params))
|
28
|
-
raise HTTPError, "The response didn't have a 200 HTTP Code. It had #{response.code}." unless response.code == 200
|
29
18
|
|
30
|
-
|
31
|
-
doc = Nokogiri::XML(response.body)
|
32
|
-
|
33
|
-
doc.remove_namespaces!
|
34
|
-
data = []
|
35
|
-
doc.xpath("//previewnetworks/movies/movie").each do |d|
|
36
|
-
data << Hash.from_xml(d.to_xml)[:movie]
|
37
|
-
end
|
38
|
-
|
39
|
-
data.to_hashugar
|
19
|
+
"http://cinema.maxplatform.com/api/json/media-feed/" + Shin.get[:previewnetworks_country]
|
40
20
|
end
|
41
|
-
|
42
|
-
#
|
43
|
-
def
|
21
|
+
|
22
|
+
# Search (on imdb)
|
23
|
+
def search_imdb(params={})
|
44
24
|
url = before()
|
45
|
-
|
25
|
+
raise MissingArgument, "You are missing the argument 'imdb_id' which is required to use this source." unless params[:imdb_id] != ""
|
26
|
+
|
46
27
|
# Response
|
47
|
-
response = Base.get(url + '/
|
28
|
+
response = Base.get(url + '/cinema/all-1/' + Shin.get[:previewnetworks_key] + '/?search_field=imdb_id&search_query=' + params[:imdb_id])
|
48
29
|
raise HTTPError, "The response didn't have a 200 HTTP Code. It had #{response.code}." unless response.code == 200
|
49
30
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
doc.remove_namespaces!
|
54
|
-
data = {}
|
55
|
-
doc.xpath("//previewnetworks/movies/movie").each do |d|
|
56
|
-
data = Hash.from_xml(d.to_xml)[:movie]
|
57
|
-
end
|
58
|
-
|
31
|
+
data = Oj.load(response.body) rescue nil
|
32
|
+
|
59
33
|
data.to_hashugar
|
60
34
|
end
|
61
|
-
|
35
|
+
|
62
36
|
end
|
63
37
|
end
|
64
|
-
end
|
38
|
+
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
## Use CMore's mobile api to find movies and tv series
|
2
|
+
CMORE_API_URL = "https://middleware2.filmnet.se/dispatch-prod/"
|
3
|
+
module Shin
|
4
|
+
module Play
|
5
|
+
class Cmore
|
6
|
+
|
7
|
+
def new
|
8
|
+
self
|
9
|
+
end
|
10
|
+
|
11
|
+
# Fix these before running
|
12
|
+
def before(params={})
|
13
|
+
raise MissingArgument, "You are missing the argument 'cmore_code' which is required to use this source." unless Shin.get[:cmore_code] != nil
|
14
|
+
|
15
|
+
return "http://www.cmore." + Shin.get[:cmore_code] + "/", CMORE_API_URL + "capiche.cmore." + Shin.get[:cmore_code] + "/"
|
16
|
+
end
|
17
|
+
|
18
|
+
# Get a list
|
19
|
+
def list(list_id)
|
20
|
+
domain, api_domain = before()
|
21
|
+
country = Shin.get[:cmore_code]
|
22
|
+
|
23
|
+
# Get list
|
24
|
+
response = Base.get(api_domain + 'api/CMA/content/panel/' + list_id + '.json')
|
25
|
+
raise HTTPError, "The response didn't have a 200 HTTP Code. It had #{response.code}." unless response.code == 200
|
26
|
+
|
27
|
+
# Data
|
28
|
+
data = Oj.load(response.body) rescue nil
|
29
|
+
|
30
|
+
# Can't be nil
|
31
|
+
if data != nil
|
32
|
+
data['results'].to_hashugar
|
33
|
+
else
|
34
|
+
raise NotValid, "Couldn't parse the JSON"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# Show
|
39
|
+
def show(params={})
|
40
|
+
domain, api_domain = before()
|
41
|
+
country = Shin.get[:cmore_code]
|
42
|
+
|
43
|
+
# Response
|
44
|
+
response = Base.get(api_domain + 'serie/' + params[:id] + '.json')
|
45
|
+
raise HTTPError, "The response didn't have a 200 HTTP Code. It had #{response.code}." unless response.code == 200
|
46
|
+
|
47
|
+
# Data
|
48
|
+
data = Oj.load(response.body) rescue nil
|
49
|
+
|
50
|
+
# Can't be nil
|
51
|
+
if data != nil
|
52
|
+
data.to_hashugar
|
53
|
+
else
|
54
|
+
raise NotValid, "Couldn't parse the JSON"
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
# Movie
|
60
|
+
def movie(params={})
|
61
|
+
domain, api_domain = before()
|
62
|
+
country = Shin.get[:cmore_code]
|
63
|
+
|
64
|
+
# Response
|
65
|
+
response = Base.get(api_domain + 'film/' + params[:id] + '.json')
|
66
|
+
raise HTTPError, "The response didn't have a 200 HTTP Code. It had #{response.code}." unless response.code == 200
|
67
|
+
|
68
|
+
# Data
|
69
|
+
data = Oj.load(response.body) rescue nil
|
70
|
+
|
71
|
+
# Can't be nil
|
72
|
+
if data != nil
|
73
|
+
data.to_hashugar
|
74
|
+
else
|
75
|
+
raise NotValid, "Couldn't parse the JSON"
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
|
80
|
+
# Find
|
81
|
+
def find(params={})
|
82
|
+
domain, api_domain = before()
|
83
|
+
country = Shin.get[:cmore_code]
|
84
|
+
|
85
|
+
# Response
|
86
|
+
response = Base.get(api_domain + 'films/find.json?page_count=50&' + URI.encode_www_form(params))
|
87
|
+
raise HTTPError, "The response didn't have a 200 HTTP Code. It had #{response.code}." unless response.code == 200
|
88
|
+
|
89
|
+
# Data
|
90
|
+
data = Oj.load(response.body) rescue nil
|
91
|
+
|
92
|
+
# Can't be nil
|
93
|
+
if data != nil
|
94
|
+
data.to_hashugar
|
95
|
+
else
|
96
|
+
raise NotValid, "Couldn't parse the JSON"
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
# Errors
|
104
|
+
class NotValid < StandardError; end
|
105
|
+
class MissingArgument < StandardError; end
|
106
|
+
class HTTPError < StandardError; end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
data/lib/shin/play.rb
CHANGED
@@ -12,8 +12,7 @@ require_relative 'play/viasat'
|
|
12
12
|
#require_relative 'play/plejmo'
|
13
13
|
#require_relative 'play/sfanytime'
|
14
14
|
require_relative 'play/apple'
|
15
|
-
|
16
|
-
#require_relative 'play/filmnet'
|
15
|
+
require_relative 'play/cmore'
|
17
16
|
#require_relative 'play/discshop'
|
18
17
|
require_relative 'play/hbonordic'
|
19
18
|
|
@@ -80,6 +79,11 @@ module Shin
|
|
80
79
|
@hbonordic ||= Hbonordic.new
|
81
80
|
end
|
82
81
|
|
82
|
+
# CMore (NORDIC CONTENT)
|
83
|
+
def cmore
|
84
|
+
@cmore ||= Cmore.new
|
85
|
+
end
|
86
|
+
|
83
87
|
# Apple iTunes (WORLDWIDE CONTENT)
|
84
88
|
def apple
|
85
89
|
@apple ||= Apple.new
|
data/lib/shin/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joakim Nylen
|
@@ -103,6 +103,7 @@ files:
|
|
103
103
|
- lib/shin/httparty_icebox.rb
|
104
104
|
- lib/shin/play.rb
|
105
105
|
- lib/shin/play/apple.rb
|
106
|
+
- lib/shin/play/cmore.rb
|
106
107
|
- lib/shin/play/dplay.rb
|
107
108
|
- lib/shin/play/hbonordic.rb
|
108
109
|
- lib/shin/play/oppetarkiv.rb
|