README.md aktualisiert
This commit is contained in:
@@ -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 30–60 Sekunden durch.
|
||||
|
||||
Reference in New Issue
Block a user