Skip to content

Instantly share code, notes, and snippets.

@TehPeGaSuS
Last active May 1, 2026 21:40
Show Gist options
  • Select an option

  • Save TehPeGaSuS/69821b5910a9f04cef501b30f51890a2 to your computer and use it in GitHub Desktop.

Select an option

Save TehPeGaSuS/69821b5910a9f04cef501b30f51890a2 to your computer and use it in GitHub Desktop.
PISG docs and formats

Note

See also the FORMATS section.

pisg 0.73 documentation

How to install and configure pisg

Table of Contents


What is pisg?

pisg is an IRC statistics generator. It takes IRC logfiles and turns them into nice looking stats.

In general, you would do something like this to get it running:

  • Enable logging in an IRC bot, or in your IRC client. The log will be outputted into a file.
  • You set up pisg, you define the channel name, and the path to the logfile you created.
  • You run pisg, pisg runs the log through and create statistics, it then creates an HTML page which you can upload to a webserver.

JUMP TO TOP

What are the requirements to run pisg?

  • An IRC client or bot where pisg supports the output logfile.
  • Any operating system which Perl runs on, this includes popular OSes such as Linux, FreeBSD, Windows and Mac. You will have a hard time finding an OS where Perl isn't supported. For Windows this means that you need to download ActivePerl.
  • Optional - a system to host the statistics page 24 hours a day, 7 days a week.
  • Optional - a system to log the channel, 24 hours a day, 7 days a week.

JUMP TO TOP

Setting up pisg for the first time

Most configuration happens through the pisg.cfg file, the file format is made to be easy to read, and easy to extend for further use. It uses an XML-like format, with elements and attributes.

Setting up a channel

An element called Channel is made for defining channels, a quick example of a channel is here:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 Maintainer = "John"
 OutputFile = "mychan.html"
</channel>

The above will define a Channel called #channel, the logfile pisg will look for is called channel.log and the Format of the logfile will be mIRC. The Maintainer (which will be stated on the output page) is John.

That is basically it! Now, there are a lot more options that you can use for your channels, for this please refer to the reference documentation.

Also be-aware of the fact that pisg uses various images to show the time-related bars. These images are placed in the gfx/ folder and should be placed into the same directory as your outputted HTML file.

JUMP TO TOP

Specifying user options

User options are set with a simple XML-like syntax in the form:

<user nick="NICK" option="VALUE">

Remember, the nick is always required.

For example to add aliases to a nick, then you could do this:

<user nick="Joe" alias="Joe^*">

The asterisk (*) means that it will match all nicks starting with 'Joe^'. So it will add all Joe^'s to 'Joe' in the stats.

Another thing you can do is to add a picture to a user:

<user nick="Ben" pic="ben_holiday.jpg">

If you have a larger picture of the user as well, you can make the picture on the stats page link to it:

<user nick="Ben" pic="ben_holiday.jpg" bigpic="ben-big.jpg">

You can include * or ? to enable filename globbing to randomly choose one from several pictures: (see documentation for the ImageGlobPath option)

<user nick="Ben" pic="ben_*.jpg">

You can also set a user's sex. The sex setting can be "f"emale, "m"ale, or "b"ot:

<user nick="Ben" sex="m">

Also you can add links to URLs and e-mails:

<user nick="Christine" link="http://www.christine.com">

or

<user nick="Chris" link="chris@host.com">

The last thing you can do is to ignore nicks (for example bots):

<user nick="nameofbot" ignore="y">

You don't have to do all this in many lines, you could just as easily do:

<user nick="Joe" alias="Joe^away Joe^work" pic="joe.jpg" link="joe@joe.com" sex="m">

(Here the aliases are a space separated list of nicks, that also works! But * as a wildcard is smarter, although it is slower).

JUMP TO TOP

Setting global options

Many times, it will be useful to set up global options, global options are set like this:

<set option="VALUE">

Any global option will be overriden by anything defined within channel elements (see Setting up a channel)

For example, to change the background color of the stats page, you could do:

<set bgcolor="black">

You can set many options in a single set:

<set lang="DE" timeoffset="+1">

The above will set the language on the statistics page to DE (Deutsch, German) and set the time offset to +1.

All options available are mentioned in the reference documentation.

JUMP TO TOP

Ignoring links

It's possible to ignore links in the "Most referenced URLs" section:

<link url="http://www.slashdot.org" ignore="y">

JUMP TO TOP

Including common settings for various channels

If you have, for example, more than one channel, where the users are the same, or you don't want to maintain more than one user file, you can use the "include" setting in the main config file:

<include="/home/vetinari/pisg/users.cfg">

This will include the file /home/vetinari/pisg/users.cfg in the config at the place where the include statement is set.

Note, that you can NOT include a file from an included file!

JUMP TO TOP

Changing the layout of your stats page

The standard layout and colors in the outputted HTML page are made to be somewhat clean and neutral. But you have the chance to change the layout yourself.

There are a few predefined color schemes for you to use, use the ColorScheme option when using them. The colorschemes distributed with pisg are: default (which is the default), darkgalaxy, darkred, justgrey, ocean, orange_grey, pisg, softgreen.

When changing it, you need a fair knowledge of CSS (Cascading Style Sheets). CSS is what most of the web uses today to define styles and layout on HTML pages. With the pisg distribution, look in the layout directory. In it resides default.css which is the file being included onto the HTML page. Open it in a text editor like vi or notepad. Then change it until you're happy with it. Be aware that you might want to look at the HiCell and HiCell2 options through pisg.cfg for changing the last two colors.

If you have created a nice stylesheet which other can take advantage of, you are encouraged to send it to the pisg mailing list so that it can be distributed with the next version of pisg.

If you want to embed the statistics into another page, use the "none" color scheme. Pisg will then omit the HTML header and write only the body part.

JUMP TO TOP

Running pisg

When everything is set up in the pisg configuration file (pisg.cfg), then you simply run pisg on the command-line.

Using Linux, BSD or another UNIX-like system:

user@host:pisg-0.37$ ./pisg

Using Windows:

c:\pisg> perl pisg

The program will run and parse the logfiles you specified in the configuration file.

If you are using Linux, BSD or another UNIX-like system and want run pisg automatically several times a day, then see the crontab file in the scripts/ directory.

For Windows, see the windows-upload-ftp.txt file with the pisg distribution, this file is also placed in the scripts/ directory.

JUMP TO TOP

Obtaining help and reporting bugs

If your problem could not be resolved through here, then you should send an e-mail to the pisg mailing list. You can subscribe and see more info at http://lists.sourceforge.net/lists/listinfo/pisg-general.

If you believe that you have found a bug, you should use the SourceForge bug tracking system.

General pisg options

Channel

Purpose: define channel name

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 Maintainer = "John"
</channel>

Description:

Channel is used in two contexts, globally when using <set> and when defining new channels. It sets the name of the channel.

Default: Unset

JUMP TO TOP


Format

Purpose: the logfile format

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "eggdrop"
 Maintainer = "John"
</channel>

<set Format="mIRC">

Description:

Format is used to define the format of the logfile, pisg supports a various number of different logfiles, see the FORMATS file included with the pisg distribution. If your logfiles have the suffix .gz or .bz2, they will automatically be decompressed and read by pisg. See also Maintainer.

Default: Unset

JUMP TO TOP


Network

Purpose: the IRC network of the channel

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "eggdrop"
 Network = "Undernet"
</channel>

<set Network="Quakenet">

Description:

Network is used to set the network which the channel resides on, this name is displayed on the stats page.

Default: SomeIRCNetwork

JUMP TO TOP


OutputFile

Purpose: name of the generated HTML page

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "eggdrop"
 OutputFile = "mychan.html"
</channel>

<set OutputFile="mychan.html">

