Files
radioeins_charts/README.md
T

86 lines
2.6 KiB
Markdown

# radioeins Top-100-Auswertung
Dieses kleine Python-Skript liest die Top-10-Listen einer radioeins-Top-100-Jury
ein und erstellt daraus eine Gesamtwertung. Titel werden unabhängig vom
Künstler anhand einer normalisierten Schreibweise zusammengefasst.
## Installation unter macOS
1. Das Repository herunterladen oder klonen.
2. Im Finder `install.command` doppelt anklicken.
Falls macOS das Öffnen verhindert: Rechtsklick auf die Datei, **Öffnen** wählen
und bestätigen. Der Installer legt `.venv` an und installiert die benötigten
Python-Pakete. Er kann jederzeit erneut ausgeführt werden.
Alternativ im Terminal:
```sh
./install.command
```
Voraussetzung ist `python3` (Python 3.10 oder neuer).
## Verwendung unter macOS
`radioeins-top100.command` im Finder doppelt anklicken und die URL einer
radioeins-Top-100-Übersichtsseite eingeben, zum Beispiel:
```text
https://www.radioeins.de/musik/top_100/2026/deutscher-hip-hop/
```
Die URL muss auf die Übersichtsseite zeigen, unterhalb derer die einzelnen
Juryseiten als `.html`-Seiten verlinkt sind. Der Ausgabeordner wird aus dem
letzten Teil des URL-Pfads gebildet. Beispielsweise schreibt eine URL mit
`/2026/deutscher-hip-hop/` ihre Ergebnisse nach `output_deutscher-hip-hop`.
## Verwendung im Terminal
```sh
./.venv/bin/python radioeins_top100.py "URL_DER_ÜBERSICHTSSEITE"
```
Optionen:
```text
--limit ANZAHL nur die ersten ANZAHL Juryseiten verarbeiten
--delay SEKUNDEN Pause zwischen Abrufen (Standard: 0.2)
--output ORDNER abweichenden Ausgabeordner verwenden
--accept-incomplete unvollständige historische Listen automatisch akzeptieren
```
Beispiel für einen kurzen Testlauf:
```sh
./.venv/bin/python radioeins_top100.py \
"https://www.radioeins.de/musik/top_100/2026/deutscher-hip-hop/" \
--limit 3
```
## Ergebnisdateien
- `radioeins_top100.xlsx`
- `top100.csv`
- `gesamtwertung.csv`
- `einzelwertungen.csv`
- `fehler.csv`
- `incomplete_jury_lists.csv`
Der Ausgabeordner wird bei Bedarf automatisch erstellt. Bereits vorhandene
Dateien gleichen Namens werden bei einem neuen Lauf ersetzt. Mit `--output`
kann jederzeit ausdrücklich ein anderer Ordner gewählt werden; diese Angabe
hat Vorrang vor dem aus der URL abgeleiteten Namen.
Unvollständige, aber strukturell gültige historische Jurylisten werden im
Terminal zur Bestätigung angeboten. Ohne interaktives Terminal werden sie
standardmäßig abgelehnt. `--accept-incomplete` akzeptiert sie automatisch;
fehlende Ränge werden dabei nicht ergänzt oder verschoben. Alle entsprechenden
Entscheidungen stehen in `incomplete_jury_lists.csv`.
## Tests
```sh
./.venv/bin/python -m unittest discover -s tests
```