English  Deutsch  

Pichat Chatkonfiguration

Letzte Aktualisierung 21/Jul/2010 von Mark Seuffert

1. Einführung

Erstelle dein eigenes Chatsystem. Man kann den Chat an eigene Wünsche angleichen, egal ob man nur zuhause chaten will oder einen öffentlichen Chatserver betreibt. Dieses Dokument richtet sich an fortgeschrittene Benutzer und Administratoren die ihren Chat individuell einstellen möchten und erklärt wie man seine Chatdienste anpasst und verbessert.

2. Grundvoraussetzungen

Pichat ist eine Software um zu kommunizieren und Informationen auszutauschen. Die primären Ziele sind Einfachheit, Komfort, Privatsphäre, Stabilität und der freie Austausch von Informationen. Mit diesen Eigenschaften eignet es sich als privater Chat für Freunde, als Community-Chatsystem und zur Kommunikation im Unternehmen. Eine Eigenschaft von Pichat ist das Anbieten von mehreren Protokollen und Formaten, welches die Integration und den Zugriff auf ein Chat erleichtern.
Ein Chatdienst kann sowohl im lokalen Netzwerk (LAN) als auch im Internet angeboten werden, für letzteres benötigt man eine bestehende Internetverbindung. Beim Betreiben eines öffentlichen Chats im Internet sollte man vorsichtig sein, es wird nicht empfohlen einen öffentlichen Chatdienst laufen zu lassen ohne ordentlichen Schutz! Siehe auch Sicherheitshinweise.

3.1. Webserver

Es gibt einen integrierten Webserver in Pichat den man zum Datenaustausch verwenden kann. Man muss nichts konfigurieren um den Webserver und den Webchat zu benutzen, möglicherweise will man aber seine Homepage und seinen Webchat anpassen.
Ein Webserver hat ein so genanntes Wurzelverzeichnis, nur Dateien innerhalb dieses Verzeichnisses sind für andere erreichbar. Man findet es im im Pichat-Verzeichnis im Heimatverzeichnis, bei Windows %APPDATA% im Windows-Explorer eingeben. Kopiere Dateien die du allen Benutzer anbieten willst in ein Verzeichnis (Standard ist "webserver/public") und Dateien die du nur registrierten Benutzer anbieten willst in ein anderes (Standard ist "webserver/private"). Das ist praktisch wenn man Dateien mit seinen Freunden austauschen will, aber gleichzeitig sicher gehen möchte dass private Dateien in einem engeren Kreis bleiben. Natürlich kann man seinen Webserver auch ganz anders organisieren, alle Webserverorte kann man im [Server] Abschnitt der Pichat INI-Datei einstellen.
Beispiele:Auf den eigenen Webserver greift man zu mit...
 
http://127.0.0.1
http://myserver
Das erste Beispiel greift auf den eigenen Computer zu. Im zweiten Beispiel ist "myserver" die öffentliche Adresse deines Webservers. Das könnte der Computername im lokalen Netzwerk sein oder ein echter Rechnername wie "pichat.no-ip.org".
Der Webserver protokolliert alle Zugriffe in einer Logdatei mit dem "Combined Logfile Format" welches von vielen Webserver benutzt wird. Die Logdatei beinhaltet heruntergeladene Dateien, Referer (woher die Anfrage kam), Useragent (welches Programm die Anfrage gestellt hat) und weitere Details. Informationen über aktuellen Datenverkehr und Statistiken findet man unten im Abschnitt 6.

3.2. Webchat

Webchat-Login und Chatstatus
Webchat-Login und Chatstatus
Pichat hat einen eingebauten Webchat mit Login-Seite. Benutzer können dort ihren Namen eingeben und dann den Chat betreten. Als Alternative ist es auch möglich den Benutzer mit einem Link zum Webchat direkt einzuloggen.
Der Webchat funktioniert mit fast jedem Webbrowser, keine Plugins notwendig. Die Benutzer erhalten automatisch die beste Funktionalität für ihren Webbrowser, so wie streamende Chatausgabe bei modernen Browser und einfache Textausgabe bei Textbrowser. Wo es unterstützt wird benutzt der Webchat CSS, DOM und JavaScript.
Syntax:ort?schlüssel=wert[&schlüssel=wert ...]
 
Argumente:
ort=Webserverort
schlüssel=Name des Arguments, siehe unten
wert=Wert des Arguments
 
Die folgenden Schlüssel werden beim Webchat unterstützt:
 
chatroom=Name des Chatraums (keinen für Standard-Chatraum)
colorscheme=Name des Farbschemas (keinen für Standard-Farbschema)
language=Sprachauswahl, ISO639 (keine für automatische Erkennung)
nickname=Name des Benutzers
useragent=Name des Useragenten (keinen für unbenannten Webchat)
 
browser=Browsertyp-Auswahl (keinen für automatische Erkennung)
BROWSER_DYNAMIC = benötigt JavaScript, Server-Push
BROWSER_SIMPLE = begrenzte Funktionalität, Browser-Pull
BROWSER_UNSUPPORTED = funktioniert nicht im Webchat
inputbar=zeige Eingabeleiste? boolscher Wert
navigationbar=zeige Navigationsleiste? boolscher Wert
sidebar=zeige Seitenleiste? boolscher Wert
smileybar=zeige Smileyleiste? boolscher Wert
streamforce=extra Streamaktualisierung verlangen? boolscher Wert
für besonders dickköpfige Browser und Proxys
 
startcommands=Befehle beim Betreten des Chats, Komma getrennter Text
disabledcommands=Befehle die herausgefiltert werden, Komma getrennter Text
 
Argumente sind entweder Text oder Zahl. Ein "boolscher" Wert steht
entweder für 0 (nein/aus) oder 1 (ja/an).
 
Beispiele:http://myserver/chat
http://myserver/chat/connect?nickname=Moak
http://myserver/chat/connect?nickname=Moak&chatroom=flirt
Schicke einem Freund einen Link per Email um den Webchat mit einem Klick zu betreten. Dabei kannst du den Namen deines Freundes angeben (z.B. Moak) wie in den Beispielen oben gezeigt. Das dritte Beispiel zeigt wie man einen Namen und einen Chatraum angibt. Bitte ersetze "myserver" mit der öffentlichen Adresse deines eigenen Servers.
Bemerkungen: Werte mit Leerzeichen oder Sonderzeichen müssen wie üblich URL-kodiert werden, beispielsweise wie hier: "spezielle%20Zeichen". Für alle Webchatseiten gilt der gleiche Syntax, die Argumente "colorscheme" und "language" können bei fast allen Webchatseiten angewandt werden.

3.3. Webchat-Vorlagen

