pdr Aufruf | Index | pdr Referenz

## pdr Konfiguration

pdr wird in der Datei .pdrxrc gemeinsam mit pdx konfiguriert.

### Generelle Optionen

Die Datei .pdrxrc kann folgende generelle Einstellungen enthalten:

verbose = true | lesbare Ausgaben machen, wichtig, um zu verfolgen, was getan wird, anderenfalls werden nur Fehlerausschriften gemacht
interactive = true | pdr immer in der interaktiven Betriebsart starten, nicht ratsam
encoding = UTF-8 | teilt pdr das Encoding der Konsole mit, in der pdr und läuft, dieses Encoding wird für alle Ein- und Ausgaben sowie immer dann benutzt, wenn keine konkretere Angabe gemacht wird. Diese Option ist dafür verantwortlich, daß Texte (z.B. Kommentare, man denke insbesondere an deutsche Umlaute) korrekt in die Datenbank gelangen und korrekt wieder ausgegeben werden. Auf modernen Systemen wird man UTF-8 oder ISO-8859-1 anwenden. pdr erlaubt ASCII, UTF-8, UTF-16, ISO-8859-1, ISO-8859-15, Windows1252, ASCII/CP437 und ASCII/CP850.

### Datenbankoptionen

Hier werden Typ und Zugang zur verwendeten Datenbank konfiguriert.

#### SQLite

database.type = sqlite
database.connect = ~/local/share/my_data.db
Die erste Zeile besagt, daß die konkrete Datenbank eine SQLite-Datenbank ist. Die zweite Zeile enthält den vollständigen connect string zur Datenbank. Im Fall von SQLite ist dies schlicht der Name der Datenbankdatei mit Pfad, damit die Programme die Datenbank finden. Da es sich um persönliche Applikationen handelt, d.h. es keinen Mehrbenutzerbetrieb auf der Datenbank gibt, sollte diese in einem lokalen Benutzerverzeichnis liegen. Das Erzeugen der physischen Datenbank ist nicht Aufgabe von pdr oder pdx. Der Benutzer muß dies mit den Mitteln des jeweiligen Datenbank- bzw. Betriebssystems selbst vornehmen.

#### MySQL

database.type = mysql
database.connect = user=my_db_user_name;password=my_db_user_password;db=my_db_name;compress=true;auto-reconnect=true
Die erste Zeile besagt, daß die konkrete Datenbank eine MySQL-Datenbank ist. Die zweite Zeile enthält den vollständigen connect string zur Datenbank. Dieser enthält Paare der Form Schlüssel=Wert, die Schlüssel sind oben fett gemacht. Voraussetzungen zur Bildung dieses connect strings sind folgende:

1. Die Datenbank muß existieren, d.h. sie muß zuvor von einem Datenbankadministrator angelegt worden sein. Dieser vergibt dabei einen Namen, der auf dem Datenbankserver eindeutig ist, z.B. pdrx. Es ist wahrscheinlich empfehlenswert, auf Servern, an denen mehrere Benutzer arbeiten, mehrere benutzerspezifische Datenbanken anzulegen und am Namen zu unterscheiden.
2. Der Benutzer (ein Benutzer des Datenbankservers, nicht des Betriebssystems) muß existieren und das Recht besitzen, Tabellen anzulegen, zu löschen, zu selektieren und zu manipulieren.

### Spezifische Optionen

Die Datei .pdrxrc kann folgende pdr-spezifische Einstellungen enthalten:

inputs = e-mail-postfach, file1, file2, file3 | Diese Zeile definiert Bezeichner für pdr-Datenquellen, nämlich e-mail-postfach, file1, file2 und file3, sowie die Reihenfolge ihrer Abarbeitung

Im Fall der häufigen Verwendung immer gleicher Datenquellen zur Eingabe können diese in die Konfigurationsdatei eingetragen und administriert werden. Diese Datenquellen werden dann bei jedem Aufruf von pdr automatisch abgefragt.

