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