Added MQ (Message QuickScan) menu command
This commit is contained in:
parent
5abdeb283d
commit
cb15bac018
|
@ -4144,3 +4144,47 @@
|
|||
|
||||
+ Mystic Internet Server (MIS) can now be started in daemon mode by
|
||||
executing MIS with the -d command line option for Unix platforms.
|
||||
|
||||
+ Added new Message Base "QuickScan" menu command (MQ). This command
|
||||
does a scan of message bases and shows you the number of new messages,
|
||||
new messages to you, total messages, etc. This is modeled after PCBoard
|
||||
scans and only scans bases in the bases flagged for scanning by the
|
||||
user. For example:
|
||||
|
||||
Starting QuickScan
|
||||
|
||||
Base: General Messages Total: 1,000 New: 24 Yours: 3
|
||||
Base: Test Message Base Total: 1,000 New: 24 Yours: 3
|
||||
|
||||
Quick Scan Complete
|
||||
|
||||
By default the QuickScan will do a global scan of all message bases in
|
||||
all groups. However there are many optional data options:
|
||||
|
||||
/CURRENT = scan only current message base
|
||||
/GROUP = scan only current group's bases
|
||||
/NOSCAN = do not show "scanning" prompt
|
||||
/NOFOOT = do not show "end of scan" prompt
|
||||
/NOHEAD = do not show "starting quickscan" prompt
|
||||
|
||||
This can be combined with the MN menu command to prompt the user what to
|
||||
do next. You could even get creative with the & MCI codes and MPL to
|
||||
make logical decisions for the user based on the results of the scan!
|
||||
|
||||
Four new prompts go along with this:
|
||||
|
||||
; MsgBase quickscan header prompt
|
||||
486 |CR|12Starting Quick Scan|CR
|
||||
|
||||
; MsgBase quickscan Scanning prompt
|
||||
; &1=basename &2=current base# &3=total bases#
|
||||
487 Scanning |&1 [|&2 of |&3]...
|
||||
|
||||
; MsgBase quickscan base list prompt
|
||||
; &4=msgs in base &5=new messages &6=your messages &7=global total msg
|
||||
; &8=global new msgs &9=global your msgs
|
||||
488 |03Base: |14|$R40|&1 |03Total: |09|$L04|&4|03 New: |11|$L04|&5 |03Yours: |12|$L03|&6
|
||||
|
||||
; MsgBase quickscan footer prompt
|
||||
; &7=global total msg &8=global new msgs &9=global your msgs
|
||||
489 |CRQuick Scan complete. |CR|CR|PA
|
||||
|
|
|
@ -244,7 +244,7 @@ Begin
|
|||
'M' : Session.Msgs.SendMassEmail;
|
||||
'N' : Session.Msgs.MessageNewScan (strUpper(Data));
|
||||
'P' : Session.Msgs.PostMessage (False, Data);
|
||||
// 'Q' : Session.Msgs.Message_QuickScan(UpCase(Data[1]));
|
||||
'Q' : Session.Msgs.MessageQuickScan(strUpper(Data));
|
||||
'R' : Begin
|
||||
If Data = '' Then Data := ' ';
|
||||
|
||||
|
|
|
@ -51,6 +51,7 @@ Type
|
|||
Procedure PostMessage (Email: Boolean; Data: String);
|
||||
Procedure CheckEMail;
|
||||
Procedure MessageNewScan (Data: String);
|
||||
Procedure MessageQuickScan (Data: String);
|
||||
Procedure GlobalMessageSearch (Mode: Char);
|
||||
Procedure SetMessagePointers;
|
||||
Procedure ViewSentEmail;
|
||||
|
@ -3414,19 +3415,28 @@ Begin
|
|||
DirClean (Session.TempPath, '');
|
||||
End;
|
||||
|
||||
(*
|
||||
// not completed or documented. is this worth bothering with? pcboard style
|
||||
Procedure TMsgBase.Message_QuickScan (Mode: Char);
|
||||
{ C = Current G = Group A = All Areas/Groups }
|
||||
{ ADD: /NEW show only if new }
|
||||
{ ADD: /YOU show only if new to you }
|
||||
{ ADD for prompts: /NOSCAN }{ ADD: /NOFOOT }{ ADD: /NOHEAD }
|
||||
Procedure TMsgBase.MessageQuickScan (Data: String);
|
||||
// defaults to ALL mode
|
||||
// /CURRENT = scan only current message base
|
||||
// /GROUP = scan only current group bases
|
||||
// /ALL = scan all bases in all groups
|
||||
// options:
|
||||
// /NOSCAN = do not show "scanning" prompt
|
||||
// /NOFOOT = do not show "end of scan" prompt
|
||||
// /NOHEAD = do not show "starting quickscan" prompt
|
||||
// Only scans bases that they have selected in Newscan, of course
|
||||
Const
|
||||
Global_CurBase : LongInt = 1;
|
||||
Global_TotalBases : LongInt = 1;
|
||||
Global_TotalMsgs : LongInt = 0;
|
||||
Global_NewMsgs : LongInt = 0;
|
||||
Global_YourMsgs : LongInt = 0;
|
||||
ShowIfNew : Boolean = False;
|
||||
ShowIfYou : Boolean = False;
|
||||
ShowScanPrompt : Boolean = True;
|
||||
ShowHeadPrompt : Boolean = True;
|
||||
ShowFootPrompt : Boolean = True;
|
||||
Mode : Char = 'A';
|
||||
|
||||
Procedure ScanBase;
|
||||
Var
|
||||
|
@ -3436,15 +3446,16 @@ Const
|
|||
TotalMsgs : LongInt;
|
||||
MsgTo : String;
|
||||
Begin
|
||||
Session.io.PromptInfo[1] := MBase.Name;
|
||||
Session.io.PromptInfo[2] := strI2S(Global_CurBase);
|
||||
Session.io.PromptInfo[3] := strI2S(Global_TotalBases);
|
||||
Session.io.PromptInfo[1] := MBase.Name;
|
||||
Session.io.PromptInfo[2] := strI2S(Global_CurBase);
|
||||
Session.io.PromptInfo[3] := strI2S(Global_TotalBases);
|
||||
|
||||
NewMsgs := 0;
|
||||
YourMsgs := 0;
|
||||
TotalMsgs := 0;
|
||||
|
||||
Session.io.OutFull('Scanning |&1 [|&2 of |&3]...');
|
||||
If ShowScanPrompt Then
|
||||
Session.io.OutFull(Session.GetPrompt(487));
|
||||
|
||||
Case MBase.BaseType of
|
||||
0 : MsgBase := New(PMsgBaseJAM, Init);
|
||||
|
@ -3485,21 +3496,32 @@ Const
|
|||
Session.io.PromptInfo[8] := strI2S(Global_NewMsgs);
|
||||
Session.io.PromptInfo[9] := strI2S(Global_YourMsgs);
|
||||
|
||||
Session.io.OutBS(Screen.CursorX, True);
|
||||
Session.io.OutFullLn('|03Base: |14|$R40|&1 |03Total: |09|$L04|&4|03 New: |11|$L04|&5 |03Yours: |12|$L03|&6');
|
||||
If ShowScanPrompt Then
|
||||
Session.io.OutBS(Screen.CursorX, True);
|
||||
|
||||
If (ShowIfNew And (NewMsgs > 0)) or (ShowIfYou And (YourMsgs > 0)) or (Not ShowIfNew And Not ShowIfYou) Then
|
||||
Session.io.OutFullLn(Session.GetPrompt(488));
|
||||
|
||||
Dispose (MsgBase, Done);
|
||||
End;
|
||||
|
||||
Var
|
||||
Old : MBaseRec;
|
||||
Old : RecMessageBase;
|
||||
Begin
|
||||
If Not (Mode in ['A', 'C', 'G']) Then Mode := 'G';
|
||||
FillChar(Session.io.PromptInfo, SizeOf(Session.io.PromptInfo), 0);
|
||||
|
||||
Old := MBase;
|
||||
Session.User.IgnoreGroup := Mode = 'A';
|
||||
If Pos('/GROUP', Data) > 0 Then Mode := 'G';
|
||||
If Pos('/CURRENT', Data) > 0 Then Mode := 'C';
|
||||
|
||||
Session.io.OutFullLn ('|CRStarting Quick Scan|CR');
|
||||
ShowScanPrompt := Pos('/NOSCAN', Data) = 0;
|
||||
ShowHeadPrompt := Pos('/NOHEAD', Data) = 0;
|
||||
ShowFootPrompt := Pos('/NOFOOT', Data) = 0;
|
||||
|
||||
Old := MBase;
|
||||
Session.User.IgnoreGroup := Mode = 'A';
|
||||
|
||||
If ShowHeadPrompt Then
|
||||
Session.io.OutFullLn (Session.GetPrompt(486));
|
||||
|
||||
If Mode = 'C' Then
|
||||
ScanBase
|
||||
|
@ -3523,12 +3545,12 @@ Begin
|
|||
Close (MBaseFile);
|
||||
End;
|
||||
|
||||
Session.io.OutFullLn('|CRQuick Scan complete. |PA');
|
||||
If ShowFootPrompt Then
|
||||
Session.io.OutFullLn(Session.GetPrompt(489));
|
||||
|
||||
Session.User.IgnoreGroup := False;
|
||||
MBase := Old;
|
||||
MBase := Old;
|
||||
End;
|
||||
*)
|
||||
|
||||
Function TMsgBase.SaveMessage (mArea: RecMessageBase; mFrom, mTo, mSubj: String; mAddr: RecEchoMailAddr; mLines: Integer) : Boolean;
|
||||
Var
|
||||
|
|
|
@ -942,3 +942,15 @@
|
|||
484 |CL|09|17 ° |15Chat mode end.|$X79 |16|DE|DE
|
||||
; User2User accept chat page request? &1=user &2=Node
|
||||
485 |CL|15|&1 is requesting private user chat. Accept? |11
|
||||
; MsgBase quickscan header prompt
|
||||
486 |CR|12Starting Quick Scan|CR
|
||||
; MsgBase quickscan Scanning prompt
|
||||
; &1=basename &2=current base# &3=total bases#
|
||||
487 Scanning |&1 [|&2 of |&3]...
|
||||
; MsgBase quickscan base list prompt
|
||||
; &4=msgs in base &5=new messages &6=your messages &7=global total msg
|
||||
; &8=global new msgs &9=global your msgs
|
||||
488 |03Base: |14|$R40|&1 |03Total: |09|$L04|&4|03 New: |11|$L04|&5 |03Yours: |12|$L03|&6
|
||||
; MsgBase quickscan footer prompt
|
||||
; &7=global total msg &8=global new msgs &9=global your msgs
|
||||
489 |CRQuick Scan complete. |CR|CR|PA
|
||||
|
|
|
@ -47,7 +47,7 @@ Const
|
|||
mysMaxVoteQuestion = 20; // Max number of voting questions
|
||||
mysMaxMenuNameLen = 20; // menu name size
|
||||
mysMaxMenuCmds = 75; // Maximum menu commands per menu
|
||||
mysMaxThemeText = 485; // Total prompts in theme file
|
||||
mysMaxThemeText = 489; // Total prompts in theme file
|
||||
|
||||
fn_SemFileEcho = 'echomail.now';
|
||||
fn_SemFileNews = 'newsmail.now';
|
||||
|
|
Loading…
Reference in New Issue