Skip to content
This repository was archived by the owner on Mar 25, 2024. It is now read-only.

Commit 4d99db7

Browse files
committed
bug fix, updated
changed results per page for captain search, added captain search seed.
1 parent 6c50ddf commit 4d99db7

6 files changed

Lines changed: 45 additions & 41 deletions

File tree

StreamRaidersBot/Bot/src/program/SRR.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ public String leaveCaptain(String captainId) throws NoConnectionException {
312312

313313

314314

315-
public String getCaptainsForSearch(int page, int resultsPerPage, boolean fav, boolean live, String mode, boolean searchForCaptain, String name) throws NoConnectionException {
315+
public String getCaptainsForSearch(int page, String seed, boolean fav, boolean live, String mode, boolean searchForCaptain, String name) throws NoConnectionException {
316316
JsonObject filter = new JsonObject();
317317
filter.addProperty("ambassadors", "false");
318318
filter.addProperty("favorite", (fav ? "true" : "false"));
@@ -323,8 +323,9 @@ public String getCaptainsForSearch(int page, int resultsPerPage, boolean fav, bo
323323

324324
Http post = getPost("getCaptainsForSearch");
325325
post.addEncArg("page", ""+page);
326-
post.addEncArg("resultsPerPage", ""+resultsPerPage);
326+
post.addEncArg("resultsPerPage", "30");
327327
post.addEncArg("filters", filter.toString());
328+
post.addEncArg("seed", seed==null?"0":seed);
328329

329330
return sendPost(post);
330331
}

StreamRaidersBot/Bot/src/program/SRRHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ public int getPagesFromLastSearch() {
309309
}
310310

311311
public JsonArray search(int page, int resultsPerPage, boolean fav, boolean live, String mode, boolean searchForCaptain, String name) throws NoConnectionException {
312-
JsonObject rawd = Json.parseObj(req.getCaptainsForSearch(page, resultsPerPage, fav, live, mode, searchForCaptain, name));
312+
JsonObject rawd = Json.parseObj(req.getCaptainsForSearch(page, null, fav, live, mode, searchForCaptain, name));
313313
if(rawd == null) {
314314
Debug.print("SRRHelper -> search: rawd=null", Debug.runerr, Debug.error, null, null, true);
315315
return new JsonArray();

StreamRaidersBot/Bot/src/run/BackEndHandler.java

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -318,25 +318,9 @@ synchronized public void updateCaps(boolean force, boolean dungeon) throws NoCon
318318
return;
319319

320320
JsonArray rawCaps = new JsonArray();
321-
int last = 10;
322-
for(int i=1; i<=last; i++) {
323-
JsonObject raw = Json.parseObj(req.getCaptainsForSearch(i, 8, false, true, dungeon ? SRC.Search.dungeons : SRC.Search.campaign, false, null));
324-
if(testUpdate(raw))
325-
raw = Json.parseObj(req.getCaptainsForSearch(i, 8, false, true, dungeon ? SRC.Search.dungeons : SRC.Search.campaign, false, null));
326-
327-
JsonObject data = raw.getAsJsonObject("data");
328-
last = data.get("lastPage").getAsInt();
329-
330-
JsonArray loyalty = data.getAsJsonArray("pveLoyalty");
331-
JsonArray captains = data.getAsJsonArray("captains");
332-
333-
for(int j=0; j<loyalty.size(); j++) {
334-
captains.get(j).getAsJsonObject().addProperty(SRC.Raid.pveWins, loyalty.get(j).getAsJsonObject().getAsJsonPrimitive(SRC.Raid.pveWins).getAsInt());
335-
captains.get(j).getAsJsonObject().addProperty(SRC.Raid.pveLoyaltyLevel, loyalty.get(j).getAsJsonObject().getAsJsonPrimitive(SRC.Raid.pveLoyaltyLevel).getAsInt());
336-
}
337-
338-
rawCaps.addAll(captains);
339-
}
321+
SeedAndLastPage sap = new SeedAndLastPage();
322+
for(int i=1; i<=sap.lastPage; i++)
323+
rawCaps.addAll(searchCap(i, sap, false, true, dungeon ? SRC.Search.dungeons : SRC.Search.campaign, false, null));
340324

341325
Captain[] caps = new Captain[rawCaps.size()];
342326

@@ -349,31 +333,50 @@ synchronized public void updateCaps(boolean force, boolean dungeon) throws NoCon
349333
uelis.afterUpdate("caps::"+dungeon);
350334
}
351335

352-
public synchronized void setCaps(Captain[] caps, boolean dungeon) {
336+
synchronized public void setCaps(Captain[] caps, boolean dungeon) {
353337
if(dungeon)
354338
dunCaps = caps;
355339
else
356340
this.caps = caps;
357341
}
358342

359-
public JsonArray searchCap(int page, int resultsPerPage, boolean fav, boolean live, String mode, boolean searchForCaptain, String name) throws NoConnectionException, NotAuthorizedException {
360-
JsonObject rawd = Json.parseObj(req.getCaptainsForSearch(page, resultsPerPage, fav, live, mode, searchForCaptain, name));
361-
if(testUpdate(rawd))
362-
rawd = Json.parseObj(req.getCaptainsForSearch(page, resultsPerPage, fav, live, mode, searchForCaptain, name));
343+
private static class SeedAndLastPage {
344+
public String seed = "0";
345+
public int lastPage = 10;
346+
public SeedAndLastPage() {}
347+
public SeedAndLastPage(String seed) {
348+
this.seed = seed;
349+
}
350+
}
351+
352+
private JsonArray searchCap(int page, SeedAndLastPage sap, boolean fav, boolean live, String mode, boolean searchForCaptain, String name) throws NoConnectionException, NotAuthorizedException {
353+
JsonObject raw = Json.parseObj(req.getCaptainsForSearch(page, sap.seed, fav, live, mode, searchForCaptain, name));
354+
if(testUpdate(raw))
355+
raw = Json.parseObj(req.getCaptainsForSearch(page, sap.seed, fav, live, mode, searchForCaptain, name));
363356

364-
JsonObject raw = rawd.getAsJsonObject("data");
357+
JsonObject data = raw.getAsJsonObject("data");
365358

366-
JsonArray loyalty = raw.getAsJsonArray("pveLoyalty");
367-
JsonArray captains = raw.getAsJsonArray("captains");
359+
sap.seed = data.get("seed").getAsString();
360+
sap.lastPage = data.get("lastPage").getAsInt();
368361

369-
for(int i=0; i<loyalty.size(); i++) {
370-
captains.get(i).getAsJsonObject().addProperty(SRC.Raid.pveWins, loyalty.get(i).getAsJsonObject().getAsJsonPrimitive(SRC.Raid.pveWins).getAsInt());
371-
captains.get(i).getAsJsonObject().addProperty(SRC.Raid.pveLoyaltyLevel, loyalty.get(i).getAsJsonObject().getAsJsonPrimitive(SRC.Raid.pveLoyaltyLevel).getAsInt());
362+
JsonArray loyalty = data.getAsJsonArray("pveLoyalty");
363+
JsonArray captains = data.getAsJsonArray("captains");
364+
365+
for(int j=0; j<loyalty.size(); j++) {
366+
JsonElement cap = captains.get(j);
367+
if(!cap.isJsonObject())
368+
continue;
369+
cap.getAsJsonObject().addProperty(SRC.Raid.pveWins, loyalty.get(j).getAsJsonObject().getAsJsonPrimitive(SRC.Raid.pveWins).getAsInt());
370+
cap.getAsJsonObject().addProperty(SRC.Raid.pveLoyaltyLevel, loyalty.get(j).getAsJsonObject().getAsJsonPrimitive(SRC.Raid.pveLoyaltyLevel).getAsInt());
372371
}
373372

374373
return captains;
375374
}
376375

376+
public JsonArray searchCap(int page, String seed, boolean fav, boolean live, String mode, boolean searchForCaptain, String name) throws NoConnectionException, NotAuthorizedException {
377+
return searchCap(page, new SeedAndLastPage(seed), fav, live, mode, searchForCaptain, name);
378+
}
379+
377380
public Captain[] getCaps(boolean dungeon) throws NoConnectionException, NotAuthorizedException {
378381
updateCaps(false, dungeon);
379382
return dungeon

StreamRaidersBot/Bot/src/run/Run.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ public void afterUpdate(String obj) {
193193
if(got.contains(tdn) || !ConfigsV2.getCapBoo(cid, currentLayer, tdn, dungeon ? ConfigsV2.dungeon : ConfigsV2.campaign, ConfigsV2.il))
194194
continue;
195195

196-
JsonArray results = beh.searchCap(1, 8, false, false, dungeon ? SRC.Search.dungeons : SRC.Search.campaign, true, tdn);
196+
JsonArray results = beh.searchCap(1, null, false, false, dungeon ? SRC.Search.dungeons : SRC.Search.campaign, true, tdn);
197197
if(results.size() == 0)
198198
continue;
199199

StreamRaidersBot/GraphicalUserInterface/src/userInterface/CapSearch.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public void open(GUI parent, ListType list, String search) {
5050
public void run() {
5151
JsonArray caps;
5252
try {
53-
caps = Manager.getProfile(cid).getBackEndHandler().searchCap(1, 8, false, false, SRC.Search.all, true, search);
53+
caps = Manager.getProfile(cid).getBackEndHandler().searchCap(1, null, false, false, SRC.Search.all, true, search);
5454
} catch (NoConnectionException | NotAuthorizedException e) {
5555
Debug.printException("CapSearch -> open: err=failed to search captain", e, Debug.general, Debug.error, null, null, true);
5656
return;

StreamRaidersBot/data/opt.txt

Lines changed: 6 additions & 6 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)