## Wechselkursfilter

Wechselkursfilter selbst erstellen

Sie können nahezu von jeder Webseite, die Wechselkurse anbietet, Kurse in das NumericalChameleon übernehmen. Damit Kurse eindeutig identifiziert werden können, muß die Webseite neben den Wechselkursen entsprechende ISO-4217-Codes angeben (z. B. USD, EUR, usw.). Dabei ist es nicht von Bedeutung, ob die ISO-Codes in der HTML-Seite sichtbar sind, sie müssen nur im Sourcecode der HTML-Seite auftauchen, schon das Vorhandensein in einem Link reicht aus.

Die ISO-Codes sind in der der Datei "`<Installationsverzeichnis>/data/lists/iso4217.list`" definiert. Sie können Einträge in dieser Datei löschen, um nur die von Ihnen bevorzugten Wechselkurse zu berücksichtigen und damit auch u. U. das Parsing zu beschleunigen. Wechselkursfilter werden im Verzeichnis "`<Installationsverzeichnis>/data/rates/`" gespeichert und tragen die Endung "`.filter`".

Beispiel

Beispiel für die Konfigurationsdatei für die Webseite des "Pacific Exchange Rate Services"
(`<installationsverzeichnis>/data/rates/pacific.commerce.ubc.ca.filter`)

> `name=Pacific Exchange Rate Service` `visit=http://pacific.commerce.ubc.ca/xr/rates.html` `description=\` ``Service from the University of British Columbia\n\ Sauder School of Business\n\n\ This service provides 225 exchange rates\n\ (147 unique). `instruction=Visit the website above. Respect the "Terms of Use"\n\ at the webpage. Save the webpage to a file and\n\ go to step 3.` ```date=<title>Today's FX Rates Supplement for (.+?)</title>` `before_iso=<tt>` `after_iso=</tt></b>&nbsp;</font></td>\ (\\s*<td[^>]*><img[^>]*></td>\\s*<td[^>]*><font[^>]*>.+?</font></td>){3}\ \\s*<td[^>]*><img[^>]*></td>\\s*<td[^>]*><font[^>]*>&nbsp;([\\d\\.]+)\ &nbsp;</font></td>` `decimalSeparator=,` `decimalPoint=. valuepos=2`

Beschreibung aller gültigen Schlüsselworte

