tvzavr_client 0.1.1 → 0.1.2
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/tvzavr_client/version.rb +1 -1
- data/lib/tvzavr_client.rb +72 -70
- 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: 1e500140c0b0e2a3d7b3947ade1fb66742d78588
|
|
4
|
+
data.tar.gz: 4cb1ef966dfc326cd6c73b61ac50cdd908c1d56b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 093225bb3faeae5e4de9a9e19db8813e42f8d87a67fc171f5e8ccdf805b82179c800c4ad8f9394eba54ae64ecb359aa0aefe85f29c397e1d4e03c8d240901bcf
|
|
7
|
+
data.tar.gz: 6a310c2cceca90fa960e62b0e18cd8355ce786572c190121d0ee3e8f9c04563fdcd6af5fad1cd191e3bfe1b52dd21894d71fc4409007d3307c6075f20d0de234
|
data/lib/tvzavr_client.rb
CHANGED
|
@@ -1,86 +1,88 @@
|
|
|
1
1
|
require "tvzavr_client/version"
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
module TvzavrClient
|
|
4
|
+
class Client
|
|
5
|
+
attr_accessor :page, :per_page, :total_count
|
|
6
|
+
attr_accessor :obj_data, :clip_id
|
|
7
|
+
attr_reader :public_key, :private_key
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
def initialize(arg={})
|
|
10
|
+
@page = arg[:page] || 1
|
|
11
|
+
@per_page = arg[:per_page] || 30
|
|
12
|
+
@public_key = arg[:public_key]
|
|
13
|
+
@private_key = arg[:private_key]
|
|
14
|
+
@defatul_tariff_id = 4 # Определено на строне tvzavr
|
|
15
|
+
end
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
def get_catalog category_id = nil
|
|
18
|
+
url="http://api.tvzavr.ru/api/3.0/catalog/get?limit=#{per_page}&offset=#{(page-1)*per_page}&plf=elx"
|
|
19
|
+
url = url + "&cats=#{category_id}" unless category_id.blank?
|
|
20
|
+
puts url
|
|
21
|
+
body = RestClient.get(url).body
|
|
22
|
+
@obj_data = JSON.parse(body)
|
|
23
|
+
@total_count = @obj_data['result']['total_count']
|
|
24
|
+
end
|
|
24
25
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
def get_series clip_id
|
|
27
|
+
url = "http://www.tvzavr.ru/api/3.0/video/get_series?cid=#{clip_id}&plf=elx&apn=tvzavr&apv=3.9.1&ctt=json"
|
|
28
|
+
puts url
|
|
29
|
+
body = RestClient.get(url).body
|
|
30
|
+
@obj_data = JSON.parse(body)
|
|
31
|
+
@total_count = @obj_data['result']['total_count']
|
|
32
|
+
end
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
def info
|
|
35
|
+
url = "http://api.tvzavr.ru/api/3.0/video/get_info?cid=#{clip_id}"
|
|
36
|
+
body = RestClient.get(url).body
|
|
37
|
+
JSON.parse(body)
|
|
38
|
+
end
|
|
38
39
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
def thumb(clip_id)
|
|
41
|
+
url="http://www.tvzavr.ru/cache/644x363/#{clip_id}.jpg"
|
|
42
|
+
end
|
|
42
43
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
def video_list
|
|
45
|
+
@obj_data['result']['video_list']
|
|
46
|
+
end
|
|
46
47
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
def series_list
|
|
49
|
+
@obj_data['result']['series']
|
|
50
|
+
end
|
|
50
51
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
52
|
+
def sign_pay(params)
|
|
53
|
+
query_str = params.to_a.sort_by{|i| i[0]}.map{|i| i.join("=") }.join('&')
|
|
54
|
+
for_sign = query_str + "&#{private_key}"
|
|
55
|
+
sig = Digest::MD5.hexdigest(for_sign)#.upcase
|
|
56
|
+
"#{query_str}&sign=#{sig}&public_key=#{public_key}"
|
|
57
|
+
end
|
|
57
58
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
def build_pay_url params
|
|
60
|
+
res = "http://www.tvzavr.ru/api/pay/attach?#{sign_pay(params)}"
|
|
61
|
+
puts res
|
|
62
|
+
res
|
|
63
|
+
end
|
|
63
64
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
def sign_video_url params
|
|
66
|
+
#md5("cid=19525&uid=123&589aceea-e1ee-11e5-a987-0025909102f8")
|
|
67
|
+
for_sign = "cid=#{params[:video_id]}&uid=#{params[:user_id]}&#{private_key}"
|
|
68
|
+
sig = Digest::MD5.hexdigest(for_sign)
|
|
69
|
+
end
|
|
69
70
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
71
|
+
def build_video_url params
|
|
72
|
+
params[:quality] ||= 'nr'
|
|
73
|
+
url = "http://api.tvzavr.ru/api/3.1/video/partner_url?cid=#{params[:video_id]}&quality=#{params[:quality]}&media=http&uid=#{params[:user_id]}&sign=#{sign_video_url(params)}&plf=#{public_key}"
|
|
74
|
+
res = JSON.parse(RestClient.get(url).body)
|
|
75
|
+
puts params
|
|
76
|
+
puts res
|
|
77
|
+
{status: res['status'], url: (res['status'].to_i == 0 ? res['result']['url'] : '')}
|
|
78
|
+
end
|
|
78
79
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
80
|
+
def pay(user_id, tariff_id)
|
|
81
|
+
url = build_pay_url({user_id: user_id, product_id: tariff_id})
|
|
82
|
+
body = RestClient.get(url).body
|
|
83
|
+
return :dublicate if body == 'duplicate_operation'
|
|
84
|
+
return :ok if body == 'ok'
|
|
85
|
+
return :error
|
|
86
|
+
end
|
|
85
87
|
end
|
|
86
88
|
end
|