Description:

OutputFile is used to define the name of the generated statistics page.

Default: index.html

JUMP TO TOP


OutputTag

Purpose: tag to insert into OutputFile

Example:

<channel="#channel">
 LogDir = "logs/"
 Format = "eggdrop"
 OutputFile = "mychan%t.html"
 OutputTag = "-week"
</channel>

<set OutputTag="-week">

Description:

OutputTag specifies a string that will replace occurrences of "%t" in OutputFile. This option is most useful when used as a command line switch (-t) to pisg in conjunction with NFiles (-nf). Example:

$ pisg -co pisg.conf
$ pisg -co pisg.conf -nf 8 -t -week

Leaving out the OutputTag settings from the above pisg.conf snippet, this writes both the full statistics (mychan.html) and statistics for the last week (mychan-week.html) using the same pisg config file. (Assuming that there are separate logfiles for each day.)

Default: unset

JUMP TO TOP


Logfile

Purpose: name of logfile to parse

Example:

<channel="#channel">
 Logfile="/home/foo/eggdrop/logs/mylog.txt"
 Format = "eggdrop"
</channel>

<set Logfile="foo.log">

Description:

This defines the filename of the logfile to parse for the channel. If you want to parse a directory full of logfiles, you should use the LogDir option instead. Providing this option multiple times will parse multiple files in the order the statements appear. Wildcards (* ? []) will be expanded. See also LogDir and NFiles.

Default: unset

JUMP TO TOP


LogDir

Purpose: parse a directory full of logs

Example:

<channel="#channel">
 LogDir="/home/foo/eggdrop/logs/"
 Format = "eggdrop"
</channel>

<set LogDir="dailylogs/">

Description:

When LogDir is defined to valid path to a directory, then pisg will run through that directory, parse all logfiles in it and create one HTML page from it. Useful with for example eggdrop logs. Providing this option multiple times will parse all the files in multiple directories in the order the statements appear. See also NFiles, LogPrefix, and LogSuffix.

Default: unset

JUMP TO TOP


NFiles

Purpose: parse only the last files in LogDir

Example:

<channel="#channel">
 LogDir="/home/foo/eggdrop/logs/"
 NFiles="8"
 Format="eggdrop"
</channel>

<set NFiles="8">

Description:

When NFiles is set to a positive integer, pisg will process only the last that much logfiles from Logfile and LogDir options. Useful to create statistics that cover the last week or month (assuming there are separate logfile per day/week/etc.).

Default: 0 (process all files)

JUMP TO TOP


Maintainer

Purpose: name of the maintainer

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 Maintainer = "Benny"
</channel>

<set Maintainer="Benny">

Description:

Maintainer is used to define the name of the maintainer of the statistics page, this can be either the person generating the stats or the bot/client doing the logging. The maintainer is displayed in the outputted stats page. This setting is also used by some log parsers where "You" is used instead of the nick in the log (e.g. "You have been kicked"). See also Format, NickTracking.

Default: MAINTAINER

JUMP TO TOP


ColorScheme

Purpose: use a different color scheme for stats page

Example:

<channel="#channel">
 Logfile = "channel.log"
 ColorScheme = "darkgalaxy"
 Maintainer = "John"
</channel>

<set ColorScheme="default">

Description:

ColorScheme is used to define the color scheme used for the statistics page. Actually it's the CSS file being included. CSS files distributed with pisg are: darkgalaxy, darkred, default, justgrey, ocean, orange_grey, pisg, softgreen (omit the .css). The file will be included statically in the generated HTML page. If you give a file name or URL (i.e. a color scheme name with .css or a path), the file will be linked to instead. Using "none" will cause pisg to write only the body of the page; use this to include the statistics into a custom page. See also CssDir, AltColorScheme, HiCell/HiCell2.

Default: default

JUMP TO TOP


AltColorScheme

Purpose: alternate stylesheets for stats page

Example:

<channel="#channel">
 Logfile = "channel.log"
 ColorScheme = "darkgalaxy"
 AltColorScheme = "layout/ocean.css"
 Maintainer = "John"
</channel>

<set AltColorScheme="layout/darkgalaxy.css layout/justgrey.css">

Description:

AltColorScheme defines an alternate CSS file to be used for the statistics page. Multiple files can be given (space separated.) Note that this is not supported by all browsers. See also ColorScheme and CssDir.

Default: default

JUMP TO TOP


Lang

Purpose: define the language / translation to use

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 Lang = "DE"
 OutputFile = "mychan-%l.html"
</channel>

<set Lang="FR,SE">

Description:

Lang defines the language to use for the stats. Currently, lang.txt includes: EN (English), BG (Bulgarian), CA (Catalan), CZ (Czech), DA (Danish), DE (German), EE (Estonian), ES (Spanish), FI (Finnish), FR (French), GR (Greek), HE (Hebrew), HU (Hungarian), IS (Icelandic), IT (Italian), NL (Dutch), NL_BE (Flemish), NO (Norwegian), PL (Polish), PT (Portuguese), PT_BR (Portuguese/Brazil), RO (Romanian), RU (Russian), SE (Swedish), SI (Slovenian), SK (Slovak), SQ (Albanian), TR (Turkish), YU (Serbian). Output in several languages can be generated at the same time, separate the languages by comma. The tag %l in the output file name will be replaced by the language name. See also LangFile.

Default: EN (English)

JUMP TO TOP


PageHead

Purpose: define a file as page header

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 OutputFile = "stats.html"
 PageHead = "myheader.txt"
</channel>

<set PageHead="someheader.txt">

Description:

PageHead is used to include a file in the stats page, for example an introduction text, a link to an image or a banner. The file can hold anything, it will be included raw in the stats page - so HTML should be preferred. The file will be included in the top of the page. This option is the opposite of PageFoot.

Default: none

JUMP TO TOP


PageFoot

Purpose: define a file as page footer

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 outputfile = "stats.html"
 PageFoot = "myfooter.txt"
</channel>

<set PageFoot="somefooter.txt">

Description:

PageFoot is used to include a file in the stats page, for example an introduction text, a link to an image or a banner. The file can hold anything, it will be included raw in the stats page - so HTML should be preferred. The file will be included in the bottom of the page. This option is the opposite of PageHead.

Default: none

JUMP TO TOP


LogPrefix

Purpose: only parse logs LogPrefixed with a user defined string

Example:

<channel="#channel">
 LogDir="/home/foo/eggdrop/logs/"
 Format = "eggdrop"
 LogPrefix = "logjun"
</channel>

<set LogPrefix="logjanuary">

Description:

When using the LogDir option and you only want to use a slew of the files in it, you can have pisg choose only files which are prefixed with a special string.

Default: unset

JUMP TO TOP


LogSuffix

Purpose: Regexp to sort logfiles by format month||day||year

Example:

<set LogSuffix="\.\d\d([A-Za-z]+)\d\d\d\d||\.(\d\d)[A-Za-z]+\d\d\d\d||\.\d\d[A-Za-z]+(\d\d\d\d)">

Description:

LogSuffix is used to define the suffix of a logfile, it only works when LogDir is defined. The example in the synopsis is for the eggdrop bots default format.

Default: Unset

JUMP TO TOP


Silent

Purpose: make pisg silent, suppress messages

Example:

<set Silent="1">

Description:

This option is useful mainly from command line when invoking pisg with --silent 1. But it can also used in the configuration file. It will suppress all standard output from pisg. Error messages will still be sent.

Default: 0 (disabled)

JUMP TO TOP


CacheDir

Purpose: use a cache to speed up log parsing

Example:

<set CacheDir="pisg_cache">
<set CacheDir="/path/to/pisg_cache">

Description:

