Prepare macOS package and improve output handling
This commit is contained in:
@@ -1,65 +1,77 @@
|
||||
# radioeins Top-100-Auswertung
|
||||
|
||||
## Installation in PowerShell
|
||||
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.
|
||||
|
||||
```powershell
|
||||
python -m venv .venv
|
||||
.\.venv\Scripts\Activate.ps1
|
||||
python -m pip install -r requirements.txt
|
||||
## 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
|
||||
```
|
||||
|
||||
Falls die virtuelle Umgebung bereits aktiv ist, nur:
|
||||
Voraussetzung ist `python3` (Python 3.10 oder neuer).
|
||||
|
||||
```powershell
|
||||
python -m pip install -r requirements.txt
|
||||
## 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/
|
||||
```
|
||||
|
||||
## Testlauf mit drei Juryseiten
|
||||
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`.
|
||||
|
||||
```powershell
|
||||
python .\radioeins_top100.py --limit 3
|
||||
## Verwendung im Terminal
|
||||
|
||||
```sh
|
||||
./.venv/bin/python radioeins_top100.py "URL_DER_ÜBERSICHTSSEITE"
|
||||
```
|
||||
|
||||
## Vollständige Auswertung
|
||||
Optionen:
|
||||
|
||||
```powershell
|
||||
python .\radioeins_top100.py
|
||||
```text
|
||||
--limit ANZAHL nur die ersten ANZAHL Juryseiten verarbeiten
|
||||
--delay SEKUNDEN Pause zwischen Abrufen (Standard: 0.2)
|
||||
--output ORDNER abweichenden Ausgabeordner verwenden
|
||||
```
|
||||
|
||||
Für eine andere radioeins-Top-100-Seite:
|
||||
Beispiel für einen kurzen Testlauf:
|
||||
|
||||
```powershell
|
||||
python .\radioeins_top100.py "https://www.radioeins.de/musik/top_100/2026/ANDERES-THEMA/"
|
||||
```sh
|
||||
./.venv/bin/python radioeins_top100.py \
|
||||
"https://www.radioeins.de/musik/top_100/2026/deutscher-hip-hop/" \
|
||||
--limit 3
|
||||
```
|
||||
|
||||
## Ergebnisdateien
|
||||
|
||||
Die Dateien werden unter `output` angelegt:
|
||||
|
||||
- `radioeins_top100.xlsx`
|
||||
- `top100.csv`
|
||||
- `gesamtwertung.csv`
|
||||
- `einzelwertungen.csv`
|
||||
- `unaufgeloeste_eintraege.csv`
|
||||
- `fehler.csv`
|
||||
|
||||
## Schreibvarianten korrigieren
|
||||
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.
|
||||
|
||||
Bestätigte Varianten in `output\title_aliases.csv` eintragen:
|
||||
## Tests
|
||||
|
||||
```csv
|
||||
variant,canonical
|
||||
Weck mich auf,Weck Mich Auf
|
||||
```sh
|
||||
./.venv/bin/python -m unittest discover -s tests
|
||||
```
|
||||
|
||||
## Unklare Interpret-Titel-Trennung korrigieren
|
||||
|
||||
Einträge aus `output\unaufgeloeste_eintraege.csv` in
|
||||
`output\split_overrides.csv` übernehmen:
|
||||
|
||||
```csv
|
||||
raw,artist,title
|
||||
Samy Deluxe Weck Mich Auf,Samy Deluxe,Weck Mich Auf
|
||||
```
|
||||
|
||||
Danach das Skript erneut starten.
|
||||
|
||||
Reference in New Issue
Block a user