RSS feed from Netrek Server.

Installation:

1.  install Netrek server as usual, (this will create
${LOCALSTATEDIR}/blog and ${LOCALSTATEDIR}/www directories),

2.  edit ${SYSCONFDIR}/blosxom.conf to set $url to the URL that uses
your web server to reach your ${LOCALSTATEDIR}/www directory,

3.  test by using the ${LIBDIR}/tools/blog script to add a daemon
class comment, like this:

	blog daemon "Blog is on" "Installed the server blog feature."

4.  verify that files have been placed in ${LOCALSTATEDIR}/www,

5.  verify that normal Netrek game activity updates the files in
${LOCALSTATEDIR}/blog and thus in ${LOCALSTATEDIR}/www,


Configuration:

${SYSCONFDIR}/blosxom.conf contains configuration settings for
blosxom, initially placed by "make install", the directories are set
up for the default /usr/local/games/netrek-vanilla-server/ path.

TODO: have blosxom.conf generated by autoconf/configure.

The directories can be changed if the web server directory is some
other place than the Netrek server path.  Or you can create symlinks
from ${LOCALSTATEDIR}/www to your system's /var/www tree.


Components:

${LIBDIR}/tools/blog is used by the administrator to add events to the
blog.  See the script comments for the arguments; $1 is class, $2 is
title, and $3 is article text.  The script runs
${LIBDIR}/tools/blog-update.

${LIBDIR}/tools/blog-file is started by the daemon when a bloggable
event occurs.  The script moves the daemon file into position and runs
${LIBDIR}/tools/blog-update.

${LIBDIR}/tools/blog-update is a script which takes the files from
${LOCALSTATEDIR}/blog and writes static web content in
${LOCALSTATEDIR}/www using Blosxom, which is run in incremental change
mode, so that each new change causes minimal change to the web
content.

${LIBDIR}/tools/blog-update-all is a script that runs blosxom in
"update all files" mode.

ntserv/blog.c handles all blog events for the daemon and ntserv,
forking an instance of ${LIBDIR}/tools/blog-file.


Directories:

${LOCALSTATEDIR}/blog is created by "make install", and contains a
text file for each blog event.  It has a subdirectory for each class
of event.  Removing the subdirectory blocks the events.  The script
${LIBDIR}/tools/blog-purge-old maintains this subdirectory by removing
old events.

${LOCALSTATEDIR}/www is created by "make install", and contains static
web content, generated by blosxom under control of
${LIBDIR}/tools/blog-update.  This directory should be made available
to a web server.  Blosxom knows about the directory via the
${SYSCONFDIR}/blosxom.conf file.


Events logged by a class type, such as:

- daemon, starts and stops of the universe simulator,
	ok
- queue, game full event, queue full event,
	ok
- logins, new character, old character, logout with planet taken count,
    int  p_avrt;               /* average round trip time */
    int  p_stdv;               /* standard deviation in round trip time */
    int  p_pkls_c_s;           /* packet loss (client to server) */
    int  p_pkls_s_c;           /* packet loss (server to client) */
	not yet done
- racial, wins and losses by race, (conq, geno, surr, base),
	ok
- t-mode, session begin, session end with struct status values,
	gantt chart showing players who were there, icons per pick/take/death
	not yet done
- planets, loss,
	not yet done
- bans, temporary add, temporary expire, 
	ok
- scriptable, "blog class 'message'"
	ok
- metaserver blog, of major activity by other servers, new server listing,
	not yet done
- inl, game completion, stats, recordings.
	not yet done

TODO: not all .txt files in tree processed, why?  rerun blosxom?

TODO: avoid running blosxom too frequently

TODO: <zu22> Would be nice to see the current planet count, time
remaining if geno situation, players logged in, maybe rank players
list by DI, or highest session stats, Maybe this could be used as a
tool to attract players. Advertize on the MOTD how to subscribe to the
feed and subscribes could get email updates if there is >> X players
logged in.


Internal Design:

- daemon calls blog_* from blog.c,
- blog_* forks and execs ${LIBDIR}/tools/blog-file,
- ${LIBDIR}/tools/blog-file updates filesystem and static content,
- web browser accesses static content.


Software dependencies:

- blosxom, a perl script to generate static HTML from text files

Notes from PROJECTS yet to be implemented

	- RSS feed for genos, so that people can subscribe and be told
	  when the galactic is recently reset.  Jerub expressed an
	  interest in doing it.

	  Content area on netrek.org showing recent contested genos,
	  length of game leading up to it, number of players seen,
	  players per hour, keep latest ten, feed from multiple
	  servers. [planet .netrek .org?]

	  Server generated screen shot of final frame.

	  Separate feed for adminstrivia, with server CLI script for
	  adding to the feed.

	  INL server specific feed, containing game results, summary,
	  ltd stats by player.

	  Metaserver specific feed ... new servers listed, delistings,
	  weekly summary of query counts with history.

	  netrekd forked HTTP responder, or scripts to send stuff to a
	  web server?

Technical Details

	lib/conquer -> blosxom data -> blosxom rerun -> static content
perl /usr/lib/cgi-bin/blosxom -f='blosxom.conf' -password='netrek'
# use -all=1 for refresh

	micro-inetd -> micro-httpd -> static content
micro_inetd 8090 /usr/sbin/micro_httpd /tmp/blosxom/static/

	# package tcputils and micro-httpd
	  mini-inetd -> micro-httpd -> static content

mini-inetd 80 /usr/sbin/micro_httpd httpd /usr/local/games/netrek-server-vanilla/var/www/
mini-inetd 80 /usr/sbin/micro_httpd httpd /usr/games/continuum/var/www/