paladins 0.1.2 → 0.1.3
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 +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.
|