wrsd is a World of Warcraft realm monitoring daemon that serves individual realm status information. It is loosely based on the WWW::WoW::RealmStatus perl module.
Application Overviewwrsd is very simple. It consists of an Erlang application that supervises two children.
wrsd_realmserver -- This gen_server process maintains the status of given realms using gb_trees (general balanced trees). wrsd_yaws -- This module manages an embedded yaws server to provide a public XML interface. The wrsd_realm module is used to fetch and process realm data provided by http://www.worldofwarcraft.com/realmstatus/status.xml.
Quick StartBefore you compile the modules you'll have to make yaws configuration change to set the public interface to the correct hostname and port. In the wrsd_yaws.erl module change the 'port' and 'servername' of the SC1 variable in wrsd_yaws:set_conf/0. There are two SC variables set, one for localhost testing and another for your (potential) production host.
The application also assumes that the yaws ebin is in the code path. If you havn't set yaws in your $HOME/.erlang file do it with this:
echo "code:add_path(\"/usr/local/lib/yaws/ebin\")." >> ~/.erlangNow start an Erlang node, compile all of the modules and start the applications and its dependancies.
erl +A 1 +Ktrue -boot start_sasl +W w -sname wrsdapp -yaws embedded true -setcookie wrsdcookie
Erlang (BEAM) emulator version 5.5.5 [source] [64-bit] [async-threads:1] [kernel-poll:true]
wrsdapp@yournode)1> make:all([load]), [application:start(X) || X Thanks to sasl you'll probably see a lot of output. Most of it can be ignored. As long as you don't see errors or application start failures you should be good to go. As per the update_loop start phase a process will spawn that will attempt to update the realm data every 10 minutes.
You can test the application by using the public www interface. Go to http://host:port/realm/Medivh.
These details are provided for information only. No information here is legal advice and should not be used as such.