/** * This will print out a list of all the current clubs or families. * @author Pinkfish * @started Tue Nov 3 18:14:12 PST 1998 */ inherit "/std/basic/club_listing"; #include <http.h> #include <top_ten_tables.h> #define __CLUBS_H_NO_CLASSES #include <clubs.h> private string _family_string; private string _club_string; private string create_header(string title) { return "<html><head>" "<title>" + title + "</title>"+ "</head><body bgcolor=\"#ffffff\" TEXT=\"#000030\" LINK=\"#4a529c\" " "VLINK=\"#b57339\"><font face=\"arial,helvetica\">"; } /* create_header() */ private string club_wrap(string name) { if (name) { return "<a href=\"club_info.c?club_name=" + name + "\">" + CLUB_HANDLER->query_club_name(name) + "</a>"; } else { return "Unknown"; } } /* club_info_wrap() */ private string top_families() { string str; mapping g_info; string guild; mixed *stuff; string bing; string *g_sorted; stuff = TOP_TEN_HANDLER->query_family_info(); str = "<h2>Top families!</h2>\n<ul>\n" "<li>The most members " + club_wrap(stuff[TOP_TEN_LARGEST_FAMILY]) + ".\n" "<li>The oldest average age " + club_wrap(stuff[TOP_TEN_OLDEST_FAMILY]) + ".\n" "<li>Most average quest points " + club_wrap(stuff[TOP_TEN_MOST_QUEST_POINTS]) + ".\n " "<li>Most player killers " + club_wrap(stuff[TOP_TEN_MOST_PKS]) + ".\n" "<li>Largest single gender " + club_wrap(stuff[TOP_TEN_SINGLE_GENDER]) + ".\n" "<li>Oldest average logon time " + club_wrap(stuff[TOP_TEN_OLDEST_LOGONS]) + ".\n" "<li>Most average relationships " + club_wrap(stuff[TOP_TEN_MOST_RELATIONSHIPS]) + ".\n"; g_info = stuff[TOP_TEN_MOST_GUILD]; g_sorted = sort_array(filter(keys(g_info), (: stringp($1) && file_size($1 + ".c") > 0 && !$1->query_real_guild_object() :)), (: strcmp($1->query_name(), $2->query_name()) :)); foreach (guild in g_sorted) { if (stringp(guild)) { bing = g_info[guild]; str += sprintf("<li>%s %s.\n", "Most " + (guild->query_name()), club_wrap(bing)); } } str += "</ul>\n"; return str; } /* top_families() */ private string top_clubs() { string str; mixed *stuff; string guild; string bing; string *g_sorted; mapping g_info; stuff = TOP_TEN_HANDLER->query_club_info(); str = "<h2>Top clubs!</h2>\n<ul>\n" "<li>The most members " + club_wrap(stuff[TOP_TEN_LARGEST_FAMILY]) + ".\n" "<li>The oldest average age " + club_wrap(stuff[TOP_TEN_OLDEST_FAMILY]) + ".\n" "<li>Most average quest points " + club_wrap(stuff[TOP_TEN_MOST_QUEST_POINTS]) + ".\n " "<li>Most player killers " + club_wrap(stuff[TOP_TEN_MOST_PKS]) + ".\n" "<li>Largest single gender " + club_wrap(stuff[TOP_TEN_SINGLE_GENDER]) + ".\n" "<li>Oldest average logon time " + club_wrap(stuff[TOP_TEN_OLDEST_LOGONS]) + ".\n"; g_info = stuff[TOP_TEN_MOST_GUILD]; g_sorted = sort_array(filter(keys(g_info), (: stringp($1) && file_size($1 + ".c") > 0 && !$1->query_real_guild_object() && $1->query_name() != "object" :)), (: strcmp($1->query_name(), $2->query_name()) :)); foreach (guild in g_sorted) { if (stringp(guild)) { bing = g_info[guild]; str += sprintf("<li>%s %s.\n", "Most " + (guild->query_name()), club_wrap(bing)); } } str += "</ul>\n"; return str; } /* top_clubs() */ /** * Cache the request for an hour... */ string www_request(string str, mapping args, class http_request req) { string ret; switch (args["type"]) { case "family" : ret = create_header("Current families"); if (!_family_string) { _family_string = top_families(); _family_string += www_club_list("unknown", 1, args["start"], 2000); call_out((: _family_string = 0 :), 120 * 60); } ret += _family_string; break; case "club" : ret = create_header("Current clubs"); if (!_club_string) { _club_string = top_clubs(); _club_string += www_club_list("unknown", 0, args["start"], 2000); call_out((: _club_string = 0 :), 120 * 60); } ret += _club_string; break; } ret += "/www/footer"->www_function("footer", ([ ]), req); return ret; } /* www_request() */