Skip to main content

Convert IRC logs to HTML

Project description

Converts IRC log files to HTML with pretty colours.

Quick start

Installation:

pip install irclog2html

Quick usage for a single log file:

irclog2html --help
irclog2html filename.log                  (produces filename.log.html)

Mass-conversion of logs (one file per day, with YYYY-MM-DD in the filename) with next/prev links, with mtime checks, usable from cron:

logs2html directory/     (looks for *.log and *.log.gz, produces *.log.html)

Configuration files

Since you probably don’t want to keep specifying the same options on the command line every time you run logs2html, you can create a config file. For example:

-t 'IRC logs for #mychannel'
-p 'IRC logs for #mychannel for '
# the following needs some extra Apache setup to enable the CGI/WSGI script
--searchbox
# where we keep the logs
/full/path/to/directory/

Use it like this:

logs2html -c /path/to/mychannel.conf

Lines starting with a # are ignored. Other lines are interpreted as command-line options.

The order matters: options on the command line before the -c FILE will be overriden by option in the config file. Options specified after -c FILE will override the options in the config file.

You can include more than one config file by repeating -c FILE. You can include config files from other config files. You can even create loops of config files and then watch and laugh manically as logs2html sits there burning your CPU.

CGI script for log searching

You can generate search boxes on IRC log pages by passing the --searchbox option to logs2html. Here’s an example Apache config snippet that makes it work:

RewriteRule ^/my-irclog/search/$ /my-irclog/search [R,L]
ScriptAlias /my-irclog/search /usr/local/bin/irclogsearch
<Location /my-irclog/search>
  SetEnv IRCLOG_LOCATION "/var/www/my-irclog/"
  # Uncomment the following if your log files use a different format
  #SetEnv IRCLOG_GLOB "*.log.????-??-??"
  # (this will also automatically handle *.log.????-??-??.gz)
</Location>

WSGI script for log serving

There’s now an experimental WSGI script that can generate HTML for the logs on the fly. You can use it if you don’t like cron scripts and CGI.

Here’s an example Apache config snippet:

WSGIScriptAlias /irclogs /usr/local/bin/irclogserver
<Location /irclogs>
  SetEnv IRCLOG_LOCATION "/var/www/my-irclog/"
  # Uncomment the following if your log files use a different format
  #SetEnv IRCLOG_GLOB "*.log.????-??-??"
  # (this will also automatically handle *.log.????-??-??.gz)
</Location>

Currently it has certain downsides:

  • configuration is very limited, e.g you cannot specify titles or styles or enable dircproxy mode

  • HTML files in the irc log directory will take precedence over dynamically-generated logs even if they’re older than the corresponding log file (but on the plus side you can use that to have dynamic search via WSGI, but keep statically-generated HTML files with your own config tweaks)

WSGI script for multi-channel log serving

The experimental WSGI script can serve logs for multiple channels:

WSGIScriptAlias /irclogs /usr/local/bin/irclogserver
<Location /irclogs>
  SetEnv IRCLOG_CHAN_DIR "/var/www/my-irclog/"
  # Uncomment the following if your log files use a different format
  #SetEnv IRCLOG_GLOB "*.log.????-??-??"
  # (this will also automatically handle *.log.????-??-??.gz)
</Location>

Now /irclogs will show a list of channels (subdirectories under /var/www/my-irclog/), and /irclogs/channel/ will show the date index for that channel.

Misc

Website: https://mg.pov.lt/irclog2html/

Bug tracker: https://github.com/mgedmin/irclog2html/issues