Setting this option makes pisg dump the results of log parsing into cache files. The next time pisg is run, it compares the timestamp of the log(s) with the timestamp stored in the cache file. When the log was not changed, the cached data is used. (This means that it does not work if you only have a single big logfile. Split the log at arbitrary points and use LogDir or Logfile="dir/*".)

Note that the cache files should be deleted when the pisg config file is changed since the cache data uses the old config settings. NickTracking does not work especially well with the cache when using different NFiles settings.

Default: Unset

JUMP TO TOP

Options for various statistics features

DailyActivity

Purpose: number of days to show in "Daily Activity"

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 DailyActivity = "0"
</channel>

<set DailyActivity="31">

Description:

This option sets the number of days to show in the "Daily activity" section. Pisg will generate a graph that shows the activity during this timeframe. Setting the option to 0 disables the section.

Default: 0 (disabled)

JUMP TO TOP


ShowActiveTimes

Purpose: enable/disable "Most Active Times"

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowActiveTimes = "0"
</channel>

<set ShowActiveTimes="1">

Description:

With this option you can disable the "Most Active Times" section on the stats page. It will simply disappear when specifying 0.

Default: 1 (enabled)

JUMP TO TOP


ShowActiveNicks

Purpose: enable/disable "Most Active Nicks"

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowActiveNicks = "0"
</channel>

<set ShowActiveNicks="1">

Description:

With this option you can disable the "Most Active Nicks" section on the stats page.

Default: 1 (enabled)

JUMP TO TOP


ShowBigNumbers

Purpose: enable/disable "Big Numbers" sections

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowBigNumbers = "0"
</channel>

<set ShowBigNumbers="1">

Description:

With this option you can disable the "Big Numbers" and "Other Interesting numbers" sections on the stats page. They will simply disappear when specifying 0.

Default: 1 (enabled)

JUMP TO TOP


ShowTopics

Purpose: enable/disable "Latest topics" sections

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowTopics = "0"
</channel>

<set ShowTopics="1">

Description:

With this option you can disable the "Latest topics" section on the stats page. It will simply disappear when specifying 0.

Default: 1 (enabled)

JUMP TO TOP


ShowLines

Purpose: enable/disable "number of lines"

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowLines = "0"
</channel>

<set ShowLines="1">

Description:

The default behaviour is to add a column to the "Most Active Nicks" section displaying the number of lines a user wrote. With this option it can be disabled.

Default: 1 (enabled)

JUMP TO TOP


ShowWpl

Purpose: enable/disable "words per line"

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowWpl = "0"
</channel>

<set ShowWpl="1">

Description:

With this option you can enable the "words per line" column in the "Most Active Nicks" section. It will add a column describing the average words per line for a person.

Default: 0 (disabled)

JUMP TO TOP


ShowCpl

Purpose: enable/disable "characters per line"

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowCpl = "0"
</channel>

<set ShowCpl="1">

Description:

With this option you can enable the "characters per line" column in the "Most Active Nicks" section. It will add a column describing the average number of characters per line for a person.

Default: 0 (disabled)

JUMP TO TOP


ShowWords

Purpose: enable/disable "number of words"

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowWords = "0"
</channel>

<set ShowWords="1">

Description:

The ShowWords option adds a column to the "Most Active Nicks" list which list the total number of words a user has typed.

Default: 0 (disabled)

JUMP TO TOP


ShowLastSeen

Purpose: show when a user was last seen on a channel

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowLastSeen = "0"
</channel>

<set ShowLastSeen="1">

Description:

With this option enabled, a column will be added to the "Most Active Nicks" section to display when a user was last seen. E.g. "2 days ago".

Default: 1 (enabled)

JUMP TO TOP


ShowTime

Purpose: show when a nick was active

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowTime = "0"
</channel>

<set ShowTime="1">

Description:

The default behaviour is to add a column to the "Most Active Nicks" section displaying a fancy time bar to show when a user was active. With this option it can be disabled.

Default: 1 (enabled)

JUMP TO TOP


ShowLineTime

Purpose: mIRCStats like behaviour of time bar

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "bobot"
 ShowLineTime = "0"
</channel>

<set ShowLineTime="1">

Description:

The default behaviour is to add a column to the "Most Active Nicks" section displaying a fancy time bar to show when a user was active. With this option it can be done the same way as mIRCStats does it; that is, by putting that time bar next to the number of lines, in the same column.

Default: 0 (disabled)

JUMP TO TOP


ShowWordTime

Purpose: ShowLineTime like behavior of words column

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "bobot"
 ShowWordTime = "0"
</channel>

<set ShowWordTime="1">

Description:

The default behaviour is to add a column to the "Most Active Nicks" section displaying a fancy time bar to show when a user was active. With this option it can be done similarly to mIRCStats does it and like the ShowLineTime option, but using words instead of lines; that is, by putting that time bar next to the number of words, in the same column.

Default: 0 (disabled)

JUMP TO TOP


ShowRandQuote

Purpose: enable or disable the random quotes

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "bobot"
 ShowRandQuote = "0"
</channel>

<set ShowRandQuote="1">

Description:

The default behaviour is to add a column to the "Most Active Nicks" section displaying a users random quote. With this option it can be disabled.

Default: 1 (enabled)

JUMP TO TOP


ShowLegend

Purpose: enable or disable the legend of the time bars

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "bobot"
 ShowLegend = "0"
</channel>

<set ShowLegend="1">

Description:

By default, pisg shows a legend below the "Most Active Times" displaying what the different colors means. With this option it can be disabled.

Default: 1 (enabled)

JUMP TO TOP


ShowKickLine

Purpose: enable or disable the kick line

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "bobot"
 ShowKickLine = "0"
</channel>

<set ShowKickLine="1">

Description:

By default, pisg shows an example kick line in the "Most kicked"-stats. With this option it can be disabled.

Default: 1 (enabled)

JUMP TO TOP


ShowActionLine

Purpose: enable or disable the action line

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "bobot"
 ShowActionLine = "0"
</channel>

<set ShowActionLine="1">

Description:

By default, pisg shows an example action line in the "Most actions"-stats. With this option it can be disabled.

Default: 1 (enabled)

JUMP TO TOP


ShowShoutLine

Purpose: enable or disable the shout line

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "bobot"
 ShowShoutLine = "0"
</channel>

<set ShowShoutLine="1">

Description:

By default, pisg shows an example shout line in the "Most shouting people"-stats. With this option it can be disabled.

Default: 1 (enabled)

JUMP TO TOP


ShowFoulDecimals

Purpose: set how many decimals to show

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "bobot"
 ShowFoulDecimals = "2"
</channel>

<set ShowFoulDecimals="1">

Description:

By default, pisg uses 1 decimal. With this option you could change it to whatever you like. Negative is treated as the default value.

Default: 1 decimal

JUMP TO TOP


ShowFoulLine

Purpose: enable or disable the foul line

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "bobot"
 ShowFoulLine = "0"
</channel>

<set ShowFoulLine="1">

Description:

By default, pisg doesn't show an example foul line in the "Most fouls"-stats. With this option it can be enabled.

Default: 0 (disabled)

JUMP TO TOP


ShowViolentLines

Purpose: enable or disable the violent lines

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "bobot"
 ShowViolentLines = "0"
</channel>

<set ShowViolentLines="1">

Description:

By default, pisg shows example violent lines in the "Most aggressive" and "Most attacked"-stats. With this option it can be disabled.

Default: 1 (enabled)

JUMP TO TOP


ShowMuw

Purpose: enable or disable "Most used words"

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowMuw = "0"
</channel>

<set ShowMuw="1">

Description:

By default, pisg adds an "Most used words" section to the stats page. With this option you can disable it from being shown. See also WordHistory.

Default: 1 (enabled)

JUMP TO TOP


ShowMrn

