Skip to content

Commit 94d036f

Browse files
committed
Expand of ActivityIdentifier
1 parent 1a777b3 commit 94d036f

File tree

2 files changed

+150
-28
lines changed

2 files changed

+150
-28
lines changed

src/main/java/material/stats/activities/ActivityHistoryReview.java

Lines changed: 39 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.google.gson.JsonArray;
1212
import com.google.gson.JsonElement;
1313
import com.google.gson.JsonObject;
14+
import material.manifest.ManifestEntityTypes;
1415
import material.user.BungieUser;
1516
import material.user.DestinyCharacter;
1617
import utils.HttpUtils;
@@ -20,21 +21,16 @@ public class ActivityHistoryReview {
2021
private HttpUtils httpUtils = new HttpUtils();
2122

2223
private BungieUser bungieUser;
23-
private DestinyCharacter destinyCharacter;
2424

2525
public ActivityHistoryReview(BungieUser bungieUser) {
2626
this.bungieUser = bungieUser;
2727
}
2828

29-
public ActivityHistoryReview(BungieUser bungieUser, DestinyCharacter destinyCharacter) {
30-
this.bungieUser = bungieUser;
31-
this.destinyCharacter = destinyCharacter;
32-
}
33-
34-
public int getCompltetions(ActivityIdentifier activityIdentifier) {
29+
public int getCompletions(ActivityIdentifier activityIdentifier) {
3530
int count = 0;
3631

37-
for(DestinyCharacter destinyCharacter : bungieUser.getCharacters()) {
32+
for (DestinyCharacter destinyCharacter : bungieUser.getCharacters()) {
33+
System.out.println(getCompletions(activityIdentifier, destinyCharacter));
3834
count += getCompletions(activityIdentifier, destinyCharacter);
3935
}
4036

@@ -44,24 +40,53 @@ public int getCompltetions(ActivityIdentifier activityIdentifier) {
4440
public int getCompletions(ActivityIdentifier activityIdentifier, DestinyCharacter destinyCharacter) {
4541
int count = 0;
4642

47-
for(int i = 0; i < 25; i++) {
43+
for (int i = 0; i < 25; i++) {
4844
JsonObject jo = httpUtils.urlRequestGET("https://www.bungie.net/Platform/Destiny2/" + bungieUser.getMembershipType() + "/Account/" + bungieUser.getBungieMembershipID() + "/Character/" + destinyCharacter.getCharacterID() + "/Stats/Activities/?page=" + i + "&count=250&mode=" + activityIdentifier.getMode().getBungieValue());
4945

50-
if(!jo.getAsJsonObject("Response").has("activities")) {
46+
if (!jo.getAsJsonObject("Response").has("activities")) {
5147
break;
5248
}
5349

5450
JsonArray ja = jo.getAsJsonObject("Response").getAsJsonArray("activities");
55-
for(JsonElement je : ja) {
51+
for (JsonElement je : ja) {
5652
JsonObject jo1 = je.getAsJsonObject();
57-
if(jo1.getAsJsonObject("activityDetails").get("directorActivityHash").getAsString().equals(activityIdentifier.getHash())) {
58-
if (jo1.getAsJsonObject("values").getAsJsonObject("completed").getAsJsonObject("basic").get("value").getAsInt() == 1) {
59-
count++;
53+
for (String s : activityIdentifier.getHashes()) {
54+
if (jo1.getAsJsonObject("activityDetails").get("referenceId").getAsString().equals(s)) {
55+
if (jo1.getAsJsonObject("values").getAsJsonObject("completed").getAsJsonObject("basic").get("value").getAsDouble() == 1) {
56+
count++;
57+
}
6058
}
6159
}
6260
}
6361
}
6462

6563
return count;
6664
}
65+
66+
public void getUndiscoveredActivityHashes(ActivityIdentifier activityIdentifier) {
67+
for (DestinyCharacter destinyCharacter : bungieUser.getCharacters()) {
68+
for (int i = 0; i < 25; i++) {
69+
JsonObject jo = httpUtils.urlRequestGET("https://www.bungie.net/Platform/Destiny2/" + bungieUser.getMembershipType() + "/Account/" + bungieUser.getBungieMembershipID() + "/Character/" + destinyCharacter.getCharacterID() + "/Stats/Activities/?page=" + i + "&count=250&mode=" + activityIdentifier.getMode().getBungieValue());
70+
71+
if (!jo.getAsJsonObject("Response").has("activities")) {
72+
break;
73+
}
74+
75+
JsonArray ja = jo.getAsJsonObject("Response").getAsJsonArray("activities");
76+
for (JsonElement je : ja) {
77+
JsonObject jo1 = je.getAsJsonObject();
78+
String hash = jo1.getAsJsonObject("activityDetails").get("referenceId").getAsString();
79+
if (ActivityIdentifier.fromHash(hash) == null) {
80+
JsonObject jo2 = httpUtils.manifestGET(ManifestEntityTypes.ACTIVITY, hash);
81+
if(jo2.has("Response") && jo2.getAsJsonObject("Response").has("displayProperties") && jo2.getAsJsonObject("Response").getAsJsonObject("displayProperties").has("name")) {
82+
jo2 = jo2.getAsJsonObject("Response").getAsJsonObject("displayProperties");
83+
System.out.println(jo2.get("name").getAsString() + " - " + hash);
84+
}
85+
}
86+
87+
}
88+
}
89+
90+
}
91+
}
6792
}

src/main/java/material/stats/activities/ActivityIdentifier.java

Lines changed: 111 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,112 @@
1616
*/
1717
public enum ActivityIdentifier {
1818

19+
// STRIKES
20+
ARMS_DEALER("AD", ActivityMode.STRIKE, "442671778", "2080275457", "2378719026", "2724706103", "2378719025", "770196931", "3240321863", "1258914202", "1679518121"),
21+
LAKE_OF_SHADOWS("LOS", ActivityMode.STRIKE, "2318521576", "3711627564", "3725993747", "2630091891", "4134816102"),
22+
23+
THE_DISGRACED("TD", ActivityMode.STRIKE, "1684420962", "174131855"),
24+
FALLEN_SABER("FS", ActivityMode.STRIKE, "3597990372", "3777220691"),
25+
DEVILS_LAIR("DL", ActivityMode.STRIKE, "969982762"),
26+
27+
SAVATHUNS_SONG("SS", ActivityMode.STRIKE, "2359594803", "1101792305", "3191123858", "649648599", "1542611209"),
28+
29+
INVERTED_SPIRE("IS", ActivityMode.STRIKE, "3704910925", "1563393783", "286562305", "1107473294", "1743518003", "338662534", "2753180142", "1743518000", "467266668"),
30+
EXODUS_CRASH("EC", ActivityMode.STRIKE, "2459768558", "1549614516", "4260306233", "1930116823", "2479262829", "1930116820", "2971335647"),
31+
INSIGHT_TERMINUS("IT", ActivityMode.STRIKE, "3751421841", "291911094", "3735153516", "3735153519"),
32+
PROVING_GROUND("PG", ActivityMode.STRIKE, "546528643", "1754609040"),
33+
34+
THE_PYRAMIDION("P", ActivityMode.STRIKE, "1035135049", "1603374112", "1332567112", "2704613535", "1332567115", "981383202", "2799837309", "4261351281"),
35+
FESTERING_CORE("FC", ActivityMode.STRIKE, "1035850837", "3596828104"),
36+
37+
TREE_OF_PROBABILITIES("TOP", ActivityMode.STRIKE, "2678510381", "1263901594", "561345572", "561345575", "840678113", "4085493024", "2684121894"),
38+
A_GARDEN_OF_WORLD("AGOW", ActivityMode.STRIKE, "656703508", "3676029623", "2230236215", "2230236212", "689927878", "117447065", "2579344189", "743963294"),
39+
40+
STRANGE_TERRAIN("ST", ActivityMode.STRIKE, "2992505404", "861639649", "3801775390", "2248296964", "861639650"),
41+
WILL_OF_THE_THOUSANDS("WOTT", ActivityMode.STRIKE, "1198216109", "3944547192", "3510043585", "1317492847", "1891220709", "3944547195"),
42+
43+
WARDEN_OF_NOTHING("WON", ActivityMode.STRIKE, "1360385764", "1360385767", "1134446996", "1493405720"),
44+
THE_HOLLOWED_LAIR("THL", ActivityMode.STRIKE, "663301842", "1475539136", "1475539139", "955874134"),
45+
BROODHOLD("BRO", ActivityMode.STRIKE, "1666283939", "3813623455"),
46+
47+
THE_CORRUPTED("TC", ActivityMode.STRIKE, "3374205762", "723056533", "224295651"),
48+
49+
THE_SCARLET_KEEP("TSK", ActivityMode.STRIKE, "1775791936", "3879143309", "3643233460", "2047723007", "346345236"),
50+
51+
THE_GLASSWAY("TG", ActivityMode.STRIKE, "2226120409", "3965479856", "3329390423"),
52+
53+
QUEST_EXODUS_CRASH("QEC", ActivityMode.STRIKE, "940394831"),
54+
55+
// NIGHTFALLS
56+
ORDEAL_ADEPT("OA", ActivityMode.ALL_STRIKES, "887176540", "3265488360", "1203950596", "1753547897"),
57+
ORDEAL_HERO("OH", ActivityMode.ALL_STRIKES, "3849697859", "887176543", "3265488363", "2136458567", "265186830", "1203950599", "3293630131", "1358381371"),
58+
ORDEAL_LEGEND("OL", ActivityMode.ALL_STRIKES, "3849697858", "1302909045", "2136458566", "265186831", "2599001913", "1495545954", "3233498448"),
59+
ORDEAL_MASTER("OM", ActivityMode.ALL_STRIKES, "3233498455", "2136458561", "2136458567"),
60+
ORDEAL_GRANDMASTER("OGM", ActivityMode.ALL_STRIKES, "2136458560", "1753547901", "265186825"),
61+
62+
ARMS_DEALER_NF("ADNF", ActivityMode.NIGHTFALL, "145302664", "3145298904"),
63+
ARMS_DEALER_NF_PRESTIGE("ADNFP", ActivityMode.ALL_STRIKES, "601540706"),
64+
QUEST_ARMS_DEALER_PRESTIGE("QADP", ActivityMode.HEROIC_NIGHTFALL, "1207505828"),
65+
LAKE_OF_SHADOWS_NF("LOSNF", ActivityMode.ALL_STRIKES, "3372160277"),
66+
67+
SAVATHUNS_SONG_NF("SSNF", ActivityMode.NIGHTFALL, "1975064760", "3280234344"),
68+
SAVATHUNS_SONG_NF_PRESTIGE("SSNFP", ActivityMode.ALL_STRIKES, "585071442"),
69+
70+
INVERTED_SPIRE_NF("ISNF", ActivityMode.NIGHTFALL, "3368226533", "4259769141"),
71+
INVERTED_SPIRE_NF_PRESTIGE("ISNFP", ActivityMode.NIGHTFALL, "3050465729"),
72+
EXODUS_CRASH_NF("ECNF", ActivityMode.ALL_STRIKES, "1282886582"),
73+
INSIGHT_TERMINUS_NF("ITNF", ActivityMode.ALL_STRIKES, "1034003646"),
74+
75+
THE_PYRAMIDION_NF("TPNF", ActivityMode.NIGHTFALL, "926940962", "3289589202"),
76+
THE_PYRAMIDION_NF_PRESTIGE("TPNFP", ActivityMode.HEROIC_NIGHTFALL, "1129066976"),
77+
UNIDENTIFIED_FRAME_THE_PYRAMIDION("UFTP", ActivityMode.HEROIC_NIGHTFALL, "1431348899"),
78+
79+
TREE_OF_PROBABILITIES_NF("TOPNF", ActivityMode.NIGHTFALL, "2046332536"),
80+
TREE_OF_PROBABILITIES_NF_PRESTIGE("TOPNFP", ActivityMode.NIGHTFALL, "2416546450"),
81+
A_GARDEN_WORLD_NF("AGWNF", ActivityMode.ALL_STRIKES, "2322829199", "936308438"),
82+
A_GARDEN_WORLD_NF_PRESTIGE("AGWP", ActivityMode.ALL_STRIKES, "2688061647"),
83+
84+
STRANGE_TERRAIN_NF("STNF", ActivityMode.ALL_STRIKES, "2179568029", "4279557030", "522318687"),
85+
STRANGE_TERRAIN_NF_PRESTIGE("STNFP", ActivityMode.ALL_STRIKES, "1794007817"),
86+
WILL_OF_THE_THOUSANDS_NF("WOTT", ActivityMode.NIGHTFALL, "3907468134", "272852450"),
87+
WILL_OF_THE_THOUSANDS_NF_PRESTIGE("WOTTP", ActivityMode.NIGHTFALL, "2383858990"),
88+
89+
THE_HOLLOWED_LAIR_NF("THLNF", ActivityMode.ALL_STRIKES, "3701132453"),
90+
WARDEN_OF_NOTHING_NF("WONNF", ActivityMode.ALL_STRIKES, "3108813009"),
91+
92+
THE_CORRUPTED_NF("TCNF", ActivityMode.NIGHTFALL, "3388474648", "3034843176"),
93+
94+
// LOST SECTORS
95+
BUNKER_E15_LEGEND("BE15L", ActivityMode.ALL_STRIKES, "1648125541"),
96+
BUNKER_E15_MASTER("BE15M", ActivityMode.ALL_STRIKES, "1648125538"),
97+
K1_CREW_QUARTERS_LEGEND("K1CQL", ActivityMode.ALL_STRIKES, "184186581"),
98+
CONCEALED_VOID_LEGEND("CVL", ActivityMode.ALL_STRIKES, "912873277"),
99+
19100
// RAIDS
20-
LEVIATHAN("LEV", "2693136602", ActivityMode.RAID),
21-
EATER_OF_WORLDS("EOW", "3089205900", ActivityMode.RAID),
22-
SPIRE_OF_STARS("SOS", "119944200", ActivityMode.RAID),
101+
LEVIATHAN("LEV", ActivityMode.RAID, "2693136600", "2693136601", "2693136602", "2693136603", "2693136604", "2693136605"),
102+
LEVIATHAN_PRESTIGE("LEVP", ActivityMode.RAID, "1685065161", "3446541099", "3879860661", "417231112", "2449714930", "757116822"),
103+
EATER_OF_WORLDS("EOW", ActivityMode.RAID, "3089205900"),
104+
EATER_OF_WORLDS_PRESTIGE("EOWP", ActivityMode.RAID, "809170886"),
105+
SPIRE_OF_STARS("SOS", ActivityMode.RAID, "119944200"),
106+
SPIRE_OF_STARS_PRESTIGE("SOSP", ActivityMode.RAID, "3213556450"),
23107

24-
LAST_WISH("LW", "2122313384", ActivityMode.RAID),
25-
SCOURGE_OF_THE_PAST("SOTP", "548750096", ActivityMode.RAID),
26-
CROWN_OF_SORROW("COS", "3333172150", ActivityMode.RAID),
108+
LAST_WISH("LW", ActivityMode.RAID, "2122313384"),
109+
SCOURGE_OF_THE_PAST("SOTP", ActivityMode.RAID, "548750096"),
110+
CROWN_OF_SORROW("COS", ActivityMode.RAID, "3333172150"),
27111

28-
GARDEN_OF_SALVATION("GOS", "8155984757", ActivityMode.RAID),
112+
GARDEN_OF_SALVATION("GOS", ActivityMode.RAID, "2659723068", "3458480158"),
29113

30-
DEEP_STONE_CRYPT("DSC", "910380154", ActivityMode.RAID),
31-
VAULT_OF_GLASS("VOG", "", ActivityMode.RAID);
114+
DEEP_STONE_CRYPT("DSC", ActivityMode.RAID, "910380154"),
115+
VAULT_OF_GLASS("VOG", ActivityMode.RAID, ""),
116+
VAULT_OF_GLASS_MASTER("VOGM", ActivityMode.RAID, "");
32117

33118
private String identifier;
34-
private String hash;
119+
private String[] hashes;
35120
private ActivityMode mode;
36121

37-
ActivityIdentifier(String identifier, String hash, ActivityMode mode) {
122+
ActivityIdentifier(String identifier, ActivityMode mode, String... hashes) {
38123
this.identifier = identifier;
39-
this.hash = hash;
124+
this.hashes = hashes;
40125
this.mode = mode;
41126
}
42127

@@ -48,8 +133,8 @@ public String getIdentifier() {
48133
* Get the directorActivityHash of the Activity
49134
* Can be used to compare different activities
50135
*/
51-
public String getHash() {
52-
return hash;
136+
public String[] getHashes() {
137+
return hashes;
53138
}
54139

55140
public ActivityMode getMode() { return mode; }
@@ -63,4 +148,16 @@ public static ActivityIdentifier fromShorthand(String shortHand) {
63148

64149
return null;
65150
}
151+
152+
public static ActivityIdentifier fromHash(String hash) {
153+
for(ActivityIdentifier activityIdentifier : ActivityIdentifier.values()) {
154+
for(String s : activityIdentifier.getHashes()) {
155+
if(s.equals(hash)) {
156+
return activityIdentifier;
157+
}
158+
}
159+
}
160+
161+
return null;
162+
}
66163
}

0 commit comments

Comments
 (0)