#### Konfiguration eines POP3-Postfachs

Die Konfiguration eines POP3-Postfachs (e-mail-postfach) erfordert folgende Einstellungen:
e-mail-postfach.type = pop3
e-mail-postfach.server = pop.gmx.net
e-mail-postfach.account = MyAccount@gmx.net
e-mail-postfach.password = MyPassword
e-mail-postfach.subject = Z
e-mail-postfach.keep = yes
Die erste Zeile legt fest, dass es sich bei e-mail-postfach um ein Postfach handelt, das über POP3 abgefragt wird. Die nächsten drei Zeilen sind selbsterklärend. Die vierte Zeile benennt die Betreffzeile (subject), an der pdr relevante e-mails in diesem Postfach erkennt. Nur mails mit dieser Betreffzeile werden bearbeitet, alle anderen ignoriert. Auf diese Weise muß man nicht zwingend ein neues Postfach anlegen, man kann ein existierendes mitbenutzen. Hinweis: diese Betreffzeile muß bei jedem mail angegeben werden. Wer viele Datenmails verschickt, muß dies also ggf. sehr oft tun. Man halte sie deshalb möglichst kurz, aber zweifelsfrei eindeutig. Die letzte Zeile legt fest, ob ene e-mail-Nachricht nach erfolgreicher Verarbeitung gelöscht werden soll. Die Option akzeptiert true, false, yes und no. Im Fall von true oder yes bleibt die e-mail-Nachricht auf dem Server bestehen. Fehlt diese Option, wird sie gelöscht.

#### Konfiguration eines IMAP-Postfachs

Die Konfiguration eines IMAP-Postfachs baut auf der eines POP3-Postfachs auf, erweitert diese aber um einige IMAP-spezifische Einstellungen:
e-mail-postfach.type = imap
e-mail-postfach.server = mail.messagingengine.com
e-mail-postfach.port = 143
e-mail-postfach.account = MyAccount@fastmail.fm
e-mail-postfach.password = MyPassword
e-mail-postfach.folder = INBOX.pdr
e-mail-postfach.subject = Z
e-mail-postfach.keep = yes
e-mail-postfach.expunge = false
Die erste Zeile kennzeichnet den Bezeichner e-mail-postfach als IMAP-Postfach. server muß ein IMAP-Server sein, port läßt man normalerweise auf 143 (IMAP-Zugriff). Es ist beabsichtigt, später hier durch Angabe von 993 auch SSL-Zugriff zu erlauben. account und password sind selbsterklärend. folder geht konzeptionell über POP3 hinaus: auf einem IMAP-Server lassen sich Verzeichnisse einrichten, in die der Server mit Hilfe von Filterregeln eintreffende mails automatisch einsortiert. Es ist klug, das tatsächlich zu machen, um pdr-mails von anderen mails zu separieren. Das oberste Verzeichnis auf einem IMAP-Server heißt normalerweise INBOX. subject ist identisch zu POP3. Über keep und expunge kann gesteuert werden, was mit den mails nach der Verarbeitung passieren soll. Steht keep auf yes oder true, werden verarbeitete mails als gelesen markiert und bleiben auf dem Server. Steht keep auf no oder false, werden sie als gelöscht markiert, bleiben aber ebenfalls zunächst auf dem Server. Steht nun aber noch expunge auf yes oder true, werden sie tatsächlich auf dem Server gelöscht.

#### Konfiguration eines Twitter feeds

Die Konfiguration eines Twitter feeds ist einfacher als die eines e-mail-Postfachs:
my_twitter.type = twitter/rss
my_twitter.proxy = www.proxy.com:port
Die erste Zeile kennzeichnet den Bezeichner my_twitter als eine Datenquelle, hinter der ein Twitter-Account steckt. Das ist alles, mehr muß nicht konfiguriert werden, insbesondere muß hier kein konkreter Twitter-Benutzeraccount o.ä. bekanntgegeben werden, das geschieht anders (siehe hier). Die zweite Zeile benennt einen HTTP-Proxyserver, falls der Zugriff über einen Proxy erfolgen soll.