Purpose: enable or disable "Most referenced nicks"

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowMrn = "0"
</channel>

<set ShowMrn="1">

Description:

By default, pisg adds an "Most referenced nicks" section to the stats page. With this option you can disable it from being shown. See also NickHistory.

Default: 1 (enabled)

JUMP TO TOP


ShowMru

Purpose: enable or disable "Most referenced URLs"

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowMru = "0"
</channel>

<set ShowMru="1">

Description:

By default, pisg adds an "Most referenced URLs" section to the stats page. With this option you can disable it from being shown. See also UrlHistory.

Default: 1 (enabled)

JUMP TO TOP


ShowCharts

Purpose: enable or disable channel music charts

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowCharts = "0"
</channel>

<set ShowCharts="1">

Description:

With this option set, pisg creates a chart listing of the top songs played on the channel. See also ChartsHistory and ChartsRegexp.

Default: 0 (disabled)

JUMP TO TOP


ShowOps

Purpose: enable or disable op statistics

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowOps = "0"
</channel>

<set ShowOps="0">

Description:

By default, pisg has op statistics in the "Most interesting numbers" section. Here you can disable the feature, it's useful if you don't feel that the information is of any value, or your log format doesn't support ops/deops.

Default: 1 (enabled)

JUMP TO TOP


ShowVoices

Purpose: enable or disable voice statistics

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowVoices = "0"
</channel>

<set ShowVoices="1">

Description:

By default, pisg doesn't have voice statistics like it has op statistics. Enabling this option will add a section to the "Most interesting numbers" displaying who got most voices.

Default: 0 (disabled)

JUMP TO TOP


ShowHalfops

Purpose: enable or disable halfop statistics

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowHalfops = "0"
</channel>

<set ShowHalfops="1">

Description:

By default, pisg doesn't have halfop statistics (+h on some servers) like it has op statistics. Enabling this option will add a section to the "Most interesting numbers" displaying who gave most half-ops.

Default: 0 (disabled)

JUMP TO TOP


ShowMostNicks

Purpose: show who changed nick most often

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowMostNicks = "0"
</channel>

<set ShowMostNicks="1">

Description:

By enabling this option, pisg will add a section to the stats showing who had the most nicks, and what the nicks were. This option only works properly when NickTracking is enabled or user aliases have been defined. See also MostNicksHistory, MostNicksVerbose, and NickLimit.

Default: 0 (disabled)

JUMP TO TOP


ShowActiveGenders

Purpose: show stats on which gender talked most

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowActiveGenders = "0"
</channel>

<set ShowActiveGenders="1">

Description:

Setting this option will make pisg create statistics on which gender (female/male/bot) talked most (see the "sex" option in Specifying user options). See also NickLimit.

Default: 0 (disabled)

JUMP TO TOP


ShowSmileys

Purpose: show most used smileys

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowSmileys = "0"
</channel>

<set ShowSmileys="1">

Description:

With this option, pisg will make a list of the most used smileys in the channel. See also SmileyHistory.

Default: 0 (disabled)

JUMP TO TOP


ShowKarma

Purpose: show channel karma

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowKarma = "0"
</channel>

<set ShowKarma="1">

Description:

With this option, pisg will analyze the channel karma. Users can give other users (or things) good or bad karma by saying "nickname++" or "nickname--"; "nickname==" resets it to zero. Only the last karma is remembered per nick/nick combination, so there is at most +- 1 karma point. See also KarmaHistory and NickLimit.

Default: 0 (disabled)

JUMP TO TOP


ShowMostActiveByHour

Purpose: show most active nicks by hour

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowMostActiveByHour = "0"
</channel>

<set ShowMostActiveByHour="1">

Description:

By enabling this option, pisg will add a section to the stats showing "Most Active Nicks By Hour" - also look at the ShowMostActiveByHourGraph and ActiveNicksByHour settings.

Default: 0 (disabled)

JUMP TO TOP


ShowOnlyTop

Purpose: only count stats for top talkers, ignore less-active users

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowOnlyTop = "1"
</channel>

<set ShowOnlyTop="1">

Description:

By enabling this option, stats in the "Big Numbers" and "Interesting Numbers" section will only be counted for users who were the most active. E.g. users who appear in the "Most Active Nicks" section, as respected by the ActiveNicks and ActiveNicks2 options. See also BigNumbersThreshold.

Default: 0 (disabled)

JUMP TO TOP


ShowMostActiveByHourGraph

Purpose: show graphs in most active nicks by hour

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 ShowMostActiveByHourGraph = "0"
</channel>

<set ShowMostActiveByHour="1">
<set ShowMostActiveByHourGraph="1">

Description:

By enabling this option and the ShowMostActiveByHour option, pisg will show graphs in the "Most Active Nicks By Hour" section.

Default: 1 (enabled)

JUMP TO TOP


IgnoreWords

Purpose: ignore specified words

Example:

<set IgnoreWords="there about">

Description:

Sometimes words in the "most used words" appears which you don't want to see, with this option you can ignore these words. It also applies to the "most referenced nicks" section. It's a space separated list of words. You can use * like in nick aliases. Can not be used in a channel-only context.

Default: unset

JUMP TO TOP


NoIgnoredQuotes

Purpose: Control random quote output

Example:

<set NoIgnoredQuotes="1">

Description:

When set to "1", pisg will not output quotes containing ignored words. Pisg will output a blank line after trying 20 random quotes if all 20 random quotes were ignored.

Default: 0

JUMP TO TOP


FoulWords

Purpose: specify words considered to be bad/foul language

Example:

<set FoulWords="ass fuck bitch">

Description:

There is a section in the "Most interesting numbers" which tells who had a "dirty mouth" - here you can define which words are considered being bad/foul. It is a space separated list of words. You can use * like in nick aliases. Can not be used in a channel-only context.

Default: ass fuck bitch shit scheisse kacke arsch ficker ficken schlampe

JUMP TO TOP


ViolentWords

Purpose: specify words considered to be aggressive/violent

Example:

<set ViolentWords="slaps beats kick">

Description:

There is a section in the "Most interesting numbers" which tells who is most "aggressive" - here you can define which words are considered being "violent". It is a space separated list of words. You can use * like in nick aliases. Can not be used in a channel-only context.

Default: slaps beats smacks

JUMP TO TOP


MinQuote

Purpose: minimum numbers of letters for a random quote

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 MinQuote = "10"
</channel>

<set MinQuote="5">

Description:

The random quotes displayed in the "Most Active Nicks" section will be picked from a length range. With this option you can change the minimum number of letters required for a random quote. Also see the MaxQuote option. Note that pisg will still choose a short quote if it cannot find a longer one.

Default: 25

JUMP TO TOP


MaxQuote

Purpose: maximum numbers of letters for a random quote

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 MaxQuote = "70"
</channel>

<set MaxQuote="100">

Description:

The random quotes displayed in the "Most Active Nicks" section will be picked from a length range. With this option you can change the maximum number of letters required for a random quote. Also see the MinQuote option.

Default: 65

JUMP TO TOP


WordLength

Purpose: minimum number of characters in an interesting word

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 WordLength = "10"
</channel>

<set WordLength="2">

Description:

The "Most Used Words" section on the stats page display the most used words. The default is that a word only appears if it is longer than 5 characters. With this option you can change that minimum.

Default: 5

JUMP TO TOP


QuoteWidth

Purpose: maximum allowed length of a "word" with no spaces

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 QuoteWidth = "48"
</channel>

<set QuoteWidth="48">

Description:

Pisg will automatically insert a space in words that have a length over the amount QuoteWidth is set to. When used in breaking up URLs it will insert a space in the displayed URL, but not in the actual URL referenced by the HREF.

Default: 80

JUMP TO TOP


