#include "standard.h" inherit "/std/object"; setup() { set_name("test"); set_short("test"); } init() { ::init(); add_action("purge","purge"); } // mixed *stat(string str, int|DEFAULT 0); // ({ file_size, last_time_file_touched, time_object_loaded }) #define DAYS60 5184000 #define DAYS90 7776000 int purge(string str) { mixed *s, *dir, *let; int i,j,t; string tmp; let = ({"a","b","c","d","e","f","g","h","i","j","k","l", "m","n","o","p","q","r","s","t","u","v","w","x", "y","z", }); seteuid("Root"); t=time(); for (j=0;j<26;j++) { dir=get_dir("/players/"+let[j]+"/*.o"); for (i=0;i<sizeof(dir);i++) { s=stat("/players/"+let[j]+"/"+dir[i]); if ( sizeof(s) && ((t-(int)s[1]) > DAYS60)) { sscanf(dir[i],"%s.o",tmp); if (!"/secure/master"->query_promoted(tmp)) { log_file("EXPIRED",dir[i]+" unused for > 60 days, moved\n"); rename("/players/"+let[j]+"/"+dir[i],"/players/OLD/"+dir[i]); } else log_file("EXPIRED",dir[i]+" unused for > 60 days, promoted, not moved\n"); } } } "/obj/handlers/library"->clean_library(); "/room/bankmain"->clean_bank(); "/obj/handlers/mail_track"->clean_post(); return 1; }