Pichat plugins

Last update 15/Aug/2010 by Mark Seuffert and David Fehrmann

1. Introduction

This document is for users who want to extend their chat with new features. With plugins you can add new functionality, for example show a webcam picture and integrate chat bots. For developers there is also a software development kit (Pichat SDK) to create your own plugins.
To download plugins please see Pichat downloads.

2.1. Plugin authplain

The simple user authentication plugin handles authentication for the chat and web server. All user information, including passwords as SHA256 hash or plaintext, are stored in a text file. The pipasswd program can be used to create or update your user authentication file. You can for example add registered user, chat admins and change user descriptions that are shown in the chat.
Syntax:/PLUGIN Authentication.Plain STATUS
/PLUGIN Authentication.Plain RELOAD
 
Arguments:
STATUS=show short status, number of requests
RELOAD=reload settings
Settings:[Authentication.Plain]
UserAuthenticationFileauthentication file name

2.2. Plugin language

The language plugin automatically updates the European language pack for the chat server.
Here is a list of available languages:
  • bg - Bulgarian by Ognian Petrov
  • bs - Bosnian by Alen Okic
  • de - German by Mark Seuffert (built-in)
  • en - English by Mark Seuffert (built-in)
  • fr - French by Thomas Pereira
  • hu - Hungarian by Miko Robert
  • sv - Swedish by Magnus Lindgren (built-in)
There are no settings for this plugin. The European language pack is called 'pichat_languages_europe.txt' and will be automatically written to the Pichat directory (or where the plugins settings are stored). More translations are welcome!

2.3. Plugin logbot

The logbot plugin records conversations on the chat server. A logbot joins chatrooms and writes chat text into logfiles, only configured chatrooms will be logged. Private messages between users are never recorded. When installing this plugin please make sure that users will be informed that public conversations are logged, for example in the MOTD (message of the day) when entering the chat.
Syntax:/PLUGIN Bot.Log START nickname chatroom [language]
/PLUGIN Bot.Log STOP nickname
/PLUGIN Bot.Log RELOAD
 
Arguments:
START=start logging
STOP=stop logging
RELOAD=reload settings
nickname=name of bot
chatroom=name of chatroom
language=preferred language (none for English)
 
Example:/PLUGIN Bot.Log START Logbot Clubroom
Settings:[Bot.Log]
BotNicknamebot nickname
BotAuthenticationoptional user name and password (format 'user:pass')
Chatroomsnames of chatrooms to log, comma separated text
ChatroomsPermanentlog permanent chatrooms? boolean value
LogfilesSizeMaxmaximum file size for logfiles allow to grow (bytes), setting to 0 means unlimited size
LogfilesDirectorydirectory for storing logfiles
Logfilelogfile name, %c and %C stand for chatroom

2.4. Plugin quizbot

The quizbot plugin runs a quiz in a chatroom. A question and answer session consists of multiple questions and each correct answer counts one point. The quizbot gives suggestions. If no user knows the right answer the correct answer will be revealed. At the end of a quiz the user with the most points wins. You can create your own quiz questions.
Syntax:/PLUGIN Bot.Quiz START nickname chatroom quiz [language]
/PLUGIN Bot.Quiz STOP nickname
/PLUGIN Bot.Quiz RELOAD
/PLUGIN Bot.Quiz EXTRACT
 
Arguments:
START=start a quiz
STOP=stop a quiz
RELOAD=reload settings
EXTRACT=extract template files for customisation (example questions, language pack)
nickname=name of bot
chatroom=name of chatroom
quiz=name of quiz
language=preferred language (none for English)
 
Examples:/PLUGIN Bot.Quiz START Quizbot Entrance Funny
/PLUGIN Bot.Quiz STOP Quizbot
Commands:The quizbot understands the following commands in the chatroom...
!quizstatus=show current quiz status
!quiztrivia=show list of available trivias
 
Settings:[Bot.Quiz]
TriviaPackdefault trivia pack filename
LanguagePackfile with optional languages
BotAuthenticationoptional user name and password (format 'user:pass')
QuestionRoundsnumber of rounds per session (default is 1)
QuestionTimeouttimeout for a question (seconds)
QuestionTimeoutTiptimeout for a tip (seconds)
QuestionDelaydelay between questions (seconds)

2.5. Plugin webcam

The webcam plugin shows a webcam picture. There is also a small preview windows which indicates if somebody is watching your webcam. When the plugin is installed you will see the webcam picture at http://127.0.0.1/webcam or http://myserver/webcam (default settings). Please replace 'myserver' with the public address of your own server.
Syntax:/PLUGIN Webcam.Picture CAPTURE
/PLUGIN Webcam.Picture PREVIEW
/PLUGIN Webcam.Picture DEVICE
/PLUGIN Webcam.Picture FORMAT
/PLUGIN Webcam.Picture RELOAD
/PLUGIN Webcam.Picture EXTRACT
 
