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". Wechselkursfilter wurden vor NumericalChameleon 2.2.0 in ISO 8859-1 gespeichert. Seit NumericalChameleon 2.2.0 müssen Wechselkursfilter in UTF-8 gespeichert werden.

Beispiel

Beispiel für die Konfigurationsdatei für die Webseite der "University of British Columbia"
(<installationsverzeichnis>/data/rates/fx.sauder.ubc.ca.filter)

 name=PACIFIC Exchange Rate Service
provider=The University of British Columbia: Sauder School of Business

visit=http://fx.sauder.ubc.ca/supplement.html
version=20180714
country=ca
continent=na

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.\n\
\n\
IMPORTANT: If you use the Internet Explorer (IE), select\n\
the option "Save as type: Web Page, HTML only" at the\n
dialog called "Save Web Page", otherwise the IE rewrites\n\
(destroys) the original HTML of the exchange rate provider\n\
and this filter doesn't work anymore!

instruction_de=\
Besuchen Sie obige Webseite. Respektieren Sie die\n\
Nutzungsbedingungen auf der Webseite. Speichern Sie die\n\
Webseite als Datei ab und gehen Sie zu Schritt 3.\n\
\n\
WICHTIG: Wenn Sie den Internet Explorer (IE) verwenden,\n\
wählen Sie beim Dialog "Webseite speichern" den Dateityp\n\
"Webseite, nur HTML". Wenn Sie "Webseite, komplett" wählen,\n\
zerstört der IE das HTML-Originalformat des Wechselkurs-\n\
anbieters und dieser Filter funktioniert dann nicht mehr.

date=<title>Today's FX Rates Supplement for ([^<]+)</title>
before_iso=<tt>
after_iso=</tt></td>\
\\s*<td[^>]+>[^<]+</td>\
\\s*<td[^>]+>([\\d\\.]+)[^<]*</td>
valuepos=1
decimalSeparator=,
decimalPoint=.
filechooser=htm,html
base=CAD
directDownload=true
user-agent=random
            

Beschreibung aller gültigen Schlüsselworte

