New-Prog-Log (#31)

(an instance of Generic Mail Recipient made by Hacker)

     Record of who's been made a @programmer.

Go to location of this object, Mail Distribution Center.



VERB SOURCE CODE:

init_for_core:
if (caller_perms().wizard)
    pass();
    this:rm_message_seq({1, 1 + this:length_all_msgs()});
    this:expunge_rmm();
    this.mail_forward = {player, this};
    this.mail_notify = {player};
    for p in ({"moderator_forward", "writers", "readers", "expire_period", "last_used_time"})
        this.(p) = $mail_recipient.(p);
    endfor
    this.moderated = 1;
else
    return E_PERM;
endif
.


receive_message:
if (!this:is_writable_by(caller_perms()))
    return E_PERM;
else
    if (msgs = this.messages)
        new = msgs[length(msgs)][1] + 1;
    else
        new = 1;
    endif
    if (rmsgs = this.messages_going)
        lbrm = rmsgs[length(rmsgs)][2];
        new = max(new, lbrm[length(lbrm)][1] + 1);
    endif
    m = args[1];
    if (index(m[4], "@programmer ") == 1)
        m = {m[1], toobj(args[2]), o = toobj(m[4][index(m[4], "(") + 1..index(m[4], 
")") - 1]), o.name};
    endif
    this.messages = {@msgs, {new, m}};
    this.last_msg_date = m[1];
    this.last_used_time = time();
    return new;
endif
.


display_seq_headers display_seq_full:
":display_seq_headers(msg_seq[,cur])";
":display_seq_full(msg_seq[,cur]) => {cur}";
if (!this:ok(caller, caller_perms()))
    return E_PERM;
endif
cur = {@args, 0}[2];
read_date = {@args, $maxint, $maxint}[3];
last = ldate = 0;
player:tell("       WHEN           WHO                           BY");
for x in (msgs = this:messages_in_seq(args[1]))
    msgnum = $string_utils:right(last = x[1], 4, (cur == x[1]) ? ">" | " ");
    ldate = x[2][1];
    if (typeof(x[2][2]) != OBJ)
        hdr = this:msg_summary_line(@x[2]);
    else
        hdr = tostr(ctime(ldate)[5..16], "   ", $string_utils:left(tostr(x[2][4], 
" (", x[2][3], ")"), 30), valid(w = x[2][2]) ? w.name | "??", " (", x[2][2], ")");
    endif
    player:tell(msgnum, (ldate > read_date) ? ":+ " | ":  ", hdr);
    $command_utils:suspend_if_needed(0);
endfor
if (verb == "display_seq_full")
    return {last, ldate};
else
    player:tell("----+");
endif
.


from_msg_seq:
":from_msg_seq(object or list[,mask])";
" => msg_seq of messages from any of these senders";
if (!this:ok(caller, caller_perms()))
    return E_PERM;
endif
if (typeof(plist = args[1]) != LIST)
    plist = {plist};
endif
i = 1;
fseq = {};
mask = {@args, {1}}[2];
for msg in (this.messages)
    if ((!mask) || (i < mask[1]))
    elseif ((length(mask) < 2) || (i < mask[2]))
        if (msg[2][2] in plist)
            fseq = $seq_utils:add(fseq, i, i);
        endif
    else
        mask = mask[3..length(mask)];
    endif
    i = i + 1;
    $command_utils:suspend_if_needed(0);
endfor
return fseq || ("%f % no messages from " + $string_utils:english_list($list_utils:map_arg(2, 
$string_utils, "pronoun_sub", "%n (%#)", plist), "no one", " or "));
.


to_msg_seq:
":to_msg_seq(object or list[,mask]) => msg_seq of messages to those people";
if (!this:ok(caller, caller_perms()))
    return E_PERM;
endif
if (typeof(plist = args[1]) != LIST)
    plist = {plist};
endif
i = 1;
fseq = {};
mask = {@args, {1}}[2];
for msg in (this.messages)
    if ((!mask) || (i < mask[1]))
    elseif ((length(mask) < 2) || (i < mask[2]))
        if (msg[2][3] in plist)
            fseq = $seq_utils:add(fseq, i, i);
        endif
    else
        mask = mask[3..length(mask)];
    endif
    i = i + 1;
    $command_utils:suspend_if_needed(0);
endfor
return fseq || ("%f % no messages about @programmer'ing " + $string_utils:english_list(plist, 
"no one", " or "));
.


%to_msg_seq subject_msg_seq:
":%to_msg_seq/subject_msg_seq(string or list of strings[,mask])";
" => msg_seq of messages containing one of strings in the to line";
if (!this:ok(caller, caller_perms()))
    return E_PERM;
endif
if (typeof(nlist = args[1]) != LIST)
    nlist = {nlist};
endif
i = 1;
fseq = {};
mask = {@args, {1}}[2];
for msg in (this.messages)
    if ((!mask) || (i < mask[1]))
    elseif ((length(mask) < 2) || (i < mask[2]))
        if (msg[2][4] in nlist)
            fseq = $seq_utils:add(fseq, i, i);
        endif
    else
        mask = mask[3..length(mask)];
    endif
    i = i + 1;
    $command_utils:suspend_if_needed(0);
endfor
return fseq || ("%f % no messages about @programmer'ing " + $string_utils:english_list(nlist, 
"no one", " or "));
.


%from_msg_seq:
return this.name + " doesn't understand %%from:";
.



PROPERTY DATA:

MAIL MESSAGES:


Date: 1994 Jan 21, 07:29:49 p.m. PST
From: 
To:   N
Subj: Patroclus

Date: 1994 Jan 21, 07:29:59 p.m. PST
From: 
To:   O
Subj: Marlowe

Date: 1994 Jan 23, 05:23:48 p.m. PST
From: 
To:   Y
Subj: Vampy

Date: 1994 Jan 23, 05:24:02 p.m. PST
From: 
To:   _
Subj: legba

Date: 1994 Jan 23, 05:50:13 p.m. PST
From: 
To:   `
Subj: Dred

Date: 1994 Jan 24, 09:52:05 a.m. PST
From: _
To:   j
Subj: horse

Date: 1994 Jan 24, 12:19:20 p.m. PST
From: `
To:   d
Subj: Dred

Date: 1994 Jan 24, 03:02:36 p.m. PST
From: _
To:   t
Subj: Bakunin

Date: 1994 Jan 26, 02:00:27 p.m. PST
From: 
To:  
Subj: Calkins

Date: 1994 Jan 27, 12:49:14 a.m. PST
From: 
To:  
Subj: Tak

Date: 1994 Jan 27, 01:55:52 p.m. PST
From: 
To:  
Subj: Rat_Korga

Date: 1994 Jan 31, 09:59:59 p.m. PST
From: 
To:  
Subj: Chay

Date: 1994 Feb 7, 11:53:54 p.m. PST
From: 
To:   %
Subj: Moose

Date: 1994 Feb 8, 09:34:25 a.m. PST
From: j
To:   
Subj: Amber-Jessica

Date: 1994 Feb 10, 02:56:59 p.m. PST
From: j
To:   (
Subj: Klaatu

Date: 1994 Feb 11, 02:20:13 p.m. PST
From: j
To:   `
Subj: Fig

Date: 1994 Feb 13, 05:50:52 p.m. PST
From: j
To:   }
Subj: Gru

Date: 1994 Feb 13, 06:33:05 p.m. PST
From: t
To:  
Subj: Deleuze

Date: 1994 Feb 15, 03:00:31 p.m. PST
From: 
To:   g
Subj: Zon

Date: 1994 Feb 17, 01:07:48 p.m. PST
From: j
To:   -
Subj: cinnamon

Date: 1994 Feb 18, 06:24:17 p.m. PST
From: 
To:   
Subj: Tarquin

Date: 1994 Feb 19, 06:46:29 p.m. PST
From: 
To:   
Subj: Carrot

Date: 1994 Feb 20, 07:14:27 p.m. PST
From: j
To:   
Subj: Jafaar

Date: 1994 Feb 21, 01:42:47 p.m. PST
From: j
To:   
Subj: Catwoman

Date: 1994 Feb 22, 12:23:02 p.m. PST
From: j
To:   
Subj: Malquist

Date: 1994 Feb 22, 06:16:44 p.m. PST
From: 
To:   v
Subj: Vampy

Date: 1994 Feb 22, 09:49:47 p.m. PST
From: j
To:   
Subj: Tristan_Tzara

Date: 1994 Feb 23, 09:48:01 a.m. PST
From: `
To:   
Subj: Yib

Date: 1994 Feb 23, 01:42:25 p.m. PST
From: j
To:   
Subj: Salome

Date: 1994 Feb 23, 06:09:50 p.m. PST
From: 
To:   
Subj: Ox

Date: 1994 Feb 23, 08:45:02 p.m. PST
From: j
To:   
Subj: Obvious

Date: 1994 Feb 24, 08:48:12 a.m. PST
From: 
To:   
Subj: coyote

Date: 1994 Feb 24, 01:54:33 p.m. PST
From: j
To:   
Subj: Saffron

Date: 1994 Feb 25, 01:46:56 p.m. PST
From: 
To:   
Subj: Loree

Date: 1994 Feb 27, 06:57:40 p.m. PST
From: 
To:   %
Subj: Felix

Date: 1994 Mar 5, 10:30:29 p.m. PST
From: j
To:   
Subj: Sick

Date: 1994 Mar 5, 10:39:20 p.m. PST
From: j
To:   
Subj: Eclipse

Date: 1994 Mar 6, 03:27:26 p.m. PST
From: j
To:   I
Subj: Karl

Date: 1994 Mar 7, 08:31:40 p.m. PST
From: 
To:  
Subj: Hilshire

Date: 1994 Mar 16, 02:12:39 p.m. PST
From: j
To:   
Subj: Doug

Date: 1994 Mar 18, 04:07:47 p.m. PST
From: 
To:   
Subj: Faber

Date: 1994 Mar 24, 05:29:53 p.m. PST
From: j
To:   &
Subj: Jander

Date: 1994 Mar 24, 05:50:44 p.m. PST
From: j
To:   t
Subj: Lumper

Date: 1994 Mar 28, 07:23:21 p.m. PST
From: 
To:   
Subj: Gannef

Date: 1994 Mar 31, 08:26:13 p.m. PST
From: `
To:   +
Subj: Spatula

Date: 1994 Mar 31, 10:04:48 p.m. PST
From: j
To:   ,
Subj: Marcus

Date: 1994 Apr 17, 07:51:50 p.m. PST
From: j
To:   k
Subj: Rebis

Date: 1994 Apr 22, 09:57:54 p.m. PST
From: j
To:   
Subj: polyhymnia

Date: 1994 Apr 22, 09:58:03 p.m. PST
From: j
To:   
Subj: melusina

Date: 1994 Apr 29, 07:49:01 p.m. PST
From: j
To:   
Subj: Boudicea

Date: 1994 May 2, 09:38:09 a.m. PST
From: j
To:   
Subj: Ibn_Khaldun

Date: 1994 May 2, 06:24:32 p.m. PST
From: `
To:   w
Subj: erst

Date: 1994 May 12, 01:45:58 p.m. PST
From: j
To:   
Subj: Sander

Date: 1994 May 25, 02:42:06 p.m. PST
From: j
To:   
Subj: Michele

Date: 1994 Jun 8, 09:07:48 p.m. PST
From: j
To:   8
Subj: Random

Date: 1994 Jun 16, 08:29:07 p.m. PST
From: j
To:   
Subj: quixitachl

Date: 1994 Jun 19, 06:04:06 p.m. PST
From: `
To:   s
Subj: caitlin

Date: 1994 Jul 3, 08:23:24 a.m. PST
From: 
To:   
Subj: Drummer

Date: 1994 Jul 3, 08:23:40 a.m. PST
From: 
To:   
Subj: rocker

Date: 1994 Jul 17, 07:25:27 a.m. PST
From: 
To:   N
Subj: Johnathon

Date: 1994 Jul 17, 04:41:00 p.m. PST
From: j
To:   
Subj: Nausea

Date: 1994 Jul 26, 09:07:52 p.m. PST
From: j
To:   x
Subj: Palace

Date: 1994 Aug 16, 01:25:26 p.m. PST
From: j
To:   
Subj: NetBlazer

Date: 1994 Aug 25, 07:49:30 a.m. PST
From: j
To:   
Subj: Gilmore

Date: 1994 Aug 25, 09:49:44 p.m. PST
From: j
To:   
Subj: Trismegistos

Date: 1994 Aug 28, 12:50:55 p.m. PST
From: 
To:   
Subj: Gaijin

Date: 1994 Sep 9, 09:47:37 p.m. PST
From: `
To:   s
Subj: Soma

Date: 1994 Sep 10, 06:34:14 p.m. PST
From: 
To:   
Subj: Kalessin

Date: 1994 Sep 21, 06:39:08 p.m. PST
From: `
To:   
Subj: Rob

Date: 1994 Sep 24, 10:59:14 a.m. PST
From: j
To:   
Subj: Redlance

Date: 1994 Oct 3, 02:01:33 p.m. PST
From: 
To:   
Subj: think

Date: 1994 Oct 3, 02:59:48 p.m. PST
From: 
To:   R
Subj: Vaidehi-Amitabha

Date: 1994 Oct 4, 07:46:24 p.m. PST
From: 
To:   "
Subj: !coil

Date: 1994 Oct 24, 12:11:00 p.m. PST
From: `
To:   
Subj: Linnea

Date: 1994 Oct 25, 09:29:44 a.m. PST
From: `
To:   
Subj: Ben

Date: 1994 Oct 25, 10:38:24 a.m. PST
From: j
To:   
Subj: Ipsol

Date: 1994 Nov 9, 02:56:18 p.m. PST
From: j
To:   
Subj: Avon

Date: 1994 Nov 13, 06:27:45 p.m. PST
From: `
To:   
Subj: aghari

Date: 1994 Nov 18, 09:27:28 p.m. PST
From: `
To:   
Subj: Casanova

Date: 1994 Nov 21, 06:46:59 p.m. PST
From: j
To:   d
Subj: Karina

Date: 1994 Nov 22, 10:17:46 p.m. PST
From: 
To:   
Subj: Losira

Date: 1994 Nov 27, 07:03:36 p.m. PST
From: j
To:  
Subj: lynn

Date: 1994 Nov 28, 10:07:41 a.m. PST
From: j
To:  
Subj: Defarge

Date: 1994 Nov 30, 12:16:50 p.m. PST
From: j
To:  
Subj: Indiana-Jones

Date: 1994 Dec 2, 09:39:54 a.m. PST
From: j
To:   
Subj: Jo

Date: 1994 Dec 2, 06:00:55 p.m. PST
From: j
To:   a
Subj: Arc

Date: 1994 Dec 21, 08:03:51 p.m. PST
From: `
To:   
Subj: Sick

Date: 1994 Dec 30, 08:40:13 a.m. PST
From: `
To:   
Subj: Mosaica

Date: 1995 Jan 9, 09:14:54 a.m. PST
From: `
To:   
Subj: Steelgrave

Date: 1995 Jan 10, 10:54:38 a.m. PST
From: j
To:   H
Subj: Booga

Date: 1995 Jan 10, 08:37:18 p.m. PST
From: j
To:   D
Subj: dried

Date: 1995 Jan 16, 06:08:22 p.m. PST
From: j
To:   J
Subj: RandomNobody

Date: 1995 Jan 29, 01:29:27 a.m. PST
From: j
To:   8
Subj: Mack-the-Knife

Date: 1995 Jan 29, 12:03:46 p.m. PST
From: j
To:   
Subj: Cass

Date: 1995 Feb 10, 04:41:43 p.m. PST
From: j
To:   ]
Subj: tuc

Date: 1995 Feb 27, 12:44:19 p.m. PST
From: j
To:  
Subj: Stetson

Date: 1995 Mar 9, 03:20:33 p.m. PST
From: j
To:   l
Subj: Babeuf

Date: 1995 Mar 22, 10:25:31 a.m. PST
From: j
To:  
Subj: tend

Date: 1995 Apr 14, 02:52:44 p.m. PST
From: j
To:   
Subj: Rhys

Date: 1995 May 8, 01:59:41 p.m. PST
From: 
To:   
Subj: Prism

Date: 1995 May 16, 08:33:15 a.m. PST
From: j
To:   
Subj: Brit

Date: 1995 May 17, 07:37:17 p.m. PST
From: `
To:   !
Subj: SunRay

Date: 1995 May 26, 12:11:20 a.m. PST
From: j
To:  
Subj: Cleo

Date: 1995 May 27, 01:01:58 a.m. PST
From: j
To:  
Subj: Caesar

Date: 1995 May 27, 02:35:01 p.m. PST
From: j
To:  
Subj: Sakana

Date: 1995 Jun 18, 03:48:01 p.m. PST
From: j
To:   J
Subj: Amazon_Bitch

Date: 1995 Jun 18, 06:34:44 p.m. PST
From: j
To:   Q
Subj: Bedai

Date: 1995 Jun 19, 08:14:14 p.m. PST
From: j
To:   b
Subj: Ledtrad

Date: 1995 Jun 21, 03:48:18 p.m. PST
From: 
To:   R
Subj: Andovar

Date: 1995 Jun 28, 03:57:18 p.m. PST
From: j
To:  
Subj: Cyrus