Refactor PDF text extraction and update configuration handling in Satzung upload process
This commit removes the PDF text extraction logic and replaces it with a fallback mechanism that retains existing content or provides a neutral message. The configuration update now only sets the PDF path without automatically generating HTML content, improving clarity and maintaining the integrity of the existing data.
This commit is contained in:
@@ -96,112 +96,23 @@ export default defineEventHandler(async (event) => {
|
||||
// Zusätzliche Validierung: Magic-Bytes prüfen (mimetype kann gespooft sein)
|
||||
await assertPdfMagicHeader(file.path)
|
||||
|
||||
// PDF-Text extrahieren mit pdftotext (falls verfügbar) oder Fallback
|
||||
let extractedText = ''
|
||||
|
||||
try {
|
||||
// Versuche pdftotext zu verwenden (falls auf dem System installiert)
|
||||
const { stdout } = await execAsync(`pdftotext "${file.path}" -`)
|
||||
extractedText = stdout
|
||||
} catch (_error) {
|
||||
console.log('pdftotext nicht verfügbar, verwende Fallback-Text')
|
||||
// Fallback: Verwende den bekannten Satzungsinhalt
|
||||
extractedText = `Vereinssatzung
|
||||
|
||||
Die Satzung des Harheimer Tischtennis Clubs regelt die Grundlagen unseres Vereins.
|
||||
|
||||
§ 1 Name, Sitz und Geschäftsjahr
|
||||
|
||||
(1) Der Verein führt den Namen "Harheimer Tischtennis-Club 1954 e.V." (HTC).
|
||||
|
||||
(2) Der Verein hat seinen Sitz in Frankfurt am Main.
|
||||
|
||||
(3) Das Geschäftsjahr ist das Kalenderjahr.
|
||||
|
||||
§ 2 Zweck des Vereins
|
||||
|
||||
(1) Der Verein bezweckt die Förderung des Tischtennissports und die Pflege der Geselligkeit seiner Mitglieder.
|
||||
|
||||
(2) Der Verein ist selbstlos tätig; er verfolgt nicht in erster Linie eigenwirtschaftliche Zwecke.
|
||||
|
||||
§ 3 Mitgliedschaft
|
||||
|
||||
(1) Mitglied des Vereins kann jede natürliche Person werden, die die Ziele des Vereins unterstützt.
|
||||
|
||||
(2) Der Antrag auf Mitgliedschaft ist schriftlich an den Vorstand zu richten.
|
||||
|
||||
(3) Über die Aufnahme entscheidet der Vorstand.
|
||||
|
||||
§ 4 Rechte und Pflichten der Mitglieder
|
||||
|
||||
(1) Die Mitglieder haben das Recht, an den Veranstaltungen des Vereins teilzunehmen und die Einrichtungen des Vereins zu benutzen.
|
||||
|
||||
(2) Die Mitglieder sind verpflichtet, die Satzung und die Beschlüsse der Vereinsorgane zu beachten und den Mitgliedsbeitrag zu entrichten.
|
||||
|
||||
§ 5 Mitgliedsbeiträge
|
||||
|
||||
(1) Die Höhe der Mitgliedsbeiträge wird von der Mitgliederversammlung festgesetzt.
|
||||
|
||||
(2) Die Mitgliedsbeiträge sind im Voraus zu entrichten.
|
||||
|
||||
§ 6 Beendigung der Mitgliedschaft
|
||||
|
||||
(1) Die Mitgliedschaft endet durch Austritt, Ausschluss oder Tod.
|
||||
|
||||
(2) Der Austritt erfolgt durch schriftliche Erklärung gegenüber dem Vorstand.
|
||||
|
||||
(3) Ein Mitglied kann aus wichtigem Grund ausgeschlossen werden.
|
||||
|
||||
§ 7 Organe des Vereins
|
||||
|
||||
Organe des Vereins sind:
|
||||
• die Mitgliederversammlung
|
||||
• der Vorstand
|
||||
|
||||
§ 8 Mitgliederversammlung
|
||||
|
||||
(1) Die Mitgliederversammlung ist das oberste Organ des Vereins.
|
||||
|
||||
(2) Sie wird vom Vorsitzenden mindestens einmal im Jahr einberufen.
|
||||
|
||||
(3) Die Mitgliederversammlung beschließt über alle wichtigen Angelegenheiten des Vereins.
|
||||
|
||||
§ 9 Vorstand
|
||||
|
||||
(1) Der Vorstand besteht aus:
|
||||
• dem Vorsitzenden
|
||||
• dem stellvertretenden Vorsitzenden
|
||||
• dem Kassenwart
|
||||
• dem Schriftführer
|
||||
|
||||
(2) Der Vorstand wird von der Mitgliederversammlung gewählt.
|
||||
|
||||
(3) Der Vorstand führt die Geschäfte des Vereins.
|
||||
|
||||
§ 10 Satzungsänderungen
|
||||
|
||||
Satzungsänderungen können nur in einer Mitgliederversammlung mit einer Mehrheit von zwei Dritteln der anwesenden Mitglieder beschlossen werden.
|
||||
|
||||
§ 11 Auflösung des Vereins
|
||||
|
||||
(1) Die Auflösung des Vereins kann nur in einer Mitgliederversammlung mit einer Mehrheit von drei Vierteln der anwesenden Mitglieder beschlossen werden.
|
||||
|
||||
(2) Bei Auflösung des Vereins fällt das Vereinsvermögen an eine gemeinnützige Organisation.`
|
||||
}
|
||||
|
||||
// Text in HTML-Format konvertieren
|
||||
const htmlContent = convertTextToHtml(extractedText)
|
||||
|
||||
// Config aktualisieren
|
||||
// Config aktualisieren: Nur PDF-Pfad setzen, HTML-Inhalt nicht automatisch neu generieren
|
||||
const configPath = getDataPath('config.json')
|
||||
const configData = JSON.parse(await fs.readFile(configPath, 'utf-8'))
|
||||
|
||||
if (!configData.seiten) {
|
||||
configData.seiten = {}
|
||||
}
|
||||
|
||||
const previousContent = configData.seiten.satzung?.content || ''
|
||||
|
||||
configData.seiten.satzung = {
|
||||
pdfUrl: '/documents/satzung.pdf',
|
||||
content: htmlContent
|
||||
// Entweder bestehenden Text behalten oder einen neutralen Hinweis setzen
|
||||
content: previousContent || '<p>Die gültige Satzung des Harheimer Tischtennis-Club 1954 e. V. steht als PDF zum Download bereit. Die PDF-Fassung ist rechtlich verbindlich.</p>'
|
||||
}
|
||||
|
||||
await fs.writeFile(configPath, JSON.stringify(configData, null, 2))
|
||||
await fs.writeFile(configPath, JSON.stringify(configData, null, 2), 'utf-8')
|
||||
|
||||
return {
|
||||
success: true,
|
||||
|
||||
Reference in New Issue
Block a user