Datenbankformat

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