Added some missing classes to Repository
This commit is contained in:
@@ -0,0 +1,50 @@
|
|||||||
|
package eu.crushedpixel.replaymod.api.client;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import eu.crushedpixel.replaymod.ReplayMod;
|
||||||
|
import eu.crushedpixel.replaymod.api.client.holders.FileInfo;
|
||||||
|
|
||||||
|
public class SearchPagination {
|
||||||
|
|
||||||
|
private int page;
|
||||||
|
private List<FileInfo> files = new ArrayList<FileInfo>();
|
||||||
|
|
||||||
|
private final SearchQuery searchQuery;
|
||||||
|
|
||||||
|
public SearchPagination(SearchQuery searchQuery) {
|
||||||
|
this.page = -1;
|
||||||
|
this.searchQuery = searchQuery;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<FileInfo> getFiles() {
|
||||||
|
return new ArrayList<FileInfo>(files);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLoadedPages() {
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean fetchPage() {
|
||||||
|
page++;
|
||||||
|
searchQuery.offset = page;
|
||||||
|
|
||||||
|
try {
|
||||||
|
FileInfo[] fis = ReplayMod.apiClient.searchFiles(searchQuery);
|
||||||
|
if(fis.length <= 1) {
|
||||||
|
page--;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
files.addAll(Arrays.asList(fis));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} catch(Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
page--;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
package eu.crushedpixel.replaymod.api.client;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
|
||||||
|
public class SearchQuery {
|
||||||
|
|
||||||
|
public Boolean order, singleplayer;
|
||||||
|
public String player, tag, version, server, name, auth;
|
||||||
|
public Integer category, offset;
|
||||||
|
|
||||||
|
public SearchQuery() {}
|
||||||
|
|
||||||
|
public SearchQuery(Boolean order, Boolean singleplayer, String player,
|
||||||
|
String tag, String version, String server, String name,
|
||||||
|
String auth, Integer category, Integer offset) {
|
||||||
|
this.order = order;
|
||||||
|
this.singleplayer = singleplayer;
|
||||||
|
this.player = player;
|
||||||
|
this.tag = tag;
|
||||||
|
this.version = version;
|
||||||
|
this.server = server;
|
||||||
|
this.name = name;
|
||||||
|
this.auth = auth;
|
||||||
|
this.category = category;
|
||||||
|
this.offset = offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String buildQuery() {
|
||||||
|
String query = "";
|
||||||
|
boolean first = true;
|
||||||
|
|
||||||
|
//Please don't slaughter me for this code,
|
||||||
|
//even if I deserve it, which I certainly do.
|
||||||
|
for(Field f : this.getClass().getDeclaredFields()) {
|
||||||
|
try {
|
||||||
|
Object value = f.get(this);
|
||||||
|
if(value == null) continue;
|
||||||
|
query += first ? "?" : "&";
|
||||||
|
first = false;
|
||||||
|
query += f.getName()+"=";
|
||||||
|
query += URLEncoder.encode(String.valueOf(value), "UTF-8");
|
||||||
|
} catch(Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return query;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return buildQuery();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package eu.crushedpixel.replaymod.api.client.holders;
|
||||||
|
|
||||||
|
public class SearchResult {
|
||||||
|
|
||||||
|
private FileInfo[] results;
|
||||||
|
|
||||||
|
public FileInfo[] getResults() {
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user