BigNumbersThreshold

Purpose: Minimum number of lines per user for some "Big Numbers" statistics

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 BigNumbersThreshold = "10"
</channel>

<set BigNumbersThreshold="sqrt">

Description:

Pisg will ignore users with less than this setting lines in the "questions asked", "shouts loudest", "CAPSLOCK", "longest line", "most sad", and "most happy" sections. If the setting is "sqrt" (the default), it will be dynamically replaced with the square root of the number of lines of the most active nick. See also ShowOnlyTop.

Default: sqrt

JUMP TO TOP


ActiveNicks

Purpose: nicks to show in "Most Active Nicks"

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 ActiveNicks = "50"
</channel>

<set ActiveNicks="10">

Description:

With this option you can define how many nicks you want to appear in the "Most Active Nicks" section on the stats page.

Default: 25

JUMP TO TOP


ActiveNicks2

Purpose: nicks to show in "These didn't make it.."

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 ActiveNicks2 = "25"
</channel>

<set ActiveNicks2="10">

Description:

With this option you can define how many nicks you want to appear in the "These didn't make it" section on the stats page.

Default: 30

JUMP TO TOP


ActiveNicksByHour

Purpose: number of nicks to show in "Most Active Nicks By Hour"

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 ActiveNicksByHour = "25"
</channel>

<set ActiveNicksByHour="10">

Description:

With this option you can define how many nicks you want to appear in the "Most Active Nicks By Hour" section on the stats page.

Default: 10

JUMP TO TOP


MostNicksHistory

Purpose: maximum number of nicks to show in "users with most nicknames"

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 MostNicksHistory = "2"
</channel>

<set MostNicksHistory="10">

Description:

With this option you can define how many nicks you want to appear in the "Users with most nicknames" section. See also ShowMostNicks and MostNicksVerbose.

Default: 5

JUMP TO TOP


MostNicksVerbose

Purpose: show nicks used in "most nicks"

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 MostNicksVerbose = "0"
</channel>

<set MostNicksVerbose="1">

Description:

By disabling this option you can stop pisg from displaying all the nicks a user has had in the "Most used nicks" section. See also ShowMostNicks, MostNicksHistory, and NickLimit.

Default: 1 (enabled)

JUMP TO TOP


TopicHistory

Purpose: maximum number of topics to show

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 TopicHistory = "2"
</channel>

<set TopicHistory="10">

Description:

With this option you can define how many topics you want to appear in the "Latest topics" section.

Default: 3

JUMP TO TOP


UrlHistory

Purpose: maximum number of URLs to show

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 UrlHistory = "2"
</channel>

<set UrlHistory="10">

Description:

With this option you can define how many URLs you want to appear in the "Most referenced URLs" section. See also ShowMru.

Default: 5

JUMP TO TOP


ChartsHistory

Purpose: number of songs to show

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 ChartsHistory = "10"
</channel>

<set ChartsHistory="5">

Description:

This option sets the number of songs that will be show in the channel music charts. See also ShowCharts and ChartsRegexp.

Default: 5 (the Top Five)

JUMP TO TOP


ChartsRegexp

Purpose: how to recognize songs played

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 ChartsRegexp = "(?:is )?(?:np:|(?:now )?playing:? |listening to:? )(?:MPEG stream from)?\s*(.*)"
</channel>

Description:

This option is a perl regexp that is used to recognize songs played. Please tell the pisg mailing list if you have a better default. The regexp MUST contain a single () pair to extract the song name. See also the perlre(1) manpage, ShowCharts and ChartsHistory.

Default: "(?:np:|(?:now )?playing:? (?:MPEG stream from)?)\s*(.*)"

JUMP TO TOP


WordHistory

Purpose: maximum number of words to show

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 WordHistory = "5"
</channel>

<set WordHistory="15">

Description:

With this option you can define how many words you want to appear in the "Most used words" section. See also ShowMuw.

Default: 10

JUMP TO TOP


NickHistory

Purpose: maximum number of nicks to show in "Most referenced nicks"

Example:

<channel="#channel">
 logfile = "channel.log"
 format = "mIRC"
 NickHistory = "3"
</channel>

<set NickHistory="15">

Description:

With this option you can define how many nicks you want to appear in the "Most referenced nicks" section. See also ShowMrn.

Default: 5

JUMP TO TOP


SmileyHistory

Purpose: maximum number of smileys to show in smiley stats

Example:

<channel="#channel">
 logfile = "channel.log"
 format = "mIRC"
 SmileyHistory = "3"
</channel>

<set SmileyHistory="15">

Description:

At most this many smileys will appear in smiley stats. See also ShowSmileys.

Default: 10

JUMP TO TOP


KarmaHistory

Purpose: maximum number of nicks to show in "Karma"

Example:

<channel="#channel">
 logfile = "channel.log"
 format = "mIRC"
 KarmaHistory = "3"
</channel>

<set KarmaHistory="15">

Description:

At most this many nicks will appear in the good and bad karma stats. See also ShowKarma and NickLimit.

Default: 5

JUMP TO TOP


NickTracking

Purpose: track nick changes and create aliases

Example:

<set NickTracking="1">

Description:

Enabling this option will track nick changes as well as it can. It will then automatically create aliases for these nicks. Useful for ShowMostNicks and other stats. Nick tracking does not work for log formats that do not use the nickname for the person running the logger, but only show "You" there. See Maintainer.

Default: 0 (disabled)

JUMP TO TOP


NickLimit

Purpose: maximum number of nicks in lists

Example:

<set NickLimit="0">

Description:

This option trims lists of nicks to a maximum length, replacing the rest with "...". Setting to 0 disables trimming. Affected are the used nicks in the "Users with most nicknames" section, nicks in "Most active genders", and nicks in the "Good/bad karma by" columns. See ShowMostNicks, ShowKarma, and ShowActiveGenders.

Default: 10

JUMP TO TOP


SortByWords

Purpose: sort "most active nicks" by words

Example:

<channel="#channel">
 logfile = "channel.log"
 format = "xchat"
 SortByWords = "0"
</channel>

<set SortByWords="1">

Description:

The default for the "Most Active Nicks" section - is to sort users by lines. Enabling this will sort it by words instead.

Default: 0 (disabled)

JUMP TO TOP

Picture options

PicLocation

Purpose: path to images on stats page

Example:

<set PicLocation="gfx/">

Description:

The location to the pictures used on the stats page - not the user pictures but the different bars in "Most Active Times".

Default: Current directory

JUMP TO TOP


UserPics

Purpose: number of user pictures per row

Example:

<channel="#channel">
 Logfile = "channel.log"
 UserPics = "no"
</channel>

<set UserPics="3">

Description:

UserPics allows you to configure the number of user pictures per row. Per default, one picture will be shown. Since pictures are usually higher than one line of text, this lets the table grow. With settings greater than 1, several pictures will be placed next to each other. A good setting would be UserPics=3 and pictures of size 60x60. Set UserPics to no or 0 to disable user pictures. The latter is useful if you share a user config file between channels and want to disable user pictures for some channels.

Default: yes (1)

JUMP TO TOP


ImagePath

Purpose: path to user pictures (HTML page)

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 ImagePath = "userpics/"
</channel>

<set ImagePath="users/">

Description:

ImagePath defines the path to where user pictures are located, relative to the HTML page generated. The default is that user pictures is located in the same directory as the HTML page.

Default: current directory

JUMP TO TOP


DefaultPic

Purpose: use a default user picture

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 DefaultPic = "not_available.jpg"
</channel>

<set DefaultPic="unknown.gif">

Description:

DefaultPic defines a picture to be displayed for all users which have no other picture defined in the user element. This is good for showing "No picture available" or something. May contain globbing patterns, see ImageGlobPath below.