Licence: GPL v2 or v3 (https://www.gnu.org/copyleft/gpl.html)

buildstatus appveyor coverage

Changelog

4.0.0 (2024-10-17)

  • Remove CGI support if you’re using Python 3.13 or newer. You’ll have to use the WSGI support instead.

  • Add support for Python 3.12 and 3.13.

3.0.0 (2023-08-28)

  • Drop support for Python 2.7 and 3.6.

  • Add support for Python 3.10 and 3.11.

  • Make permalinks permanent even from the latest.html file, by emitting the filename in the links.

  • Add <meta name=”viewport”> to set initial scale to 1 for improved mobile experience (PR 32).

  • Support logs files created by ii (Irc it) (PR 33).

2.17.3 (2021-07-08)

  • Add support for Python 3.8 and 3.9.

  • Drop support for Python 3.5.

  • Fix a bug where specifying –output-dir (-o) to logs2html would mistakenly skip generating some HTML files if they existed in the source directory (issue 29).

2.17.2 (2019-04-23)

  • Drop support for Python 3.4.

2.17.1 (2018-11-25)

  • Add support for Python 3.7.

  • Drop support for Python 3.3.

  • Support python -m irclog2html as shortcut for python -m irclog2html.irclog2html.

  • Make irclogserver ignore hidden directories (such as .git).

2.17.0 (2018-02-21)

2.16.0 (2017-12-20)

  • Support Python 3.6.

  • Fix for duplicated lines with the same time where the resulting HTML id anchors would evolve into long form like “t22:24:49-2-3-4-5-6-7-8-9-10” instead of “t22:24:49-10” resulting in significant output file size growth in some cases.

  • Add –output-dir (-o) parameter to logs2html so you can place the generated HTML files in a directory different from the input directory (PR #20).

2.15.3 (2016-12-08)

2.15.2 (2016-10-07)

  • irclogserver channel list is now split into old channels and active channels, detected by checking whether the directory modification date is newer or older than 7 days.

  • 2nd-level headings now have the same color as 1st-level headings.

  • irclogserver no longer shows a 404 if you omit the trailing / after a channel name in the URL.

2.15.1 (2016-09-25)

2.15.0 (2016-09-25)

2.14.0 (2014-12-12)

2.13.1 (2014-02-01)

  • Add support for Windows (e.g. refrain from creating latest.log.html symlinks).

2.13.0 (2013-12-18)

2.12.1 (2013-03-22)

2.12.0 (2013-03-18)

  • Moved to Github.

  • Add support for Python 3.3.

  • Drop support for Python 2.4 and 2.5.

  • Fix URL linkifier to not include trailing punctuation (LP#1155906).

2.11.1 (2013-03-17)

  • logs2html also accepts filenames that contain YYYYMMDD dates (in addition to YYYY-MM-DD). Patch by Holger Just. Fixes LP#1031642.

2.11.0 (2012-07-30)

  • irclogsearch can be told about the filename pattern of log files via an environment variable (IRCLOG_GLOB). Patch by Jonathan Kinred.

2.10.0 (2012-02-12)

  • New option: –glob-pattern. Patch by Albertas Agejevas. Fixes LP#912310.

  • Links in logs are marked with rel=”nofollow”. Patch by Matt Wheeler. Fixes LP#914553.

  • New option: –version.

  • New option: -c, –config=FILE.

2.9.2 (2011-01-16)

  • Support XChat Latin/Unicode hybrid encoding (http://xchat.org/encoding/). Fixes LP#703622.

  • irclog2html copies irclog.css file into the destination directory. Fixes LP#608727.

2.9.1 (2010-08-06)

  • Make sure irclog.css is installed in the right place; logs2html needs it.

2.9 (2010-08-06)

  • Restructured source tree, made irclogs2html into a package, added setup.py, buildout.cfg, bootstrap.py, Makefile, HACKING.txt; moved old porting test suite into a subdirectory (porting).

  • logs2html copies irclog.css file into the destination directory.

  • Released into PyPI.

2.8 (2010-07-22)

  • Added README.txt and CHANGES.txt.

  • Support dircproxy log files (new date format: “[15 Jan 08:42]”, strip ident and IP address from nicknames). Patch by Paul Frields.

  • New option: –dircproxy also makes irclog2html strip a single leading ‘+’ or ‘-’ from messages.

2.7.1 (2009-04-30)

  • Bug in logs2html.py error reporting, reported by Ondrej Baudys.

2.7 (2008-06-10)

  • New style: mediawiki. Patch by Ian Weller.

2.6 (2007-10-30)

  • Support another date format (Oct 17 10:53:26). Patch by Matthew Barnes.

2.5.1 (2007-03-22)

  • logs2html.py: add a stable link to the latest log file (suggested by Chris Foster).

2.5 (2007-01-22)

  • New option: –searchbox.

  • Search CGI script improvements (e.g. put newest matches on top).

2.4 (2006-12-11)

  • Added a sample CGI script for brute-force log searches.

2.3 (2005-03-08)

  • Use xhtmltable style by default.

  • Added a copy of the navbar at the bottom.

2.2 (2005-02-04)

  • Support supybot’s ChannelLogger date format (e.g. 02-Feb-2004).

  • Fixed broken timestamp hyperlinks in xhtml/xhtmltable styles.

  • CSS tweaks.

2.1mg (2005-01-09)

  • Ported irclog2html.pl version 2.1 by Jeff Waugh from Perl to Python.

  • New styles: xhtml, xhtmltable.

  • New options: –title, –{prev,index,next}-{url,title}

  • Removed hardcoded nick colour preferences for jdub, cantaker and chuckd

  • Bugfix: colours are preserver accross nick changes (irclog2html.pl tried to do that, but had a bug in a regex)

  • Added ISO8601 timestamp support (e.g. 2005-01-09T12:43:11).

  • More careful URL linkification (stop at ‘, “, ), >).

  • Added logs2html.py script for mass-conversion of logs.

  • Added support for xchat log files.

  • Added xchatlogsplit.py script for splitting xchat logs on day boundaries so they’re suitable as input for logs2html.py.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

irclog2html-4.0.0.tar.gz (221.0 kB view details)

Uploaded Source

Built Distribution

irclog2html-4.0.0-py3-none-any.whl (51.7 kB view details)

Uploaded Python 3

File details

Details for the file irclog2html-4.0.0.tar.gz.

File metadata

  • Download URL: irclog2html-4.0.0.tar.gz
  • Upload date:
  • Size: 221.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for irclog2html-4.0.0.tar.gz
Algorithm Hash digest
SHA256 12526a9f83328a8dc4dd1c1d480982882f1890731911a12f632a6f09ebf5f01d
MD5 40749dcb0a0cf6a2b5f2296066e6698a
BLAKE2b-256 888ab5c0c46c6a444e147c9f85280c8b74e2be72fa1821b6a7b97de50ec19db2

See more details on using hashes here.

File details

Details for the file irclog2html-4.0.0-py3-none-any.whl.

File metadata

  • Download URL: irclog2html-4.0.0-py3-none-any.whl
  • Upload date:
  • Size: 51.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for irclog2html-4.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c9d70ef0a9e87c4191870e7751428a2f96411c7267a655d7ef9bb5fb67056d0f
MD5 55a602258ec171a8161c3f6caa0a8026
BLAKE2b-256 ab159b6657b32e4f760febb30a545ebe4e7b9fbc2ba745455036b22fcfdb2b99

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page