Die Datenbank besteht aus einer reinen Textdatei mit der Endung *.omn (Steht übrigens für Omni, den Namen der Anwendung vor der Umbenennung).
Wenn man eine Datenbank mit einem Texteditor öffnet sieht man - zumindest wenn sie unverschlüsselt ist - als erstes die ersten fünf Zeilen. Dies ist der Kopf der Datenbank.
Darunter befindet sich der Inhalt.
Kopf/Header
Der Header besteht aus den ersten fünf Zeilen der Datenbankdatei.
In der ersten Zeile steht immer GWlinksDB zur Erklärung was als nächstes kommt ;-).
Danach folgt in der zweiten Zeile die Datenbankversion.
In den nächsten drei Zeilen werden Informationen abgelegt, die Mahaf benötigt, um die Datenbank ggf. zu ver-/entschlüsseln.
Das wären nacheinander der Salt, der Datenbankkey und die Rounds.
Weiteres hierzu unter Sicherheit oder hier.
Inhalt
Hier stehen die einzelnen Datensätze. Jeder in einer Zeile.
Den Beginn macht der Name der Datenbank, welcher als oberste Kategorie auch in der geöffneten Datenbank auftaucht.
Die einzelnen Datensatzfelder werden durch Pipes (|) voneinander getrennt.
Beispiel:
83|22|3D Artists|http://www.raph.com/3dartists/|A large site featuring many 3D Artists.....
Weiter gibt hier zwei Arten von Datensätzen, Kategorien und Links.
Datensatzfelder
Nr. | Kat./Link | Interner Name | Inhaltstyp | Beschreibung |
1 | X / X | ID | integer | IDE des Verzeichnisses oder des Links, beim Root immer 0 |
2 | X / X | BEZID | integer | ID des übergeordneten Verzeichnisses, beim Root immer 0 |
3 | X / X | NAME | string | Verzeichnis- oder Linkname |
4 | - / X | ADRESSE | string | Link-URL |
5 | X / X | MEMO | string | Verzeichnis- oder Linkmemo |
6 | STATUS | integer | bei Verzeichnissen 98 und beim Root 99 bzw. Linkstatus 0 = nicht geprüft .... | |
7 | BEWERTUNG | integer | DB-Linkbewertung (0- 6) | |
8 | DATUM | integer | DB-, Verzeichnis- oder Linkerstellungsdatum | |
9 | AEDATUM | integer | DB-, Verzeichnis- oder Linkänderungsdatum | |
10 | LASTVISIT | integer | letzter Aufruf der Seite / nur bei URLs | |
11 | STATUSD | integer | Datum der letzten Statusermittlung / nur bei URLs | |
12 | UNTERV | integer | ungenutzt bei Kategorien immer 0, sonst immer leer | |
13 | PRUEF | string | 0 0 000000 #0# 0 0 0 1-Stelle: 0=keines, 1=Prüefflag, 2=Preserve, 3=beides, 2-Stelle: URL aktualisiert 0=nein, 1=ja, 2=Fehler, 3=Fehler mit schon bestehender Änderung bis zum #: Datum(Unix) letzte Änderung des Ziels zwischen den #: Grösse des Ziels nach dem letzten # 1-Stelle (Prüfung Datum/Grösse): 0=nie, 1=1 URL, 2=2 URL 2-Stelle (Prüfung String): 0=nie, 1=1 URL, 2=2 URL Rest: 2 URL |
|
14 | ERWEITER | string | Prüfstring: Stringgrenzen%{}%Stringinhalt | |
15 | AEZAEHLER | integer | zählt die Aufrufe einer URL | |
16 | SPRACHE | string | ||
17 | USERNAME | string | ||
18 | PASSWORD | string | ||
19 | UPANWENDEN | integer | leer, wenn ausgeschaltet, 1 wenn an - Username und Passwort wird bei der Prüfung übergeben, wenn angeschaltet | |
20 | UPDATENAME | string | bei einer Prüfung den Namen ggf. ändern | |
21 | UPDATENURL | string | bei einer Prüfung die URL ggf. ändern (z.B. bei einem Redirect) | |
22 | STICHWORTE | string | zur URL, ggf. von der Webseite übernommen | |
23 | MEMONETZ | string | Beschreibung von der Webseite übernommen | |
24 | AUTOR | string | der Webseite, vom User eingegeben oder von der Webseite übernommen | |
25 | HASH | string | des Inhaltes der Webseite (Body) für die Prüffunktion | |
26 | FESTERBROWSER | integer | 0 - 4 je nachdem ob und welcher Browser für diese Webseite benutzt werden soll | |
27 | PASSEXPIRE | integer | Zeitangabe wann das gesetzte Passwort abläuft | |
28 | AVVS | string | Autovervollständigungssequenz |
Maskierte Zeichen
In der Datenbank müssen einige Zeichen maskiert werden um zu verhindern, dass Fehler auftreten.
Zeichen | Maskiert |
| | Chr(222) |
Variable
Variable | Inhalt |
{%1} | Der String den die Prüffunktion aus der Webseite ausgelesen hat |