ubuntuusers.de

Alternative zu Data Becker "Denk Dran"

Status: Gelöst | Ubuntu-Version: Ubuntu 20.04 (Focal Fossa)
Antworten |

Allyfied

Anmeldungsdatum:
25. März 2014

Beiträge: 17

Wohnort: Lenzen

Hallo Leute, ich möchte den Laptop meines alten Herren auf Linux umstellen. Jedoch benutzt er für Erinnerungen an Geburtstage das Programm "Denk Dran" von Data Becker. Soweit ich es recherchiert habe, basiert dieses Programm auf den Birthday reminder von CWeiske (http://cweiske.de/birthday.htm). Unter wine lässt es sich nicht starten. Der Java-Port von Herrn Weiske läuft zwar auf Linux, zeigt aber keine Erinnerungen an.

Die Geburtstage speichert Denk Dran in einer XML-Datei im Format:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml-stylesheet type="text/xsl" href="http://xml.cweiske.de/files/bdf/1/bdf.xsl" ?>
<birthdayfile>
  <version />
  <fileversion>1,01</fileversion>
  <author />
  <title />
  <generator>cweiske.de birthday reminder</generator>
  <settings>
    <showlast>10</showlast>
    <shownext>30</shownext>
    <colors>0</colors>
    <colorpast>#FFFFFF</colorpast>
    <colornow>#FFFFFF</colornow>
    <colorfuture>#FFFFFF</colorfuture>
  </settings>
  <content>
    <person>
      <name>Oma</name>
      <event>Geburtstag</event>
      <date>13.01.1921</date>
    </person>
</birthdayfile>

Gibt es ein alternatives Programm, welches nach dem Start den als nächstes anstehenden Geburtstag in einer nervigen Art und Weise anzeigt und erst mit Klick wieder verschwindet?

Viele Grüße Ally

Allyfied

(Themenstarter)

Anmeldungsdatum:
25. März 2014

Beiträge: 17

Wohnort: Lenzen

Also nach einiger Probiererei bin ich sehr von dem kleinen Programm birthday angetan, dessen Ausgabe ich via Zenity auf den Schreibtisch ploppen lasse.

Nun kommt der schwierigste Teil: Die Konvertierung der Daten aus Denk Dran in das Zielformat für birthday.

Denk Dran kann eine CSV-Datei exportieren mit dem Muster:

1
2
Name, Datum, Ereignis
Dackel Effie, 20.08.2017, Geburtstag

birthday braucht die Daten im Format:

1
Dackel Effie=20/08/2017 bd

Um die knapp 800 Einträge nicht per Hand abtippen zu müssen, wäre es schön, wenn mir jemand bei sed bzw. awk auf die Sprünge helfen könnte. Also pro Zeile erstes Komma durch ein = ersetzen und pro Zeile zweites Komma durch ein Leerzeichen ersetzen.

Das Datumsformat und das Wort Geburtstag kann ich dann mit jedem Editor ersetzen.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11273

Wohnort: München

Allyfied schrieb:

Um die knapp 800 Einträge nicht per Hand abtippen zu müssen, wäre es schön, wenn mir jemand bei sed bzw. awk auf die Sprünge helfen könnte.

Mit sed ginge das z.B. so:

1
sed 's/, */=/;s/, *.*$/ bg/;s/\./\//g' input.csv > birthdays

Ich mag für sowas Python3 mit einem richtigen CSV-Parser lieber, weil das keine so große Schlacht mit unleserlichen Ausdrücken ist:

1
2
3
4
5
6
7
8
9
#!/usr/bin/env python3
import csv
import sys

for filename in sys.argv[1:]:
    with open(filename, newline='') as csvfile:
        reader = csv.DictReader(csvfile, skipinitialspace=True)
        for row in reader:
            print(f"{row['Name']}={row['Datum'].replace('.', '/')} bd")
./transform.py input.csv > birthdays 

Allyfied

(Themenstarter)

Anmeldungsdatum:
25. März 2014

Beiträge: 17

Wohnort: Lenzen

Wow... Hammer! Seahawk, Du bist mein Held! Das Python-Script läuft 1a und macht jegliche Arbeiten ohne, dass ich nacharbeiten muss. Super, vielen herzlichen Dank!!!

Mit Python sollte ich mich wirklich einmal beschäftigen.

Viele Grüße Ally

hakel

Anmeldungsdatum:
13. August 2009

Beiträge: 23336

Allyfied

(Themenstarter)

Anmeldungsdatum:
25. März 2014

Beiträge: 17

Wohnort: Lenzen

hakel schrieb:

Vielleicht findest du ein Addon für TB ...

Nein, das wäre nicht das Richtige. Mein alter Herr ruft ja nicht jeden eMails ab und startet Thunderbird. Er schreibt lediglich jeden Tag mehrere Leserbriefe an einige Tageszeitungen, druckt sie aus und bringt sie zur Post. Daher sollte die Erinnerung gleich nach dem Anmelden aufploppen und stehen bleiben, bis er auf "ok" klickt. Mit Zenity geht das wunderbar.

Als Startprogramm trage ich dann nur den Befehl ein:

1
zenity --info --text "$(/usr/bin/birthday)"

Dies ergibt dann das Infofeld im Anhang.

Viele Grüße Ally

Bilder
Antworten |