#### Konfiguration einer Textdatei

Die Verwendung einer Textdatei als Eingabe erfordert folgende Konfiguration:
file1.type = txt
file1.filename = ~/my_file.txt
file1.encoding = ISO-8859-1
file1.keep = true
Die erste Zeile legt fest, daß es sich bei file1 um eine Textdatei mit interpretierbaren Ausdrücken handelt. Die zweite Zeile gibt den Dateinamen bekannt, die dritte Zeile ein Encoding. Fehlt sie, wird default_encoding benutzt. Die letzte Zeile legt fest, ob die Textdatei nach erfolgreicher Verarbeitung gelöscht werden soll. Die Option akzeptiert true, false, yes und no. Im Fall von true oder yes bleibt die Datei bestehen. Fehlt diese Option, wird die Datei gelöscht.
filename erlaubt die Verwendung von wildcards (* und ?) um eine Datei mit nur unvollständig bekanntem oder wechselndem Namen oder gleich eine ganze Gruppe von Dateien zu verarbeiten. Der enthaltene Pfad muß vollständig sein, im Dateinamen kann man jedoch eine Angabe wie *.txt machen, um alle Dateien im angegebenen Verzeichnis zu verarbeiten.

#### Konfiguration einer CSV-Datei

Die Verwendung einer CSV-Datei als Eingabe erfordert folgende Konfiguration:
file2.type = csv
file2.filename = ~/my_file.csv
file2.encoding = ISO-8859-1
file2.ctrl_line = datetime, x, y, z
file2.keep = false
Die erste Zeile legt fest, daß es sich bei file2 um eine CSV-Datei handelt. Die zweite Zeile gibt den Dateinamen bekannt, die dritte Zeile ein Encoding. Fehlt sie, wird die generelle Option encoding benutzt. Die Option ctrl_line legt bei Bedarf eine Steuerzeile für die CSV-Datei fest. Die CSV-Datei selbst muß dann keine Steuerzeile enthalten. Die letzte Zeile legt fest, ob die CSV-Datei nach erfolgreicher Verarbeitung gelöscht werden soll. Die Option akzeptiert true, false, yes und no. Im Fall von true oder yes bleibt die Datei bestehen. Fehlt diese Option, wird die Datei gelöscht.
filename erlaubt die Verwendung von wildcards (* und ?) um eine Datei mit nur unvollständig bekanntem oder wechselndem Namen oder gleich eine ganze Gruppe von Dateien zu verarbeiten. Der enthaltene Pfad muß vollständig sein, im Dateinamen kann man jedoch eine Angabe wie *.csv machen, um alle Dateien im angegebenen Verzeichnis zu verarbeiten.

#### Konfiguration einer XML-Datei

Die Verwendung einer XML-Datei als Eingabe erfordert folgende Konfiguration:
file3.type = xml
file3.filename = ~/my_file.xml
file3.keep = no
Die erste Zeile legt fest, daß es sich bei file3 um eine XML-Datei handelt. Die zweite Zeile gibt den Dateinamen bekannt. Eine Angabe des Encodings fehlt hier, da die XML-Datei diese Information in sich trägt. Die letzte Zeile legt fest, ob die XML-Datei nach erfolgreicher Verarbeitung gelöscht werden soll. Die Option akzeptiert true, false, yes und no. Im Fall von true oder yes bleibt die Datei bestehen. Fehlt diese Option, wird die Datei gelöscht.
filename erlaubt die Verwendung von wildcards (* und ?) um eine Datei mit nur unvollständig bekanntem oder wechselndem Namen oder gleich eine ganze Gruppe von Dateien zu verarbeiten. Der enthaltene Pfad muß vollständig sein, im Dateinamen kann man jedoch eine Angabe wie *.xml machen, um alle Dateien im angegebenen Verzeichnis zu verarbeiten.

pdr Aufruf | Index | pdr Referenz