Rollen neu geschnitten, Seitenzahl korrigiert, frühere Konten
Der Forums-Abgleich las von 25 Archivseiten nur zwei. WoltLab verlinkt in der Blätterleiste nur die Nachbarseiten und führt die Gesamtzahl in einem eigenen Element; ausgewertet wurden aber die Links. Alles jenseits von Seite zwei war damit unsichtbar - etwa ein Antrag auf Seite vier, der deshalb nie ankam. Die Rollen verlaufen jetzt zwischen erfassen und gewähren statt zwischen Alltag und Verwaltung: Editoren erfassen Käufe und führen Datei-Import, GExtension- und Forums-Abgleich samt Entscheidung über Anträge durch. Kulanz zu vergeben bleibt Administratoren, ebenso das Auflösen unklarer Pakete, weil dabei Kulanz entstehen kann. Dazu lassen sich frühere Steam- und Forumskonten am Spieler hinterlegen. Abgleich und Import prüfen sie mit, sodass ein Kontowechsel die Zuordnung nicht abreißen lässt. Steam-Kennungen werden dabei auf dieselbe Form gebracht wie die Hauptangabe, und eine Kennung kann nicht zwei Spielern gehören.
This commit is contained in:
+11
-1
@@ -89,8 +89,18 @@ export function parseBoard(html: string): ForumThread[] {
|
||||
return threads;
|
||||
}
|
||||
|
||||
/** Höchste Seitenzahl der Blätterleiste, mindestens 1. */
|
||||
/**
|
||||
* Anzahl der Seiten eines Boards.
|
||||
*
|
||||
* WoltLab führt die Gesamtzahl in einem eigenen Element, nicht in den Links:
|
||||
* die Blätterleiste zeigt nur die Nachbarseiten. Wer allein die pageNo-Links
|
||||
* auswertet, hält ein Board mit 25 Seiten für zweiseitig.
|
||||
*/
|
||||
export function parsePageCount(html: string): number {
|
||||
const element = /<woltlab-core-pagination[^>]*\scount="(\d+)"/.exec(html);
|
||||
if (element) return Math.max(1, Number(element[1]));
|
||||
|
||||
// Ältere Fassungen ohne das Element: wenigstens die Links auswerten.
|
||||
const numbers = [...html.matchAll(/pageNo=(\d+)/g)].map((m) => Number(m[1]));
|
||||
return numbers.length > 0 ? Math.max(1, ...numbers) : 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user