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: 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/