Der Webchat kann vollkommen frei mit Hilfe von HTML-Vorlagen angepasst werden. Pichat kommt mit eingebauten Vorlagen, um diese zu ändern kopiert man neue Dateien in das Webchatverzeichnis (Standard ist "~/pichat/webserver/chat"), siehe [Server] Abschnitt in der Pichat INI-Datei. Nur Vorlagen aus diesem Verzeichnis werden verwendet.
Hier ist eine Liste mit den wichtigsten Vorlagen:
chat_help.htmlHilfeseite
chat_login_closed.htmlLogin-Seite wenn Chat geschlossen
chat_login_members.htmlLogin-Seite wenn Chat nur für Mitglieder
chat_login_members_error.htmlLogin-Seite nach falschem Login
chat_login_open.htmlLogin-Seite wenn Chat offen für alle
chat_login_open_error.htmlLogin-Seite nach falschem Login
chat_logout.htmlLogout-Seite
chat_session_error.htmlSeite für veraltete oder fehlerhafte Session
frame_browser_dynamic.htmlFramestart für normale Webbrowser
frame_browser_simple.htmlFramestart für einfache Webbrowser
frame_browser_unsupported.htmlFramestart für nicht unterstützte Webbrowser
frame_output.htmlFrame mit streamender Chatausgabe
location_home.htmlStandard-Homepage
location_media.htmlChatmedienseite für Grafiken und Geräusche
location_status.htmlChatstatusseite
server_directory.htmlWebserver-Verzeichnisinhalte
server_errorX.htmlWebserver-Fehlerseiten (X = HTTP-Statuscode)
stylesheet_base.cssdie Mutter aller Stylesheets
stylesheet_layout.cssWebchat-Layout
Es gibt typischerweise noch weitere Dateien die von den Startseiten verwendet werden, z.B. für eine Navigationsleiste oder zum Erstellen eines eigenen Layouts. Es empfiehlt sich einen Blick auf vorhandene Vorlagen-Sammlungen zu werfen und mit einer als Beispiel anzufangen. Man muss nicht alle Vorlagen auf einmal überschreiben (es gibt über 20 eingebauten Vorlagen), es reicht schon einzelne Dateien zu überschreiben.
Für Beispiele siehe Pichat Downloads.
Alle Webchatseiten werden dynamisch vom einem eingebauten Parser erzeugt. Dieser Parser ist der zentrale Punkt um ein Webchat zu konfigurieren. Er sucht in Vorlagen nach Textstrings die mit einem "$" oder "§" Zeichen beginnen (z.B. $nickname oder §nickname) und ersetzt sie dann mit Textargumenten. Man kann Argumente entweder durch Anhängen an die URL oder HTML-Formulare angeben. Argumente sind in zwei Kodierungen erhältlich, HTML-kodiert (für "$" Textstrings) und URL-kodiert (für "§" Textstrings).
Der Chat bietet zusätzliche Argumente im Parser an:
(Mit * markierte Argumente gibt es sowohl HTML- als auch URL-kodiert)
$chat_alternate_stylesheetsFarbschemas als Stylesheets, mehrere Zeilen
$chat_browser_type*erkannter Browsertyp
$chat_chatroom_default*Name des Standard-Chatraums, der Chatservereingang
$chat_chatroom_banned*Name des Chatraums für verbannte Benutzer
$chat_colorscheme*erkanntes Farbschema
$chat_colorscheme_graphicsset*Grafikset des Farbschemas
$chat_commentKommentar, Text in Klammern
$chat_directory_nameVerzeichnisname
$chat_default_argumentsStandardwerte, Komma getrennte Liste in Klammern
$chat_forward_arguments*empfangene Argumente für HTML-Formulare oder Links
§chat_forward_arguments_cdataempfangene Argumente für JavaScript-Links
$chat_forward_notnicht weiterleiten, Komma getrennte Liste in Klammern
$chat_interestsListe mit Interessen
$chat_language*erkannte Sprache, ISO639
$chat_language_charset*Zeichensatz der Sprache (z.B. ISO-8859-1)
$chat_location_chat*Webserverort für Webchat
$chat_location_media*Webserverort für Grafiken und Geräusche
$chat_location_status*Webserverort für Statusseite
$chat_location_protected*Webserverort für Passwort gesicherte Dateien
$chat_server_http_root*Webserver-Wurzelverzeichnis
$chat_server_nameChatservername
$chat_server_versionChatserver-Versionsnummer
$chat_server_welcomeChatserver-Willkommensmeldung
$chat_web_page_headerKopfzeile für Webseiten
$chat_web_page_footerFußzeile für Webseiten
$http_location*Ort aus der HTTP/HTTPS-Anfrage
$http_referer*Vorgängeradresse aus der HTTP/HTTPS-Anfrage
$http_remote_addr*IP-Adresse vom Client/Proxy
$http_server*Serveradresse aus der HTTP/HTTPS-Anfrage
Weitere Argumente in einer Webchatsession:
$chat_client_chatroom*aktueller Name des Chatraums
$chat_client_colorscheme*aktueller Name des Farbschemas
$chat_client_language*aktuelle Sprache, ISO639
$chat_client_nickname*aktueller Name des Benutzers
$chat_client_refreshText "refresh" oder "norefresh"
$chat_client_refresh_intervallIntervall für Seitenaktualisierungen (Sekunden)
Es gibt noch mehr Argumente bei Benutzung des erweiterten/extended Parsers:
$chat_activityChataktivität der letzten Stunde (Prozent)
$chat_activity_levelChataktivität als Text (niedrig/mittel/hoch)
$chat_chatroom_numberAnzahl permanenter Chaträume
$chat_chatroom_nameX*Chatraumname (X = Nummer des permanenten Chatraums)
$chat_chatroom_topicXChatraumthema (")
$chat_chatroom_user_listXChatraumbenutzer (")
$chat_chatroom_user_numberXChatraumbenutzerzahl (")
$chat_chatroom_user_whoXChatraumname und Benutzer (")
$chat_chatroom_user_infoXChatraumname und Benutzerzahl (")
$chat_chatroom_user_statusChatraumnamen und Benutzer, mehrere Zeilen
$chat_port_chatPort des Chatservers (TCP/UDP)
$chat_port_httpPort des Webservers (TCP)
$chat_server_dedicatedChat läuft als dedizierter Server
$chat_server_modeChatservermodus (open/members/closed)
$chat_server_statusChatserverstatus, mehrere Zeilen
$chat_server_status_shortChatserverstatus, kurze Zusammenfassung
$chat_server_status_portsChatserverstatus, Portnummern
$chat_server_status_usersChatserverstatus, Benutzerstatistiken
$chat_server_status_trafficChatserverstatus, Datenverkehrstatistiken
$chat_server_status_uptimeChatserverstatus, Laufzeit
$chat_server_uptimeChatserverlaufzeit (Sekunden)
$chat_traffic_totalgesamter Datenverkehr, Chat und Web
$chat_traffic_receivedempfangener Datenverkehr, Chat und web
$chat_traffic_sentverschickter Datenverkehr, Chat und Web
$chat_traffic_chat_receivedempfangener Datenverkehr, Chatserver
$chat_traffic_chat_sentverschickter Datenverkehr, Chatserver
$chat_traffic_web_receivedempfangener Datenverkehr, Webserver und Webchat
$chat_traffic_web_sentverschickter Datenverkehr, Webserver und Webchat
$chat_traffic_compressionKomprimierungsrate (Prozent)
$chat_traffic_compression_levelKomprimierungsrate als Text (niedrig/mittel/hoch)
$chat_user_numberaktuelle Benutzerzahl
$chat_user_peakhöchste Benutzerzahl seit Serverstart
$chat_user_maxmaximal erlaubte Benutzerzahl
$chat_user_servedAnzahl Benutzer bisher hiergewesen
Syntax:parser?file=filename[&schlüssel=wert ...]
parser-extended?file=filename[&schlüssel=wert ...]
 
Argumente:
filename=Name der Vorlage die geparst werden soll
schlüssel=Name des Arguments (an der URL angehängt)
wert=Wert des Arguments (an der URL angehängt)
 
Beispiele:http://myserver/chat/parser?file=test.html
http://myserver/chat/parser?file=test.html&status=hello
http://myserver/chat/parser-extended?file=chat_server.rss
Das erste und zweite Beispiel parsen eine HTML-Datei. Das dritte Beispiel ruft den erweiterten Parser auf um einen RSS-Feed (XML-Format) zu erzeugen. Bitte ersetze "myserver" mit der öffentlichen Adresse deines eigenen Servers.
Bemerkungen: Schlüssel ohne Werte werden ignoriert. Ein Schlüssel mit dem Anhängsel "_checkbox" fügt einen weiteren Schlüssel ohne das Anhängsel hinzu. Falls es mehrere Schlüssel mit dem selben Namen gibt dann gewinnt der erste. Werte die an die URL angehängt werden und Leerzeichen oder Sonderzeichen beinhalten müssen wie üblich URL-kodiert werden, beispielsweise wie hier: "spezielle%20Zeichen". Der Parser arbeitet mit allen zeilenbasierend Textdateien, man ist nicht auf HTML-Dateien festgelegt. Um das "$" oder "§" Zeichen in der geparsten Ausgabe zu erhalten kann man "$char" or "§char" in der Vorlage benutzen. Um bösartiges Kodeeinschmuggeln (Cross Side Scripting) zu verhindern werden alle Eingaben vom Browser genaustens überprüft, die Eingaben sind sowohl HTML- als auch URL-kodiert erhältlich.

3.4. Webchat-Textstrings

Das Webchat bietet Textstrings für Webseiten an, dabei wird die Sprache des Benutzers erkannt und Texte in der jeweiligen Sprache ausgegeben. Alle Textstrings sind in einer Sprachdatei definiert (Standard ist "~/pichat/pichat_webserver_strings.txt"), siehe [Server] Abschnitt in der Pichat INI-Datei.
Eine Sprachdatei kann mehrere Abschnitte enthalten, jeder Abschnitt beinhaltet eine Sprache, Abschnitte die nicht mit "Language" beginnen werden ignoriert. Jeder Sprach-Abschnitt beginnt mit [Language name], wobei "name" für die internationales Abkürzung steht, z.B. "de", "en" oder "sv" (ISO639). Ein Sprach-Abschnitt selbst besteht aus Textzeilen im Format Schlüssel=Wert. Textstrings sind im Parser vorhanden als Argumente die mit einem "$" Zeichen beginnen (z.B. $text). Alle Textstrings werden HTML-kodiert. Der Parser sucht in Vorlagen nach Textstrings die mit einem "$" oder "§" Zeichen beginnen und ersetzt sie dann mit Textargumenten, für weitere Informationen siehe oben.
Beispiel:[Language en]
text_string=This is an example text
text_fun=Coffee, pizza, lasagna
 
[Language de]
text_string=Dies ist ein Beispieltext
text_fun=Kaffee, Pizza, Lasagne
 
[Language sv]
text_string=Detta är ett exempel text
text_fun=Kaffe, pizza, lasagne
Dieses Beispiel definiert zwei Textstrings in Englisch, Deutsch und Schwedisch. Im Parser sind sie vorhanden als $text_string und $text_fun.
Bemerkungen: Es werden nur Sprachen geladen die vom Server unterstüzt werden, siehe Abschnitt 5.5. Bei einer unbekannten oder fehlenden Sprache werden englische Textstrings benutzt.

3.5. Webchat-Stylesheets

Das Webchat bietet mehrere Stylesheets mit Farbinformationen an. Jedes Stylesheet kann mit Hilfe einer CSS-Datei erweitert werden. Um eine CSS-Datei hinzuzufügen kopiert man sie in das Webchatverzeichnis (Standard ist "~/pichat/webserver/chat"), siehe [Server] Abschnitt in der Pichat INI-Datei. Nur Stylesheets aus diesem Verzeichnis werden verwendet.
Syntax:stylesheet_colorscheme_name.css
ort/stylesheet?colorscheme=name
 
Argumente:
name=Name des Farbschemas
ort=Webserverort
 
Beispiele:stylesheet_colorscheme_night.css
http://myserver/chat/stylesheet?colorscheme=night
Das erste Beispiel zeigt den Dateinamen einer Stylesheet-Erweiterung für das "Nacht" Farbschema an. Das zweite Beispiel zeigt die URL des resultierenden Stylesheets an. Bitte ersetze "myserver" mit der öffentlichen Adresse deines eigenen Servers.
Bemerkungen: Stylesheets werden für alle vorhandenen Farbschemas zur Verfügung gestellt, für weitere Informationen zu Farbschemas siehe unten in Abschnitt 5.3. Grafiken und Hintergründe für Stylesheets kann man im Medienverzeichnis abspeichern (Standard ist "~/pichat/webserver/chatmedia"), siehe [Server] Abschnitt in der Pichat INI-Datei.

4. Befehlszeilenargumente

Man kann Pichat mit optionalen Einstellungen starten. Grundsätzlich kann jede Pichat INI-Datei Einstellung auch als Befehlszeilenargument benutzt werden, für eine komplette Beschreibung aller Einstellungen siehe weiter unten. Es gibt ein zusätzliches Befehlszeilenargument mit Namen "IniFile" um den Pfad einer anderen INI-Datei anzugeben.
Syntax:dateinamen -schlüssel[=wert] [...]
 
Argumente:
schlüssel=Name des Arguments (beliebige INI-Datei Einstellung)
wert=Wert des Arguments
 
Beispiele:pichat.exe -ServerDedicated
pichat.exe -Nickname=Vampir -ColorSchemeDefault=Night
pichatd -IniFile=/etc/pichat.ini -PluginsIniFile=/etc/pichat_plugins.ini
Das erste Beispiel startet Pichat als dedizierten Server. Das zweite Beispiel startet Pichat mit einem anderen Namen und anderem Farbschema. Das dritte Beispiel startet einen Linux Chatserver mit einer speziellen INI-Dateien.
Bemerkungen: Ein Schlüssel ohne Wert wird auf 1 gesetzt (oder ja/ein für einen boolschen Wert). Werte mit Leerzeichen müssen wie folgt in Anführungszeichen eingeschlossen werden: "Text mit Leerzeichen". Befehlszeilenargumente ändern die selbigen Einstellungen aus der INI-Datei, werden aber nicht automatisch auf die Festplatte geschrieben.

5.1. Pichat INI-Datei

Die Pichat INI-Datei speichert alle persönlichen Einstellungen. Sie heißt "pichat.ini" und ist im Pichat-Verzeichnis im Heimatverzeichnis gespeichert. Bei Windows findet man sie dort wo Dokumente und Einstellungen gespeichert werden, %APPDATA% im Windows-Explorer eingeben. Pichat muss mindestens einmal gestartet werden um eine INI-Datei zu erstellen, bitte starte Pichat neu nachdem du irgendwelche Einstellungen verändert hast.
Die INI-Datei ist in Abschnitte aufgeteilt, die wichtigsten Abschnitte: [Pichat] [GUI] [Server] [Server Permissions] [Client] [Contacts]
Hier eine Beschreibung aller Einstellungen:
[Pichat]Allgemeine Einstellungen:
VersionPichat-Versionsnummer welche diese Datei verändert hat
NicknameName des Benutzers (wird ignoriert falls dedizierter Server)
NicknameAlternativesalternative Benutzernamen, Komma getrennter Text
StartupCommandsBefehle beim Anwendungsstart ausführen, Komma getrennter Text
Sonderzeichen können mit umgekehrten Schrägstrich maskiert werden z.B. "\54"
 
[Pichat Profile]Profil mit Informationen für andere:
ServerNameChatservername, keinen um eigenen Namen zu benutzen
ServerVersionChatserver-Versionsnummer, keine für aktuelle Version
ServerAddressöffentliche Adresse des Chatservers, leer lassen oder einen echten Rechnernamen angeben
Identificationeindeutige Identifikation, keine um sie zu deaktivieren
InterestsListe mit Interessen, Komma getrennter Text
ServerDedicatedals dedizierten Server starten? boolscher Wert
 
[Updates]Automatische Softwareaktualisierungen:
EnableUpdateserlaube Softwareaktualisierungen durch Benutzer? boolscher Wert
CheckForUpdatesregelmäßig nach Aktualiserungen suchen? boolscher Wert
DownloadUpdatesAktualisierungen herunterladen? boolscher Wert
UpdatesDownloadDirectoryVerzeichnis um Aktualisierungen abzuspeichern
UpdatesRepositoryXURL einer Repository mit Aktualisierungen
(X = Zahl von 1 an aufsteigend)
 
[Plugins]Plugins mit zusätzlichen Funktionen:
EnablePluginserlaube Plugins und lade sie beim Anwendungsstart? boolscher Wert
PluginsIniFileDatei mit Plugin-Einstellungen
 
[GUI]Grafische Benutzeroberfläche:
AnimateSystrayanimiere Systray bei Datenverkehr? boolscher Wert
AnimateWindowTitleanimiere Titelleiste bei Nachricht? boolscher Wert
ShowStartupMessagezeige Neulingsbegrüßung einmal beim Start? boolscher Wert
ShowSendButtonzeige Sendschaltfläche neben der Eingabe? boolscher Wert
ShowSideBarzeige Seitenleiste neben der Ausgabe? boolscher Wert
ShowSmileyBarzeige Smileyleiste unter der Eingabe? boolscher Wert
ShowAwayTimezeige Abwesenheitszeit? boolscher Wert
InputLinesAnzahl der Eingabezeilen (1-4)
ChatroomTopiczeige Thema beim Chatraum betreten? boolscher Wert
ChatroomUserszeige Benutzer beim Chatraum betreten? boolscher Wert
ChatAdminCommandszeige Befehle von anderen Chatadmins? boolscher Wert
nur für Chatadministratoren
ChatServerUserszeige ankommende/verlassende Benutzer? boolscher Wert
nur für Chatadministratoren
PingPrecisezeige genaues Ping und Lag (1/10s)? boolscher Wert
AutoAwayaktiviere automatische Abwesenheit? boolscher Wert
AutoAwayLevelautomatische Abwesenheit wird zurückgesetzt bei (Level 0-3)
0 = nur manuelles Rücksetzen
1 = automatisch bei öffentlichem Text
2 = automatisch bei öffentlichem Text oder Befehl
3 = automatisch bei (") oder beim Klicken ins Chat
AutoAwayAfterZeit bis Benutzer abwesend markiert wird (Sekunden)
AutoAwayMessageautomatische Abwesenheitsmeldung
StdAwayMessagenormale Abwesenheitsmeldung
DndAwayMessageBitte-Nicht-Stören-Meldung (DND = Do Not Disturb)
DomkoTextFilteraktiviere Textfilter in der Ausgabe? boolscher Wert
NachoTimeStampzeige Zeitmarkierung in der Ausgabe? boolscher Wert
NachoTimeStampHoursStundenformat der Zeitmarkierung, 12 oder 24
NachoTimeStampPrecisegenaue Zeitmarkierung mit Sekunden? boolscher Wert
NicknameLevelNamensanzeige (Level 0-2)
0 = keine Farbe
1 = farbiger Name
2 = farbiger Name mit angepasstem Trenner
NicknameSeparatorL2Namenstrenner (wird nur in Level 2 verwendet)
Highlightaktiviere hervorgehobene Textzeilen? boolscher Wert
HighlightTexthebe diesen Text hervor, Komma getrennter Text
HighlightMyNicknamehebe Text mit aktuellem Namen hervor? boolscher Wert
HighlightChatroomLevelwie Chattext hervorgehoben wird (Level 0-5)
0 = gar nicht
1 = Fettschrift
2 = blinke falls nicht aktuelles Chatfenster
3 = blinke (") und Fettschrift
4 = blinke immer
5 = blinke (") und Fettschrift
HighlightMessageLevelwie private Nachrichten hervorgehoben werden (Level 0-5), gleiche Levels wie bei Chattext
HighlightBlinkTimeBlinkzeit für Chatfenster und Systray (Sekunden)
TabsCloseButtonzeige Tabs mit Schließschaltfäche? boolscher Wert
TabsWhenChatWindowNumberzeige Tabs wenn diese Anzahl Chatfenster vorhanden ist
InputBufferEingabezeilen, Eingabepuffer
OutputBufferAusgabezeilen im Chatfenster
ClearInputAndOutputlösche Eingabe zusammen mit Ausgabe? boolscher Wert
ClientChatLoggingChatgespräche mitloggen? boolscher Wert
ServerAuthenticationmerke Benutzernamen und Passwörter? boolscher Wert
ServerAuthenticationFileDatei mit Benutzernamen und Passwörter, Benutzerlogins
MainWindowTitlezeige diesen Text in Titelleiste und Systray
MainWindowStickyHauptfenster immer ganz vorne? boolscher Wert
MainWindowCloseButtonMinimiseSchließschaltfäche verkleinert Hauptfenster? boolscher Wert
MainWindowEscKeyMinimiseEsc-Taste verkleinert Hauptfenster? boolscher Wert
MainWindowAnimateMinimiseanimiere Hauptfenster immer beim Verkleinern? boolscher Wert
MainWindowShareInputbenutze selbe Eingabe im Hauptfenster? boolscher Wert
MainWindowNavigationViewHauptfenster mit Navigationsleiste? boolscher Wert
MainWindowStatusViewHauptfenster mit Statusleiste? boolscher Wert
MainWindowContactsViewHauptfenster mit Kontakte? boolscher Wert
MainWindowOptionsHauptfenster bietet Chateinstellungen an? boolscher Wert
MainWindowPosPosition und Größe des Hauptfensters
MainWindowSeparatorPosPosition der Hauptfensteraufteilung
 
[GUI Address Bar] ''GrafischeBenutzeroberfläche, Adressleiste:''
ContactGroupAddressesName einer Kontaktgruppe, vorhandene Adressen werden zur Adressleiste hinzugefügt
HistoryMaxmaximale Anzahl gespeicherter Einträge, 0 für keine
HistoryXgespeicherte Serveradresse
(X = Zahl von 1 an aufsteigend)
 
[GUI Aliases]Grafische Benutzeroberfläche, Aliase:
AliasXAlias und Befehle, Komma getrennter Text,
"$" im Text wird durch Argumente ersetzt,
Sonderzeichen können mit umgekehrten Schrägstrich maskiert werden z.B. "\54" oder "\44"
(X = Zahl von 1 an aufsteigend)
 
[GUI Side Bar]Grafische Benutzeroberfläche, Seitenleiste:
SideBarLevelzeige Chaträume und Benutzer in Seitenleiste? (Level 0-2)
0 = zeige nur Benutzerliste
1 = zeige Benutzerliste oben, Chaträume darunter
2 = zeige Chaträume oben, Benutzerliste darunter
MenuXMenutext mit Typ und Befehlen, Komma getrennter Text,
Menutext "----" steht für eine Abtrennung, "$" im Text wird durch Name ersetzt,
Sonderzeichen können mit umgekehrten Schrägstrich maskiert werden z.B. "\54" oder "\44"
0 = kein bestimmter Typ, immer möglich
1 = Chaträume-Überschrift
2 = Chaträume
3 = Benutzerliste-Überschrift
4 = Benutzerliste
(X = Zahl von 1 an aufsteigend)
 
[GUI Smiley Bar]Grafische Benutzeroberfläche, Smileyleiste:
ButtonXGrafikname mit optionalem Tooltip und Befehlen, Komma getrennter Text,
Grafikname "----" steht für eine Abtrennung zwischen Schaltfächen,
Sonderzeichen können mit umgekehrten Schrägstrich maskiert werden z.B. "\54"
(X = Zahl von 1 an aufsteigend)
 
[GUI Sounds]Grafische Benutzeroberfläche, Geräuscheffekte:
EnableSoundEffectsaktiviere Geräuscheffekte? boolscher Wert
SoundEffectXChataktion mit Bedingung und Geräuschdatei, Komma getrennter Text,
eine Liste mit Chataktionen finden man in Abschnitt 5.6
(X = Zahl von 1 an aufsteigend)
 
[Server]Chatserver-Einstellungen:
PortChatPort des Chatservers (TCP/UDP), 0 um alle Serverdienste zu deaktivieren
PortHttpPort des Webservers (TCP), 0 um Webserver und Webchat zu deaktivieren
ServerHttpRootWebserver-Wurzelverzeichnis, alle Webserverorte sind innerhalb dieses Verzeichnisses
ServerHttpLocationChatWebserverort für Webchat
ServerHttpLocationMediaWebserverort für Grafiken und Geräusche
ServerHttpLocationStatusWebserverort für Statusseite
ServerHttpLocationProtectedWebserverort für Passwort gesicherte Dateien,
Dateien und Unterverzeichnisse für registrierte Benutzer
ServerHttpMimeFileWebserver MIME-Types Datei, keine für eingebaute Datei
ServerAnnounceLocalNetworkverkünde Chatserver im lokalen Netzwerk? boolscher Wert
ServerDefaultHomepageWebserver mit einer Standard-Homepage? boolscher Wert
ServerDirectoryBrowsingWebserver zeigt Verzeichnisinhalte an? boolscher Wert
ServerHourStatusChatstatus jede volle Stunde loggen? boolscher Wert
ServerDebugModeDebuginformationen loggen? boolscher Wert
MaxUsersmaximale Anzahl von Benutzer im Chat (gesamt)
MaxUsersTextchatmaximale Anzahl von Textchat-Benutzer
MaxUsersWebchatmaximale Anzahl von Webchat-Benutzer
MaxUsersPichatmaximale Anzahl von Pichat-Benutzer
MaxSocketsmaximale Anzahl eingehender Sockets per Server
HandshakeWaitDnsZeit um auf DNS-Auflösung zu warten (Sekunden)
HandshakeTimeoutWelcomeZeit bis Willkommensmeldung angezeigt wird (Sekunden)
HandshakeTimeoutZeit für Handshake-Phase (Sekunden)
DisconnectTimeoutZeit für Disconnect-Phase (Sekunden)
DataTransferTimeoutZeit zum Erlauben von inaktivem Datenverkehr (Sekunden)
DataTransferKeepAliveZeit zum Warten auf nächste Anfrage (Sekunden)
DataTransferPersistentMaxmaximale Anzahl Datenanfragen auf der selben Verbindung
DataTransferBufferSizeSendpuffergröße für Datenübertragung (Bytes)
DataCompressionFileSizeMinminimale Dateigröße für "On the fly" Komprimierung (Bytes)
DataCompressionFileSizeMaxmaximale Dateigröße für Komprimierung (Bytes), setze auf 0 um Komprimierung zu deaktivieren
DataCompressionFilesExcludeDateien von der "On the fly" Komprimierung ausschließen, Komma getrennte Dateiendungen
WebchatBrowserDynamicWebbrowser, Komma getrennte Liste mit Useragenten
WebchatBrowserSimpleWebbrowser mit begrenzter Funktionalität im Webchat
WebchatBrowserUnsupportedWebbrowser die nicht funktionieren im Webchat, mehr über Browsertypen in Abschnitt 3.2
WebchatSessionIpNetmaskerlaubte Variation in Session-IP-Adressen (0-32), der höchste Wert ist am strengsten
WebchatStreamPaddingSizeanfängliches Auffüllen bei streamender Chatausgabe (Bytes),
wird für dickköpfige Browser und Proxys benötigt
WebchatStreamForceIntervallIntervall für extra Streamaktualisierung (Sekunden),
nur aktiviert wenn in Webchatsession angefragt wurde
WebchatPageRefreshIntervallIntervall für Seitenaktualisierungen (Sekunden),
für gelegentliche Aktualisierung nicht-streamender Chatausgaben
WebchatScreenSizeBrowserSimpleAnzahl Textzeilen in der einfachen Chatausgabe, wird für einfache Webbrowser verwendet
WebchatTextBreakLengthmaximale Länge von langem Text vor Auseinanderbrechen
WebchatLinkBreakLengthmaximale Länge von Hyperlink-Text vor Verkürzung
WebPageHeaderKopfzeile für erzeugte Webseiten
WebPageFooterFußzeile für erzeugte Webseiten, normalerweise die Adresse der Pichat-Serversoftware
WebPageLanguageFileDatei mit Textstrings für Webseiten, Beschreibung des Dateiformats findet man in Abschnitt 3.4
PingSupportLagDetectionaktiviere Lag-Erkennung für Webchat und Textchat? boolscher Wert
PingSupportLagDetectionAbovePingzeit um Lag zu identifizieren (Sekunden)
PingSupportLagDetectionFallBelowPingzeit um Lagende zu identifizieren (Sekunden)
DnsLookupEntriesGröße des DNS-Puffers
DnsLookupThreadsmaximale Anzahl von DNS-Arbeiter-Threads
DnsLookupTimeoutZeit für DNS-Auflösung (Sekunden)
FilterIpNetmaskChatgefilterte IP-Adressen-Anzeige und Logging im Chat (0-32), setze auf 32 um nicht zu filtern,
das Benutzen einer Filters verkürzt angezeigten Rechnernamen auf Domainnamen
FilterIpNetmaskHttpgefilterte IP-Adressen-Logging im Webserver (0-32), setze auf 32 um nicht zu filtern
FollowXForwardedForIP-Adresse eines SSL-Beschleunigers oder Reverse-HTTP-Proxys für eingehenden Datenverkehr
AlwaysXForwardedSecureIP-Adresse eines Proxys der nur HTTPS-Verbindungen weiterleitet, z.B. Stunnel
AnnounceNetworksBroadcastadressen für Ankündigungen im lokalen Netzwerk, Komma getrennter Text
AnnounceIntervallIntervall für Ankündigungen im lokalen Netzwerk (Sekunden)
ConnectionTestIntervallIntervall für Verbindungstests (Sekunden)
ChatroomListUpdateIntervallIntervall für Chatraumaktualisierungen (Sekunden),
setze auf 0 für sofortige Aktualisierung, nicht empfohlen
UserNumberUpdateIntervallIntervall für Benutzerzahlaktualisierungen (Sekunden),
setze auf 0 für sofortige Aktualisierung, nicht empfohlen
AwayUpdateIntervallIntervall für Abwesenheitsstatusaktualisierungen (Sekunden),
setze auf 0 für sofortige Aktualisierung, nicht empfohlen
AutoAwayTextchatLevelautomatische Abwesenheit wird zurückgesetzt bei (Level 0-2)
0 = nur manuelles Rücksetzen
1 = automatisch bei öffentlichem Text
2 = automatisch bei öffentlichem Text oder Befehl
AutoAwayTextchatAfterIdleZeit bis Textchatbenutzer abwesend markiert wird (Sekunden)
AutoQuitTextchatAfterIdleZeit bis Textchatbenutzer ausgeloggt wird (Sekunden)
AutoAwayWebchatLevelautomatische Abwesenheit (Level 0-2), siehe oben
AutoAwayWebchatAfterIdleZeit bis Webchatbenutzer abwesend markiert wird (Sekunden)
AutoQuitWebchatAfterIdleZeit bis Webchatbenutzer ausgeloggt wird (Sekunden)
AwayForceAfterIdleZeit bis zum erzwungenen Abwesend melden (Sekunden),
eine "Idlezeit" von 0 deaktiviert die selbige Funktion
 
[Server Permissions]Chatserver, Zugriffsrechte:
ChatModeDefaultChatservermodus wenn der Chat gestartet wird
CHAT_OPEN = alle Benutzer dürfen den Chat betreten
CHAT_MEMBERS = nur registrierte Benutzer
CHAT_CLOSED = keine weiteren Benutzer
UserTypeDefaultStandard-Benutzertyp wenn jemand den Chat betritt
USER_ZOMBIE = Benutzer mit vielen Einschränkungen
USER_VISITOR = Benutzer mit einigen Einschränkungen
USER_NORMAL = Benutzer ohne Einschränkungen
VisitorRestrictionLevelEinschränkungen für Besucher (Level 0-3)
0 = dürfen mit jedem Reden
1 = können keine private Nachrichten zu Besucher schicken
2 = können nicht mit anderen Besucher/Visitor reden
3 = können nicht mit anderen Benutzer reden
VisitorRestrictionChatroomBesucher dürfen Chatraum wechseln? boolscher Wert
VisitorRestrictionNicknameBesucher dürfen Namen ändern? boolscher Wert
SafeguardLoginFailedMaxmaximale Anzahl gescheiterter Loginversuche pro Benutzername
SafeguardExpireTimeAblaufzeit von Safeguards (Sekunden)
UserInformationExpireTimeAblaufzeit von alten Benutzerinformation (Sekunden), setze auf 0 um nicht zu speichern
ChatroomInformationExpireTimeAblaufzeit von alten Chatrauminformationen (Sekunden), setze auf 0 um nicht zu speichern
ZombieQuitTimeStandardzeit die Zombies bleiben dürfen (Sekunden)
VisitorQuitTimeStandardzeit die Besucher bleiben dürfen (Sekunden)
NormalQuitTimeStandardzeit die Benutzer bleiben dürfen (Sekunden)
ClosedQuitTimeEndzeit nachdem Chat geschlossen wurde (Sekunden),
eine Endzeit von 0 bedeutet unendliche Zeit
ChatBanTimeStandardzeit zum Verbannen aus dem gesamten Chat (Sekunden)
ChatroomBanTimeStandardzeit zum Verbannen aus Chatraum (Sekunden),
eine Bannzeit von 0 bedeutet unbegrenzter Bann
ChatroomAdminCanCreateChatadmins dürfen neue Chaträume erstellen? boolscher Wert
ChatroomUserCanCreateBenutzer dürfen neue Chaträume erstellen? boolscher Wert
ChatroomEnterInAnyMan kann den Chat in jedem Chatraum betreten? boolscher Wert
ChatroomDefaultName des Standard-Chatraums, der Chatservereingang
ChatroomBannedName des Chatraums für verbannte Benutzer
 
[Server Chatrooms]Chatserver, permanente Chaträume:
ChatroomXChatraumname mit Typ und Thema, Komma getrennter Text,
Konferenzräume benötigen beim Typ auch ein Kennwort im Format "conference !code1234"
(X = Zahl von 1 an aufsteigend)
 
[Server MOTD]Chatserver, Nachricht des Tages (MOTD = Message of the Day):
MessageXTextzeile die angezeigt wird wenn Benutzer den Chat betritt, für spezielle Sprachen stellt man
dem Text ein Sprachkürzel mit Doppelpunkt vor, z.B. "de:" oder "en:"
(X = Zahl von 1 an aufsteigend)
 
[Server Actions]Chatserver, Chataktionen:
ExternalProgramexternes Programm oder Script
ChatActionXChataktion mit Bedingung und Befehlsargument, Komma getrennter Text,
eine Liste mit Chataktionen finden man in Abschnitt 5.6
(X = Zahl von 1 an aufsteigend)
 
[Client]Chatclient-Einstellungen:
DefaultPortStandard-Port um zum Chatserver zu verbinden (TCP)
ChatroomStartName des Chatraums beim Betreten den Chatservers, keinen für Chatservereingang
WelcomeMotdMaxmaximale MOTD-Zeilen bei der Wilkommensmeldung
LagDetectionaktiviere Lag-Erkennung? boolscher Wert
LagDetectionAbovePingzeit um Lag zu identifizieren (Sekunden)
LagDetectionFallBelowPingzeit um Lagende zu identifizieren (Sekunden)
DnsPendingNotifiesMaxmaximale Anzahl gleichzeitiger DNS-Anfragen
DnsHostnameFlushAgemaximales Alter von gepufferten Rechnernamen (Sekunden)
ConnectTimeoutZeit um zum Server zu verbinden (Sekunden)
ConnectHandshakeTimeoutZeit um auf dem Server einzuloggen (Sekunden)
ConnectRetryDelayVerzögerung zwischen Verbindungsversuchen (Sekunden), Komma getrennter Text
ConnectRetryLocalNetworkmaximale Anzahl Verbindungsversuche wenn lokales Netzwerk wiederhergestellt wurde,
setze auf 0 um Wiederverbindung zu deaktivieren
GhostSessionResurrectionSession nach Unterbrechung wiederherstellen? boolscher Wert
PongAnswerTimeoutZeit um letzten Ping zu speichern der gepingt hat (Sekunden)
KeepAliveIntervallIntervall um Keepalive zu schicken (Sekunden)
DisabledCommandsBefehle die herausgefiltert werden, Komma getrennter Text
 
[Client Proxy]Chatclient, Proxy-Einstellungen:
UseProxybenutze lokalen HTTP-Proxy? boolscher Wert
ProxyAddressAdresse des Proxys
ProxyPortPort des Proxys (TCP)
ProxyResolveDnsProxy löst Rechnernamen auf? boolscher Wert
ProxyBypassLocalNetworkübergehe Proxy bei lokalen Adressen? boolscher Wert
ProxyBypassHostsübergehe Proxy bei manchen Rechnern, Komma getrennter Text
 
[Contacts]Kontakt-Einstellungen:
ContactGroupXGruppenname und Kontaktdatei, Komma getrennter Text,
Beschreibung der Kontaktdateien findet man in Abschnitt 5.2
(X = Zahl von 1 an aufsteigend)
 
[Color Schemes]Farbschema-Einstellungen:
ColorSchemeDefaultName des Standard-Farbschemas
ColorSchemeGuiFontStandard-Zeichensatz in der Benutzeroberfläche, Name und Punktgröße
ColorSchemePackXDatei mit weiteren Farbschemas, die Platzhalter "*" und "?" sind möglich,
Beschreibung des Dateiformats findet man in Abschnitt 5.3
(X = Zahl von 1 an aufsteigend)
 
[Graphics]Grafik-Einstellungen:
GraphicsAndSmileysLevelzeige Grafiken und Smileys im Chat (Level 0-6)
0 = keine Grafiken oder Smileys
1 = zeige Smileys
2 = auch Ausdrücke
3 = auch Symbole
4 = auch Flirt (Herze, Küsse, Blumen)
5 = auch Spaß (Kaffee, Alkohol, Pizza)
6 = auch Sonstiges, alle Grafiken anzeigen
GraphicPackXDatei mit weiteren Grafiken und Smileys, die Platzhalter "*" und "?" sind möglich,
Beschreibung des Dateiformats findet man in Abschnitt 5.4
(X = Zahl von 1 an aufsteigend)
 
[Languages]Sprach-Einstellungen:
LanguageGuiDefaultName der Standard-Sprache in der Benutzeroberfläche
LanguagesPreferredbevorzugte Sprachen, Komma getrennte Liste mit Namen
LanguagePackXDatei mit weiteren Sprachen, die Platzhalter "*" und "?" sind möglich,
Beschreibung des Dateiformats findet man in Abschnitt 5.5
(X = Zahl von 1 an aufsteigend)
 
[Logfiles]Logdateien-Einstellungen:
LogfilesSizeMaxmaximale Dateigröße die Logdateien anwachsen dürfen (Bytes), 0 bedeutet unbegrenzt
LogfilesDirectoryVerzeichnis um Logdateien abzuspeichern
ServerChatLogfileChatserver-Logdatei, keine um Logging auszuschalten
ServerHttpLogfileWebserver-Logdatei, keine um Logging auszuschalten
ClientChatLogfileChatclient-Logdatei, %s und %S stehen für verbundenen Chatserver,
Dateinamen können Zeitformatierungen benutzen, siehe Abschnitt 6
 
[3D Visualisation]3D-Fenster-Einstellungen:
WidthBreite (Pixel)
HeightHöhe (Pixel)
ColorDepthFarbtiefe, 16 oder 32 (Bits)
FullScreenVollbildmodus? boolscher Wert
Bemerkungen: Einstellungen sind entweder Text oder Zahl. Ein "boolscher" Wert steht entweder für 0 (nein/aus) oder 1 (ja/an). Um neue Einstellungen zu erhalten löscht man die Datei "pichat.ini" und startet Pichat erneut. Achtung, du verlierst dadurch dein Profil und andere persönlichen Einstellungen! Falls keine INI-Datei erstellt werden kann werden die Standard-Einstellungen verwendet.

5.2. Kontaktdateien

Pichat benutzt mehrere Kontaktdateien zum Speichern von Freunden und anderen Personen mit denen man in Kontakt bleiben will. Jede Datei beinhaltet eine einzelne Kontaktgruppe. Um eine neue Kontaktdatei hinzuzufügen, lädt man die Datei herunter und kopiert sie in ddas Pichat-Verzeichnis im Heimatverzeichnis. Dann fügt man den Dateinamen zum [Contacts] Abschnitt der Pichat INI-Datei hinzu. Es werden nur Kontaktdateien geladen die in der Pichat INI-Datei aufgelistet sind.
Eine Kontaktdatei kann mehrere Abschnitte beinhalten, jeder Abschnitt beschreibt einen Kontakt, Abschnitte die nicht mit "Contact" beginnen werden ignoriert.
Syntax:[Contact name]
ServerAddress=adresse
Description=text
Connect=connect
 
Argumente:
name=Name einer Person oder eines Chatservers
adresse=Adresse des Chatservers inklusive Portnummer
text=Text mit optionaler Beschreibung
connect=Automatisch verbinden wenn online? boolscher Wert
 
Beispiel:[Contact Pichat Europe]
ServerAddress = eu.pichat.net:9009
Description = Der Standard-Chatserver in Europa
Connect = 1
Dieses Beispiel definiert einen Kontakt zu einem bekannten Chatserver.
Bemerkungen: Der erste Kontakt (ohne Namen) in einer Datei beschreibt die Kontaktgruppe, er beinhaltet nur eine "Description"-Einstellung. Alle Kontakte werden beim Anwendungsstart geladen, Duplikate innerhalb einer Gruppe werden ignoriert. Falls gar keine Kontakte gefunden werden dann werden die folgenden beiden Kontakte hinzugefügt: "Pichat Europe" und "Pichat USA".

5.3. Farbschemadateien

Pichat unterstützt mehrere Farbschemas, es gibt zwei eingebaute Farbschemas: "Day" und "Night". Um neue Farbschemas hinzuzufügen lädt man Farbschemadateien herunter und kopiert sie in das Pichat-Verzeichnis im Heimatverzeichnis. Es werden nur Farbschemas geladen die in diesem Verzeichnis oder im [Color Schemes] Abschnitt der Pichat INI-Datei aufgelistet sind. Man kann die vorhandenen Farbschemas mit dem /COLORSCHEME Befehl im Chat sehen.
Eine Farbschemadatei kann mehrere Abschnitte enthalten, jeder Abschnitt beschreibt ein Farbschema, Abschnitte die nicht mit "ColorScheme" beginnen werden ignoriert. Ein Farbschema beschreibt Farben, Zeichensatz und welche Grafiken benutzt werden. Man muss nicht alle Einstellungen für ein neues Farbschema angeben, man kann auch nur teilweise die Grundfarben überschreiben (die Grundfarben sehen genauso aus wie die das eingebaute Farbschema "Day").
Syntax:[ColorScheme name]
Colors=[farbname,R,G,B] [...]
Font=fontname, fontgröße, fontgröße-alternativ
Graphics=grafikset-normal, grafikset-selektiert
 
Argumente:
name=Name des Farbschemas
farbname=Name der einzelnen Farbe, siehe unten
R,G,B=rot/grün/blau (0-255 jeweils)
fontname=Name des Zeichensatzes
fontgröße=Größe des Zeichensatzes (Punktgröße)
fontgröße-alternativ=alternative Zeichensatzgröße für das Webchat (x-small, small, medium, large, x-large)
grafikset-normal=Grafikset für nicht-selektierten Text
1 = heller Hintergrund
2 = dunkler Hintergrund
grafikset-selektiert=Grafikset für selektierten Text, siehe oben
 
Hier eine Liste der vorhandenen Farbnamen:
 
COLOR_TEXT_BACKnormaler Hintergrund
COLOR_TEXT_NEUTRALnormaler Fenstertext
COLOR_TEXT_CHATChattext
COLOR_TEXT_CHATOTHERChattext von anderen Benutzern
COLOR_TEXT_NICKNAMEName
COLOR_TEXT_NICKNAMEOTHERName von anderen Benutzern
COLOR_TEXT_STATUSNEGATIVEnegativer Status oder Warnung (Textfarbe eins)
COLOR_TEXT_STATUSPOSITIVEpositiver Status (Textfarbe zwei)
COLOR_TEXT_STATUSNEUTRALneutraler Status (Textfarbe drei)
COLOR_TEXT_STATUSALTalternativer Status (Textfarbe vier)
COLOR_TEXT_LINKnormaler Hyperlink
COLOR_TEXT_LINKACTIVEaktiver Hyperlink
COLOR_TEXT_TIMESTAMPZeitmarkierung
COLOR_TEXT_FILTERgefilterter Text
COLOR_TEXT_SELECTBACKselektierter Texthintergrund
COLOR_TEXT_SELECTTEXTselektierter Text
COLOR_TEXT_INPUTBACKEingabehintergrund
COLOR_TEXT_INPUTTEXTEingabetext
COLOR_TEXT_SIDEBACKSeitenleistehintergrund
COLOR_TEXT_SIDEHEADINGSeitenleisteüberschrift
COLOR_TEXT_SIDETEXTSeitenleiste normaler Text
COLOR_TEXT_SIDEAWAYSeitenleiste abwesend Text (Benutzerliste)
COLOR_TEXT_SIDESELECTBACKselektierter Seitenleistehintergrund
COLOR_TEXT_SIDESELECTTEXTselektierter Seitenleistetext
 
Beispiel:[ColorScheme HelpDesk]
Colors=COLOR_TEXT_CHATOTHER,200,0,0
Dieses Beispiel zeigt Text von anderen Benutzer in rot an. Für weitere Farbschema-Beispiele siehe Pichat Downloads.
Bemerkungen: Die eingebauten Farbschemas "Day" und "Night" können frei an eigene Wünsche angepasst werden. Ein Farbschema wird aus der ersten Farbschemadatei geladen die es anbietet, Duplikate werden dabei ignoriert. Alle Farbschemas werden beim Anwendungsstart geladen. Das Webchat bietet Farbschemas als alternative Stylesheets an, es gibt dabei eine Beschränkung wieviele Farbschemas im Webbrowser geladen werden können (limitiert auf ungefähr 50). Es sind nicht alle Farben im Webchat vorhanden, es gibt keine Farben für selektierten Text (der Webbrowser bestimmt das selbst). In einem Textchat mit Telnet gibt es gar keine Farbschemas aufgrund von technischen Beschränkungen.

5.4. Grafikdateien

Pichat unterstützt eigene Grafiken, es gibt über 50 eingebaute Smileys und Grafiken im Chat. Um neue Grafiken hinzuzufügen lädt man Grafikpacks herunter und kopiert sie in das Pichat-Verzeichnis im Heimatverzeichnis. Es werden nur Grafikpacks geladen die in diesem Verzeichnis oder im [Graphics] Abschnitt der Pichat INI-Datei aufgelistet sind. Bitte gehe sicher dass PNG-Dateien ins Medienverzeichnis kopiert werden (Standard ist "~/pichat/webserver/chatmedia"), siehe [Server] Abschnitt in der Pichat INI-Datei.
Ein Grafikpack kann mehrere Abschnitte enthalten, Abschnitte die nicht mit "Graphics" beginnen werden ignoriert. Jeder Abschnitt kann eine beliebige Anzahl Chatgrafiken definieren und auch vorhandene Grafiken überschreiben. Grafikdateien existieren immer im Paar, das heißt eine Datei wird für helle Farbschemas verwendet und die andere für dunkle Farbschemas. Das erste Grafikset ist auf weißem Hintergrund ausgerichtet und das zweite auf dunklem Hintergrund.
Synatx:[Graphics]
grafikname dateiname, level, grossklein, genauesparsing, monochrom
 
Argumente:
grafikname=Name der Grafik, muss mit Doppelpunkt oder Strichpunkt anfangen
dateiname=Name der Grafikdatei, ohne Grafikset-Präfix (chat1_ or chat2_)
level=Grafiktyp (Level 0-6)
0 = keiner
1 = Smileys
2 = Ausdrücke
3 = Symbole
4 = Flirt (Herze, Küsse, Blumen)
5 = Spaß (Kaffee, Alkohol, Pizza)
6 = Sonstiges
grossklein=Gross-/Kleinschreibung muss beim Grafiknamen genau übereinstimmen? boolscher Wert
genauesparsing=Grafikname muss durch Leerzeichen vom vorhergehenden Text abgetrennt sein? boolscher Wert
monochrom=Grafik benutzt nur einen Farbton? boolscher Wert
 
Hier eine Liste mit eingebauten Anwendungs-Grafiken:
 
:pichatsmall:Anwendungssymbol kleinchat1_application_pichatsmall.png + chat2_application_pichatsmall.png
:pichatbig:Anwendungssymbol großchat1_application_pichatbig.png + chat2_application_pichatbig.png
:sysonline:Systray, Chat onlinechat1_application_sysonline.png + chat2_application_sysonline.png
:sysoffline:Systray, Chat offlinechat1_application_sysoffline.png + chat2_application_sysoffline.png
:systraffic1:Systray, Datenverkehrchat1_application_systraffic1.png + chat2_application_systraffic1.png
:systraffic2:Systray, Datenverkehrchat1_application_systraffic2.png + chat2_application_systraffic2.png
:systraffic3:Systray, Datenverkehrchat1_application_systraffic3.png + chat2_application_systraffic3.png
:sysmessage1:Systray, Nachrichtchat1_application_sysmessage1.png + chat2_application_sysmessage1.png
:sysmessage2:Systray, Nachrichtchat1_application_sysmessage2.png + chat2_application_sysmessage2.png
:viewcontact:Kontaktlistechat1_application_viewcontact.png + chat2_application_viewcontact.png
:viewnormal:View, normales Chatfensterchat1_application_viewnormal.png + chat2_application_viewnormal.png
:viewmessage1:View, Nachrichtchat1_application_viewmessage1.png + chat2_application_viewmessage1.png
:viewmessage2:View, Nachrichtchat1_application_viewmessage2.png + chat2_application_viewmessage2.png
:viewalert:View, Verbindungsproblemechat1_application_viewalert.png + chat2_application_viewalert.png
 
Beispiel:[Graphics]
:logo: graphic_logo.png, 6
Dieses Beispiel fügt eine neue Grafik zum Chat hinzu, sie wird angezeigt wenn man :logo: eingibt und verwendet die zwei Grafikdateien chat1_graphic_logo.png und chat2_graphic_logo.png aus dem Medienverzeichnis. Für weitere Grafik-Beispiele siehe Pichat Downloads.
Bemerkungen: Die eingebauten Chatgrafiken können frei angepasst und überschrieben werden. Eine Grafik wird durch den letzten Grafikpack definiert der sie beinhaltet. Alle Grafiken werden beim Anwendungsstart überprüft, man sollte sicher gehen dass es zwei zusammenpassende Grafikdateien für jede Chatgrafik gibt. Grafikdateien benutzen das PNG-Format (Portable Network Graphics), eine Transparenzfarbe oder ein Alphakanal ist notwendig, die maximale Auflösung ist 640 x 128 Pixel.

5.5. Sprachdateien

Pichat unterstützt mehrere Sprachen, es gibt drei eingebaute Sprachen: Englisch, Deutsch und Schwedisch. Um neue Sprachen hinzuzufügen lädt man Sprachdateien herunter und kopiert sie in das Pichat-Verzeichnis im Heimatverzeichnis. Es werden nur Sprachdateien geladen die in diesem Verzeichnis oder in dem [Languages] Abschnitt der Pichat INI-Datei aufgelistet sind. Man kann die vorhandenen Sprachen mit dem /LANGUAGE Befehl im Chat sehen.
Eine Sprachdatei kann mehrere Abschnitte enthalten, jeder Abschnitt beinhaltet eine Sprache, Abschnitte die nicht mit "Language" beginnen werden ignoriert. Jeder Abschnitt muss eine komplette Sammlung von Textstrings haben, man kann eine Sprache nicht teilweise überschreiben. Jeder Sprach-Abschnitt beginnt mit [Language name], wobei "name" für die internationales Abkürzung steht, z.B. "de", "en" oder "sv" (ISO639). Ein Sprach-Abschnitt selbst besteht nur aus Textzeilen, die erste Zeile bestimmt den Zeichensatz, gefolgt von zwei Blöcken mit Textstrings für Server und Client.
Die Benutzeroberfläche benutzt weitere Sprachresourcedateien. Auf Windows heissen sie 'pichat_languageXXX.dll', wobei XXX für einen dreistelligen Sprachkode steht (z.B. DEU fur Deutsch, SVE für Schwedisch). Von den vorhanden Sprachresourcen wird automatisch die am besten passende benutzt.
Für eine englische Referenzdatei und weitere Sprachen siehe Pichat Downloads.
Bemerkungen: Die eingebauten Sprachen können frei an eigene Wünsche angepasst werden. Eine Sprache wird aus der ersten Sprachendatei geladen die sie anbietet, Duplikate werden dabei ignoriert. Sprachen werden bei Bedarf geladen, was bedeutet eine Sprache wird erst dann geladen wenn ein Client sie das erste mal anfragt. Alle Sprachdateien sollten einem formlosen und freien Stil folgen, damit der Text natürlich klingt, anstatt Wort für Wort zu übersetzen. Es gibt eine Ausnahme, Netzwerkfehlermeldungen sollten in Englisch bleiben.

5.6. Chataktionen

Pichat bietet Chataktionen an die einen benachrichtigen sobald etwas passiert. Chataktionen lassen sich frei konfigurieren, so lässt sich beispielsweise ein Geräuscheffekt abspielen oder ein externes Programm aufrufen das eine Aufgabe erfüllt.
Syntax:einstellung = chataktion, bedingung, text
 
Argumente:
einstellung=Name der INI-Datei Einstellung
chataktion=Name der Chataktion, siehe unten
bedingung=numerischer Vergleich wie <1 oder >1 (kleiner oder größer als), * bedeudet beliebiger Wert
text=Text mit Dateiname oder Befehlsargument
 
Hier eine Liste der vorhandenen Chataktionen:
(Mit * markierte Aktionen sind nur für Chatadministratoren)
 
CHAT_TEXTnormaler Text
CHAT_PRIVMESSAGEprivate Nachricht
CHAT_NICKCHANGEName eines Benutzers hat sich verändert
CHAT_USERMODECHANGEModus eines Benutzers hat sich verändert
CHAT_AWAYCHANGEAbwesenheitsstatus hat sich verändert
CHAT_TOPICChatraumthema hat sich verändert
CHAT_USERNUMBERChatraumbenutzerzahl hat sich verändert
CHAT_JOINBenutzer hat Chatraum betreten
CHAT_LEAVEBenutzer hat Chatraum verlassen
CHAT_PINGPing von einem Benutzer
CHAT_PONGPong von einem Benutzer, nur zum Spaß
CHAT_NETWORKNetzwerkstatus hat sich verändert
CHAT_SERVER_USERADD*Server hat einen Benutzer mehr
CHAT_SERVER_USERREMOVE*Server hat einen Benutzer weniger
CHAT_SERVER_CHATROOMADD*Server hat einen Chatraum mehr
CHAT_SERVER_CHATROOMREMOVE*Server hat einen Chatraum weniger
CHAT_SERVER_ONLINE*Server fährt hoch (eigener Chatserver)
CHAT_SERVER_OFFLINE*Server fährt runter (eigener Chatserver)
CHAT_PEER_ONLINE*Peer geht online (lokales Netzwerk)
CHAT_PEER_OFFLINE*Peer geht offline (lokales Netzwerk)
 
Beispiele:[GUI Sounds]
EnableSoundEffects=1
SoundEffect1=CHAT_JOIN, <9, ~/pichat/sound_notify.wav
SoundEffect2=CHAT_PING, =2, ~/pichat/sound_hello.wav
SoundEffect3=CHAT_PING, *, default
SoundEffect4=CHAT_PONG, *, default
 
[Server Actions]
ExternalProgram=/usr/bin/esdplay
ChatAction1=CHAT_SERVER_USERADD, *, /usr/local/share/sound_alert.wav
Das erste Beispiel spielt ein Geräusch wenn ein Benutzer den Chatraum betritt, ein besonderes Geräusch bei einem /PING Nummer 2 und listet dann die Standard-Geräuscheffekte auf. Die Bedingung nach CHAT_JOIN filtert automatische Wiederverbindungen heraus. Das zweite Beispiel spielt ein Geräusch auf einem Linux-Chatserver ab sobald ein neuer Benutzer den Chat betritt.
Bemerkungen: Zwei Abschnitte in der Pichat INI-Datei verwenden Chataktionen, das sind die Abschnitte [GUI Sounds] und [Server Actions]. Es sind nicht alle Chataktionen im Abschnitt [Server Actions] möglich, nur Chatserver-Aktionen können dort benutzt werden (diejenigen die mit CHAT_SERVER beginnen). Es gibt noch weitere Chataktionen für Chatplugins, die wichtigsten Chataktionen sind auf jeden Fall hier aufgelistet.

6. Status, Statistiken und Logdateien

Pichat bietet einen Chatstatus einschließlich Benutzerstatistiken und Datenverkehrstatistiken. Man kann den aktuellen Status mit dem /STATUS Befehl im Chat sehen. Als Alternative gibt es die Statusinformationen auch als Webseite, RSS-Feed und wird in Logdateien geschrieben.
Beispiele:Den Chatstatus als Webseite sieht man mit...
 
http://127.0.0.1/chatstatus
http://myserver/chatstatus
Hier ist ein typischer Chatserverstatus:
Moaks Chat, Willkommen in Moaks Chat
Chatserver Port 9009, Webserver Port 80
Benutzer 4 online, 6 Spitzenwert, 100 max, 92 hiergewesen, 0% Aktivität
Datenverkehr 5MB insgesamt, 1MB empfangen, 4MB versendet, 22% Komprimierung
Chatserver läuft 5 Tage 10h 53min
Benutzerstatistiken zeigen die aktuelle Benutzertätigkeit eines Chatservers an, außerdem gibt es weitere Informationen wie die höchste Benutzerzahl seitdem der Server gestartet wurde (Spitzenwert). Es gibt auch eine Anzeige für die Chataktivität der letzten Stunde in Prozent, höhere Werte bedeuten dass mehr Benutzer aktiv miteinander chatten. Die Chataktivität wird aus Benutzern errechnet die in Chaträumen chatten. Keine Einfluss auf diese Berechnung haben private Nachrichten und Benutzer die nur zwischen Chaträumen hin und her springen ohne etwas gesagt zu haben.
Datenverkehrstatistiken zeigen den Datenverkehr seitdem der Server gestartet wurde. Der gesamte Datenverkehr wird aus der Summe von allen eingehenden und ausgehenden Daten berechnet (von Chatserver und Webserver). Es gibt ausserdem eine Datenkomprimierungsrate, höhere Werte bedeuten bessere Komprimierung. Der Chatserver und der Webserver benutzen Komprimierung wann immer möglich um das Datenaufkommen zu minimieren. Der Datenverkehr kann um bis zu 50% reduziert werden, jedoch sinkt die Komprimierungsrate mit höherem Webserverdatenaufkommen. Das ist nicht ungewöhnlich, denn Webserverdaten bestehen aus einem hohen Anteil von Mediendaten (bzw einer großen Menge an Metadaten) welche nicht besonders gut komprimiert werden können.
Logdateien wachsen über die Zeit an, man will vermutlich alte Logdaten löschen oder archivieren. Im [Logfiles] Abschnitt der Pichat INI-Datei kann man eine Logdatei mit Zeitangaben angeben, diese Datei wird dann regelmäßig neu geöffnet und das Loggen wird in einer neuen Datei fortgesetzt.
Beispiel:[Logfiles]
ServerChatLogfile=pichat_chatserver_%Y%m.log
ServerHttpLogfile=pichat_webserver_%Y%m.log
ClientChatLogfile=pichat_conversation_%s_%Y%m.log
Dieses Beispiel erzeugt monatlich wechselnde Logdateien. Die "%" Zeitangaben werden entsprechend der strftime-Funktion expandiert, für eine Beschreibung siehe die strftime-Dokumentation (z.B. Linux Hilfesystem). In Chatclient-Logdateien haben %s und %S eine spezielle Bedeutung und stehen für den verbundenen Chatserver. Im oben gezeigten Beispiel wäre die Chatserver-Logdatei pichat_chatserver_200010.log im Oktober 2000, dann pichat_chatserver_200011.log im November 2000 und so weiter. Ähnliches gilt für andere Logdateien.
Bemerkungen: Logdateien werden höchstens einmal jede volle Stunde neu geöffnet. Auf einem Linux/BSD-System öffnet das SIGHUP-Signal die Logdateien sofort neu.
Pichat ist eine einfach zu benutzende Peer-to-Peer (P2P) Chatsoftware. Es bietet integrierten LAN-Messenger und Webchat. Der Chatserver unterstützt mehrere Chaträume, Textformatierung mit Smileys und benutzerfreundliches Webchat (HTML, CSS, DOM, JavaScript). Der Webchat funktioniert mit fast jedem Browser, kein PHP/Flash/Java notwendig. Software zum freien Informationsaustausch für Linux und Windows.