Schlüsselwort Erforderlich Datentyp Default Auswirkung Seit NC Obsolet
seit NC
Beschreibung
enabled - Boolean true Funktion 2.0.0   legt fest, ob der Wechselkursfilter aktiv ist oder nicht (true oder false), wenn der Schlüssel fehlt, ist der Filter aktiv
name  x String   Anzeige 1.2.0   Der Name des Wechselkursservice
provider  x String   Anzeige 3.0.0   Der Name des Wechselkursproviders
country  x String   Anzeige 2.0.0   Das Land in dem der Wechselkursservice zu Hause ist, dient für die Anzeige des Fähnchens und der Sortierung
continent  x String   Anzeige 3.0.0   Der Kontinent, in dem der Wechselkursservice zu Hause ist, dient der Sortierung
version - Integer   Anzeige -   Spezifiziert die Version des Filters. Wird vom Programm NC z. Zt. nicht verwendet
visit  x URL   Filter 1.2.0   Die URL des Wechselkursservice
visit.additional - Integer   Filter 2.0.0   Wie viele zusätzliche Adressen sind vorhanden?
visit.<number> - URL   Filter 2.0.0   Eine zusätzliche Adresse des Wechselkursservices
description   String   Anzeige 1.2.0 2.2.0 Eine Beschreibung des Wechselkursservices in Englisch; wird verwendet, wenn kein passender description_<language> Eintrag gefunden wird
description_<language> - String   Anzeige 2.0.0 2.2.0 Wie description, aber lokalisiert, <language> muß dabei ein zweistelliger Ländercode nach ISO 3166 sein, also z. B. "de" für Deutsch
instruction  x String   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> - String   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  x Regex   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  x Regex   Filter 1.2.0   Regulärer Ausdruck vor dem ISO 4217-Code, Klammerungen sind zulässig
before_iso_inv - Regex   Filter 1.5.0   regulärer Ausdruck vor dem ISO 4217-Code, Klammerungen sind zulässig (Kurs wird neu berechnet mit 1/Kurs)
after_iso  x Regex   Filter 1.2.0   Regulärer Ausdruck nach dem ISO 4217-Code, Klammerungen sind zulässig
after_iso_inv - Regex   Filter 1.5.0   regulärer Ausdruck nach dem ISO 4217-Code, Klammerungen sind zulässig (Kurs wird neu berechnet mit 1/Kurs)
decimalSeparator  - Character  , Filter 1.2.0   Welches Zeichen dient als Tausendertrennzeichen? Default ist das Komma.
decimalPoint  - Character  . Filter 1.2.0   Welches Zeichen dient als Dezimalpunkt? Default ist der Punkt.
logic - Boolean false Filter 1.3.0   Wird gesetzt für das Feld Logik der Kategorie Wechselkurse
filechooser - csv of Strings   Anzeige 1.3.0   Welche Dateiendungen sollen im Öffnen-Dialog gefiltert werden können? (z. B. "html, htm")
valuepos - Integer 1 Filter 1.3.0   Die wievielte Klammerung in der Zeichenkette "before_iso+ISO+after_iso" definiert den Wechselkurswert? Default ist "1"
base - String   Filter 1.4.0   Ein i. d. R. dreistelliger ISO 4217-Code, der mit Faktor 1.0 definiert wird (z. B. "USD")
factorpos - Integer   Filter 2.0.0   Die wievielte Klammerung in der Zeichenkette "before_iso+ISO+after_iso" definiert den Faktor der Werteeinheit? Verwenden Sie entweder factorpos oder factorForAll.
factorForAll - Decimal   Filter 2.0.0   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 - Boolean false Filter 2.0.0   Der Wert (siehe valuepos)  kann HTML-Tags enthalten, bei "true" werden alle HTML-Tags entfernt (alles zwischen zpitzen Klammern)
removeTagsBeforeParsing - Boolean false Vereinfachung des Regulären Ausdrucks;
Performance
2.2.0   Bei "true" werden alle HTML-Tags aus dem HTML-Dokument vor dem Parsen entfernt.
removeWhitespaces - Boolean false Filter 2.0.1   Der Wert (siehe valuepos) kann Whitespaces enthalten, bei "true" werden alle Whitespaces entfernt (Blanks und Tabulatoren)
replaceCodes - Boolean false Filter 2.0.0   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 - Boolean false Geschwindigkeit 2.0.0   Bei "true" werden alle HTML-Kommentare vor dem Parsen entfernt.
removeScriptsBeforeParsing - Boolean false Geschwindigkeit 2.2.0   Bei "true" werden alle Script-Tags vor dem Parsen entfernt
removeIFrameBeforeParsing - Boolean false Geschwindigkeit 2.2.0   Bei "true" werden alle IFrame-Tags vor dem Parsen entfernt
replaceJSONCodesBeforeParsing - Boolean false Vereinfachung des regulären Ausdrucks 2.2.0   Bei "true" werden alle JSON-Codes vor dem Parsen ersetzt, d. h. aus z. B. \x7B wird die geöffnete geschweifte Klammer, aus \x3a der Doppelpunkt, usw.
searchOnlyFor - CSV of Strings   Geschwindigkeit 2.0.0   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 - String   Geschwindigkeit 2.0.0   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 - Integer   Geschwindigkeit 2.0.0   Legt fest, wie oft cutHead durchgeführt wird
cutBottom - String   Geschwindigkeit 2.0.0   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 - Boolean false Funktion 2.0.0   Legt fest, ob ein direkter Download möglich ist. Sollte nur auf true gesetzt werden, wenn keine Aktion seintens des Anwenders auf einer Webseite nötig ist.
user-agent - String   Funktion 2.0.0   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 weit verbreiteten Browsern verwendet.
charset - String UTF-8 Filter 3.0.0
Die meisten Webseiten verwenden heute UTF-8. Entsprechend ist UTF-8 der Default für den Zeichensatz der Eingabedatei. Sollte eine Abweichung von dieser Regel erforderlich sein,  z. B. auch wenn die Eingabedatei sich ihren Zeichensatz nicht selbst korrekt beschreibt, kann mittels charset der tatsächlich verwendete Zeichensatz gewählt werden.
nonIsoCodesInFile - String
Filter 3.0.0
Falls spezielle Nicht-ISO-Codes in einer Eingabedatei vorkommen (z. B. bei Kryptowährungen, denen noch keine offizielle ISO-Code-Entsprechung zugewiesen word ist), kann mit dieser Direktive die Datei angegeben werden, wo diese Codes zu finden sind. Der Vorteil ist, dass solche Nicht-ISO-Code-Dateien von mehreren Filtern referenziert werden können.
useNonIsoCodesOnly - boolean false Geschwindigkeit 3.0.0
Legt fest, ob ausschlisslich Non-ISO-Codes verwendet werden sollen. Dies ignoriert sämtliche offiziellen ISO-Codes, bis auf die Währung, die mit "base" spezifiziert wurde.