/* The URL to the ban form does not need any IDs or hidden inputs. We
* hardcode it here.
*/
- let resp = await fetch(toAbsoluteURL("./mcp.php?i=ban&mode=user"));
- if (!resp.ok) {
- throw "Konnte Formular zum Sperren von Benutzern nicht laden.";
- }
-
let form, formData;
try {
- [form, formData] = await openForm(resp, "form#mcp_ban");
- } catch {
- throw "Konnte Formular zum Sperren von Benutzern nicht öffnen.";
+ [form, formData] = await openForm(toAbsoluteURL("./mcp.php?i=ban&mode=user"),
+ "form#mcp_ban");
+ } catch (err) {
+ throw `Konnte Formular zum Sperren von Benutzern nicht öffnen: ${err}`;
}
formData.set("ban", username);
formData.set("banreason", reason);
//formData.set("bangivereason", reason);
- resp = await postForm(form, formData, "bansubmit");
+ const resp = await postForm(form, formData, "bansubmit");
if (!resp.ok) {
throw "Konnte Sperrung des Benutzers nicht anfragen.";
}
async function closeReport(post) {
const reportLink = post.querySelector(".post-notice.reported a");
- let resp = await fetch(toAbsoluteURL(reportLink.href));
- if (!resp.ok) {
- throw "Konnte Meldung nicht öffnen.";
- }
-
let form, formData;
try {
- [form, formData] = await openForm(resp, "form#mcp_report");
- } catch {
- throw "Konnte Formular zum Schließen der Meldung nicht öffnen.";
+ [form, formData] = await openForm(toAbsoluteURL(reportLink.href),
+ "form#mcp_report");
+ } catch (err) {
+ throw `Konnte Formular zum Schließen der Meldung nicht öffnen: ${err}`;
}
- resp = await postForm(form, formData, "action[close]");
+ const resp = await postForm(form, formData, "action[close]");
if (!resp.ok) {
throw "Konnte Schließen der Meldung nicht anfragen.";
}
return post.querySelector(".post-notice.reported a") !== null;
}
-async function openForm(response, selector) {
+async function openForm(urlOrResponse, selector) {
+ const resp = urlOrResponse instanceof Response ? urlOrResponse :
+ await fetch(urlOrResponse);
+ if (!resp.ok) {
+ throw `${resp.url}: ${resp.status}`;
+ }
+
const parser = new DOMParser();
- const txt = await response.text();
+ const txt = await resp.text();
const doc = parser.parseFromString(txt, "text/html");
const form = doc.querySelector(selector);
return [form, new FormData(form)];
async function send_mcp_request_archival(post, reason) {
const splitLink = document.querySelector("#quickmod .dropdown-contents a[href*='action=split']");
- let resp = await fetch(toAbsoluteURL(splitLink.href));
- if (!resp.ok) {
- throw "Konnte Formular zum Aufteilen des Themas nicht laden.";
- }
let form, formData;
try {
- [form, formData] = await openForm(resp, "form#mcp");
- } catch {
- throw "Konnte Formular zum Aufteilen des Themas nicht öffnen.";
+ [form, formData] = await openForm(toAbsoluteURL(splitLink.href), "form#mcp");
+ } catch (err) {
+ throw `Konnte Formular zum Aufteilen des Themas nicht öffnen: ${err}`;
}
const post_id = post.id.slice(1);
formData.set("subject", thread_title);
formData.set("to_forum_id", ARCHIVFORUMID);
- resp = await postForm(form, formData, "mcp_topic_submit");
+ const resp = await postForm(form, formData, "mcp_topic_submit");
if (!resp.ok) {
throw "Konnte Aufteilen des Themas nicht anfragen.";
}
}
}
-add_buttons();
\ No newline at end of file
+add_buttons();