Default: unset

JUMP TO TOP


ImageGlobPath

Purpose: path to user pictures (output generation)

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 ImageGlobPath = "users/"
</channel>

<set ImageGlobPath="/var/www/pisg/">
<set DefaultPic="default-??.gif">

Description:

ImageGlobPath defines the path to the directory where user pictures are located, relative to the current directory. This setting is used to choose random pictures if ? or * (globbing characters) are used in the picture name. ? matches a single character, * matches a (possibly empty) string. The default is the ImagePath setting. (NB: This setting will be different from ImagePath if the latter is not relative to the current directory, e.g. if you are writing the HTML file outside of the current directory.)

Default: current ImagePath setting

JUMP TO TOP


PicWidth

Purpose: define a standard width for user pictures

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 PicWidth = "500"
</channel>

<set PicWidth="500">

Description:

PicWidth defines the standard width for user pictures. Setting the 'width' attribute of image-elements on the outputted stats page. See also PicHeight.

Default: unset

JUMP TO TOP


PicHeight

Purpose: define a standard height for user pictures

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 PicHeight = "500"
</channel>

<set PicHeight="500">

Description:

PicHeight defines the standard height for user pictures. Setting the 'height' attribute of image-elements on the outputted stats page. See also PicWidth.

Default: unset

JUMP TO TOP

Misc options

Charset

Purpose: character set to use for stats page

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 Charset = "utf-8"
</channel>

<set Charset="iso-8859-15">

Description:

The pisg stats page defines a character set in a meta tag, this can be used if your country is using a different one than the default. Pisg will also use this setting to convert the language templates from LangFile if the language defines a source charset. Note: you also have to tell your webserver to transmit the charset to the browser. With Apache, use "AddDefaultCharset off" in the server config.

Default: iso-8859-1

JUMP TO TOP


LogCharset

Purpose: character set for logfiles

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 Charset = "iso-8859-1"
 LogCharset = "utf-8"
</channel>

<set Charset="iso-8859-15">
<set LogCharset="iso-8859-15">

Description:

If LogCharset is set and different from Charset, pisg will convert the charset using Text::Iconv. Using this option slows down log processing.

Default: empty (no conversion)

JUMP TO TOP


LogCharsetFallback

Purpose: fallback character set for logfiles

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "xchat"
 Charset = "utf-8"
 LogCharset = "utf-8"
 LogCharsetFallback = "iso-8859-1"
</channel>

<set Charset="utf-8">
<set LogCharset="utf-8">
<set LogCharsetFallback="iso-8859-15">

Description:

LogCharsetFallback defines a fallback charset for the LogCharset conversion. This is useful if you have mixed unicode/iso-8859-* logs. Pisg will first try the conversion from LogCharset. If that fails, LogCharsetFallback is used. Note that this only works for charsets where certain byte sequences are illegal, like UTF-8. (In short: LogCharset = utf-8, LogCharsetFallback = iso-8859-15 works, the other way round does not.)

Default: empty (no fallback conversion)

JUMP TO TOP


TimeOffset

Purpose: use a different time zone than the local machine

Example:

<channel="#channel">
 Logfile = "channel.log"
 Format = "mIRC"
 Maintainer = "John"
 TimeOffset = "+5"
</channel>

<set TimeOffset="+2">

Description:

By default, pisg uses the time of the local machine to display the time of the generated stats. Sometimes when you have a shell on an external box, and it's in another country, you want to use another time. This is accomplished by the TimeOffset command.

Default: +0

JUMP TO TOP


RegexpAliases

Purpose: use regular expressions in user aliases

Example:

<user nick="Joe" alias="Joe\d+">

<set RegexpAliases="1">

Description:

Enabling this option will make all aliases in <user> lines be parsed as regular expressions; this setting also applies to the IgnoreWords, FoulWords, and ViolentWords settings.

Default: 0 (disabled)

JUMP TO TOP


LangFile

Purpose: filename of language file

Example:

<set LangFile="mylang.txt">

Description:

With this option you have an alternative way to define the name and/or path to the language file. Usually you don't have to touch this option.

Default: lang.txt

JUMP TO TOP


CssDir

Purpose: path to directory with CSS files

Example:

<set CssDir="/usr/share/pisg/layout/">

Description:

CssDir is used to define the paths to the CSS files (the ColorSchemes). Usually you don't need to change this. This setting is only used when statically including the CSS file.

Default: layout/ (in current directory)

JUMP TO TOP


HiCell, HiCell2

Purpose: colors for color gradient in most active nicks section

Example:

<set HiCell="#BABADD" HiCell2="#CCCCCC">
<set HiCell="">

Description:

HiCell and HiCell2 define the colors to be used for the color gradient in the most active nicks section. They should match your ColorScheme. When setting HiCell the empty string (""), pisg will not generate a color gradient; you might want to use this with ColorScheme="none" or AltColorScheme.

Default: #BABADD, #CCCCCC

JUMP TO TOP


LogType

Purpose: type of log (not the format of the log)

Example:

<set LogType="Logfile">

Description:

The type of logs kept for your channel. Currently only "Logfile" is supported, so you don't need to change this option.

Default: Logfile

JUMP TO TOP


StatsDump

Purpose: dump raw statistics into file

Example:

<set StatsDump="statsdump">

Description:

This option is intended for debugging pisg, but might be useful to process the parsed logs with another program. The file contains the %stats and %lines hashes in perl's Data::Dumper format.

Default: Unset

JUMP TO TOP

Copyright and License

pisg - Perl IRC Statistics Generator

Copyright (C) 2001-2012 The pisg project

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

JUMP TO TOP

Note

See also the DOCS section.

Supported Logfile Formats by pisg

This document lists the different logfile formats that pisg supports, along with sample lines for each format.

Adding new formats: If you use an IRC client or bot that isn't supported, adding support is fairly easy if you have some Perl knowledge. Check modules/Pisg/Parser/Format/Template.pm.
Alternatively, mail a sample logfile (preferably as a link) to the pisg mailing list.


mIRC6

Property Value
Client/Bot mIRC version 6.x
Format name mIRC6
Warning Uses a retarded logging format that makes modes indecipherable from actions (a nightmare to parse). Don't use it if you can avoid it. See mIRC6hack instead.
Requirement Timestamp must be in [HH:MM] or [HH:MM:SS] format (logging options → timestamp logs).

Example:

[23:44] <Christina> Hello world

JUMP TO TOP


mIRC6hack

Property Value
Client/Bot mIRC version 6.x with a logging script
Format name mIRC6hack
Description Same as mIRC6 but uses ** for actions instead.

