#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;
}