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/