Update README.md
This commit is contained in:
parent
c6e4c0126f
commit
41f078bc01
1 changed files with 93 additions and 42 deletions
135
README.md
135
README.md
|
@ -1,44 +1,46 @@
|
||||||
# Apple Contacts Geburtstage zu Remind Exporter
|
# Apple Contacts to Remind Exporter
|
||||||
|
|
||||||
Dieses Tool exportiert Geburtstagsinformationen aus Apple Contacts und erstellt eine Remind-Datei für Geburtstagserinnerungen.
|
Dieses Python-Tool exportiert Geburtstagsinformationen aus Apple Contacts und erstellt eine Remind-Datei für Geburtstagserinnerungen.
|
||||||
|
|
||||||
|
## Funktionen
|
||||||
|
|
||||||
|
- Extrahiert Geburtstage aller Kontakte aus Apple Contacts
|
||||||
|
- Erzeugt eine Remind-kompatible .rem-Datei
|
||||||
|
- Erstellt Erinnerungen mit 7-Tage-Vorwarnung vor jedem Geburtstag
|
||||||
|
- Berechnet das Alter automatisch (wenn das Geburtsjahr bekannt ist)
|
||||||
|
- Sortiert Einträge nach Monat und Tag
|
||||||
|
- Generiert einen Bericht über Kontakte mit fehlendem Geburtsjahr
|
||||||
|
|
||||||
## Voraussetzungen
|
## Voraussetzungen
|
||||||
|
|
||||||
- macOS (da Apple Contacts verwendet wird)
|
- macOS (da Apple Contacts verwendet wird)
|
||||||
- Python 3.6+
|
- Python 3.6+
|
||||||
- uv (Python-Projektverwaltungstool)
|
- pyobjc-framework-Contacts
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
1. Erstellen Sie ein Verzeichnis für das Projekt und wechseln Sie hinein:
|
1. Repository klonen oder die Datei herunterladen
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mkdir contacts-to-remind
|
git clone https://github.com/dein-username/apple-contacts-to-remind.git
|
||||||
cd contacts-to-remind
|
cd apple-contacts-to-remind
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Erstellen Sie eine Umgebung mit uv:
|
2. Python-Umgebung einrichten (mit uv oder pip)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
# Mit uv
|
||||||
uv venv
|
uv venv
|
||||||
```
|
|
||||||
|
|
||||||
3. Aktivieren Sie die Umgebung:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
source .venv/bin/activate
|
source .venv/bin/activate
|
||||||
```
|
|
||||||
|
|
||||||
4. Installieren Sie die erforderliche Abhängigkeit:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
uv pip install contacts
|
|
||||||
uv pip install pyobjc-framework-Contacts
|
uv pip install pyobjc-framework-Contacts
|
||||||
|
|
||||||
|
# Mit pip
|
||||||
|
python -m venv venv
|
||||||
|
source venv/bin/activate
|
||||||
|
pip install pyobjc-framework-Contacts
|
||||||
```
|
```
|
||||||
|
|
||||||
5. Speichern Sie das Script in einer Datei namens `contacts_to_remind.py`
|
3. Das Script ausführbar machen
|
||||||
|
|
||||||
6. Machen Sie das Script ausführbar:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
chmod +x contacts_to_remind.py
|
chmod +x contacts_to_remind.py
|
||||||
|
@ -48,43 +50,92 @@ chmod +x contacts_to_remind.py
|
||||||
|
|
||||||
### Grundlegende Verwendung
|
### Grundlegende Verwendung
|
||||||
|
|
||||||
Führen Sie das Script aus, um eine `geburtstage.rem`-Datei im aktuellen Verzeichnis zu erstellen:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./contacts_to_remind.py
|
./contacts_to_remind.py
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Dies erstellt eine Datei `geburtstage.rem` im aktuellen Verzeichnis.
|
||||||
|
|
||||||
### Optionen
|
### Optionen
|
||||||
|
|
||||||
- `-o DATEI`, `--output DATEI`: Gibt einen benutzerdefinierten Pfad/Namen für die Ausgabedatei an
|
```
|
||||||
- `-v`, `--verbose`: Zeigt ausführliche Informationen während der Ausführung
|
usage: contacts_to_remind.py [-h] [-o OUTPUT] [-v]
|
||||||
|
|
||||||
Beispiel mit Optionen:
|
Exportiert Geburtstage aus Apple Contacts in eine Remind-Datei.
|
||||||
|
|
||||||
```bash
|
options:
|
||||||
./contacts_to_remind.py -o ~/remind/meine_geburtstage.rem -v
|
-h, --help Zeigt diese Hilfe an und beendet das Programm
|
||||||
|
-o OUTPUT, --output OUTPUT
|
||||||
|
Ausgabedatei (Standard: geburtstage.rem)
|
||||||
|
-v, --verbose Ausführliche Ausgabe
|
||||||
```
|
```
|
||||||
|
|
||||||
## Remind-Format
|
### Beispiele
|
||||||
|
|
||||||
Das Script erstellt eine Remind-Datei im folgenden Format:
|
Standard-Ausgabedatei erstellen:
|
||||||
|
```bash
|
||||||
|
./contacts_to_remind.py
|
||||||
|
```
|
||||||
|
|
||||||
|
Benutzerdefinierte Ausgabedatei angeben:
|
||||||
|
```bash
|
||||||
|
./contacts_to_remind.py -o ~/remind/meine_geburtstage.rem
|
||||||
|
```
|
||||||
|
|
||||||
|
Mit ausführlicher Ausgabe:
|
||||||
|
```bash
|
||||||
|
./contacts_to_remind.py -v
|
||||||
|
```
|
||||||
|
|
||||||
|
## Ausgabeformat
|
||||||
|
|
||||||
|
Das Tool erzeugt eine Remind-Datei im folgenden Format:
|
||||||
|
|
||||||
```
|
```
|
||||||
# Geburtstage aus Apple Contacts
|
# Geburtstage aus Apple Contacts
|
||||||
# Erstellt am: 2025-04-14 12:34:56
|
# Erstellt am: 2025-04-15 14:23:45
|
||||||
# Enthält Erinnerungen am Geburtstag und 7 Tage vorher
|
# Enthält Erinnerungen am Geburtstag mit 7-Tage-Vorwarnung
|
||||||
|
|
||||||
REM 15 JAN MSG Max Mustermann: Geburtstag (35 Jahre alt) %b
|
if !defined("init")
|
||||||
REM 15 JAN +7 MSG Vorwarnung: Max Mustermann hat in 7 Tagen Geburtstag (35 Jahre alt) %b
|
set init 1
|
||||||
REM 28 FEB MSG Erika Beispiel: Geburtstag %b
|
fset since(x) ord(year(trigdate())-x)
|
||||||
REM 28 FEB +7 MSG Vorwarnung: Erika Beispiel hat in 7 Tagen Geburtstag %b
|
endif
|
||||||
|
|
||||||
|
REM 15 JAN +7 MSG Max Mustermanns [since(1986)] Geburtstag ist am 15. JAN %b
|
||||||
|
REM 28 FEB +7 MSG Erika Beispiels Geburtstag ist am 28. FEB %b
|
||||||
```
|
```
|
||||||
|
|
||||||
Die Rem-Einträge sind nach Monat und Tag sortiert und enthalten das Alter, wenn das Geburtsjahr bekannt ist. Für jeden Geburtstag gibt es zwei Einträge:
|
Das Script erstellt Erinnerungen, die 7 Tage vor dem eigentlichen Geburtstag angezeigt werden. Für Kontakte mit bekanntem Geburtsjahr wird das Alter dynamisch berechnet.
|
||||||
1. Eine Erinnerung am eigentlichen Geburtstag
|
|
||||||
2. Eine Vorwarnung 7 Tage vor dem Geburtstag mit der Syntax `+7`
|
|
||||||
|
|
||||||
## Hinweise
|
## Integration mit Remind
|
||||||
|
|
||||||
- Wenn bei einem Kontakt kein Geburtsjahr hinterlegt ist, wird kein Alter angezeigt
|
Die generierte .rem-Datei kann direkt mit [Remind](https://dianne.skoll.ca/projects/remind/) verwendet werden, einem leistungsfähigen Erinnerungstool für die Kommandozeile.
|
||||||
- Das Script kann als regelmäßiger Cron-Job eingerichtet werden, um die Geburtstagsdatei zu aktualisieren
|
|
||||||
|
Um die Geburtstagsdatei in Remind zu verwenden, fügen Sie sie zu Ihrer Remind-Konfiguration hinzu oder laden Sie sie direkt:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
remind geburtstage.rem
|
||||||
|
```
|
||||||
|
|
||||||
|
## Bericht über fehlende Geburtsjahre
|
||||||
|
|
||||||
|
Das Script gibt nach dem Ausführen einen Bericht über Kontakte aus, bei denen das Geburtsjahr fehlt:
|
||||||
|
|
||||||
|
```
|
||||||
|
Kontakte mit fehlendem Geburtsjahr (1604):
|
||||||
|
-----------------------------------------
|
||||||
|
• Anna Beispiel (23.4.)
|
||||||
|
• Max Mustermann (15.1.)
|
||||||
|
|
||||||
|
Hinweis: Bei diesen Kontakten wird kein Alter berechnet.
|
||||||
|
```
|
||||||
|
|
||||||
|
Dies hilft Ihnen, Kontakte zu identifizieren, bei denen das Geburtsjahr fehlt, falls Sie diese Informationen ergänzen möchten.
|
||||||
|
|
||||||
|
## Lizenz
|
||||||
|
|
||||||
|
Dieses Projekt steht unter der [GNU General Public License v3.0](LICENSE).
|
||||||
|
|
||||||
|
## Beitragen
|
||||||
|
|
||||||
|
Beiträge sind willkommen! Bitte fühlen Sie sich frei, Issues zu eröffnen oder Pull Requests einzureichen, um dieses Tool zu verbessern.
|
Loading…
Add table
Add a link
Reference in a new issue