> Schlüsselwort | Auswirkung | Seit NC | Beschreibung
> enabled | Funktion | 2.0.0 | Optional; legt fest, ob der Wechselkursfilter aktiv ist oder nicht (true oder false), wenn der Schlüssel fehlt, ist der Filter aktiv
> name | Anzeige | 1.2.0 | Der Name des Wechselkursservice
> country | Anzeige | 2.0.0 | Das Land in dem der Wechselkursservice zu Hause ist
> visit | Filter | 1.2.0 | Die URL des Wechselkursservice
> visit.additional | Filter | 2.0.0 | Wie viele zusätzliche Adressen sind vorhanden?
> visit.<number> | Filter | 2.0.0 | Eine zusätzliche Adresse des Wechselkursservices
> description | Anzeige | 1.2.0 | Eine Beschreibung des Wechselkursservices in Englisch; wird verwendet, wenn kein passender description_<language> Eintrag gefunden wird
> description_<language> | Anzeige | 2.0.0 | Wie description, aber lokalisiert, <language> muß dabei ein zweistelliger Ländercode nach ISO 3166 sein, also z. B. "de" für Deutsch
> instruction | Anzeige | 1.2.0 | Eine kurze Beschreibung, was auf der Seite des Wechselkursservice gemacht werden soll; wird verwendet, wenn kein passender instruction_<language> Eintrag gefunden wird
> instruction_<language> | Anzeige | 2.0.0 | Wie instruction, aber lokalisiert, <language> muß dabei ein zweistelliger Ländercode nach ISO 3166 sein, also z. B. "de" für Deutsch
> date | Filter | 1.2.0 | Von wann sind die Wechselkurse, eine Klammerung definiert die Zeichenkette. Bei date=today wird der aktuelle Tag verwendet. Das kann sinnvoll sein, wenn die Webseite überhaupt keinen Tag angiebt, von wann die Wechselkurse sind.
> before_iso | Filter | 1.2.0 | Regulärer Ausdruck vor dem ISO 4217-Code, Klammerungen sind zulässig
> before_iso_inv | Filter | 1.5.0 | Optional; regulärer Ausdruck vor dem ISO 4217-Code, Klammerungen sind zulässig (Kurs wird neu berechnet mit 1/Kurs)
> after_iso | Filter | 1.2.0 | Regulärer Ausdruck nach dem ISO 4217-Code, Klammerungen sind zulässig
> after_iso_inv | Filter | 1.5.0 | Optional; regulärer Ausdruck nach dem ISO 4217-Code, Klammerungen sind zulässig (Kurs wird neu berechnet mit 1/Kurs)
> decimalSeparator | Filter | 1.2.0 | Welches Zeichen dient als Trenner zwischen den Ziffern in der HTML-Seite (z. B. ",")?
> decimalPoint | Filter | 1.2.0 | Welches Zeichen dient als Dezimalpunkt in der HTML-Seite? (z. B. ".")
> logic | Filter | 1.3.0 | Optional; wird gesetzt für das Feld Logik der Kategorie Wechselkurse, default ist "false"
> filechooser | Anzeige | 1.3.0 | Optional; welche Dateiendungen sollen im Öffnen-Dialog gefiltert werden können? (z. B. "html, htm")
> valuepos | Filter | 1.3.0 | Optional; die wievielte Klammerung in der Zeichenkette "before_iso+ISO+after_iso" definiert den Wechselkurswert? Default ist "1"
> base | Filter | 1.4.0 | Optional; ein dreistelliger ISO 4217-Code, der mit Faktor 1.0 definiert wird (z. B. "USD")
> factorpos | Filter | 2.0.0 | Optional; die wievielte Klammerung in der Zeichenkette "before_iso+ISO+after_iso" definiert den Faktor der Werteeinheit? Verwenden Sie entweder factorpos oder factorForAll.
> factorForAll | Filter | 2.0.0 | Optional; der Faktor für alle Werteeinheiten (üblicherweise 1); der Wechselkurs ist der Preis in der Basiseinheit für factorForAll Einheiten der Fremdwährung.Verwenden Sie entweder factorpos oder factorForAll.
> removeTags | Filter | 2.0.0 | Optional; default=false; Der Wert (siehe valuepos) kann HTML-Tags enthalten, bei "true" werden alle HTML-Tags entfernt (alles zwischen zpitzen Klammern)
> removeWhitespaces | Filter | 2.0.1 | Optional; default=false; Der Wert (siehe valuepos) kann Whitespaces enthalten, bei "true" werden alle Whitespaces entfernt (Blanks und Tabulatoren)
> replaceCodes | Filter | 2.0.0 | Optional; default=false; Der Wert (siehe valuepos) kann Zeichen in HTML-Code kodiert enthalten, bei "true" werden solche HTML-Codes in gültige Ziffern (0-9, e, E, +, -, Punkt und Komma) transformiert
> removeCommentBeforeParsing | Geschwindigkeit | 2.0.0 | Otional; default=false; Bei "true" werden alle HTML-Kommentare vor dem Parsen entfernt.
> searchOnlyFor | Geschwindigkeit | 2.0.0 | Optional; nur die durch Komma getrennte ISO-Codes werden gesucht. Dies kann die Geschwindigkeit erhöhen, mit der Wechselkurse aus einer Webseite herausgelesen werden, dies erhöht aber auch den Aufwand, einen Filter aktuell zu halten.
> cutHead | Geschwindigkeit | 2.0.0 | Optional; schneidet vom Anfang der Seite bis einschliesslich des Ende des Strings cutHead ab. Dies kann die Geschwindigkeit erhöhen, mit der Wechselkurse aus einer Webseite herausgelesen werden, weil weniger Inhalt geparst werden muss.
> cutHead.count | Geschwindigkeit | 2.0.0 | Optional; legt fest, wie oft cutHead durchgeführt wird
> cutBottom | Geschwindigkeit | 2.0.0 | Optional; schneidet ab Anfang des Strings cutBottom bis zum Ende der Seite ab. Dies kann die Geschwindigkeit erhöhen, mit der Wechselkurse aus einer Webseite herausgelesen werden, weil weniger Inhalt geparst werden muss.
> directDownload | Funktion | 2.0.0 | Optional; legt fest, ob ein direkter Download möglich ist. Standard ist false. Sollte nur auf true gesetzt werden, wenn keine Aktion seintens des Anwenders auf einer Webseite nötig ist.
> user-agent | Funktion | 2.0.0 | Optional; falls gesetzt, wird der user-agent als Parameter im HTTP-Header verwendet. Falls user-agent auf "random" gesetzt wird, wird zufallsmäßig ein User-Agent von drei im Netz weit verbreiteten Browsern verwendet.