README.md aktualisiert

This commit is contained in:
2026-05-20 12:27:01 +02:00
parent 03355f5252
commit e38b3f48f6
+55
View File
@@ -1,2 +1,57 @@
# doi2ris
Python-Skript, das eine Liste von Literaturquellen einliest, DOIs extrahiert,
bibliographische Metadaten via Crossref (Fallback DataCite) ergänzt und eine
Zotero-kompatible **.ris**-Datei erzeugt.
## Voraussetzungen
```bash
pip install requests
```
## Verwendung
```bash
python doi2ris.py quellen.txt -o bibliothek.ris --email du@example.com --workers 8
```
### Argumente
| Argument | Beschreibung |
| --------------- | ---------------------------------------------------------------------- |
| `input` | Eingabedatei, eine Quelle pro Zeile |
| `-o/--output` | RIS-Ausgabepfad (Default `library.ris`) |
| `--email` | Mailadresse für Crossref Polite-Pool (empfohlen, beschleunigt Antworten) |
| `--workers` | Anzahl paralleler Requests (Default 8) |
| `--cache` | JSON-Cache, damit Wiederholungsläufe instantan laufen |
| `--unresolved` | Logdatei für Zeilen ohne erfolgreiche Auflösung |
| `-v/--verbose` | Debug-Logging |
### Eingabeformate
Pro Zeile beliebig — das Skript zieht via Regex die DOI heraus:
```
10.1038/s41586-020-2649-2
https://doi.org/10.1109/5.771073
Coble, R. L. (1961). Sintering crystalline solids ... doi:10.1063/1.1736107
@article{smith2020, doi = {10.1000/xyz123}, ...}
```
Zeilen **ohne** DOI werden per Crossref-Titelsuche aufgelöst (Top-Treffer ab
Score 40). Klappt das nicht, landet die Zeile in `unresolved.txt`.
## Zotero-Import
In Zotero: *Datei → Importieren … → RIS-Datei wählen*. Die Felder werden korrekt
gemappt (Autor:innen, Journal, Band/Heft, Seiten, DOI, Abstract, Schlagwörter,
ISSN/ISBN, URL).
## Hinweise
- Crossref erlaubt großzügige Anfragen, im Polite-Pool (mit `--email`) bekommt
man bevorzugte Antwortzeiten. Auch ohne Mail funktioniert es.
- 5-fach Retry mit exponentiellem Backoff für HTTP 429/5xx ist eingebaut.
- Der lokale `.doi_cache.json` macht erneute Läufe verlustfrei reproduzierbar.
- Bei 107 Einträgen läuft das Skript typischerweise in 3060 Sekunden durch.