From 7a2112a759511b9bb662d9d4afba2aca02d3a80d Mon Sep 17 00:00:00 2001 From: Jannik Date: Fri, 25 Aug 2017 14:57:15 +0200 Subject: [PATCH] smmd rework part 1 due to changes on the smmdb api i have to rework the smmdb integration --- bin/.gitignore | 1 + bin/application/MainWindowController$10.class | Bin 1723 -> 1723 bytes bin/application/MainWindowController$11.class | Bin 1307 -> 1307 bytes bin/application/MainWindowController$12.class | Bin 4908 -> 4908 bytes bin/application/MainWindowController$7.class | Bin 3520 -> 3660 bytes bin/application/MainWindowController$8.class | Bin 1745 -> 1745 bytes bin/application/MainWindowController$9.class | Bin 1108 -> 1108 bytes bin/application/MainWindowController.class | Bin 43951 -> 43986 bytes bin/application/SmmdbApiQuery.class | Bin 5038 -> 4366 bytes bin/datatypes/SmmdbApiDataType.class | Bin 5510 -> 5522 bytes src/application/MainWindowController.java | 12 +-- src/application/SmmdbApiQuery.java | 78 ++++++++++++------ src/datatypes/SmmdbApiDataType.java | 18 ++-- 13 files changed, 68 insertions(+), 41 deletions(-) diff --git a/bin/.gitignore b/bin/.gitignore index b42b859..9eb92dc 100644 --- a/bin/.gitignore +++ b/bin/.gitignore @@ -1 +1,2 @@ /application/ +/datatypes/ diff --git a/bin/application/MainWindowController$10.class b/bin/application/MainWindowController$10.class index 809367865a20a6eefca945860bc3eab0366d529f..8395b7018a50a8f723c6a3321f48215b1f123d20 100644 GIT binary patch delta 43 zcmdnZyPJ2zR8~gq$NnGG3qn2i|RnT;9zm`xZ$nN26#u+;+q->(SG delta 43 zcmdnZyPJ2zR8~gK$cm_NG delta 27 icmbQuHJfXL2MeRwWKR|^PD=)EW-A6EX6wmwSn2^>90oK1 diff --git a/bin/application/MainWindowController$12.class b/bin/application/MainWindowController$12.class index c33404791b35271f602ace633f3b28b4b0bbd5e9..e7bcebc70fc98c0e33357db4c0044cc5fc0e42db 100644 GIT binary patch delta 161 zcmV;S0AByBCafl~-VOoZv)>NF0)OHFB?ILEDg)*KL<8plOatWrUjyp^Y6I*5bp!1H zfCKOVj05oissr)>$^-QP^#k?+0R#5|D+BleE(7@iGz0qqMg#l-T?73AcLV>J_HK_Xao-eat;I#0(k@y P0)qq-0*V9{lP(hetA8wt delta 161 zcmV;S0AByBCafl~-VOoXv)>NF0)OBDB?IFCDg)#IL<8jjOatQpUjyj?Y6I#3bpz`F zfCKITj05igssr!<$^-KN^#k+)0R!~`D+BfcE(7-gGz0koMg#f*T?6|8cLV(aeFOdh zi39%ulLP<(p9BE`q67i~$pi!e-vk8#`UD0769fkWI|K*F_P4TgcxA4NkLtgc3HM;w{^QM z1(b4AE^_VRj%c}AP*6+D^rnUfo(u^j%8N?E3$MgCV}jtB?Y@v0Cz<(w=l^~GZ@!sx zZk6Au2>$$Z>?dF$KUzpZwW<=;1GT4pZ`!QkU5mAXU`xC!9!bYD$w+i_M=sIo@E-3A zCbf0u1fk`5I@K0gkxgZC(OfnWZ(VHhfqLkxFxClX^_nwYYijGvb|g}*$w+`0%?>sR zJv)D5c)~lU=aY*UG{T%-sw7GPQ)BS&nVYbxy#@X6f>T~(n zWydhP>&ywKPfAUfef?C{`8@V;Kg9*YD?K9|)3gV@`?;tioZ4-OkWnB;`CM@RS=9iN z4EOkjFAMcN2GjHjUP=&Th+;W|T3Ny(SxSQ}BO}8cmX!?3S=^RY+>_PZm$Ugz&h6oW zoX2B1UzoB)l*tz<(nhQBd%uwB6zi3TE^-NxN0<3Z2k?6R8cpI=9&v@MI>I1fzUCXf z0k?6u#&t~Y>(#e>r=Qu(HE7{-6+barNUJ7R6SC@oq|LlfPkA*2!s;=?8)Y0+fWrQ3Gt(w$ak>rUP8 zlpgo{z3!CSsv`X$J_!GS@BRiMf;033CzzO4rZs0WZB@~zn@%@1R5Ud?ZiQEr zO0S7Fwsy3;NjI8l?npN{iByXl4N^zFO@M?TqK3@;+**%nv}q!#Hksw&H3FleE!F7J zDUV*O-k6pCI$CVfIO?leYR0LzSg-1>qF5Z)CPRn7muX#E6BC4{OkMbo*4XSI8)>oF z^#2)RLE5MfGLEe_+t{w&TZ_$3c3JFH6aB?GyV;}W`=w~>!-EKH%ME&z?Y>x%Z7e7SDAn7 zwiK9IcJwfz%I9VG_K-iE_!|!CtcUcYMvn+}9@}e(h~Y6>$N(n=*MH6HMdI*;XPg?2 zXD}G0<fs)DNuwNQ@Q%w|(c`-*;wsm)k2kTo&J9fZ{=D7N z`)&P=J>26QcQoqJObGJ_v&2_6TkH#j#z@`guI4587~{oK?(;wcL;p7qd8|=bCp{_N KD$^eH8iC*92gi^A diff --git a/bin/application/MainWindowController$8.class b/bin/application/MainWindowController$8.class index 95da18fdc8e3ebad26007b5a17c652b9a8cf8a00..9ebc86b3fe16bdb73c6c08aa2cdd6cfa50688500 100644 GIT binary patch delta 39 vcmcb}dy#j;Mpj0>$(vY9L=72unT!}jnM@c|m`oWon9LY-m@Fq-vrPj4$|MMG delta 39 vcmcb}dy#j;Mpj0h$(vY9MD-bXnG6_2nT!}zn2Z@Tm`oUSn9L_zvrPj4$ubCF diff --git a/bin/application/MainWindowController$9.class b/bin/application/MainWindowController$9.class index 19e5083bb9fa80b4b7f0a0f4bd7065859d9ad5f4..656851c6e7c2111bd3813f82392426487a9dadf4 100644 GIT binary patch delta 23 fcmcb@afM^U1ZGCR$rG9FSpyl^nSv%?Wv&MRUQP#0 delta 23 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 Sm*g{J5(LrS#$;nE5Bh)n^IS9l delta 14055 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 V(x5BSWhV7C&86EP&{-e;@L%r{U8w*7 literal 5038 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 GhyMXnyP32A diff --git a/bin/datatypes/SmmdbApiDataType.class b/bin/datatypes/SmmdbApiDataType.class index e5bafb59fdbbfd220456deea55b15f97948b688d..12f1bba54a6d45c085c4d8bb60549d7d3c82aaff 100644 GIT binary patch delta 166 zcmZqEo}|rn>ff$?3=9k=3`-_*)pDdK=B5^xROW2#uV;pHHjA-{FmkvWBp@9rV#zpf@?;S|=J^Z@CO;AJVO|KNjYWOf7Xh8c#IP6uoOL#F delta 173 zcmbQF-KNcT>ff$?3=9k=42vgn)pF#dmZj#DR2FRPuV;pHHjA-{Fmm`nr8XO}mNPQ? zY~IGUotu-B!H0p7L6BkEWJVFu$=yPhlS_rfCf@?mM}V}Zu;pZ7VX?^-KspIX9|zJK zfwY*20 diff --git a/src/application/MainWindowController.java b/src/application/MainWindowController.java index 991150f..918b88a 100644 --- a/src/application/MainWindowController.java +++ b/src/application/MainWindowController.java @@ -534,11 +534,13 @@ public class MainWindowController { id = idColumn.getCellData(selected); //get name of selected item for (int i = 0; i < courses.size(); i++) { - if (courses.get(i).getId() == id) { - + if (courses.get(i).getId() == id) { if (courses.get(i).getHasimage() == 1) { try { - URL url = new URL("http://smmdb.ddns.net/img/courses/thumbnails/" + id + ".pic"); +// URL url = new URL("http://smmdb.ddns.net/img/courses/thumbnails/" + id + ".pic"); //alt + System.out.println("http://smmdb.ddns.net/courseimg/" + id + "_full.jpg?v=3"); + URL url = new URL("http://smmdb.ddns.net/courseimg/" + id + "_full.jpg?v=3"); + Image image = new Image(url.toURI().toString()); smmdbImageView.setImage(image); } catch (MalformedURLException | URISyntaxException e) { @@ -709,7 +711,7 @@ public class MainWindowController { @FXML void smmdbDownloadBtnAction(ActionEvent event){ - String downloadUrl = "http://smmdb.ddns.net/courses/" + id; + String downloadUrl = "http://smmdb.ddns.net/api/downloadcourse?id=" + id + "&type=zip"; String downloadFileURL = getCemuPath() + "/" + id + ".rar"; //getCemuPath() + "/" + smmID + "/" + id + ".rar" String outputFile = getCemuPath() + "/"; @@ -1076,7 +1078,7 @@ public class MainWindowController { break; } - switch (course.getLeveltype()) { + switch (course.getGamestyle()) { case 0: leveltype = "NSMBU"; break; diff --git a/src/application/SmmdbApiQuery.java b/src/application/SmmdbApiQuery.java index 52d66c8..d441fe3 100644 --- a/src/application/SmmdbApiQuery.java +++ b/src/application/SmmdbApiQuery.java @@ -41,93 +41,117 @@ public class SmmdbApiQuery { e.printStackTrace(); } - JsonObject mainObject = Json.parse(output).asObject().get("courses").asObject(); - JsonArray objectAssets = Json.parse(output).asObject().get("order").asArray(); + System.out.println(URL); + System.out.println("{ \"courses\": " + output + "}"); - for (JsonValue asset : objectAssets) { - courseIDs.add(asset.asInt()); - } + String apiOutput = "{ \"courses\": " + output + "}"; - //if value is 9 or "notset" the api returned NULL as value - for (int i = 0; i < courseIDs.size(); i++) { - int id, owner, coursetype, leveltype, difficulty, lastmodified, uploaded, downloads, stars, hasimage, ispackage, updatereq; + JsonArray items = Json.parse(apiOutput).asObject().get("courses").asArray(); + for (JsonValue item : items) { + int id, owner, coursetype, gamestyle, difficulty, lastmodified, uploaded, downloads, stars, hasimage, ispackage, updatereq; String nintendoid, title; - JsonObject singleObject = mainObject.get(courseIDs.get(i).toString()).asObject(); - + + //TODO add "courseTheme", "time", "autoScroll" + + //geht try { - id = singleObject.getInt("id", 0); + id = item.asObject().getInt("id", 0); } catch (Exception e) { id = 9; } + + //geht try { - owner = singleObject.getInt("owner", 0); + owner = item.asObject().getInt("owner", 0); } catch (Exception e) { owner = 9; } + + //test try { - coursetype = singleObject.getInt("coursetype", 0); + coursetype = item.asObject().getInt("coursetype", 0); } catch (Exception e) { coursetype = 9; } + + //geht try { - leveltype = singleObject.getInt("leveltype", 0); + gamestyle = item.asObject().getInt("gamestyle", 0); } catch (Exception e) { - leveltype = 9; + gamestyle = 9; } + + //geht try { - difficulty = singleObject.getInt("difficulty", 0); + difficulty = item.asObject().getInt("difficulty", 0); } catch (Exception e) { difficulty = 9; } + + //geht try { - lastmodified = singleObject.getInt("lastmodified", 0); + lastmodified = item.asObject().getInt("lastmodified", 0); } catch (Exception e) { lastmodified = 9; } + + //geht try { - uploaded = singleObject.getInt("uploaded", 0); + uploaded = item.asObject().getInt("uploaded", 0); } catch (Exception e) { uploaded = 9; } + + //gestrichen try { - downloads = singleObject.getInt("downloads", 0); + downloads = item.asObject().getInt("downloads", 0); } catch (Exception e) { downloads = 9; } + + //geht try { - stars = singleObject.getInt("stars", 0); + stars = item.asObject().getInt("stars", 0); } catch (Exception e) { stars = 9; } + + //gestrichen try { - hasimage = singleObject.getInt("hasimage", 0); + hasimage = item.asObject().getInt("hasimage", 0); } catch (Exception e) { hasimage = 9; } + + //gestrichen try { - ispackage = singleObject.getInt("ispackage", 0); + ispackage = item.asObject().getInt("ispackage", 0); } catch (Exception e) { ispackage = 9; } + + //gestrichen try { - updatereq = singleObject.getInt("updatereq", 0); + updatereq = item.asObject().getInt("updatereq", 0); } catch (Exception e) { updatereq = 9; } + + //geht try { - nintendoid = singleObject.getString("nintendoid", ""); + nintendoid = item.asObject().getString("nintendoid", ""); } catch (Exception e) { nintendoid = "notset"; } try { - title = singleObject.getString("title", "");; + title = item.asObject().getString("title", "");; } catch (Exception e) { title = "notset"; } - course.add(new SmmdbApiDataType(id, owner, coursetype, leveltype, difficulty, lastmodified, uploaded, downloads, + course.add(new SmmdbApiDataType(id, owner, coursetype, gamestyle, difficulty, lastmodified, uploaded, downloads, stars, hasimage, ispackage, updatereq, nintendoid, title)); - } + } return course; } diff --git a/src/datatypes/SmmdbApiDataType.java b/src/datatypes/SmmdbApiDataType.java index 8c24c80..2284bb6 100644 --- a/src/datatypes/SmmdbApiDataType.java +++ b/src/datatypes/SmmdbApiDataType.java @@ -13,7 +13,7 @@ public class SmmdbApiDataType { private final IntegerProperty id = new SimpleIntegerProperty(); private final IntegerProperty owner = new SimpleIntegerProperty(); private final IntegerProperty coursetype = new SimpleIntegerProperty(); - private final IntegerProperty leveltype = new SimpleIntegerProperty(); + private final IntegerProperty gamestyle = new SimpleIntegerProperty(); private final IntegerProperty difficulty = new SimpleIntegerProperty(); private final IntegerProperty lastmodified = new SimpleIntegerProperty(); private final IntegerProperty uploaded = new SimpleIntegerProperty(); @@ -25,13 +25,13 @@ public class SmmdbApiDataType { private final StringProperty nintendoid = new SimpleStringProperty(); private final StringProperty title = new SimpleStringProperty(); - public SmmdbApiDataType(final int id, final int owner, final int coursetype, final int leveltype, final int difficulty, + public SmmdbApiDataType(final int id, final int owner, final int coursetype, final int gamestyle, final int difficulty, final int lastmodified, final int uploaded, final int downloads, final int stars, final int hasimage, final int ispackage, final int updatereq, final String nintendoid, final String title) { this.id.set(id); this.owner.set(owner); this.coursetype.set(coursetype); - this.leveltype.set(leveltype); + this.gamestyle.set(gamestyle); this.difficulty.set(difficulty); this.lastmodified.set(lastmodified); this.uploaded.set(uploaded); @@ -60,8 +60,8 @@ public class SmmdbApiDataType { return nintendoid; } - public IntegerProperty leveltypeProperty(){ - return leveltype; + public IntegerProperty gamestyleProperty(){ + return gamestyle; } public IntegerProperty difficultyProperty(){ @@ -112,8 +112,8 @@ public class SmmdbApiDataType { return coursetypeProperty().get(); } - public int getLeveltype() { - return leveltypeProperty().get(); + public int getGamestyle() { + return gamestyleProperty().get(); } public int getDifficulty() { @@ -168,8 +168,8 @@ public class SmmdbApiDataType { coursetypeProperty().set(coursetype); } - public final void setLeveltype(int leveltype) { - leveltypeProperty().set(leveltype); + public final void setGamestyle(int leveltype) { + gamestyleProperty().set(leveltype); } public final void setDifficulty(int difficulty) {