Translate

Posts mit dem Label testaPP werden angezeigt. Alle Posts anzeigen
Posts mit dem Label testaPP werden angezeigt. Alle Posts anzeigen

Donnerstag, 6. August 2026

Bot für openlibrary.org

Ein umfassender Bot-Entwicklungsprozess für OpenLibrary.org folgt strengen infrastrukturellen und rechtlichen Vorgaben. Die Plattform basiert auf der Philosophie des Internet Archive; verlangt jedoch höchste Akribie hinsichtlich Rate Limits, Account-Nomenklatur, Freigabeprozessen und Code-Repositorien.

Der strukturierte Arbeitsplan für das Bot-Projekt ist in folgende Phasen gegliedert:

Phase 1: Aufgabenstellung & Anwendungsfall

  • Zieldefinition: Klärung der genauen Operation (z. B. automatisierter Metadaten-Import, Dubletten-Säuberung oder automatisiertes Auslesen lokaler Bestände).

  • Datenfluss: Festlegung der Quelle (lokale CSV/JSON/Markdown-Dateien) und des Ziels (OpenLibrary-Instanz) sowie der zu modifizierenden Entitäten (Editions, Works, Authors).

Phase 2: Spezifikation & Regelkonformität (OpenLibrary Policy)

  • Account-Nomenklatur: Registrierung eines separaten Bot-Accounts. Der Benutzername muss auf Bot enden (z. B. AtestaLibraryBot), um Bot-Aktivitäten im öffentlichen Änderungsprotokoll (Recent Changes) sauber filtern zu können.

  • Rechteerteilung: Erstellen eines GitHub-Issues im offiziellen OpenLibrary-Repository zur Vergabe von Bot-Privilegien und Aufnahme in die API-Gruppe durch Administratoren (z. B. @mekarpeles).

  • Bibliotheken-Standard: Strikte Nutzung der offiziellen Python-Bibliothek openlibrary-client für Schreiboperationen anstelle manifester HTTP-POSTs.

  • Rate Limiting & User-Agent: Drosselung auf maximal 1–2 Anfragen pro Sekunde sowie Mitsenden eines spezifischen User-Agent-Headers mit Kontaktmöglichkeit.

Phase 3: Architektur & Entwurf

  • Modulare Struktur:

    • Config Module: API-Keys, User-Agents, Pfade und Credentials.

    • Fetch/Parse Module: Lesen und Validieren der Quelldaten.

    • Client Integration Module: Einbindung von openlibrary-client zur Interaktion mit den Datensätzen.

    • Logging & Error Handling Module: Abfangen von HTTP 429 (Rate Limit), 503 (Service Unavailable) und Erstellung von Protokolldateien.

  • Ordner-Layout: Auslegung nach den Vorgaben des offiziellen Bot-Repositorys (Skript, README.md, requirements.txt und optionale Quelldateien).

Phase 4: Voraussetzungs-Check (Environment)

  • Systemumgebung: Linux-Laufzeitumgebung mit Python 3.x.

  • Versionskontrolle: Lokales git und GitHub-Account für den PR-Workflow.

  • Berechtigungen: Verifizierter Bot-Account mit Admin-Freigabe.

Phase 5: Implementierung (Schreiben des Skripts)

  • Hinweis: Gemäß den Richtlinien erstelle ich im aktuellen Schritt keinen Code.

  • Implementierung der Transformationslogik, der Fehlerbehandlungs-Schleifen und der openlibrary-client-Anbindung.

Phase 6: Lokal-Test & Trockenlauf (Dry-Run)

  • Integration eines DRY_RUN-Modes im Skript (Simulieren von Lese- und Schreibzugriffen ohne tatsächliche API-Mutationen).

  • Testen gegen kleine, dedizierte Datensätze zur Vermeidung fehlerhafter Massenänderungen.

Phase 7: GitHub-Workflow & Code-Review

  • Fork & Branch: Forken des offiziellen Repositories internetarchive/openlibrary-bots, Erstellen eines Feature-Branches.

  • Commit-Richtlinie: Quelldateien, aus denen der Bot Metadaten liest oder generiert, müssen zwingend mit im Repository committet werden.

  • Pull Request (PR): Einreichen des Code-Requests bei GitHub.

  • Strikte Regel: Der Bot darf erst nach expliziter Durchsicht und Freigabe durch die OpenLibrary-Maintainer live betrieben werden.

Phase 8: Live-Betrieb & Überwachung

  • Ausführung unter kontinuierlicher Protokollierung (Logging) und Überwachung der Server-Antworten.

  • Nachbereitung und Archivierung der Protokolle im Repository.

Bot für openlibrary.org

Ein umfassender Bot-Entwicklungsprozess für OpenLibrary.org folgt strengen infrastrukturellen und rechtlichen Vorgaben . Die Plattform basi...