Herunterladen der Assignment Hinzugefügt

This commit is contained in:
Joshua
2018-06-07 19:00:36 +02:00
parent ff4dea25e3
commit 80adac818f
2 changed files with 85 additions and 4 deletions

View File

@@ -4,9 +4,20 @@ import java.util.Date;
public class Assignment {
private final String id;
private String title;
private long dueTime;
private int gradeScaleMaxPoints;
private String gradebookItemName;
private String gradeScale;
private String grade;
Assignment(String id) {
Assignment(String id, String title, long dueTime, String gradebookItemName, String gradeScale) {//, String grade
this.id = id;
this.title = title;
this.dueTime = dueTime;
this.gradebookItemName = gradebookItemName;
this.gradeScale = gradeScale;
//this.grade = grade;
}
public String getId() {
@@ -19,7 +30,7 @@ public class Assignment {
}
public String getTitle() {
return "Assignment Title";
return title;
}
public String getStatus() {
@@ -27,6 +38,6 @@ public class Assignment {
}
public long getDueDate() {
return (new Date()).getTime();
return dueTime;
}
}

View File

@@ -10,6 +10,7 @@ import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.MatchResult;
import de.sebse.fuplanner.tools.AsyncQueue;
@@ -139,6 +140,7 @@ public class KVVModuleList extends HTTPService {
public void getAssignments(Modules.Module module, final NetworkCallback<Modules.Module> callback, final NetworkErrorCallback errorCallback) {
//log.d("In getAssignments");
queueModuleDetails.add(module.getID(), () -> {
if (module.assignments != null) {
callback.onResponse(module);
@@ -154,7 +156,75 @@ public class KVVModuleList extends HTTPService {
}
private void getAssignmentsUpgrade(String ID, final NetworkCallback<ArrayList<Assignment>> callback, final NetworkErrorCallback errorCallback) {
callback.onResponse(new ArrayList<Assignment>());
get(String.format("https://kvv.imp.fu-berlin.de/direct/assignment/site/%s.json", ID), token.getCookies(), response ->{
String body = response.getParsed();
if (body == null) {
errorCallback.onError(new NetworkError(101301, 403, "No assignments retrieved!"));
return;
}
ArrayList<Assignment> assignments = new ArrayList<>();
try {
JSONObject json = new JSONObject(body);
JSONArray sites = json.getJSONArray("assignment_collection");
for (int i = 0; i < sites.length(); i++) {
log.d("Assignment FOUND!", i);
JSONObject site = sites.getJSONObject(i);
String id = site.getString("id");
String title = site.getString("title");
long dueTime = site.getJSONObject("dueTime").getLong("time");
String gradebookItemName = site.getString("gradebookItemName");
String gradeScale = site.getString("gradeScale");
//ToDO PDFs links rausziehen
//JSONObject attachments = site.getJSONObject("attachments");
//JSONArray urls = json.getJSONArray("attachments");
/*for (int j =0; j<urls.length(); i++){
log.d("URL:", urls.getString(j));
}*/
log.d("Assignment:", id, dueTime, gradebookItemName, gradeScale );
//Für Punkte
//AtomicReference<String> comment = null;//ToDO Sebasian Fragen ????????????????????????
//AtomicReference<String> grade = null; //Variable used in lambda expression should be final or effectively final
if ( !gradebookItemName.equals("null") ){//Wenn gradebookItemName vorhanden dann erhaltene Punkte nachschauen
//https://kvv.imp.fu-berlin.de/direct/gradebook/item/{ModulID}/{gradebookItemName}.json
get(String.format("https://kvv.imp.fu-berlin.de/direct/gradebook/item/%s/%s.json", ID, gradebookItemName ), token.getCookies(), response2 ->{
String bodygradebook = response2.getParsed();
if (bodygradebook == null) {
errorCallback.onError(new NetworkError(101302, 403, "No gradebook for assignments!"));
return;
}
try {
JSONObject json2 = new JSONObject(bodygradebook);
//JSONArray sites2 = json2.getJSONArray("assignment_collection");
//comment.set(json2.getString("comment"));
//grade.set(json2.getString("grade"));
String comment = json2.getString("comment");
String grade = json2.getString("grade");
log.d("Note:", comment, grade );
}catch (JSONException e) {
errorCallback.onError(new NetworkError(101304, 403, "Cannot parse gradebook for announcements!"));
return;
}
}, error -> errorCallback.onError(new NetworkError(101305, error.networkResponse.statusCode, "Cannot get gradebook for assignments!")));
}
assignments.add(new Assignment(id, title, dueTime, gradebookItemName, gradeScale));
}
} catch (JSONException e) {
errorCallback.onError(new NetworkError(101306, 403, "Cannot parse announcements!"));
return;
}
callback.onResponse(assignments);
}, error -> errorCallback.onError(new NetworkError(101303, error.networkResponse.statusCode, "Cannot get assignments!")));
}