aboutsummaryrefslogtreecommitdiff
path: root/src/database-prod.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/database-prod.ts')
-rw-r--r--src/database-prod.ts27
1 files changed, 11 insertions, 16 deletions
diff --git a/src/database-prod.ts b/src/database-prod.ts
index 6a55f25..57b9974 100644
--- a/src/database-prod.ts
+++ b/src/database-prod.ts
@@ -23,7 +23,7 @@ const DB_TEMPLATE_LIST_FOOTER = `
let graduationDb = findGraduationDb();
-const ID_QUERY_PARAM_REGEX = /[?&]id=(\d+)/
+const ID_QUERY_PARAM_REGEX = /[?&]id=(\d+)/;
async function findGraduationDb() {
let graduationDbId = localStorage.getItem("gruaduationDbId");
@@ -33,16 +33,16 @@ async function findGraduationDb() {
const courseUrl = `https://lernplattform.bycs.de/course/view.php?id=${getCourseId()}`;
const courseRes = await fetch(courseUrl);
- const courseDoc = new DOMParser().parseFromString(await courseRes.text(), 'text/html');
+ const courseDoc = new DOMParser().parseFromString(await courseRes.text(), "text/html");
for (const a of courseDoc.querySelectorAll("div.activityname a.aalink")) {
if (a.textContent.trim() === "Graduation Datenbank") {
- const anchor = (a as HTMLAnchorElement);
+ const anchor = a as HTMLAnchorElement;
const match = anchor.href.match(ID_QUERY_PARAM_REGEX);
if (match === null) continue;
const dbId = match[1];
localStorage.setItem("graduationDbId", dbId);
- return new DB(Number(dbId))
+ return new DB(Number(dbId));
}
}
console.assert(false, "Graduation DB not found");
@@ -64,13 +64,12 @@ class DB {
}
async fetchEntries(params?: DatabaseParams) {
- return loadFromDatabaseActivity(this.id, params)
+ return loadFromDatabaseActivity(this.id, params);
}
async saveEntry(json: string) {
return addEntryToDatabaseActivity(this.id, json);
}
-
}
async function loadFromDatabaseActivity(id: string | number, params?: DatabaseParams) {
@@ -79,16 +78,16 @@ async function loadFromDatabaseActivity(id: string | number, params?: DatabasePa
if (typeof params !== "undefined") {
dbUrl += "&filter=1&advanced=1";
for (const param in params) {
- dbUrl += `&${param}=${encodeURIComponent(params[param])}`
+ dbUrl += `&${param}=${encodeURIComponent(params[param])}`;
}
}
const dbRes = await fetch(encodeURI(dbUrl));
- const dbDoc = new DOMParser().parseFromString(await dbRes.text(), 'text/html');
+ const dbDoc = new DOMParser().parseFromString(await dbRes.text(), "text/html");
let data: any[] = [];
- dbDoc.querySelectorAll('.db-row').forEach(row => {
+ dbDoc.querySelectorAll(".db-row").forEach((row) => {
let entry: DatabaseEntry = {};
- row.querySelectorAll<HTMLElement>('.db-cell').forEach(field => {
+ row.querySelectorAll<HTMLElement>(".db-cell").forEach((field) => {
const key = field.dataset.key!;
let value;
// Moodle includes the full date in the title attribute of the included span
@@ -112,7 +111,7 @@ async function addEntryToDatabaseActivity(id: number, json: string) {
// TODO(muhq): do not fetch the form
const url = `/mod/data/edit.php?id=${id}`;
const editRes = await fetch(url);
- const editDoc = new DOMParser().parseFromString(await editRes.text(), 'text/html');
+ const editDoc = new DOMParser().parseFromString(await editRes.text(), "text/html");
const form = editDoc.querySelector<HTMLFormElement>('div[role="main"] > form');
const formData = new FormData(form!);
@@ -133,8 +132,4 @@ async function addEntryToDatabaseActivity(id: number, json: string) {
});
}
-export {
- DB,
- DatabaseEntry, DatabaseParams,
- getGraduationDb,
-};
+export { DB, DatabaseEntry, DatabaseParams, getGraduationDb };