eme_services_client 0.0.11
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 +7 -0
- data/lib/eme/admin_user.rb +132 -0
- data/lib/eme/admin_user/required_login.rb +44 -0
- data/lib/eme/ams.rb +29 -0
- data/lib/eme/auth.rb +24 -0
- data/lib/eme/billing.rb +496 -0
- data/lib/eme/billing/workers/refresh_wallet_worker.rb +23 -0
- data/lib/eme/bt.rb +21 -0
- data/lib/eme/lootbox.rb +27 -0
- data/lib/eme/shop.rb +15 -0
- data/lib/eme/sso.rb +41 -0
- data/lib/eme/sso/token_reader.rb +74 -0
- data/lib/eme/subscription.rb +246 -0
- data/lib/eme/tera_game_data.rb +67 -0
- data/lib/eme/tera_server.rb +13 -0
- data/lib/eme/tera_server/server.rb +47 -0
- data/lib/eme_services_client.rb +19 -0
- metadata +130 -0
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'api_consumer'
|
2
|
+
|
3
|
+
module EME
|
4
|
+
class TeraGameData < APIConsumer
|
5
|
+
def self.guilds_by_leader_account(leader_master_account_id, server_name, conn = connection, opts = {})
|
6
|
+
return do_request("/guilds/owned_by_user/#{server_name}/#{leader_master_account_id}", conn, opts)
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.guild(guild_id, server_name, conn = connection, opts = {})
|
10
|
+
return do_request("/guilds/#{server_name}/#{guild_id}", conn, opts)
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.guild_of_character(character_id, server_name, conn = connection, opts={})
|
14
|
+
return do_request("/guilds/of_character/#{server_name}/#{character_id}", conn, opts)
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.search_characters_by_name(character_name, server_name, conn = connection, opt={})
|
18
|
+
#body = {:name => character_name, :server_id => server_abbr(server_name)}.to_json
|
19
|
+
return do_request("/characters/search?name=#{character_name}&server_id=#{server_id(server_name)}", conn)
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.search_characters_by_game_account(game_account_id, server_name, conn = connection, opt={})
|
23
|
+
#body = {:game_account_id => game_account_id, :server_id => server_id(server_name)}.to_json
|
24
|
+
return do_request("/characters/search?game_account_id=#{game_account_id}&server_id=#{server_id(server_name)}", conn)
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.servers(conn_flag = :normal, reload = false)
|
28
|
+
errors = { "404" => "wat", "500" => "Server Error" }
|
29
|
+
return do_request("/servers", connection(conn_flag), {:errors => errors, :key => "server-list", :ttl => 300})
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.server_abbr(server_name)
|
33
|
+
return PRESET_ABBR[server_name] if PRESET_ABBR[server_name]
|
34
|
+
tmp = server_name.split(' ')
|
35
|
+
return(tmp[0][0] + tmp[1][0]).upcase if tmp.length > 1
|
36
|
+
(tmp[0][0] + tmp[0][1]).upcase
|
37
|
+
end
|
38
|
+
PRESET_ABBR = {"Highwatch" => 'HW', "Lake of Tears" => "LT", "Valley of Titans" => "VT", "New Pora" => "PA"}.freeze
|
39
|
+
|
40
|
+
RACE_OPTIONS = [["Human", 0], ["High Elf", 1], ["Aman", 2], ["Castanic", 3], ["Elin", 4], ["Popori", 4], ["Baraka", 5]]
|
41
|
+
GENDER_OPTIONS = [["Male", 0], ["Female", 1]]
|
42
|
+
|
43
|
+
def self.display_race(race_id, gender_id)
|
44
|
+
return RACES[race_id][gender_id]
|
45
|
+
end
|
46
|
+
RACES = {
|
47
|
+
0 => {0 => "Human", 1 => "Human"},
|
48
|
+
1 => {0 => "High Elf", 1 => "High Elf"},
|
49
|
+
2 => {0 => "Aman", 1 => "Aman"},
|
50
|
+
3 => {0 => "Castanic", 1 => "Castanic"},
|
51
|
+
4 => {0 => "Popori", 1 => "Elin"},
|
52
|
+
5 => {0 => "Baraka", 1 => "Baraka"}
|
53
|
+
}
|
54
|
+
def self.display_class(class_id)
|
55
|
+
return class_id if class_id >= CLASSES.count
|
56
|
+
return CLASSES[class_id]
|
57
|
+
end
|
58
|
+
CLASSES = ["Warrior", "Lancer", "Slayer", "Berserker", "Sorcerer", "Archer", "Priest", "Mystic", "Reaper", "Gunner", "Brawler", "Ninja", "Valkyrie"]
|
59
|
+
|
60
|
+
def self.server_id(server_name)
|
61
|
+
server_list = servers
|
62
|
+
server = server_list.select{|x| x["name"] == server_name || server_abbr(x["name"]) == server_name}[0]
|
63
|
+
return server["server_id"] if server
|
64
|
+
return nil
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'api_consumer'
|
2
|
+
|
3
|
+
module EME
|
4
|
+
class TeraServer < APIConsumer
|
5
|
+
def self.list(conn = connection, opts = {})
|
6
|
+
server_data = do_request("/servers/list.en", conn, opts)
|
7
|
+
servers = server_data["serverlist"]["server"].collect{|sd| puts sd.inspect; EME::TeraServer::Server.new({:name => sd["name"], :id => sd["id"], :kind => sd["category"], :status_flag => sd["server_stat"], :message => sd["popup"], :crowd => sd["crowdness"], :open => sd["open"]})}
|
8
|
+
servers.sort!{|a,b| a.name <=> b.name}
|
9
|
+
return servers
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
require_relative './tera_server/server'
|
@@ -0,0 +1,47 @@
|
|
1
|
+
class EME::TeraServer::Server
|
2
|
+
attr_reader :name, :id, :kind, :message, :crowd, :open
|
3
|
+
def initialize(opts)
|
4
|
+
@name = opts[:name]
|
5
|
+
@id = opts[:id].to_i
|
6
|
+
@kind = opts[:kind]
|
7
|
+
@status_flag = opts[:status_flag]
|
8
|
+
@message = opts[:message]
|
9
|
+
@crowd = opts[:crowd]
|
10
|
+
@open = opts[:open]
|
11
|
+
end
|
12
|
+
|
13
|
+
def abbr
|
14
|
+
return EME::TeraServer::Server.abbr(self.name)
|
15
|
+
end
|
16
|
+
|
17
|
+
def status
|
18
|
+
return "Up" if up?
|
19
|
+
return "Down" if down?
|
20
|
+
return "Maintenance"
|
21
|
+
end
|
22
|
+
|
23
|
+
def maintenance?
|
24
|
+
@status_flag.to_i(16) == 0x100
|
25
|
+
end
|
26
|
+
|
27
|
+
def up?
|
28
|
+
@status_flag.to_i(16) < 0x100
|
29
|
+
end
|
30
|
+
|
31
|
+
def down?
|
32
|
+
@status_flag.to_i(16) > 0x100
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.abbr(server_name)
|
36
|
+
return PRESET_ABBR[server_name] if PRESET_ABBR[server_name]
|
37
|
+
tmp = server_name.split(' ')
|
38
|
+
return(tmp[0][0] + tmp[1][0]).upcase if tmp.length > 1
|
39
|
+
(tmp[0][0] + tmp[0][1]).upcase
|
40
|
+
end
|
41
|
+
PRESET_ABBR = {"Highwatch" => 'HW', "Lake of Tears" => "LT", "Valley of Titans" => "VT", "New Pora" => "PA"}.freeze
|
42
|
+
|
43
|
+
def self.server_id(server_name)
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'api_consumer'
|
2
|
+
module EME
|
3
|
+
|
4
|
+
def self.load_services
|
5
|
+
loaded = []
|
6
|
+
SERVICES.each do |serv|
|
7
|
+
if(File.exists?("./config/eme_#{serv}.yml"))
|
8
|
+
require_relative "./eme/#{serv}"
|
9
|
+
loaded << serv
|
10
|
+
end
|
11
|
+
end
|
12
|
+
return loaded
|
13
|
+
end
|
14
|
+
|
15
|
+
SERVICES = ["admin_user", "ams", "auth", "billing", "bt", "email", "lootbox", "sso", "shop",
|
16
|
+
"subscription", "tera_game_data", "tera_server"]
|
17
|
+
end
|
18
|
+
|
19
|
+
EME.load_services()
|
metadata
ADDED
@@ -0,0 +1,130 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: eme_services_client
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.11
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Chris Reister
|
8
|
+
- Roderick Hossack
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2017-03-22 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: api_consumer
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - '>='
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: 0.0.6
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - '>='
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 0.0.6
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: fast_config
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - '>='
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 0.0.1
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - '>='
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 0.0.1
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: sucker_punch
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ~>
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 1.6.0
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ~>
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 1.6.0
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: rspec
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ~>
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '3.0'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '3.0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: fakeweb
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ~>
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '1.3'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ~>
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '1.3'
|
84
|
+
description: Consume Private EME APIs
|
85
|
+
email: creister@enmasse.com
|
86
|
+
executables: []
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- lib/eme_services_client.rb
|
91
|
+
- lib/eme/subscription.rb
|
92
|
+
- lib/eme/auth.rb
|
93
|
+
- lib/eme/ams.rb
|
94
|
+
- lib/eme/billing.rb
|
95
|
+
- lib/eme/billing/workers/refresh_wallet_worker.rb
|
96
|
+
- lib/eme/sso.rb
|
97
|
+
- lib/eme/sso/token_reader.rb
|
98
|
+
- lib/eme/shop.rb
|
99
|
+
- lib/eme/bt.rb
|
100
|
+
- lib/eme/lootbox.rb
|
101
|
+
- lib/eme/admin_user.rb
|
102
|
+
- lib/eme/admin_user/required_login.rb
|
103
|
+
- lib/eme/tera_server.rb
|
104
|
+
- lib/eme/tera_server/server.rb
|
105
|
+
- lib/eme/tera_game_data.rb
|
106
|
+
homepage: https://github.com/enmasse-entertainment/eme_services_client
|
107
|
+
licenses:
|
108
|
+
- NONE
|
109
|
+
metadata: {}
|
110
|
+
post_install_message:
|
111
|
+
rdoc_options: []
|
112
|
+
require_paths:
|
113
|
+
- lib
|
114
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - '>='
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - '>='
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
requirements: []
|
125
|
+
rubyforge_project:
|
126
|
+
rubygems_version: 2.0.3
|
127
|
+
signing_key:
|
128
|
+
specification_version: 4
|
129
|
+
summary: EME Private Services Clients
|
130
|
+
test_files: []
|