Skip to content

Commit cd37629

Browse files
author
Damian Staszewski
committed
re-updating changes
- Deleted util for safety work. - packages sorting - preparing for new classes.
1 parent 8025b6a commit cd37629

File tree

11 files changed

+150
-49
lines changed

11 files changed

+150
-49
lines changed

src/main/java/pl/stachuofficial/HiRezAPI.java renamed to src/main/java/pl/stachuofficial/hirezapi/HiRezAPI.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
package pl.stachuofficial;
1+
package pl.stachuofficial.hirezapi;
22

3-
import pl.stachuofficial.hirezstudios.Paladins;
4-
import pl.stachuofficial.hirezstudios.Smite;
3+
import pl.stachuofficial.hirezapi.games.Paladins;
4+
import pl.stachuofficial.hirezapi.games.Smite;
55

66
import java.io.*;
77
import java.nio.file.Paths;
@@ -13,7 +13,7 @@
1313
* @since 1.8
1414
*/
1515
public class HiRezAPI {
16-
private static final File filesession = Paths.get(System.getProperty("java.io.tmpdir"), ".hirezsessions").toFile();
16+
private static final File filesession = Paths.get(System.getProperty("java.io.tmpdir"), ".sessions").toFile();
1717

1818
/**
1919
* Session keys for specific base API url type

src/main/java/pl/stachuofficial/util/HttpClient.java renamed to src/main/java/pl/stachuofficial/hirezapi/api/HttpClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package pl.stachuofficial.util;
1+
package pl.stachuofficial.hirezapi.api;
22

33
import okhttp3.OkHttpClient;
44
import okhttp3.Request;

src/main/java/pl/stachuofficial/hirezstudios/Session.java renamed to src/main/java/pl/stachuofficial/hirezapi/api/Session.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
package pl.stachuofficial.hirezstudios;
1+
package pl.stachuofficial.hirezapi.api;
22

3-
import pl.stachuofficial.HiRezAPI;
4-
import pl.stachuofficial.util.HttpClient;
5-
import pl.stachuofficial.util.StringData;
6-
import pl.stachuofficial.util.Utility;
3+
import pl.stachuofficial.hirezapi.HiRezAPI;
4+
import pl.stachuofficial.hirezapi.games.Paladins;
5+
import pl.stachuofficial.hirezapi.games.Smite;
76

87
/**
98
* @author <a href="[email protected]">Damian Staszewski</a>
@@ -13,32 +12,35 @@ public class Session extends HttpClient {
1312
private final String platform;
1413
private final String devId;
1514
private final String authKey;
15+
private final Signature sig;
1616

17-
Session(Smite.Platform platform, String devId, String authKey) {
17+
public Session(Smite.Platform platform, String devId, String authKey) {
1818
super(platform.getUrl());
1919
this.platform = "SMITE_" + platform.name();
2020
this.devId = devId;
2121
this.authKey = authKey;
22+
this.sig = new Signature(platform, devId, authKey);
2223
if (!HiRezAPI.sessions.containsKey(this.platform)) this.generateSession();
2324
if (!testSession().toString().startsWith("\"This was a successful test with the following parameters added:")) this.generateSession();
2425
}
2526

26-
Session(Paladins.Platform platform, String devId, String authKey) {
27+
public Session(Paladins.Platform platform, String devId, String authKey) {
2728
super(platform.getUrl());
2829
this.platform = "PALADINS_" + platform.name();
2930
this.devId = devId;
3031
this.authKey = authKey;
32+
this.sig = new Signature(platform, devId, authKey);
3133
if (!HiRezAPI.sessions.containsKey(this.platform)) this.generateSession();
3234
if (!testSession().toString().startsWith("\"This was a successful test with the following parameters added:")) this.generateSession();
3335
}
3436

35-
StringData get(String endpoint, String... args) {
36-
return new StringData(request(Utility.generateUrl(this.platform, endpoint, devId, authKey), args));
37+
public StringData get(String endpoint, String... args) {
38+
return new StringData(request(this.sig.generateUrl(endpoint), args));
3739
}
3840

39-
void generateSession() {
41+
public void generateSession() {
4042
try {
41-
StringData data = new StringData(request("createsessionJson", devId, Utility.generateSignature(devId, authKey, "createsession"), Utility.generateTimestamp()));
43+
StringData data = new StringData(request(this.sig.createSession()));
4244
if (data.toJsonObject().getString("ret_msg").equals("Approved")) {
4345
HiRezAPI.sessions.setProperty(this.platform, data.toJsonObject().getString("session_id"));
4446
} else throw new Exception(data.toJsonObject().getString("ret_msg"));
@@ -47,11 +49,11 @@ void generateSession() {
4749
}
4850
}
4951

50-
String testSession() {
52+
public String testSession() {
5153
return get("testsession").toString();
5254
}
5355

54-
StringData getDataUsage() {
56+
public StringData getDataUsage() {
5557
return get("getdataused");
5658
}
5759
}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
package pl.stachuofficial.hirezapi.api;
2+
3+
import pl.stachuofficial.hirezapi.HiRezAPI;
4+
import pl.stachuofficial.hirezapi.games.Paladins;
5+
import pl.stachuofficial.hirezapi.games.Smite;
6+
7+
import java.security.MessageDigest;
8+
import java.text.SimpleDateFormat;
9+
import java.util.Date;
10+
import java.util.SimpleTimeZone;
11+
12+
public class Signature {
13+
private final String devId;
14+
private final String authKey;
15+
private final String platform;
16+
17+
Signature(Smite.Platform platform, String devId, String authKey) {
18+
this.devId = devId;
19+
this.authKey = authKey;
20+
this.platform = "SMITE_" + platform.name();
21+
}
22+
23+
Signature(Paladins.Platform platform, String devId, String authKey) {
24+
this.devId = devId;
25+
this.authKey = authKey;
26+
this.platform = "PALADINS_" + platform.name();
27+
}
28+
29+
private String generateTimestamp() {
30+
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
31+
sdf.setTimeZone(new SimpleTimeZone(SimpleTimeZone.UTC_TIME, "UTC"));
32+
return sdf.format(new Date());
33+
}
34+
35+
private String generateSignature(String method) {
36+
try {
37+
String sig = devId + method + authKey + generateTimestamp();
38+
StringBuilder sb = new StringBuilder();
39+
40+
41+
MessageDigest md = MessageDigest.getInstance("MD5");
42+
md.update(sig.getBytes());
43+
byte bytes[] = md.digest();
44+
45+
for (byte bit : bytes) {
46+
String hex = Integer.toHexString(0xff & bit);
47+
if (hex.length() == 1) sb.append("0");
48+
sb.append(hex);
49+
}
50+
return sb.toString();
51+
} catch (Exception ex) {
52+
ex.printStackTrace();
53+
return null;
54+
}
55+
}
56+
57+
public String generateUrl(String method) {
58+
String url = method + "Json/";
59+
url += devId + "/";
60+
url += generateSignature(method) + "/";
61+
url += HiRezAPI.sessions.getProperty(platform);
62+
url += generateTimestamp() + "/";
63+
64+
return url;
65+
}
66+
67+
public String createSession() {
68+
String url = "createsessionJson/";
69+
url += devId + "/";
70+
url += generateSignature("createsession") + "/";
71+
url += generateTimestamp() + "/";
72+
73+
return url;
74+
}
75+
}

src/main/java/pl/stachuofficial/util/StringData.java renamed to src/main/java/pl/stachuofficial/hirezapi/api/StringData.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package pl.stachuofficial.util;
1+
package pl.stachuofficial.hirezapi.api;
22

33
import org.json.JSONArray;
44
import org.json.JSONObject;

src/main/java/pl/stachuofficial/hirezstudios/instance/Language.java renamed to src/main/java/pl/stachuofficial/hirezapi/api/instance/Language.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package pl.stachuofficial.hirezstudios.instance;
1+
package pl.stachuofficial.hirezapi.api.instance;
22

33
import java.util.HashMap;
44
import java.util.Map;

src/main/java/pl/stachuofficial/hirezstudios/instance/TierLeauge.java renamed to src/main/java/pl/stachuofficial/hirezapi/api/instance/TierLeauge.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package pl.stachuofficial.hirezstudios.instance;
1+
package pl.stachuofficial.hirezapi.api.instance;
22

33
import java.util.HashMap;
44
import java.util.Map;

src/main/java/pl/stachuofficial/hirezstudios/HiRezGames.java renamed to src/main/java/pl/stachuofficial/hirezapi/games/HiRez.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
package pl.stachuofficial.hirezstudios;
1+
package pl.stachuofficial.hirezapi.games;
22

3-
import pl.stachuofficial.hirezstudios.instance.Language;
4-
import pl.stachuofficial.hirezstudios.instance.TierLeauge;
5-
import pl.stachuofficial.util.HttpClient;
6-
import pl.stachuofficial.util.StringData;
3+
import pl.stachuofficial.hirezapi.api.Session;
4+
import pl.stachuofficial.hirezapi.api.instance.Language;
5+
import pl.stachuofficial.hirezapi.api.instance.TierLeauge;
6+
import pl.stachuofficial.hirezapi.api.HttpClient;
7+
import pl.stachuofficial.hirezapi.api.StringData;
78

89
import java.text.SimpleDateFormat;
910
import java.util.Date;
@@ -12,19 +13,19 @@
1213
* @author <a href="[email protected]">Damian Staszewski</a>
1314
* @since 1.8
1415
*/
15-
public class HiRezGames extends HttpClient {
16+
public class HiRez extends HttpClient {
1617
private final String devId;
1718
private final String authKey;
1819
private final Session session;
1920

20-
HiRezGames(Smite.Platform platform, String devId, String authKey) {
21+
HiRez(Smite.Platform platform, String devId, String authKey) {
2122
super(platform.url);
2223
this.devId = devId;
2324
this.authKey = authKey;
2425
this.session = new Session(platform, devId, authKey);
2526
}
2627

27-
HiRezGames(Paladins.Platform platform, String devId, String authKey) {
28+
HiRez(Paladins.Platform platform, String devId, String authKey) {
2829
super(platform.url);
2930
this.devId = devId;
3031
this.authKey = authKey;

src/main/java/pl/stachuofficial/hirezstudios/Paladins.java renamed to src/main/java/pl/stachuofficial/hirezapi/games/Paladins.java

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
package pl.stachuofficial.hirezstudios;
1+
package pl.stachuofficial.hirezapi.games;
22

33

4-
import pl.stachuofficial.hirezstudios.instance.Language;
5-
import pl.stachuofficial.util.StringData;
4+
import pl.stachuofficial.hirezapi.api.instance.Language;
5+
import pl.stachuofficial.hirezapi.api.StringData;
66

77
import java.util.HashMap;
88
import java.util.Map;
@@ -11,7 +11,7 @@
1111
* @author <a href="[email protected]">Damian Staszewski</a>
1212
* @since 1.8
1313
*/
14-
public class Paladins extends HiRezGames{
14+
public class Paladins extends HiRez {
1515

1616
public enum Platform {
1717
/**
@@ -40,6 +40,14 @@ public enum Platform {
4040
this.url = url;
4141
}
4242

43+
/**
44+
* Retrieve variable name
45+
* @return Full game name with the platform.
46+
*/
47+
public final String toName() {
48+
return "Paladins " + name();
49+
}
50+
4351
/**
4452
* Getting URL
4553
* @return API URL
@@ -86,7 +94,7 @@ public enum Queue {
8694
Custom_B_Brightmarsh(458),
8795
Multi_Queue(999);
8896

89-
private int id;
97+
private final int id;
9098

9199
private static Map<Integer, Queue> map = new HashMap<Integer, Queue>();
92100

@@ -102,12 +110,16 @@ public enum Queue {
102110

103111
public int getId() { return id; }
104112

113+
@Override
114+
public String toString() {
115+
return super.toString().replace("_", " ").replace("Coop", "(Coop)");
116+
}
117+
105118
public static Queue valueOf(int id) {
106119
return map.get(id);
107120
}
108121
}
109122

110-
111123
/**
112124
* Smite API
113125
* @param devId Developer ID (DevId)

src/main/java/pl/stachuofficial/hirezstudios/Smite.java renamed to src/main/java/pl/stachuofficial/hirezapi/games/Smite.java

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
package pl.stachuofficial.hirezstudios;
1+
package pl.stachuofficial.hirezapi.games;
22

3-
import pl.stachuofficial.hirezstudios.instance.Language;
4-
import pl.stachuofficial.util.StringData;
3+
import pl.stachuofficial.hirezapi.api.instance.Language;
4+
import pl.stachuofficial.hirezapi.api.StringData;
55

66
import java.util.HashMap;
77
import java.util.Map;
@@ -10,7 +10,8 @@
1010
* @author <a href="[email protected]">Damian Staszewski</a>
1111
* @since 1.8
1212
*/
13-
public class Smite extends HiRezGames {
13+
public class Smite extends HiRez {
14+
1415
public enum Platform {
1516
/**
1617
* Smite PC API
@@ -38,9 +39,19 @@ public enum Platform {
3839
this.url = url;
3940
}
4041

41-
public String getUrl() {
42-
return url;
42+
/**
43+
* Retrieve variable name
44+
* @return Full game name with the platform.
45+
*/
46+
public final String toName() {
47+
return "Smite " + name();
4348
}
49+
50+
/**
51+
* Getting URL
52+
* @return API URL
53+
*/
54+
public String getUrl() { return url; }
4455
}
4556

4657
public enum Queue {
@@ -69,10 +80,10 @@ public enum Queue {
6980

7081
private int id;
7182

72-
private static Map<Integer, Queue> map = new HashMap<Integer, Queue>();
83+
private static Map<Integer, Smite.Queue> map = new HashMap<Integer, Smite.Queue>();
7384

7485
static {
75-
for(Queue queue : Queue.values()) {
86+
for(Smite.Queue queue : Smite.Queue.values()) {
7687
map.put(queue.id, queue);
7788
}
7889
}
@@ -83,7 +94,7 @@ public enum Queue {
8394

8495
public int getId() { return id; }
8596

86-
public static Queue valueOf(int id) {
97+
public static Smite.Queue valueOf(int id) {
8798
return map.get(id);
8899
}
89100
}

0 commit comments

Comments
 (0)