Required script (add to mIRC's remote script section: Alt-R → Remote):

alias me {
  if ($1) {
    .describe $active $1-
    echo $color(own) -qt $active ** $me $1-
  }
  else {
    echo $color(info) $active * /me: insufficient parameters
  }
}

on ^*:ACTION:*:*:{
  echo $color(action) -lt $iif($chan,$chan,$nick) ** $nick $1-
  haltdef
}

JUMP TO TOP


mIRC

Property Value
Client/Bot mIRC (Windows client)
Format name mIRC
Requirement Timestamp must be in [HH:MM] or [HH:MM:SS] format.
Tip To create mIRC logfiles with Eggdrop, use MEL (mIRCStats Eggdrop Logger) – available at http://mel.angelbears.org/

Example:

[23:44] <Christina> Hello world

JUMP TO TOP


XChat

Property Value
Client/Bot XChat (Linux client)
Format name xchat
Support Both old and new logformats (1.8.7 and above) are supported.
Note XChat changed its logformat in early 2005. The new format is broken similarly to mIRC6. To revert to the old format, use: http://xchat.org/files/themes/blacktheme.zip

Old format example:

18:01:43 <Ben> Hello world

JUMP TO TOP

New format example:

jan 13 04:39:42 <Ben> Hello World

JUMP TO TOP


Eggdrop

Property Value
Client/Bot Eggdrop IRC bot
Format name eggdrop
Tip Change logfile-suffix for proper ordering when using logdir: use set logfile-suffix ".%Y%m%d" instead of the default.

Example:

[00:02] <Jenny> Hello world

JUMP TO TOP


Energymech

Property Value
Client/Bot Energymech IRC bot
Format name energymech
Website http://www.energymech.net or http://cvs.energymech.net

Example:

[00:02] <Jenny> Hello world
[00:04] Joins: vjaway (vector@p5086F6EF.dip.t-dialin.net)

JUMP TO TOP


Dancer

Property Value
Client/Bot Dancer bot
Format name dancer
Website http://dancer.sourceforge.net/

Example:

15.57.40 # <elho> hello world!

JUMP TO TOP


ViRC98

Property Value
Client/Bot ViRC98 (Windows client)
Format name virc98
Website http://www.hansprestige.com (now ViRC2.0rc1)
Requirement Enable timestamping: Client setup → ViRC '98 options → Chat logging → Miscellaneous logging options → Stamp every message logged with current time

Examples:

01.15.39 [Fender]   this is a normal line writen by myself
00.55.38 <@jax1n0^O>   this is a normal line writen by another
22.24.27 * Fender says an action

JUMP TO TOP


Grufti

Property Value
Client/Bot Grufti bot
Format name grufti
Website http://www.grufti.com
Note The author created gruftistats (similar to pisg), but it hasn't been maintained for over a year.

Example:

[00:17] <John> Hello world

JUMP TO TOP


bxlog

Property Value
Client/Bot BitchX logging script
Format name bxlog
Note See bxlog-pisg.bx in the scripts/ directory.

Example:

[31 Dec/11:26] <John> Hello world

JUMP TO TOP


mbot

Property Value
Client/Bot mbot (C-based IRC bot)
Format name mbot
Website http://darksun.com.pt/mbot/
Requirement In configuration file, timemode must be set to 1.

Example:

Thu Aug 23 12:59:40 2001 <John> Hello world

JUMP TO TOP


irssi

Property Value
Client/Bot irssi (console IRC client)
Format name irssi
Website http://www.irssi.org
Note Logfiles must use the default theme. Also works for ii (wmii) logs.

Example:

17:40 <@John> Hello world

JUMP TO TOP


psybnc

Property Value
Client/Bot psybnc (IRC bouncer)
Format name psybnc
Website http://www.psychoid.lam3rz.de/

Example:

2001-08-19-23-14-06:#LINUX.DE::stelb!user@host.org PRIVMSG #linux.de :hi!

JUMP TO TOP


winbot

Property Value
Client/Bot winbot (Windows-based IRC bot)
Format name winbot
Website http://www.winbot.co.uk/

Example:

15:32.58 17/10/2001  <Azhrarn/#darkgalaxy> This is a normal line.

JUMP TO TOP


zcbot (zbot)

Property Value
Client/Bot zcbot (C++ bot)
Format name zcbot
Website http://zcbot.sourceforge.net/

Example:

12/11/01 22:05:42 :Keitaro!KOala_v5@EVYRV4A4.ipt.aol.com PRIVMSG #alsa-station :Re all :-)

JUMP TO TOP


ircle

Property Value
Client/Bot ircle (IRC client for Mac OS X)
Format name ircle
Status Support is not completely done yet.

Example:

6:35 PM:   Sinnikal: thats gross

JUMP TO TOP


infobot

Property Value
Client/Bot infobot (Perl bot)
Format name infobot
Website http://www.infobot.org

Trillian

Property Value
Client/Bot Trillian IRC component
Format name Trillian
Website http://www.trillian.cc
Requirement Logs must be timestamped in [%h:%m] or [%h:%m:%s] format (Preferences → General → Windows → Display).
Tested version Trillian 0.70

bobot++

Property Value
Client/Bot bobot++ (C++ IRC bot)
Format name bobot
Website http://pltplp.net/bobot++/

Example:

[13/12/2001 - 20:38] <NazoZzz> hello world

JUMP TO TOP


axur / epic

Property Value
Client/Bot EPIC with AXUR script
Format name axur / epic
EPIC website http://www.epicsol.org/
AXUR script http://www.asciifun.com/images/axur-2000.tar.gz or ax-b12r2.tar.gz
Note Two formats are logged simultaneously – both are supported.

Normal format:

[MM/DD/YYYY @ HH:MM:SS] <nick> saying
[MM/DD/YYYY @ HH:MM:SS] * nick does some action here

JUMP TO TOP

Logger format:

[MM/DD/YYYY @ HH:MM:SS] >(logger) saying
[MM/DD/YYYY @ HH:MM:SS] >* logger does some action here

JUMP TO TOP


Perlbot

Property Value
Client/Bot Perlbot (Perl bot with loadable modules)
Format name perlbot
Website http://perlbot.sourceforge.net
Status Development seems to have stopped.
Example stats http://stats.978.org

Example:

13:22:57 <Sc00ter> bah, gotta run to the store

JUMP TO TOP


oer / oer+MySQL

Property Value
Client/Bot oer (C bot)
Format name oer
Website http://oer.equnet.org/
Status Support isn't finished.
Recommended config Add these options: <set show_kickline="0">, <set show_actionline="0">, <set show_shoutline="0">, <set show_violentlines="0">

Example:

1010866756 :EQU!equ@mira.equnet.org PRIVMSG #oer :test for mbrix

JUMP TO TOP


muh

Property Value
Client/Bot muh (Unix/Linux bouncer)
Format name muh
Website http://mind.riot.org/muh/
Requirement Add to your muhrc: timestamptemplate = "[%a %d %b %H:%M:%S]";

Example:

[Sat 16 Mar 21:24:09] <pete> hello everybody

JUMP TO TOP


muh2

Property Value
Client/Bot muh version 2.2+
Format name muh2
Website http://muh.sf.net

Example:

[11:23] <boitl> Hello world
[11:24] * carmen means that she is nice

JUMP TO TOP


pircbot

Property Value
Client/Bot PircBot (Java IRC bot framework)
Format name pircbot
Website http://www.jibble.org/pircbot.php
Note All data written by the bot is parsed as the nick assigned to maintainer. Logs are timestamped with milliseconds since the epoch.

Example:

1013630386748 :nick!ident@hostname PRIVMSG #channel :Hello world.

JUMP TO TOP


Eggdrop RacBot

Property Value
Client/Bot Eggdrop RacBot (derived from Eggdrop)
Format name RacBot
Website http://www.racbot.org/

KVIrc

Property Value
Client/Bot KVIrc (KDE client for Linux)
Format name kvirc
Website http://www.kvirc.net/
Status Support not completely done. Actions and -/+o modes are not detected. Add <set show_actionline="0"> to your config.
Tested versions 2.x.x (v3.x.x not tested)

Example:

### Log session started at Thu Aug 23 17:25:36 2001 ###
[17:25:36] wwp [anonymous@AMontpellier-201-2-1-77.abo.wanadoo.fr] has joined #ECI
[17:25:47] <wwp> yop
### Log session terminated at Sun Sep 9 22:56:51 2001 ###

JUMP TO TOP


moobot

Property Value
Client/Bot moobot (Python-based modular IRC bot)
Format name moobot
Website http://sourceforge.net/projects/moobot

Examples:

2002-07-06 00:05:29 :vergil!~vergil@host PUBMSG #space :mike_lap: i'm not joking, actually.
2002-07-04 15:56:19 :SpaceBot PUBMSG #space :huh?
2002-07-06 00:07:30 :vergil!~vergil@host CTCP #space :ACTION salutes
2002-07-18 10:37:18 :jeffcovey!~jeff@host KICK #space vergil :two days in a row!
2002-07-06.log:2002-07-06 12:07:41 :phil_tty!mjpr@host TOPIC #space :<She-Ra> of course, god can go to rotters, for all she's managed not to do for me
2002-07-04 17:34:01 :jeffcovey!~jeff@host MODE #space +o CowBot
2002-07-04 12:02:42 :Leebert!~lsherida@host JOIN :#space
2002-07-04 18:24:18 :mike_lap!~emag@host NICK :Cathy

JUMP TO TOP


ircII

Property Value
Client/Bot ircII (original IRC client)
Format name ircII
Website http://www.eterna.com.au/ircii/
Requirement Add to your .ircrc:
Note Maintainer config option must be set to the maintainer's nick.

Triggers to add:

on #^timer 50 "*0" echo $0
on #^timer 50 "*5" echo $0

JUMP TO TOP

Example:

22:40
*** sonnlich (sonnloki@202.72.122.25348) has joined channel #unisfa
* sonnlich waves.
> evening rae
<sonnlich> Evening.

JUMP TO TOP


DC++ (Direct Connect Hub)

Property Value
Platform Direct Connect Hub (not IRC)
Format name DCpp
Note You MUST put botnicks into botnicks variable to see kicks.

Example:

<set botnicks="bot1 bot2 MainBot">

JUMP TO TOP


sirc

Property Value
Client/Bot sirc (Simple IRC Client)
Format name sirc
Website http://www.iagora.com/~espel/sirc.html
Requirement Load sirc-timestamp.pl from the scripts/ subdirectory: /load sirc-timestamp.pl

dircproxy

Property Value
Client/Bot dircproxy (Detachable IRC Proxy Server)
Format name dircproxy
Website http://www.dircproxy.net/
Note Nick changes are not recognized (logged to a separate file), so nick tracking will not work. Supports both 1.0.5 and 1.1.0 log formats.

blootbot

Property Value
Client/Bot blootbot
Format name blootbot
Website http://blootbot.sourceforge.net/
Note Supports multiple channels – the log will be parsed once for each channel.

Examples:

01:02.03 <nick/#channel> normal
01:02.03 * nick/#channel action
01:02.03 >>> topic/#channel by nick -> topic...
01:02.03 >>> mode/#channel [+o nick] by ChanServ
01:02.03 >>> join/#channel nick (~user@example.com)
01:02.03 >>> kick/#channel [nick!~user@example.com] by nick (reason)
01:02.03 >>> nick_ materializes into nick

JUMP TO TOP


HydraIRC

Property Value
Client/Bot HydraIRC (open-source IRC client)
Format name hydra
Website http://hydrairc.sourceforge.net/

Example:

[2003-02-22 16:49:18] *** Alexander changed topic to wibble
[2003-02-22 16:52:29] <Alexander> Sorry about the delay.
[2003-02-22 16:52:33] <Eien> Slow.  Waking.  Up.
[2003-02-22 16:52:34] *** Melody sets channel #ar-roleplay mode +v Alexander
[2003-02-22 16:58:57] *** Kemmy|ZZZ changed nick to Kemayo
[2003-02-22 17:03:34] * Alexander stirs Eien's brain.  "Cooooooool..."

JUMP TO TOP


rbot

Property Value
Client/Bot rbot (Ruby IRC bot)
Format name rbot
Website http://linuxbrit.co.uk/rbot/

Example:

[2003/07/22 22:02:59] <Rathnor> well, i'm considering setting up a cronjob or something to watch it
[2003/07/22 22:03:11] <ak|ra> hehe
[2003/07/22 22:03:24] @ Mode +o Rathnor by ChanServ
[2003/07/22 22:03:25] @ Quit: oddbudman: Remote closed the connection
[2003/07/22 22:03:29] <FluxBot> Rathnor: :(

JUMP TO TOP


IRCAP

Property Value
Client/Bot IRCAP version 7.5 or 7.51
Format name IRCAP
Websites http://www.ircap.com or http://www.ircap.net
Requirement mIRC 6.03 or 6.12 required by IRCAP. Enable timestamp logs in mIRC: File → mIRC6.03 (or Tools → mIRC6.12) → IRC → Logging → check Timestamp Logs.

Example:

[2:51] <Lawy> a las wenassssssssss
[2:51] <Lawy> [ArCePi] nas nas
[2:51] <Lawy> [BruJo] wenas
[2:51] <Danaita> lawyyyy

JUMP TO TOP


Vision

Property Value
Client/Bot Vision (IRC client for BeOS)
Format name Vision
Websites http://vision.sourceforge.net, http://www.bebits.com/app/2623
Requirement Timestamping must be enabled in preferences. Parses default messages only – if you change them, edit the parser accordingly.

Supybot

Property Value
Client/Bot Supybot
Format name supybot
Website http://supybot.sf.net
Tested version 0.77

Examples:

normal msg:  [05-Mar-2004 17:28:10]  * Jkx|home bon je vais pas trainer ..
channel msg: [17-Feb-2004 08:13:47]  *** Jkx changes topic to "Oh my god of topic

JUMP TO TOP


JavaBot

Property Value
Client/Bot JavaBot
Format name javabot
Website http://javabot.sourceforge.net
Requirement Version 0.3.3 or newer

Example:

maj 07 21:11:44 <CreoN> a regular line
maj 07 21:12:02 ---     CreoN sets mode +o scalldog
maj 07 21:12:05 <--     CreoN has kicked JavaBot (JavaBot)
maj 07 21:12:06 -->     JavaBot (~javabot@host.com) has joined #channel

JUMP TO TOP


lulubot

Property Value
Client/Bot lulubot
Format name lulubot
Website http://lulubot.berlios.de
Tested version CVS (2004-04-12)
Parser author Vianney Lecroart acemtp@free.fr

Example:

[22-11-2004/14:42] *** Joined ace (~ace@154.25.145.85)
[22-11-2004/15:00] <ace> morning
[22-11-2004/15:01] * ace is back

JUMP TO TOP


weechat / weechat3

Property Value
Client/Bot WeeChat
Format names weechat (old format), weechat3 (new format from version 0.3+)
Website http://weechat.flashtux.org/

Summary Table

Format Name Client/Bot Status
mIRC6 mIRC 6.x ⚠️ Avoid if possible
mIRC6hack mIRC 6.x (scripted) ✅ Recommended for mIRC
mIRC mIRC (older)
xchat XChat
eggdrop Eggdrop bot
energymech Energymech bot
dancer Dancer bot
virc98 ViRC98
grufti Grufti bot ⚠️ Unmaintained
bxlog BitchX script
mbot mbot
irssi irssi / ii
psybnc psybnc bouncer
winbot winbot
zcbot zcbot
ircle ircle (Mac OS X) 🚧 Incomplete
infobot infobot
Trillian Trillian
bobot bobot++
axur / epic EPIC + AXUR
perlbot Perlbot ⚠️ Abandoned
oer oer/oer+MySQL 🚧 Incomplete
muh / muh2 muh bouncer
pircbot PircBot (Java)
RacBot Eggdrop RacBot
kvirc KVIrc 🚧 Incomplete
moobot moobot (Python)
ircII ircII
DCpp Direct Connect ⚠️ Not IRC
sirc sirc
dircproxy dircproxy ⚠️ No nick tracking
blootbot blootbot
hydra HydraIRC
rbot rbot (Ruby)
IRCAP IRCAP + mIRC
Vision Vision (BeOS)
supybot Supybot
javabot JavaBot
lulubot lulubot
weechat / weechat3 WeeChat

JUMP TO TOP

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment