update
This commit is contained in:
@@ -92,35 +92,34 @@ export async function scrapeAll(username: string, password: string): Promise<{
|
||||
member.wohnort = profileFields.wohnort;
|
||||
member.plz = profileFields.plz;
|
||||
|
||||
// Extract mitgliedschaft params from the current URL for constructing sub-section URLs.
|
||||
// PersonenForm.aspx is in the personen module; sub-sections are in mitgliedschaften module.
|
||||
// The links to Beförderungen/Untersuchungen/Fahrgenehmigungen live in the navigation
|
||||
// frame (not the content mainFrame), so we construct the URLs directly.
|
||||
// Extract mitgliedschaft + person params from the current URL for constructing sub-section URLs.
|
||||
// PersonenForm.aspx is in the personen module; sub-sections are each in their own module.
|
||||
// URL pattern: ?search=1&searchid_mitgliedschaften=X&id_personen=Y&id_mitgliedschaften=X&searchid_personen=Y&searchid_maskmode=
|
||||
const currentUrl = mainFrame.url();
|
||||
const urlObj = new URL(currentUrl);
|
||||
const idMitgliedschaft = urlObj.searchParams.get('id_mitgliedschaften');
|
||||
const idPersonen = urlObj.searchParams.get('id_personen');
|
||||
const idInstanzen = urlObj.searchParams.get('id_instanzen') ?? ID_INSTANZEN;
|
||||
const idFeuerwehren = urlObj.searchParams.get('id_feuerwehren') ?? ID_FEUERWEHREN;
|
||||
|
||||
// Ausbildungen
|
||||
const quals = await scrapeAusbildungenFromDetailPage(mainFrame, member);
|
||||
ausbildungen.push(...quals);
|
||||
|
||||
// Beförderungen
|
||||
const befos = idMitgliedschaft
|
||||
? await scrapeMemberBefoerderungen(mainFrame, member.standesbuchNr, idMitgliedschaft, idInstanzen, idFeuerwehren)
|
||||
const befos = (idMitgliedschaft && idPersonen)
|
||||
? await scrapeMemberBefoerderungen(mainFrame, member.standesbuchNr, idMitgliedschaft, idPersonen)
|
||||
: [];
|
||||
befoerderungen.push(...befos);
|
||||
|
||||
// Untersuchungen
|
||||
const unters = idMitgliedschaft
|
||||
? await scrapeMemberUntersuchungen(mainFrame, member.standesbuchNr, idMitgliedschaft, idInstanzen, idFeuerwehren)
|
||||
const unters = (idMitgliedschaft && idPersonen)
|
||||
? await scrapeMemberUntersuchungen(mainFrame, member.standesbuchNr, idMitgliedschaft, idPersonen)
|
||||
: [];
|
||||
untersuchungen.push(...unters);
|
||||
|
||||
// Fahrgenehmigungen
|
||||
const fahrg = idMitgliedschaft
|
||||
? await scrapeMemberFahrgenehmigungen(mainFrame, member.standesbuchNr, idMitgliedschaft, idInstanzen, idFeuerwehren)
|
||||
const fahrg = (idMitgliedschaft && idPersonen)
|
||||
? await scrapeMemberFahrgenehmigungen(mainFrame, member.standesbuchNr, idMitgliedschaft, idPersonen, idInstanzen)
|
||||
: [];
|
||||
fahrgenehmigungen.push(...fahrg);
|
||||
|
||||
@@ -677,11 +676,11 @@ async function scrapeMemberBefoerderungen(
|
||||
frame: Frame,
|
||||
standesbuchNr: string,
|
||||
idMitgliedschaft: string,
|
||||
idInstanzen: string,
|
||||
idFeuerwehren: string,
|
||||
idPersonen: string,
|
||||
): Promise<FdiskBefoerderung[]> {
|
||||
const url = `${BASE_URL}/fdisk/module/mgvw/mitgliedschaften/befoerderungenList.aspx`
|
||||
+ `?id_mitgliedschaften=${idMitgliedschaft}&id_instanzen=${idInstanzen}&id_feuerwehren=${idFeuerwehren}`;
|
||||
const url = `${BASE_URL}/fdisk/module/mgvw/befoerderungen/befoerderungenList.aspx`
|
||||
+ `?search=1&searchid_mitgliedschaften=${idMitgliedschaft}&id_personen=${idPersonen}`
|
||||
+ `&id_mitgliedschaften=${idMitgliedschaft}&searchid_personen=${idPersonen}&searchid_maskmode=`;
|
||||
|
||||
const rows = await navigateAndGetTableRows(frame, url);
|
||||
if (!rows) return [];
|
||||
@@ -706,11 +705,11 @@ async function scrapeMemberUntersuchungen(
|
||||
frame: Frame,
|
||||
standesbuchNr: string,
|
||||
idMitgliedschaft: string,
|
||||
idInstanzen: string,
|
||||
idFeuerwehren: string,
|
||||
idPersonen: string,
|
||||
): Promise<FdiskUntersuchung[]> {
|
||||
const url = `${BASE_URL}/fdisk/module/mgvw/mitgliedschaften/UntersuchungenList.aspx`
|
||||
+ `?id_mitgliedschaften=${idMitgliedschaft}&id_instanzen=${idInstanzen}&id_feuerwehren=${idFeuerwehren}`;
|
||||
const url = `${BASE_URL}/fdisk/module/mgvw/untersuchungen/UntersuchungenList.aspx`
|
||||
+ `?search=1&searchid_mitgliedschaften=${idMitgliedschaft}&id_personen=${idPersonen}`
|
||||
+ `&id_mitgliedschaften=${idMitgliedschaft}&searchid_personen=${idPersonen}&searchid_maskmode=`;
|
||||
|
||||
const rows = await navigateAndGetTableRows(frame, url);
|
||||
if (!rows) return [];
|
||||
@@ -743,11 +742,13 @@ async function scrapeMemberFahrgenehmigungen(
|
||||
frame: Frame,
|
||||
standesbuchNr: string,
|
||||
idMitgliedschaft: string,
|
||||
idPersonen: string,
|
||||
idInstanzen: string,
|
||||
idFeuerwehren: string,
|
||||
): Promise<FdiskFahrgenehmigung[]> {
|
||||
const url = `${BASE_URL}/fdisk/module/mgvw/mitgliedschaften/Ges_fahrgenehmigungenListEdit.aspx`
|
||||
+ `?id_mitgliedschaften=${idMitgliedschaft}&id_instanzen=${idInstanzen}&id_feuerwehren=${idFeuerwehren}`;
|
||||
const url = `${BASE_URL}/fdisk/module/mgvw/ges_fahrgenehmigungen/Ges_fahrgenehmigungenListEdit.aspx`
|
||||
+ `?search=1&searchid_mitgliedschaften=${idMitgliedschaft}&id_personen=${idPersonen}`
|
||||
+ `&id_mitgliedschaften=${idMitgliedschaft}&searchid_personen=${idPersonen}&searchid_maskmode=`
|
||||
+ `&searchid_instanzen=${idInstanzen}`;
|
||||
|
||||
const rows = await navigateAndGetTableRows(frame, url);
|
||||
if (!rows) return [];
|
||||
|
||||
Reference in New Issue
Block a user