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
|
+ Mystic Internet Server (MIS) can now be started in daemon mode by
|
||||||
executing MIS with the -d command line option for Unix platforms.
|
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;
|
'M' : Session.Msgs.SendMassEmail;
|
||||||
'N' : Session.Msgs.MessageNewScan (strUpper(Data));
|
'N' : Session.Msgs.MessageNewScan (strUpper(Data));
|
||||||
'P' : Session.Msgs.PostMessage (False, Data);
|
'P' : Session.Msgs.PostMessage (False, Data);
|
||||||
// 'Q' : Session.Msgs.Message_QuickScan(UpCase(Data[1]));
|
'Q' : Session.Msgs.MessageQuickScan(strUpper(Data));
|
||||||
'R' : Begin
|
'R' : Begin
|
||||||
If Data = '' Then Data := ' ';
|
If Data = '' Then Data := ' ';
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,7 @@ Type
|
||||||
Procedure PostMessage (Email: Boolean; Data: String);
|
Procedure PostMessage (Email: Boolean; Data: String);
|
||||||
Procedure CheckEMail;
|
Procedure CheckEMail;
|
||||||
Procedure MessageNewScan (Data: String);
|
Procedure MessageNewScan (Data: String);
|
||||||
|
Procedure MessageQuickScan (Data: String);
|
||||||
Procedure GlobalMessageSearch (Mode: Char);
|
Procedure GlobalMessageSearch (Mode: Char);
|
||||||
Procedure SetMessagePointers;
|
Procedure SetMessagePointers;
|
||||||
Procedure ViewSentEmail;
|
Procedure ViewSentEmail;
|
||||||
|
@ -3414,19 +3415,28 @@ Begin
|
||||||
DirClean (Session.TempPath, '');
|
DirClean (Session.TempPath, '');
|
||||||
End;
|
End;
|
||||||
|
|
||||||
(*
|
Procedure TMsgBase.MessageQuickScan (Data: String);
|
||||||
// not completed or documented. is this worth bothering with? pcboard style
|
// defaults to ALL mode
|
||||||
Procedure TMsgBase.Message_QuickScan (Mode: Char);
|
// /CURRENT = scan only current message base
|
||||||
{ C = Current G = Group A = All Areas/Groups }
|
// /GROUP = scan only current group bases
|
||||||
{ ADD: /NEW show only if new }
|
// /ALL = scan all bases in all groups
|
||||||
{ ADD: /YOU show only if new to you }
|
// options:
|
||||||
{ ADD for prompts: /NOSCAN }{ ADD: /NOFOOT }{ ADD: /NOHEAD }
|
// /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
|
Const
|
||||||
Global_CurBase : LongInt = 1;
|
Global_CurBase : LongInt = 1;
|
||||||
Global_TotalBases : LongInt = 1;
|
Global_TotalBases : LongInt = 1;
|
||||||
Global_TotalMsgs : LongInt = 0;
|
Global_TotalMsgs : LongInt = 0;
|
||||||
Global_NewMsgs : LongInt = 0;
|
Global_NewMsgs : LongInt = 0;
|
||||||
Global_YourMsgs : 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;
|
Procedure ScanBase;
|
||||||
Var
|
Var
|
||||||
|
@ -3436,15 +3446,16 @@ Const
|
||||||
TotalMsgs : LongInt;
|
TotalMsgs : LongInt;
|
||||||
MsgTo : String;
|
MsgTo : String;
|
||||||
Begin
|
Begin
|
||||||
Session.io.PromptInfo[1] := MBase.Name;
|
Session.io.PromptInfo[1] := MBase.Name;
|
||||||
Session.io.PromptInfo[2] := strI2S(Global_CurBase);
|
Session.io.PromptInfo[2] := strI2S(Global_CurBase);
|
||||||
Session.io.PromptInfo[3] := strI2S(Global_TotalBases);
|
Session.io.PromptInfo[3] := strI2S(Global_TotalBases);
|
||||||
|
|
||||||
NewMsgs := 0;
|
NewMsgs := 0;
|
||||||
YourMsgs := 0;
|
YourMsgs := 0;
|
||||||
TotalMsgs := 0;
|
TotalMsgs := 0;
|
||||||
|
|
||||||
Session.io.OutFull('Scanning |&1 [|&2 of |&3]...');
|
If ShowScanPrompt Then
|
||||||
|
Session.io.OutFull(Session.GetPrompt(487));
|
||||||
|
|
||||||
Case MBase.BaseType of
|
Case MBase.BaseType of
|
||||||
0 : MsgBase := New(PMsgBaseJAM, Init);
|
0 : MsgBase := New(PMsgBaseJAM, Init);
|
||||||
|
@ -3485,21 +3496,32 @@ Const
|
||||||
Session.io.PromptInfo[8] := strI2S(Global_NewMsgs);
|
Session.io.PromptInfo[8] := strI2S(Global_NewMsgs);
|
||||||
Session.io.PromptInfo[9] := strI2S(Global_YourMsgs);
|
Session.io.PromptInfo[9] := strI2S(Global_YourMsgs);
|
||||||
|
|
||||||
Session.io.OutBS(Screen.CursorX, True);
|
If ShowScanPrompt Then
|
||||||
Session.io.OutFullLn('|03Base: |14|$R40|&1 |03Total: |09|$L04|&4|03 New: |11|$L04|&5 |03Yours: |12|$L03|&6');
|
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);
|
Dispose (MsgBase, Done);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Var
|
Var
|
||||||
Old : MBaseRec;
|
Old : RecMessageBase;
|
||||||
Begin
|
Begin
|
||||||
If Not (Mode in ['A', 'C', 'G']) Then Mode := 'G';
|
FillChar(Session.io.PromptInfo, SizeOf(Session.io.PromptInfo), 0);
|
||||||
|
|
||||||
Old := MBase;
|
If Pos('/GROUP', Data) > 0 Then Mode := 'G';
|
||||||
Session.User.IgnoreGroup := Mode = 'A';
|
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
|
If Mode = 'C' Then
|
||||||
ScanBase
|
ScanBase
|
||||||
|
@ -3523,12 +3545,12 @@ Begin
|
||||||
Close (MBaseFile);
|
Close (MBaseFile);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Session.io.OutFullLn('|CRQuick Scan complete. |PA');
|
If ShowFootPrompt Then
|
||||||
|
Session.io.OutFullLn(Session.GetPrompt(489));
|
||||||
|
|
||||||
Session.User.IgnoreGroup := False;
|
Session.User.IgnoreGroup := False;
|
||||||
MBase := Old;
|
MBase := Old;
|
||||||
End;
|
End;
|
||||||
*)
|
|
||||||
|
|
||||||
Function TMsgBase.SaveMessage (mArea: RecMessageBase; mFrom, mTo, mSubj: String; mAddr: RecEchoMailAddr; mLines: Integer) : Boolean;
|
Function TMsgBase.SaveMessage (mArea: RecMessageBase; mFrom, mTo, mSubj: String; mAddr: RecEchoMailAddr; mLines: Integer) : Boolean;
|
||||||
Var
|
Var
|
||||||
|
|
|
@ -942,3 +942,15 @@
|
||||||
484 |CL|09|17 ° |15Chat mode end.|$X79 |16|DE|DE
|
484 |CL|09|17 ° |15Chat mode end.|$X79 |16|DE|DE
|
||||||
; User2User accept chat page request? &1=user &2=Node
|
; User2User accept chat page request? &1=user &2=Node
|
||||||
485 |CL|15|&1 is requesting private user chat. Accept? |11
|
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
|
mysMaxVoteQuestion = 20; // Max number of voting questions
|
||||||
mysMaxMenuNameLen = 20; // menu name size
|
mysMaxMenuNameLen = 20; // menu name size
|
||||||
mysMaxMenuCmds = 75; // Maximum menu commands per menu
|
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_SemFileEcho = 'echomail.now';
|
||||||
fn_SemFileNews = 'newsmail.now';
|
fn_SemFileNews = 'newsmail.now';
|
||||||
|
|
Loading…
Reference in New Issue