README.md aktualisiert
This commit is contained in:
@@ -1,2 +1,57 @@
|
|||||||
# doi2ris
|
# 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