on *:START:{
if (!$hget(Links)) { hmake Links 10 }
if ($exists(Links.dat)) { hload Links Links.dat }
}
on *:TEXT:*:#:{
tokenize 32 $strip($1-)
if ($1 == !addlink) {
if (!$2) { msg # Not enough information to add a link <name> <link> }
elseif (!$regex($3,([\d\w-.]+?\.(a[cdefgilmnoqrstuwz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvxyz]|d[ejkmnoz]|e[ceghrst]|f[ijkmnor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eouw]|s[abcdeghijklmnortuvyz]|t[cdfghjkmnoprtvwz]|u[augkmsyz]|v[aceginu]|w[fs]|y[etu]|z[amw]|aero|arpa|biz|com|coop|edu|info|int|gov|mil|museum|name|net|org|pro)(\b|\W(?<!&|=)(?!\.\s|\.{3}).*?))(\s|$))) {
msg # $3 is an invalid link
}
elseif ($hfind(Links,$2,0,w)) { msg # Link is already in the database }
else { hadd Links $+($2,$chr(126),$ctime,$chr(126),$nick) $3 | msg # Added link: $3 to the database }
}
elseif ($1 == !link) {
if (!$2) { msg # Not enough information to retrieve a link <name> }
elseif ($hfind(Links,$+($2,$chr(126),*),1,w)) {
msg # Link $+($gettok($v1,1,126),:) $hget(Links,$v1) Added by: $gettok($v1,3,126) $duration($calc($ctime - $gettok($v1,2,126))) ago.
}
else { msg # Link not found in database }
}
}
on *:EXIT:{
if ($hget(Links)) { hsave Links Links.dat }
}