Arguments:
CAPTURE=start/stop webcam capture
PREVIEW=show/hide preview window
DEVICE=show device settings
FORMAT=show format setting (webcam settings)
RELOAD=reload settings
EXTRACT=extract template files for customisation (HTML, PNG)
 
Example:/PLUGIN Webcam.Picture CAPTURE
Settings:[Webcam.Picture]
WebcamDeviceIDwebcam device ID
Capturewebcam capture is enabled at startup? boolean value
CaptureTimeNormaldelay between capture (ms)
CaptureTimeIdledelay between capture when no request is made (ms)
Previewshow a preview window? boolean value
PreviewTransparencytransparency of preview window (percent)
PreviewPositionposition of preview window
PreviewClickablepreview window can be clicked/moved/resized? boolean value
LogoOfflineoffline logo, filename and position,
position is one of the following: 0=center, 1=top left, 2=top right, 3=bottom right, etc
LogoOnlineonline logo, filename and position
LogoOnAironair logo, filename and position
Widthwidth of picture (pixel)
Heightheight of picture (pixel)
Qualityquality of JPEG picture (percent)
Brightnessbrightness of picture (between -100 and 100)
Contrastcontrast of picture (between 0 and 100)
Grayscalegrayscale or color picture? boolean value
Mirrormirror picture horizontally? boolean value
ServerHttpLocationweb server location
ServerHttpStreamNamestream name of picture

2.6. Plugin webstatus

The webstatus plugin offers additional chat status information, a list of chat users in TEXT or XML format. When the plugin is installed you can access it at http://127.0.0.1/chatstatus/userlist.txt or http://myserver/chatstatus/userlist.txt (default settings). Please replace 'myserver' with the public address of your own server.
Syntax:/PLUGIN Web.Status STATUS
/PLUGIN Web.Status RELOAD
 
Arguments:
STATUS=show short status, number of requests
RELOAD=reload settings
Settings:[Web.Status]
TextFormatDefaulttext format, one of the following: TEXT or XML
ServerHttpLocationweb server location
ServerHttpStreamNamestream name of status

2.7. Plugin winamp

The Winamp plugin shows current song played in the Winamp media player.
Syntax:/PLUGIN Winamp.Notify SHOW
/PLUGIN Winamp.Notify AUTOMATIC
/PLUGIN Winamp.Notify RELOAD
 
Arguments:
SHOW=show current song title
AUTOMATIC=toggle automatic display on/off
RELOAD=reload settings
 
Example:/PLUGIN Winamp.Notify SHOW
Settings:[Winamp.Notify]
ChatCommandchat command for song display, song title will be appended
TitleIgnoresong titles to ignore, comma separated list
Automaticautomatic or manual song display? boolean value
StreamInfoshow stream info at end of song title? boolean value

3. Beta plugins

There are more plugins which have not been released into public yet, they are for testers only. Here we try new ideas and features. Beta plugins have not reached sufficient software quality and probably need more time for testing. We can not guarantee that any of these plugins are free from defects or will be updated regularly. Please get in touch if you are interested.
Here is an overview of available beta plugins:
  • Plugin annabot - Anna is a multi purpose chatroom service bot, she helps to manage chatrooms and large chat communities
  • Plugin audio - A voice chat extension for the chat. This plugin is early beta state and only David really knows what it does
  • Plugin register - A web administration interface for user management. Chat users can register, change their profile and password
  • Plugin skin - A skinning plugin to customise the Windows user interface. It allows to use new graphics and backgrounds
  • Plugin talkbot - The talkbot is an experimental bot that can talk with users in the chat and answer common questions
  • Plugin whiteboard - A web-based whiteboard where users can write and draw, great for collaboration. It supports colors and images

4. Installation of plugins

Download and copy plugins into the Pichat program directory (where your pichat.exe is), then restart Pichat. You can see which plugins are installed in the chat options or with the /PLUGIN command in the chat.
There is an INI file to hold all your personal plugin settings. It is called 'pichat_plugins.ini' and stored in the Pichat directory in your home directory. On Windows you'll find it where your documents and settings are stored, enter %APPDATA% in Windows Explorer. You need to run a plugin at least once to create its settings. Some plugins contain further files for customisation, you can extract them into a subdirectory of the Pichat directory.
To uninstall simply delete the plugin files. If you need help or have ideas for new features, please talk with other users in the chat. Tip
Pichat is a simple to use chat software. It comes with integrated LAN messenger and webchat. The chat server supports multiple chatrooms, text formatting with smileys and a user-friendly webchat (HTML, CSS, DOM, JavaScript). The webchat works with nearly any web browser, easily integrated into your design, no PHP/Flash/Java required. Software for free information exchange for Linux and Windows. Built with Yellow