paladins 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGELOG.md +6 -0
- data/Gemfile.lock +1 -1
- data/lib/paladins.rb +9 -0
- data/lib/paladins/client.rb +22 -8
- data/lib/paladins/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8fce42ac5f9e2ee6cd3df1ba4c818d86167645e6
|
4
|
+
data.tar.gz: 732786fc042df2f8e53481c40f614cc87675c9d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af44a0d2cc566e9ea760d4a67b6c21c951e761f43d8ae1dc2b683549a743cd3c7849f41d02eba432720eb0b4e5ed9e8f9e825b74ab95ba4368b4baea4bda3561
|
7
|
+
data.tar.gz: 5e67c65fa2bbc56abf887ee9f6a7394f01a7e4b246c3262fe191ee66ffd1803349daad09a54931ec29a2c177f7bb777ec3de67493823e0d9cf0c88d4c084cbe9
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
## 0.1.3 (alpha)
|
2
|
+
|
3
|
+
- added support for method Paladins.getplayer(player_name)
|
4
|
+
- clients now check for expired or nil sessions and create new session after 15 minutes
|
5
|
+
- gem is now thread safe (tests missing, so I'm not really sure about it :)
|
6
|
+
|
1
7
|
## 0.1.2 (alpha)
|
2
8
|
|
3
9
|
- added support for method Paladins.ping
|
data/Gemfile.lock
CHANGED
data/lib/paladins.rb
CHANGED
@@ -23,16 +23,25 @@ module Paladins
|
|
23
23
|
|
24
24
|
def self.gethirezserverstatus
|
25
25
|
client = Paladins::Client.new(configuration)
|
26
|
+
client.extend(MonitorMixin)
|
26
27
|
client.get_hirez_server_status
|
27
28
|
end
|
28
29
|
|
29
30
|
def self.ping
|
30
31
|
client = Paladins::Client.new(configuration)
|
32
|
+
client.extend(MonitorMixin)
|
31
33
|
client.ping
|
32
34
|
end
|
33
35
|
|
34
36
|
def self.getchampionranks(player_name)
|
35
37
|
client = Paladins::Client.new(configuration)
|
38
|
+
client.extend(MonitorMixin)
|
36
39
|
client.get_champion_ranks(player_name)
|
37
40
|
end
|
41
|
+
|
42
|
+
def self.getplayer(player_name)
|
43
|
+
client = Paladins::Client.new(configuration)
|
44
|
+
client.extend(MonitorMixin)
|
45
|
+
client.get_player(player_name)
|
46
|
+
end
|
38
47
|
end
|
data/lib/paladins/client.rb
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
require 'faraday'
|
2
2
|
require 'json'
|
3
3
|
require 'digest'
|
4
|
+
require 'monitor'
|
4
5
|
|
5
6
|
module Paladins
|
6
7
|
class Client
|
7
|
-
|
8
|
+
# include MonitorMixin
|
9
|
+
|
10
|
+
@@session = { id: nil, updated_at: nil }
|
8
11
|
|
9
12
|
attr_accessor :api_url, :dev_id, :auth_key, :response_format
|
10
13
|
|
@@ -23,25 +26,30 @@ module Paladins
|
|
23
26
|
def create_session
|
24
27
|
# /createsession[ResponseFormat]/{developerId}/{signature}/{timestamp}
|
25
28
|
response = Faraday.get(url(method: 'createsession', session: false))
|
26
|
-
@@
|
27
|
-
|
28
|
-
@@session_id
|
29
|
+
@@session[:updated_at] = Time.now
|
30
|
+
@@session[:id] = JSON.parse(response.body).dig('session_id')
|
29
31
|
end
|
30
32
|
|
31
33
|
def test_session
|
32
34
|
# /testsession[ResponseFormat]/{developerId}/{signature}/{session}/{timestamp}
|
33
35
|
time_now = Paladins::Utils.time_now
|
34
|
-
response = Faraday.get("#{@api_url}/testsessionJson/#{@dev_id}/#{get_signature('testsession', time_now)}/#{@@
|
36
|
+
response = Faraday.get("#{@api_url}/testsessionJson/#{@dev_id}/#{get_signature('testsession', time_now)}/#{@@session[:id]}/#{time_now}")
|
35
37
|
attributes = JSON.parse(response.body)
|
36
38
|
end
|
37
39
|
|
38
40
|
def session_expired?
|
39
|
-
|
40
|
-
|
41
|
+
self.synchronize do
|
42
|
+
if Time.now - @@session[:updated_at] > 60*12
|
43
|
+
@@session[:updated_at] = Time.now
|
44
|
+
true
|
45
|
+
else
|
46
|
+
false
|
47
|
+
end
|
48
|
+
end
|
41
49
|
end
|
42
50
|
|
43
51
|
def get_or_create_session
|
44
|
-
|
52
|
+
( @@session[:id].nil? || session_expired? ) ? create_session : @@session[:id]
|
45
53
|
end
|
46
54
|
|
47
55
|
def ping
|
@@ -62,6 +70,12 @@ module Paladins
|
|
62
70
|
attributes = JSON.parse(response.body)
|
63
71
|
end
|
64
72
|
|
73
|
+
def get_player(player_name)
|
74
|
+
# /getplayer[ResponseFormat]/{developerId}/{signature}/{session}/{timestamp}/{player}
|
75
|
+
response = Faraday.get(url(method: 'getplayer', session: true) + "/#{player_name}")
|
76
|
+
attributes = JSON.parse(response.body)
|
77
|
+
end
|
78
|
+
|
65
79
|
def url(method:, session: false)
|
66
80
|
time_now = Paladins::Utils.time_now
|
67
81
|
url = "#{@api_url}/#{method}#{@response_format}/#{@dev_id}/#{get_signature(method, time_now)}"
|
data/lib/paladins/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paladins
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Davide Ghezzi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-07-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -138,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
138
|
version: '0'
|
139
139
|
requirements: []
|
140
140
|
rubyforge_project:
|
141
|
-
rubygems_version: 2.
|
141
|
+
rubygems_version: 2.6.14
|
142
142
|
signing_key:
|
143
143
|
specification_version: 4
|
144
144
|
summary: Ruby wrapper for Paladins API.
|