A30
This commit is contained in:
parent
8a8516ba2b
commit
8462572104
|
@ -1,4 +1,4 @@
|
||||||
.---------------------------------------------------------------------------.
|
.---------------------------------------------------------------------------
|
||||||
| Mystic BBS History Documentation Versions 1.05 through 1.10 |
|
| Mystic BBS History Documentation Versions 1.05 through 1.10 |
|
||||||
`---------------------------------------------------------------------------'
|
`---------------------------------------------------------------------------'
|
||||||
|
|
||||||
|
|
|
@ -26,11 +26,12 @@ Uses
|
||||||
bbs_cfg_SecLevel,
|
bbs_cfg_SecLevel,
|
||||||
bbs_cfg_Theme,
|
bbs_cfg_Theme,
|
||||||
bbs_cfg_UserEdit,
|
bbs_cfg_UserEdit,
|
||||||
|
bbs_cfg_EchoMail,
|
||||||
|
bbs_cfg_MenuEdit,
|
||||||
|
|
||||||
// old shit to rewrite
|
// old shit to rewrite
|
||||||
bbs_cfg_events,
|
bbs_cfg_events,
|
||||||
bbs_cfg_vote,
|
bbs_cfg_vote;
|
||||||
bbs_cfg_menuedit;
|
|
||||||
|
|
||||||
Procedure Configuration_ExecuteEditor (Mode: Char);
|
Procedure Configuration_ExecuteEditor (Mode: Char);
|
||||||
Var
|
Var
|
||||||
|
@ -40,7 +41,7 @@ Begin
|
||||||
|
|
||||||
Case Mode of
|
Case Mode of
|
||||||
'A' : Configuration_ArchiveEditor;
|
'A' : Configuration_ArchiveEditor;
|
||||||
'B' : Configuration_MessageBaseEditor;
|
'B' : Configuration_MessageBaseEditor(True);
|
||||||
'F' : Configuration_FileBaseEditor;
|
'F' : Configuration_FileBaseEditor;
|
||||||
'G' : Configuration_GroupEditor(True);
|
'G' : Configuration_GroupEditor(True);
|
||||||
'L' : Configuration_SecurityEditor(True);
|
'L' : Configuration_SecurityEditor(True);
|
||||||
|
@ -177,7 +178,7 @@ Begin
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
1 : Begin
|
1 : Begin
|
||||||
BoxOpen (4, 4, 33, 16);
|
BoxOpen (4, 4, 33, 17);
|
||||||
CoolBoxOpen (3, 'Configuration');
|
CoolBoxOpen (3, 'Configuration');
|
||||||
|
|
||||||
Form.AddNone ('S', ' S System Paths', 5, 5, 5, 5, 28, '');
|
Form.AddNone ('S', ' S System Paths', 5, 5, 5, 5, 28, '');
|
||||||
|
@ -188,9 +189,10 @@ Begin
|
||||||
Form.AddNone ('3', ' 3 New User Optional Fields', 5, 10, 5, 10, 28, '');
|
Form.AddNone ('3', ' 3 New User Optional Fields', 5, 10, 5, 10, 28, '');
|
||||||
Form.AddNone ('F', ' F File Base Settings', 5, 11, 5, 11, 28, '');
|
Form.AddNone ('F', ' F File Base Settings', 5, 11, 5, 11, 28, '');
|
||||||
Form.AddNone ('M', ' M Message Base Settings', 5, 12, 5, 12, 28, '');
|
Form.AddNone ('M', ' M Message Base Settings', 5, 12, 5, 12, 28, '');
|
||||||
Form.AddNone ('E', ' E Echomail Networks', 5, 13, 5, 13, 28, '');
|
Form.AddNone ('E', ' E EchoMail Addresses', 5, 13, 5, 13, 28, '');
|
||||||
Form.AddNone ('O', ' O Offline Mail Settings', 5, 14, 5, 14, 28, '');
|
Form.AddNone ('N', ' N EchoMail Nodes', 5, 14, 5, 14, 28, '');
|
||||||
Form.AddNone ('C', ' C Console Settings', 5, 15, 5, 15, 28, '');
|
Form.AddNone ('O', ' O Offline Mail Settings', 5, 15, 5, 15, 28, '');
|
||||||
|
Form.AddNone ('C', ' C Console Settings', 5, 16, 5, 16, 28, '');
|
||||||
|
|
||||||
Res := Form.Execute;
|
Res := Form.Execute;
|
||||||
MenuPos[1] := Form.ItemPos;
|
MenuPos[1] := Form.ItemPos;
|
||||||
|
@ -208,6 +210,7 @@ Begin
|
||||||
'G' : Configuration_GeneralSettings;
|
'G' : Configuration_GeneralSettings;
|
||||||
'L' : Configuration_LoginMatrix;
|
'L' : Configuration_LoginMatrix;
|
||||||
'E' : Configuration_EchoMailAddress(True);
|
'E' : Configuration_EchoMailAddress(True);
|
||||||
|
'N' : Configuration_EchoMailNodes(True);
|
||||||
'3' : Configuration_OptionalFields;
|
'3' : Configuration_OptionalFields;
|
||||||
'F' : Configuration_FileSettings;
|
'F' : Configuration_FileSettings;
|
||||||
'M' : Configuration_MessageSettings;
|
'M' : Configuration_MessageSettings;
|
||||||
|
@ -285,7 +288,7 @@ Begin
|
||||||
End Else Begin
|
End Else Begin
|
||||||
Case Res of
|
Case Res of
|
||||||
'A' : Configuration_ArchiveEditor;
|
'A' : Configuration_ArchiveEditor;
|
||||||
'B' : Configuration_MessageBaseEditor;
|
'B' : Configuration_MessageBaseEditor(True);
|
||||||
'F' : Configuration_FileBaseEditor;
|
'F' : Configuration_FileBaseEditor;
|
||||||
'G' : Configuration_GroupEditor(True);
|
'G' : Configuration_GroupEditor(True);
|
||||||
'M' : Configuration_MenuEditor;
|
'M' : Configuration_MenuEditor;
|
||||||
|
|
|
@ -4,7 +4,7 @@ Unit bbs_cfg_MsgBase;
|
||||||
|
|
||||||
Interface
|
Interface
|
||||||
|
|
||||||
Procedure Configuration_MessageBaseEditor;
|
Function Configuration_MessageBaseEditor (Edit: Boolean) : LongInt;
|
||||||
|
|
||||||
Implementation
|
Implementation
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ Uses
|
||||||
bbs_Ansi_MenuBox,
|
bbs_Ansi_MenuBox,
|
||||||
bbs_Ansi_MenuForm,
|
bbs_Ansi_MenuForm,
|
||||||
bbs_Cfg_Common,
|
bbs_Cfg_Common,
|
||||||
bbs_Cfg_SysCfg,
|
bbs_Cfg_EchoMail,
|
||||||
bbs_Common;
|
bbs_Common;
|
||||||
|
|
||||||
Type
|
Type
|
||||||
|
@ -97,33 +97,36 @@ Var
|
||||||
Box : TAnsiMenuBox;
|
Box : TAnsiMenuBox;
|
||||||
Form : TAnsiMenuForm;
|
Form : TAnsiMenuForm;
|
||||||
Topic : String;
|
Topic : String;
|
||||||
|
Links : LongInt;
|
||||||
Begin
|
Begin
|
||||||
Topic := '|03(|09Message Base Edit|03) |01-|09> |15';
|
Topic := '|03(|09Message Base Edit|03) |01-|09> |15';
|
||||||
Box := TAnsiMenuBox.Create;
|
Box := TAnsiMenuBox.Create;
|
||||||
Form := TAnsiMenuForm.Create;
|
Form := TAnsiMenuForm.Create;
|
||||||
|
|
||||||
|
Box.Shadow := False;
|
||||||
Box.Header := ' Index ' + strI2S(MBase.Index) + ' ';
|
Box.Header := ' Index ' + strI2S(MBase.Index) + ' ';
|
||||||
|
|
||||||
Box.Open (3, 5, 77, 21);
|
Box.Open (3, 5, 77, 22);
|
||||||
|
|
||||||
VerticalLine (17, 6, 20);
|
VerticalLine (17, 6, 21);
|
||||||
VerticalLine (66, 6, 20);
|
VerticalLine (66, 6, 21);
|
||||||
|
|
||||||
Form.AddStr ('N', ' Name' , 11, 6, 19, 6, 6, 30, 40, @MBase.Name, Topic + 'Message base description');
|
Form.AddStr ('N', ' Name' , 11, 6, 19, 6, 6, 30, 40, @MBase.Name, Topic + 'Message base description');
|
||||||
Form.AddStr ('W', ' Newsgroup' , 6, 7, 19, 7, 11, 30, 60, @MBase.NewsName, Topic + 'Newsgroup name');
|
Form.AddStr ('W', ' Newsgroup' , 6, 7, 19, 7, 11, 30, 60, @MBase.NewsName, Topic + 'Newsgroup name');
|
||||||
Form.AddStr ('Q', ' QWK Name' , 7, 8, 19, 8, 10, 13, 13, @MBase.QwkName, Topic + 'Qwk Short name');
|
Form.AddStr ('Q', ' QWK Name' , 7, 8, 19, 8, 10, 13, 13, @MBase.QwkName, Topic + 'Qwk Short name');
|
||||||
Form.AddStr ('F', ' File Name' , 6, 9, 19, 9, 11, 30, 40, @MBase.FileName, Topic + 'Message base storage file name');
|
Form.AddStr ('8', ' Echo Tag' , 7, 9, 19, 9, 10, 30, 40, @MBase.EchoTag, Topic + 'FTN EchoTag');
|
||||||
Form.AddPath ('P', ' Path' , 11, 10, 19, 10, 6, 30, 80, @MBase.Path, Topic + 'Message base storage path');
|
Form.AddStr ('F', ' File Name' , 6, 10, 19, 10, 11, 30, 40, @MBase.FileName, Topic + 'Message base storage file name');
|
||||||
Form.AddStr ('L', ' List ACS' , 7, 11, 19, 11, 10, 30, 30, @MBase.ListACS, Topic + 'Access required to see in base list');
|
Form.AddPath ('P', ' Path' , 11, 11, 19, 11, 6, 30, 80, @MBase.Path, Topic + 'Message base storage path');
|
||||||
Form.AddStr ('R', ' Read ACS' , 7, 12, 19, 12, 10, 30, 30, @MBase.ReadACS, Topic + 'Access required to read messages');
|
Form.AddStr ('L', ' List ACS' , 7, 12, 19, 12, 10, 30, 30, @MBase.ListACS, Topic + 'Access required to see in base list');
|
||||||
Form.AddStr ('C', ' Post ACS' , 7, 13, 19, 13, 10, 30, 30, @MBase.PostACS, Topic + 'Access required to post messages');
|
Form.AddStr ('R', ' Read ACS' , 7, 13, 19, 13, 10, 30, 30, @MBase.ReadACS, Topic + 'Access required to read messages');
|
||||||
Form.AddStr ('Y', ' Sysop ACS' , 6, 14, 19, 14, 11, 30, 30, @MBase.SysopACS, Topic + 'Access required for Sysop access');
|
Form.AddStr ('C', ' Post ACS' , 7, 14, 19, 14, 10, 30, 30, @MBase.PostACS, Topic + 'Access required to post messages');
|
||||||
Form.AddNone ('D', ' Net Address' , 4, 15, 19, 15, 13, Topic + 'NetMail Address');
|
Form.AddStr ('Y', ' Sysop ACS' , 6, 15, 19, 15, 11, 30, 30, @MBase.SysopACS, Topic + 'Access required for Sysop access');
|
||||||
Form.AddStr ('I', ' Origin' , 9, 16, 19, 16, 8, 30, 50, @MBase.Origin, Topic + 'Message base origin line');
|
Form.AddNone ('D', ' Net Address' , 4, 16, 19, 16, 13, Topic + 'NetMail Address');
|
||||||
Form.AddStr ('S', ' Sponsor' , 8, 17, 19, 17, 9, 30, 30, @MBase.Sponsor, Topic + 'User name of base''s sponser');
|
Form.AddNone ('7', ' Export To' , 6, 17, 19, 17, 11, Topic + 'Export messages to these nodes');
|
||||||
Form.AddStr ('H', ' Header' , 9, 18, 19, 18, 8, 20, 20, @MBase.Header, Topic + 'Display file name of msg header');
|
Form.AddStr ('I', ' Origin' , 9, 18, 19, 18, 8, 30, 50, @MBase.Origin, Topic + 'Message base origin line');
|
||||||
Form.AddStr ('T', ' R Template' , 5, 19, 19, 19, 12, 20, 20, @MBase.RTemplate, Topic + 'Template for full screen reader');
|
Form.AddStr ('S', ' Sponsor' , 8, 19, 19, 19, 9, 30, 30, @MBase.Sponsor, Topic + 'User name of base''s sponser');
|
||||||
Form.AddStr ('M', ' L Template' , 5, 20, 19, 20, 12, 20, 20, @MBase.ITemplate, Topic + 'Template for lightbar message list');
|
Form.AddStr ('T', ' R Template' , 5, 20, 19, 20, 12, 20, 20, @MBase.RTemplate, Topic + 'Template for full screen reader');
|
||||||
|
Form.AddStr ('M', ' L Template' , 5, 21, 19, 21, 12, 20, 20, @MBase.ITemplate, Topic + 'Template for lightbar message list');
|
||||||
|
|
||||||
Form.AddAttr ('Q', ' Quote Color' , 53, 6, 68, 6, 13, @MBase.ColQuote, Topic + 'Color for quoted text');
|
Form.AddAttr ('Q', ' Quote Color' , 53, 6, 68, 6, 13, @MBase.ColQuote, Topic + 'Color for quoted text');
|
||||||
Form.AddAttr ('X', ' Text Color' , 54, 7, 68, 7, 12, @MBase.ColText, Topic + 'Color for message text');
|
Form.AddAttr ('X', ' Text Color' , 54, 7, 68, 7, 12, @MBase.ColText, Topic + 'Color for message text');
|
||||||
|
@ -140,12 +143,24 @@ Begin
|
||||||
Form.AddBits ('V', ' Private' , 57, 18, 68, 18, 9, MBPrivate, @MBase.Flags, Topic + 'Is this a private base?');
|
Form.AddBits ('V', ' Private' , 57, 18, 68, 18, 9, MBPrivate, @MBase.Flags, Topic + 'Is this a private base?');
|
||||||
Form.AddTog ('A', ' Base Type' , 55, 19, 68, 19, 11, 9, 0, 3, 'Local EchoMail Newsgroup Netmail', @MBase.NetType, Topic + 'Message base type');
|
Form.AddTog ('A', ' Base Type' , 55, 19, 68, 19, 11, 9, 0, 3, 'Local EchoMail Newsgroup Netmail', @MBase.NetType, Topic + 'Message base type');
|
||||||
Form.AddTog ('B', ' Base Format' , 53, 20, 68, 20, 13, 6, 0, 1, 'JAM Squish', @MBase.BaseType, Topic + 'Message base storage format');
|
Form.AddTog ('B', ' Base Format' , 53, 20, 68, 20, 13, 6, 0, 1, 'JAM Squish', @MBase.BaseType, Topic + 'Message base storage format');
|
||||||
|
Form.AddStr ('H', ' Header' , 58, 21, 68, 21, 8, 9, 20, @MBase.Header, Topic + 'Display file name of msg header');
|
||||||
|
|
||||||
|
|
||||||
Repeat
|
Repeat
|
||||||
WriteXY (19, 15, 113, strPadR(strAddr2Str(Config.NetAddress[MBase.NetAddr]), 19, ' '));
|
WriteXY (19, 16, 113, strPadR(strAddr2Str(Config.NetAddress[MBase.NetAddr]), 19, ' '));
|
||||||
|
|
||||||
|
Links := FileByteSize(MBase.Path + MBase.FileName + '.lnk');
|
||||||
|
|
||||||
|
If Links <> -1 Then
|
||||||
|
Links := Links DIV SizeOf(RecEchoMailExport)
|
||||||
|
Else
|
||||||
|
Links := 0;
|
||||||
|
|
||||||
|
WriteXY (19, 17, 113, strI2S(Links) + ' node(s)');
|
||||||
|
|
||||||
Case Form.Execute of
|
Case Form.Execute of
|
||||||
'D' : MBase.NetAddr := Configuration_EchoMailAddress(False);
|
'D' : MBase.NetAddr := Configuration_EchoMailAddress(False);
|
||||||
|
'7' : Configuration_NodeExport (MBase);
|
||||||
#27 : Break;
|
#27 : Break;
|
||||||
End;
|
End;
|
||||||
Until False;
|
Until False;
|
||||||
|
@ -158,7 +173,7 @@ Begin
|
||||||
Box.Free;
|
Box.Free;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Procedure Configuration_MessageBaseEditor;
|
Function Configuration_MessageBaseEditor (Edit: Boolean) : LongInt;
|
||||||
Var
|
Var
|
||||||
Box : TAnsiMenuBox;
|
Box : TAnsiMenuBox;
|
||||||
List : TAnsiMenuList;
|
List : TAnsiMenuList;
|
||||||
|
@ -366,6 +381,8 @@ Var
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Begin
|
Begin
|
||||||
|
Result := -1;
|
||||||
|
|
||||||
Assign (MBaseFile, Config.DataPath + 'mbases.dat');
|
Assign (MBaseFile, Config.DataPath + 'mbases.dat');
|
||||||
|
|
||||||
If Not ioReset(MBaseFile, SizeOf(MBase), fmRWDN) Then
|
If Not ioReset(MBaseFile, SizeOf(MBase), fmRWDN) Then
|
||||||
|
@ -395,7 +412,8 @@ Begin
|
||||||
List.Close;
|
List.Close;
|
||||||
|
|
||||||
Case List.ExitCode of
|
Case List.ExitCode of
|
||||||
'/' : Case GetCommandOption(8, 'I-Insert|D-Delete|C-Copy|P-Paste|G-Global|S-Sort|') of
|
'/' : If Edit Then
|
||||||
|
Case GetCommandOption(8, 'I-Insert|D-Delete|C-Copy|P-Paste|G-Global|S-Sort|') of
|
||||||
'I' : If List.Picked > 1 Then Begin
|
'I' : If List.Picked > 1 Then Begin
|
||||||
AssignRecord(False);
|
AssignRecord(False);
|
||||||
MakeList;
|
MakeList;
|
||||||
|
@ -416,6 +434,7 @@ Begin
|
||||||
FileErase (MBase.Path + MBase.FileName + '.sqi');
|
FileErase (MBase.Path + MBase.FileName + '.sqi');
|
||||||
FileErase (MBase.Path + MBase.FileName + '.sql');
|
FileErase (MBase.Path + MBase.FileName + '.sql');
|
||||||
FileErase (MBase.Path + MBase.FileName + '.scn');
|
FileErase (MBase.Path + MBase.FileName + '.scn');
|
||||||
|
FileErase (MBase.Path + MBase.FileName + '.lnk');
|
||||||
End;
|
End;
|
||||||
|
|
||||||
MakeList;
|
MakeList;
|
||||||
|
@ -453,10 +472,16 @@ Begin
|
||||||
Seek (MBaseFile, List.Picked - 1);
|
Seek (MBaseFile, List.Picked - 1);
|
||||||
Read (MBaseFile, MBase);
|
Read (MBaseFile, MBase);
|
||||||
|
|
||||||
EditMessageBase (MBase);
|
If Edit Then Begin
|
||||||
|
EditMessageBase (MBase);
|
||||||
|
|
||||||
Seek (MBaseFile, List.Picked - 1);
|
Seek (MBaseFile, List.Picked - 1);
|
||||||
Write (MBaseFile, MBase);
|
Write (MBaseFile, MBase);
|
||||||
|
End Else Begin
|
||||||
|
Result := MBase.Index;
|
||||||
|
|
||||||
|
Break;
|
||||||
|
End;
|
||||||
End;
|
End;
|
||||||
#27 : Break;
|
#27 : Break;
|
||||||
End;
|
End;
|
||||||
|
|
|
@ -8,7 +8,6 @@ Procedure Configuration_SysPaths;
|
||||||
Procedure Configuration_GeneralSettings;
|
Procedure Configuration_GeneralSettings;
|
||||||
Procedure Configuration_LoginMatrix;
|
Procedure Configuration_LoginMatrix;
|
||||||
Procedure Configuration_OptionalFields;
|
Procedure Configuration_OptionalFields;
|
||||||
Function Configuration_EchomailAddress (Edit: Boolean) : Byte;
|
|
||||||
Procedure Configuration_FileSettings;
|
Procedure Configuration_FileSettings;
|
||||||
Procedure Configuration_QWKSettings;
|
Procedure Configuration_QWKSettings;
|
||||||
Procedure Configuration_Internet;
|
Procedure Configuration_Internet;
|
||||||
|
@ -43,9 +42,9 @@ Begin
|
||||||
|
|
||||||
Box.Header := ' System Directories ';
|
Box.Header := ' System Directories ';
|
||||||
|
|
||||||
Box.Open (5, 6, 75, 18);
|
Box.Open (5, 6, 75, 20);
|
||||||
|
|
||||||
VerticalLine (26, 8, 16);
|
VerticalLine (26, 8, 18);
|
||||||
|
|
||||||
Form.AddPath ('S', ' System Path', 13, 8, 28, 8, 13, 45, mysMaxPathSize, @Config.SystemPath, Topic + 'Root Mystic BBS directory');
|
Form.AddPath ('S', ' System Path', 13, 8, 28, 8, 13, 45, mysMaxPathSize, @Config.SystemPath, Topic + 'Root Mystic BBS directory');
|
||||||
Form.AddPath ('D', ' Data File Path', 10, 9, 28, 9, 16, 45, mysMaxPathSize, @Config.DataPath, Topic + 'Data file directory');
|
Form.AddPath ('D', ' Data File Path', 10, 9, 28, 9, 16, 45, mysMaxPathSize, @Config.DataPath, Topic + 'Data file directory');
|
||||||
|
@ -55,8 +54,9 @@ Begin
|
||||||
Form.AddPath ('E', ' Semaphore Path', 10, 13, 28, 13, 16, 45, mysMaxPathSize, @Config.SemaPath, Topic + 'Semaphore file directory');
|
Form.AddPath ('E', ' Semaphore Path', 10, 13, 28, 13, 16, 45, mysMaxPathSize, @Config.SemaPath, Topic + 'Semaphore file directory');
|
||||||
Form.AddPath ('U', ' Menu File Path', 10, 14, 28, 14, 16, 45, mysMaxPathSize, @Config.MenuPath, Topic + 'Default menu file directory');
|
Form.AddPath ('U', ' Menu File Path', 10, 14, 28, 14, 16, 45, mysMaxPathSize, @Config.MenuPath, Topic + 'Default menu file directory');
|
||||||
Form.AddPath ('T', ' Text File Path', 10, 15, 28, 15, 16, 45, mysMaxPathSize, @Config.TextPath, Topic + 'Default display file directory');
|
Form.AddPath ('T', ' Text File Path', 10, 15, 28, 15, 16, 45, mysMaxPathSize, @Config.TextPath, Topic + 'Default display file directory');
|
||||||
// Form.AddPath ('P', ' Template Path', 11, 16, 29, 16, 15, 45, mysMaxPathSize, @Config.TemplatePath, Topic + 'Default template file directory');
|
|
||||||
Form.AddPath ('R', ' Script Path', 13, 16, 28, 16, 13, 45, mysMaxPathSize, @Config.ScriptPath, Topic + 'Default script (MPL) directory');
|
Form.AddPath ('R', ' Script Path', 13, 16, 28, 16, 13, 45, mysMaxPathSize, @Config.ScriptPath, Topic + 'Default script (MPL) directory');
|
||||||
|
Form.AddPath ('I', ' Inbound EchoMail', 8, 17, 28, 17, 18, 45, mysMaxPathSize, @Config.InboundPath, Topic + 'Inbound Echomail directory');
|
||||||
|
Form.AddPath ('O', ' Outbound EchoMail', 7, 18, 28, 18, 19, 45, mysMaxPathSize, @Config.OutboundPath, Topic + 'Outbound Echomail directory');
|
||||||
|
|
||||||
Form.Execute;
|
Form.Execute;
|
||||||
|
|
||||||
|
@ -179,98 +179,6 @@ Begin
|
||||||
Box.Free;
|
Box.Free;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Function Configuration_EchomailAddress (Edit: Boolean) : Byte;
|
|
||||||
|
|
||||||
Procedure EditAddress (Num: Byte);
|
|
||||||
Var
|
|
||||||
Box : TAnsiMenuBox;
|
|
||||||
Form : TAnsiMenuForm;
|
|
||||||
Topic : String;
|
|
||||||
Begin
|
|
||||||
Topic := '|03(|09Echomail Network|03) |01-|09> |15';
|
|
||||||
Box := TAnsiMenuBox.Create;
|
|
||||||
Form := TAnsiMenuForm.Create;
|
|
||||||
|
|
||||||
Box.Open (14, 6, 66, 17);
|
|
||||||
|
|
||||||
VerticalLine (29, 9, 12);
|
|
||||||
VerticalLine (29, 14, 15);
|
|
||||||
VerticalLine (54, 9, 12);
|
|
||||||
|
|
||||||
WriteXY (21, 8, 112, 'Address');
|
|
||||||
WriteXY (47, 8, 112, 'Uplink');
|
|
||||||
|
|
||||||
Form.AddWord ('Z', ' Zone' , 23, 9, 31, 9, 6, 5, 0, 65535, @Config.NetAddress[Num].Zone, Topic + 'Network Zone');
|
|
||||||
Form.AddWord ('N', ' Net' , 24, 10, 31, 10, 5, 5, 0, 65535, @Config.NetAddress[Num].Net, Topic + 'Network Net');
|
|
||||||
Form.AddWord ('O', ' Node' , 23, 11, 31, 11, 6, 5, 0, 65535, @Config.NetAddress[Num].Node, Topic + 'Network Node');
|
|
||||||
Form.AddWord ('P', ' Point' , 22, 12, 31, 12, 7, 5, 0, 65535, @Config.NetAddress[Num].Point, Topic + 'Network Point');
|
|
||||||
|
|
||||||
Form.AddStr ('M', ' Domain', 21, 14, 31, 14, 8, 8, 8, @Config.NetDomain[Num], Topic + 'Network domain');
|
|
||||||
Form.AddStr ('D', ' Description', 16, 15, 31, 15, 13, 25, 25, @Config.NetDesc[Num], Topic + 'Network description');
|
|
||||||
|
|
||||||
Form.AddWord ('Z', ' Zone' , 48, 9, 56, 9, 6, 5, 0, 65535, @Config.NetUplink[Num].Zone, Topic + 'Uplink Zone');
|
|
||||||
Form.AddWord ('N', ' Net' , 49, 10, 56, 10, 5, 5, 0, 65535, @Config.NetUplink[Num].Net, Topic + 'Uplink Net');
|
|
||||||
Form.AddWord ('O', ' Node' , 48, 11, 56, 11, 6, 5, 0, 65535, @Config.NetUplink[Num].Node, Topic + 'Uplink Node');
|
|
||||||
Form.AddWord ('P', ' Point' , 47, 12, 56, 12, 7, 5, 0, 65535, @Config.NetUplink[Num].Point, Topic + 'Uplink Point');
|
|
||||||
|
|
||||||
Form.Execute;
|
|
||||||
|
|
||||||
Box.Close;
|
|
||||||
|
|
||||||
Form.Free;
|
|
||||||
Box.Free;
|
|
||||||
End;
|
|
||||||
|
|
||||||
Var
|
|
||||||
Box : TAnsiMenuBox;
|
|
||||||
List : TAnsiMenuList;
|
|
||||||
|
|
||||||
Procedure CreateList;
|
|
||||||
Var
|
|
||||||
A : Byte;
|
|
||||||
Begin
|
|
||||||
List.Clear;
|
|
||||||
|
|
||||||
For A := 1 to 30 Do
|
|
||||||
List.Add(strPadL(strAddr2Str(Config.NetAddress[A]), 23, ' ') + ' ' + strPadL(Config.NetDesc[A], 20, ' '), 0);
|
|
||||||
End;
|
|
||||||
|
|
||||||
Begin
|
|
||||||
Result := 0;
|
|
||||||
|
|
||||||
Box := TAnsiMenuBox.Create;
|
|
||||||
List := TAnsiMenuList.Create;
|
|
||||||
|
|
||||||
List.NoWindow := True;
|
|
||||||
|
|
||||||
Box.Open (17, 5, 64, 20);
|
|
||||||
|
|
||||||
WriteXY (27, 6, 112, 'Network Address Description');
|
|
||||||
WriteXY (19, 7, 112, strRep('Ä', 44));
|
|
||||||
|
|
||||||
Repeat
|
|
||||||
CreateList;
|
|
||||||
|
|
||||||
List.Open (17, 7, 64, 20);
|
|
||||||
|
|
||||||
Case List.ExitCode of
|
|
||||||
#13 : If Edit Then
|
|
||||||
EditAddress(List.Picked)
|
|
||||||
Else Begin
|
|
||||||
Result := List.Picked;
|
|
||||||
Break;
|
|
||||||
End;
|
|
||||||
#27 : Break;
|
|
||||||
End;
|
|
||||||
Until False;
|
|
||||||
|
|
||||||
List.Close;
|
|
||||||
Box.Close;
|
|
||||||
|
|
||||||
List.Free;
|
|
||||||
Box.Free;
|
|
||||||
End;
|
|
||||||
|
|
||||||
Procedure Configuration_FileSettings;
|
Procedure Configuration_FileSettings;
|
||||||
Var
|
Var
|
||||||
Box : TAnsiMenuBox;
|
Box : TAnsiMenuBox;
|
||||||
|
|
|
@ -702,7 +702,6 @@ Begin
|
||||||
Form.AddPath ('T', ' Text Path' , 12, 9, 25, 9, 11, 30, 80, @Theme.TextPath, Topic + 'Text path');
|
Form.AddPath ('T', ' Text Path' , 12, 9, 25, 9, 11, 30, 80, @Theme.TextPath, Topic + 'Text path');
|
||||||
Form.AddPath ('M', ' Menu Path' , 12, 10, 25, 10, 11, 30, 80, @Theme.MenuPath, Topic + 'Menu path');
|
Form.AddPath ('M', ' Menu Path' , 12, 10, 25, 10, 11, 30, 80, @Theme.MenuPath, Topic + 'Menu path');
|
||||||
Form.AddPath ('S', ' Script Path' , 10, 11, 25, 11, 13, 30, 80, @Theme.ScriptPath, Topic + 'Script path');
|
Form.AddPath ('S', ' Script Path' , 10, 11, 25, 11, 13, 30, 80, @Theme.ScriptPath, Topic + 'Script path');
|
||||||
Form.AddPath ('T', ' Template Path' , 8, 12, 25, 12, 15, 30, 80, @Theme.TemplatePath, Topic + 'Template path');
|
|
||||||
Form.AddBits ('F', ' Allow Fallback' , 7, 13, 25, 13, 16, ThmFallback, @Theme.Flags, Topic + 'Allow fallback to default paths?');
|
Form.AddBits ('F', ' Allow Fallback' , 7, 13, 25, 13, 16, ThmFallback, @Theme.Flags, Topic + 'Allow fallback to default paths?');
|
||||||
Form.AddBits ('C', ' Allow ASCII' , 10, 14, 25, 14, 13, ThmAllowASCII, @Theme.Flags, Topic + 'Allow ASCII users to use this theme?');
|
Form.AddBits ('C', ' Allow ASCII' , 10, 14, 25, 14, 13, ThmAllowASCII, @Theme.Flags, Topic + 'Allow ASCII users to use this theme?');
|
||||||
Form.AddBits ('N', ' Allow ANSI' , 11, 15, 25, 15, 12, ThmAllowANSI, @Theme.Flags, Topic + 'Allow ANSI users to use this theme?');
|
Form.AddBits ('N', ' Allow ANSI' , 11, 15, 25, 15, 12, ThmAllowANSI, @Theme.Flags, Topic + 'Allow ANSI users to use this theme?');
|
||||||
|
|
|
@ -307,7 +307,7 @@ Begin
|
||||||
'X' : Case Cmd[2] of
|
'X' : Case Cmd[2] of
|
||||||
'A' : Begin
|
'A' : Begin
|
||||||
Session.io.OutFile('newuser', True, 0);
|
Session.io.OutFile('newuser', True, 0);
|
||||||
If Session.io.GetYN(Session.GetPrompt(269), True) Then Begin
|
If Session.io.GetYN(Session.GetPrompt(269), False) Then Begin
|
||||||
Session.User.CreateNewUser('');
|
Session.User.CreateNewUser('');
|
||||||
Session.User.UserLogon2;
|
Session.User.UserLogon2;
|
||||||
|
|
||||||
|
@ -323,8 +323,10 @@ Begin
|
||||||
Session.io.OutFull (Session.GetPrompt(271));
|
Session.io.OutFull (Session.GetPrompt(271));
|
||||||
End;
|
End;
|
||||||
'L' : If Session.io.GetPW (Session.GetPrompt(272), Session.GetPrompt(423), Config.MatrixPW) Then Begin
|
'L' : If Session.io.GetPW (Session.GetPrompt(272), Session.GetPrompt(423), Config.MatrixPW) Then Begin
|
||||||
Session.User.MatrixOK := True;
|
// If Session.User.GetMatrixUser Then Begin
|
||||||
Result := True;
|
Session.User.MatrixOK := True;
|
||||||
|
Result := True;
|
||||||
|
// End;
|
||||||
End;
|
End;
|
||||||
'P' : {$IFNDEF UNIX} If Session.User.GetMatrixUser Then
|
'P' : {$IFNDEF UNIX} If Session.User.GetMatrixUser Then
|
||||||
PageForSysopChat (Pos('/F', strUpper(CmdData)) > 0) {$ENDIF};
|
PageForSysopChat (Pos('/F', strUpper(CmdData)) > 0) {$ENDIF};
|
||||||
|
|
|
@ -2,7 +2,6 @@ Unit MIS_Server;
|
||||||
|
|
||||||
{$I M_OPS.PAS}
|
{$I M_OPS.PAS}
|
||||||
|
|
||||||
|
|
||||||
Interface
|
Interface
|
||||||
|
|
||||||
Uses
|
Uses
|
||||||
|
|
|
@ -146,60 +146,68 @@ Begin
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Function FormattedDate(DT: DateTime; Mask: String): String;
|
Function FormattedDate (DT: DateTime; Mask: String) : String;
|
||||||
Var
|
Var
|
||||||
DStr : String[2];
|
DStr : String[2];
|
||||||
MStr : String[2];
|
MStr : String[2];
|
||||||
MNStr : String[3];
|
MNStr : String[3];
|
||||||
YStr : String[4];
|
YStr : String[4];
|
||||||
HourStr : String[2];
|
HourStr : String[2];
|
||||||
MinStr : String[2];
|
MinStr : String[2];
|
||||||
SecStr : String[2];
|
SecStr : String[2];
|
||||||
TmpStr : String;
|
TmpStr : String;
|
||||||
CurrPos : Word;
|
CurrPos : Word;
|
||||||
i : Word;
|
i : Word;
|
||||||
Begin
|
Begin
|
||||||
TmpStr := Mask;
|
TmpStr := Mask;
|
||||||
Mask := strUpper(Mask);
|
Mask := strUpper(Mask);
|
||||||
DStr := Copy(strPadL(strI2S(Dt.Day), 2, '0'), 1, 2);
|
DStr := Copy(strPadL(strI2S(Dt.Day), 2, '0'), 1, 2);
|
||||||
MStr := Copy(strPadL(strI2S(Dt.Month), 2, '0'), 1, 2);
|
MStr := Copy(strPadL(strI2S(Dt.Month), 2, '0'), 1, 2);
|
||||||
YStr := Copy(strPadL(strI2S(Dt.Year), 4, '0'), 1, 4);
|
YStr := Copy(strPadL(strI2S(Dt.Year), 4, '0'), 1, 4);
|
||||||
HourStr := Copy(strPadL(strI2S(Dt.Hour), 2, ' '), 1, 2);
|
HourStr := Copy(strPadL(strI2S(Dt.Hour), 2, ' '), 1, 2);
|
||||||
MinStr := Copy(strPadL(strI2S(Dt.Min), 2, '0'), 1, 2);
|
MinStr := Copy(strPadL(strI2S(Dt.Min), 2, '0'), 1, 2);
|
||||||
SecStr := Copy(strPadL(strI2S(Dt.Sec), 2, '0'), 1, 2);
|
SecStr := Copy(strPadL(strI2S(Dt.Sec), 2, '0'), 1, 2);
|
||||||
MNStr := MonthStr(Dt.Month);
|
MNStr := MonthStr(Dt.Month);
|
||||||
If (Pos('YYYY', Mask) = 0) Then YStr := Copy(YStr,3,2);
|
|
||||||
CurrPos := Pos('DD', Mask);
|
|
||||||
If CurrPos > 0 Then
|
|
||||||
For i := 1 to Length(DStr) Do
|
|
||||||
TmpStr[CurrPos + i - 1] := DStr[i];
|
|
||||||
CurrPos := Pos('YY', Mask);
|
|
||||||
If CurrPos > 0 Then
|
|
||||||
For i := 1 to Length(YStr) Do
|
|
||||||
TmpStr[CurrPos + i - 1] := YStr[i];
|
|
||||||
CurrPos := Pos('MM', Mask);
|
|
||||||
If CurrPos > 0 Then
|
|
||||||
For i := 1 to Length(MStr) Do
|
|
||||||
TmpStr[CurrPos + i - 1] := MStr[i];
|
|
||||||
CurrPos := Pos('HH', Mask);
|
|
||||||
If CurrPos > 0 Then
|
|
||||||
For i := 1 to Length(HourStr) Do
|
|
||||||
TmpStr[CurrPos + i - 1] := HourStr[i];
|
|
||||||
CurrPos := Pos('SS', Mask);
|
|
||||||
If CurrPos > 0 Then
|
|
||||||
For i := 1 to Length(SecStr) Do
|
|
||||||
TmpStr[CurrPos + i - 1] := SecStr[i];
|
|
||||||
CurrPos := Pos('II', Mask);
|
|
||||||
If CurrPos > 0 Then
|
|
||||||
For i := 1 to Length(MinStr) Do
|
|
||||||
TmpStr[CurrPos + i - 1] := MinStr[i];
|
|
||||||
CurrPos := Pos('NNN', Mask);
|
|
||||||
If CurrPos > 0 Then
|
|
||||||
For i := 1 to Length(MNStr) Do
|
|
||||||
TmpStr[CurrPos + i - 1] := MNStr[i];
|
|
||||||
FormattedDate := TmpStr;
|
|
||||||
End;
|
|
||||||
|
|
||||||
|
If (Pos('YYYY', Mask) = 0) Then YStr := Copy(YStr,3,2);
|
||||||
|
|
||||||
|
CurrPos := Pos('DD', Mask);
|
||||||
|
If CurrPos > 0 Then
|
||||||
|
For i := 1 to Length(DStr) Do
|
||||||
|
TmpStr[CurrPos + i - 1] := DStr[i];
|
||||||
|
|
||||||
|
CurrPos := Pos('YY', Mask);
|
||||||
|
If CurrPos > 0 Then
|
||||||
|
For i := 1 to Length(YStr) Do
|
||||||
|
TmpStr[CurrPos + i - 1] := YStr[i];
|
||||||
|
|
||||||
|
CurrPos := Pos('MM', Mask);
|
||||||
|
If CurrPos > 0 Then
|
||||||
|
For i := 1 to Length(MStr) Do
|
||||||
|
TmpStr[CurrPos + i - 1] := MStr[i];
|
||||||
|
|
||||||
|
CurrPos := Pos('HH', Mask);
|
||||||
|
If CurrPos > 0 Then
|
||||||
|
For i := 1 to Length(HourStr) Do
|
||||||
|
TmpStr[CurrPos + i - 1] := HourStr[i];
|
||||||
|
|
||||||
|
CurrPos := Pos('SS', Mask);
|
||||||
|
If CurrPos > 0 Then
|
||||||
|
For i := 1 to Length(SecStr) Do
|
||||||
|
TmpStr[CurrPos + i - 1] := SecStr[i];
|
||||||
|
|
||||||
|
CurrPos := Pos('II', Mask);
|
||||||
|
If CurrPos > 0 Then
|
||||||
|
For i := 1 to Length(MinStr) Do
|
||||||
|
TmpStr[CurrPos + i - 1] := MinStr[i];
|
||||||
|
|
||||||
|
CurrPos := Pos('NNN', Mask);
|
||||||
|
If CurrPos > 0 Then
|
||||||
|
For i := 1 to Length(MNStr) Do
|
||||||
|
TmpStr[CurrPos + i - 1] := MNStr[i];
|
||||||
|
|
||||||
|
FormattedDate := TmpStr;
|
||||||
|
End;
|
||||||
|
|
||||||
Function LoadFilePos(FN: String; Var Rec; FS: Word; FPos: LongInt): Word;
|
Function LoadFilePos(FN: String; Var Rec; FS: Word; FPos: LongInt): Word;
|
||||||
Var
|
Var
|
||||||
|
|
|
@ -52,20 +52,21 @@
|
||||||
; Level 1 = basic
|
; Level 1 = basic
|
||||||
; Level 2 = verbose
|
; Level 2 = verbose
|
||||||
|
|
||||||
loglevel=1
|
loglevel=2
|
||||||
|
|
||||||
; list of functions to perform on startup
|
; list of functions to perform on startup
|
||||||
|
|
||||||
Import_FIDONET.NA = true
|
Import_FIDONET.NA = false
|
||||||
Import_MessageBase = true
|
Import_MessageBase = false
|
||||||
Import_FILEBONE.NA = true
|
Import_FILEBONE.NA = false
|
||||||
Import_FILES.BBS = true
|
Import_FILES.BBS = false
|
||||||
MassUpload = true
|
MassUpload = false
|
||||||
GenerateTopLists = true
|
GenerateTopLists = false
|
||||||
GenerateAllFiles = true
|
GenerateAllFiles = false
|
||||||
PurgeMessageBases = true
|
PurgeMessageBases = false
|
||||||
PostTextFiles = true
|
PostTextFiles = false
|
||||||
PackMessageBases = true
|
PackMessageBases = false
|
||||||
|
ExportEchoMail = true
|
||||||
|
|
||||||
; ==========================================================================
|
; ==========================================================================
|
||||||
; ==========================================================================
|
; ==========================================================================
|
||||||
|
@ -331,7 +332,7 @@
|
||||||
file2_addr = 0:0/0
|
file2_addr = 0:0/0
|
||||||
file2_delfile = false
|
file2_delfile = false
|
||||||
|
|
||||||
[ImportMessageBase]
|
[Import_MessageBase]
|
||||||
|
|
||||||
; This option scans the message base directory, and creates any messages
|
; This option scans the message base directory, and creates any messages
|
||||||
; bases inside of Mystic that have data files in the directory.
|
; bases inside of Mystic that have data files in the directory.
|
||||||
|
@ -365,3 +366,5 @@
|
||||||
private_base = 0
|
private_base = 0
|
||||||
new_scan = 1
|
new_scan = 1
|
||||||
qwk_scan = 1
|
qwk_scan = 1
|
||||||
|
|
||||||
|
[ExportEchoMail]
|
||||||
|
|
|
@ -45,6 +45,7 @@ Uses
|
||||||
mUtil_MsgPurge,
|
mUtil_MsgPurge,
|
||||||
mUtil_MsgPack,
|
mUtil_MsgPack,
|
||||||
mUtil_MsgPost,
|
mUtil_MsgPost,
|
||||||
|
mUtil_EchoExport,
|
||||||
bbs_Common;
|
bbs_Common;
|
||||||
|
|
||||||
{$I MUTIL_ANSI.PAS}
|
{$I MUTIL_ANSI.PAS}
|
||||||
|
@ -133,7 +134,7 @@ Begin
|
||||||
Halt(1);
|
Halt(1);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
TempPath := bbsConfig.SystemPath + 'temp0' + PathChar;
|
TempPath := bbsConfig.SystemPath + 'temputil' + PathChar;
|
||||||
|
|
||||||
GetDIR (0, StartPath);
|
GetDIR (0, StartPath);
|
||||||
|
|
||||||
|
@ -163,6 +164,7 @@ Var
|
||||||
DoMassUpload : Boolean;
|
DoMassUpload : Boolean;
|
||||||
DoTopLists : Boolean;
|
DoTopLists : Boolean;
|
||||||
DoAllFiles : Boolean;
|
DoAllFiles : Boolean;
|
||||||
|
DoEchoExport : Boolean;
|
||||||
DoMsgPurge : Boolean;
|
DoMsgPurge : Boolean;
|
||||||
DoMsgPack : Boolean;
|
DoMsgPack : Boolean;
|
||||||
DoMsgPost : Boolean;
|
DoMsgPost : Boolean;
|
||||||
|
@ -181,6 +183,7 @@ Begin
|
||||||
DoTopLists := CheckProcess(Header_TOPLISTS);
|
DoTopLists := CheckProcess(Header_TOPLISTS);
|
||||||
DoFilesBBS := CheckProcess(Header_FILESBBS);
|
DoFilesBBS := CheckProcess(Header_FILESBBS);
|
||||||
DoAllFiles := CheckProcess(Header_ALLFILES);
|
DoAllFiles := CheckProcess(Header_ALLFILES);
|
||||||
|
DoEchoExport := CheckProcess(Header_ECHOEXPORT);
|
||||||
DoMsgPurge := CheckProcess(Header_MSGPURGE);
|
DoMsgPurge := CheckProcess(Header_MSGPURGE);
|
||||||
DoMsgPack := CheckProcess(Header_MSGPACK);
|
DoMsgPack := CheckProcess(Header_MSGPACK);
|
||||||
DoMsgPost := CheckProcess(Header_MSGPOST);
|
DoMsgPost := CheckProcess(Header_MSGPOST);
|
||||||
|
@ -204,6 +207,7 @@ Begin
|
||||||
If DoMassUpload Then uMassUpload;
|
If DoMassUpload Then uMassUpload;
|
||||||
If DoTopLists Then uTopLists;
|
If DoTopLists Then uTopLists;
|
||||||
If DoAllFiles Then uAllFilesList;
|
If DoAllFiles Then uAllFilesList;
|
||||||
|
If DoEchoExport Then uEchoExport;
|
||||||
If DoMsgPurge Then uPurgeMessageBases;
|
If DoMsgPurge Then uPurgeMessageBases;
|
||||||
If DoMsgPack Then uPackMessageBases;
|
If DoMsgPack Then uPackMessageBases;
|
||||||
If DoMsgPost Then uPostMessages;
|
If DoMsgPost Then uPostMessages;
|
||||||
|
|
|
@ -27,17 +27,18 @@ Var
|
||||||
LogLevel : Byte = 1;
|
LogLevel : Byte = 1;
|
||||||
|
|
||||||
Const
|
Const
|
||||||
Header_GENERAL = 'General';
|
Header_GENERAL = 'General';
|
||||||
Header_IMPORTNA = 'Import_FIDONET.NA';
|
Header_IMPORTNA = 'Import_FIDONET.NA';
|
||||||
Header_IMPORTMB = 'Import_MessageBase';
|
Header_IMPORTMB = 'Import_MessageBase';
|
||||||
Header_FILEBONE = 'Import_FILEBONE.NA';
|
Header_ECHOEXPORT = 'ExportEchoMail';
|
||||||
Header_FILESBBS = 'Import_FILES.BBS';
|
Header_FILEBONE = 'Import_FILEBONE.NA';
|
||||||
Header_UPLOAD = 'MassUpload';
|
Header_FILESBBS = 'Import_FILES.BBS';
|
||||||
Header_TOPLISTS = 'GenerateTopLists';
|
Header_UPLOAD = 'MassUpload';
|
||||||
Header_ALLFILES = 'GenerateAllFiles';
|
Header_TOPLISTS = 'GenerateTopLists';
|
||||||
Header_MSGPURGE = 'PurgeMessageBases';
|
Header_ALLFILES = 'GenerateAllFiles';
|
||||||
Header_MSGPACK = 'PackMessageBases';
|
Header_MSGPURGE = 'PurgeMessageBases';
|
||||||
Header_MSGPOST = 'PostTextFiles';
|
Header_MSGPACK = 'PackMessageBases';
|
||||||
|
Header_MSGPOST = 'PostTextFiles';
|
||||||
|
|
||||||
Procedure Log (Level: Byte; Code: Char; Str: String);
|
Procedure Log (Level: Byte; Code: Char; Str: String);
|
||||||
Function strAddr2Str (Addr : RecEchoMailAddr) : String;
|
Function strAddr2Str (Addr : RecEchoMailAddr) : String;
|
||||||
|
@ -53,6 +54,10 @@ Procedure ExecuteArchive (FName: String; Temp: String; Mask: String; Mode: B
|
||||||
Function GetMBaseByIndex (Num: LongInt; Var TempBase: RecMessageBase) : Boolean;
|
Function GetMBaseByIndex (Num: LongInt; Var TempBase: RecMessageBase) : Boolean;
|
||||||
Function MessageBaseOpen (Var Msg: PMsgBaseABS; Var Area: RecMessageBase) : Boolean;
|
Function MessageBaseOpen (Var Msg: PMsgBaseABS; Var Area: RecMessageBase) : Boolean;
|
||||||
Function SaveMessage (mArea: RecMessageBase; mFrom, mTo, mSubj: String; mAddr: RecEchoMailAddr; mText: RecMessageText; mLines: Integer) : Boolean;
|
Function SaveMessage (mArea: RecMessageBase; mFrom, mTo, mSubj: String; mAddr: RecEchoMailAddr; mText: RecMessageText; mLines: Integer) : Boolean;
|
||||||
|
Function GetFTNPKTName : String;
|
||||||
|
Function GetFTNArchiveName (Orig, Dest: RecEchoMailAddr) : String;
|
||||||
|
Function GetFTNFlowName (Dest: RecEchoMailAddr) : String;
|
||||||
|
Function GetNodeByIndex (Num: LongInt; Var TempNode: RecEchoMailNode) : Boolean;
|
||||||
|
|
||||||
Implementation
|
Implementation
|
||||||
|
|
||||||
|
@ -255,7 +260,10 @@ Var
|
||||||
Count : LongInt;
|
Count : LongInt;
|
||||||
Str : String;
|
Str : String;
|
||||||
Begin
|
Begin
|
||||||
Temp := strUpper(JustFileExt(FName));
|
If Temp <> '' Then
|
||||||
|
Temp := strUpper(Temp)
|
||||||
|
Else
|
||||||
|
Temp := strUpper(JustFileExt(FName));
|
||||||
|
|
||||||
Assign (ArcFile, bbsConfig.DataPath + 'archive.dat');
|
Assign (ArcFile, bbsConfig.DataPath + 'archive.dat');
|
||||||
{$I-} Reset (ArcFile); {$I+}
|
{$I-} Reset (ArcFile); {$I+}
|
||||||
|
@ -377,9 +385,9 @@ Begin
|
||||||
Msg^.SetOrig(bbsConfig.NetAddress[mArea.NetAddr]);
|
Msg^.SetOrig(bbsConfig.NetAddress[mArea.NetAddr]);
|
||||||
|
|
||||||
Case mArea.NetType of
|
Case mArea.NetType of
|
||||||
1 : Assign (SemFile, Config.SemaPath + fn_SemFileEcho);
|
1 : Assign (SemFile, bbsConfig.SemaPath + fn_SemFileEcho);
|
||||||
2 : Assign (SemFile, Config.SemaPath + fn_SemFileNews);
|
2 : Assign (SemFile, bbsConfig.SemaPath + fn_SemFileNews);
|
||||||
3 : Assign (SemFile, Config.SemaPath + fn_SemFileNet);
|
3 : Assign (SemFile, bbsConfig.SemaPath + fn_SemFileNet);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
ReWrite (SemFile);
|
ReWrite (SemFile);
|
||||||
|
@ -399,7 +407,7 @@ Begin
|
||||||
|
|
||||||
If mArea.NetType > 0 Then Begin
|
If mArea.NetType > 0 Then Begin
|
||||||
Msg^.DoStringLn (#13 + '--- ' + mysSoftwareID + ' BBS v' + mysVersion + ' (' + OSID + ')');
|
Msg^.DoStringLn (#13 + '--- ' + mysSoftwareID + ' BBS v' + mysVersion + ' (' + OSID + ')');
|
||||||
Msg^.DoStringLn (' * Origin: ' + mArea.Origin + ' (' + strAddr2Str(Config.NetAddress[mArea.NetAddr]) + ')');
|
Msg^.DoStringLn (' * Origin: ' + mArea.Origin + ' (' + strAddr2Str(bbsConfig.NetAddress[mArea.NetAddr]) + ')');
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Msg^.WriteMsg;
|
Msg^.WriteMsg;
|
||||||
|
@ -410,4 +418,57 @@ Begin
|
||||||
Result := True;
|
Result := True;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
Function GetFTNPKTName : String;
|
||||||
|
Var
|
||||||
|
Hour, Min, Sec, hSec : Word;
|
||||||
|
Year, Month, Day, DOW : Word;
|
||||||
|
Begin
|
||||||
|
GetTime (Hour, Min, Sec, hSec);
|
||||||
|
GetDate (Year, Month, Day, DOW);
|
||||||
|
|
||||||
|
Result := strZero(Day) + strZero(Hour) + strZero(Min) + strZero(Sec);
|
||||||
|
End;
|
||||||
|
|
||||||
|
Function GetFTNArchiveName (Orig, Dest: RecEchoMailAddr) : String;
|
||||||
|
Var
|
||||||
|
Net : LongInt;
|
||||||
|
Node : LongInt;
|
||||||
|
Begin
|
||||||
|
Net := Orig.Net - Dest.Net;
|
||||||
|
Node := Orig.Node - Dest.Node;
|
||||||
|
|
||||||
|
If Net < 0 Then Net := 65536 + Net;
|
||||||
|
If Node < 0 Then Node := 65536 + Node;
|
||||||
|
|
||||||
|
Result := strI2H((Net SHL 16) OR Node);
|
||||||
|
End;
|
||||||
|
|
||||||
|
Function GetFTNFlowName (Dest: RecEchoMailAddr) : String;
|
||||||
|
Begin
|
||||||
|
Result := strI2H((Dest.Net SHL 16) OR Dest.Node);
|
||||||
|
End;
|
||||||
|
|
||||||
|
Function GetNodeByIndex (Num: LongInt; Var TempNode: RecEchoMailNode) : Boolean;
|
||||||
|
Var
|
||||||
|
F : File;
|
||||||
|
Begin
|
||||||
|
Result := False;
|
||||||
|
|
||||||
|
Assign (F, bbsConfig.DataPath + 'echonode.dat');
|
||||||
|
|
||||||
|
If Not ioReset(F, SizeOf(RecEchoMailNode), fmRWDN) Then Exit;
|
||||||
|
|
||||||
|
While Not Eof(F) Do Begin
|
||||||
|
ioRead(F, TempNode);
|
||||||
|
|
||||||
|
If TempNode.Index = Num Then Begin
|
||||||
|
Result := True;
|
||||||
|
|
||||||
|
Break;
|
||||||
|
End;
|
||||||
|
End;
|
||||||
|
|
||||||
|
Close (F);
|
||||||
|
End;
|
||||||
|
|
||||||
End.
|
End.
|
||||||
|
|
|
@ -28,7 +28,7 @@ Begin
|
||||||
ProcessName ('Import Message Bases', True);
|
ProcessName ('Import Message Bases', True);
|
||||||
ProcessResult (rWORKING, False);
|
ProcessResult (rWORKING, False);
|
||||||
|
|
||||||
FindFirst ('*', AnyFile, Info);
|
FindFirst (bbsConfig.MsgsPath + '*', AnyFile, Info);
|
||||||
|
|
||||||
While DosError = 0 Do Begin
|
While DosError = 0 Do Begin
|
||||||
BaseName := JustFileName(Info.Name);
|
BaseName := JustFileName(Info.Name);
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
Const
|
Const
|
||||||
mysSoftwareID = 'Mystic'; // no idea
|
mysSoftwareID = 'Mystic'; // no idea
|
||||||
mysCopyYear = '1997-2013'; // its been a long time!
|
mysCopyYear = '1997-2013'; // its been a long time!
|
||||||
mysVersion = '1.10 A29'; // current version
|
mysVersion = '1.10 A30'; // current version
|
||||||
mysDataChanged = '1.10 A11'; // version of last records change
|
mysDataChanged = '1.10 A11'; // version of last records change
|
||||||
|
|
||||||
{$IFDEF WIN32}
|
{$IFDEF WIN32}
|
||||||
|
@ -78,6 +78,56 @@ Type
|
||||||
|
|
||||||
AccessFlagType = Set of 1..26;
|
AccessFlagType = Set of 1..26;
|
||||||
|
|
||||||
|
Const
|
||||||
|
pktPrivate = $0001;
|
||||||
|
pktCrash = $0002;
|
||||||
|
pktReceived = $0004;
|
||||||
|
pktSent = $0008;
|
||||||
|
pktFileAttach = $0010;
|
||||||
|
pktInTransit = $0020;
|
||||||
|
pktOrphan = $0040;
|
||||||
|
pktKillSent = $0080;
|
||||||
|
pktLocal = $0100;
|
||||||
|
pktHold = $0200;
|
||||||
|
pktUnused = $0400;
|
||||||
|
pktFileReq = $0800;
|
||||||
|
pktReturnReq = $1000;
|
||||||
|
pktIsReceipt = $2000;
|
||||||
|
pktAuditReq = $4000;
|
||||||
|
pktFileUpdate = $8000;
|
||||||
|
|
||||||
|
Type
|
||||||
|
RecPKTMessageHdr = Record
|
||||||
|
MsgType,
|
||||||
|
OrigNode : System.Word;
|
||||||
|
DestNode : System.Word;
|
||||||
|
OrigNet : System.Word;
|
||||||
|
DestNet : System.Word;
|
||||||
|
Attribute : System.Word;
|
||||||
|
Cost : System.Word;
|
||||||
|
DateTime : String[19];
|
||||||
|
End;
|
||||||
|
|
||||||
|
RecPKTHeader = Record
|
||||||
|
OrigNode : System.Word;
|
||||||
|
DestNode : System.Word;
|
||||||
|
Year : System.Word;
|
||||||
|
Month : System.Word;
|
||||||
|
Day : System.Word;
|
||||||
|
Hour : System.Word;
|
||||||
|
Minute : System.Word;
|
||||||
|
Second : System.Word;
|
||||||
|
Baud : System.Word;
|
||||||
|
PKTType : System.Word;
|
||||||
|
OrigNet : System.Word;
|
||||||
|
DestNet : System.Word;
|
||||||
|
ProdCode : System.Word; // Apply to FTSC for code?
|
||||||
|
Password : Array[1..8] of Char;
|
||||||
|
OrigZone : System.Word;
|
||||||
|
DestZone : System.Word;
|
||||||
|
Filler : Array[1..20] of Char;
|
||||||
|
End;
|
||||||
|
|
||||||
RecEchoMailAddr = Record
|
RecEchoMailAddr = Record
|
||||||
Zone,
|
Zone,
|
||||||
Net,
|
Net,
|
||||||
|
@ -85,6 +135,9 @@ Type
|
||||||
Point : Word;
|
Point : Word;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
RecEchoMailExport = LongInt;
|
||||||
|
|
||||||
|
(*
|
||||||
RecEchoMailOpts = Record
|
RecEchoMailOpts = Record
|
||||||
SysLocation : String[40];
|
SysLocation : String[40];
|
||||||
SysFlags : String[40];
|
SysFlags : String[40];
|
||||||
|
@ -111,17 +164,20 @@ Type
|
||||||
BlockSize : Word;
|
BlockSize : Word;
|
||||||
Res : Array[1..10] of Byte;
|
Res : Array[1..10] of Byte;
|
||||||
End;
|
End;
|
||||||
|
*)
|
||||||
|
|
||||||
RecEchoMailNode = Record
|
RecEchoMailNode = Record
|
||||||
Description : String[40];
|
Index : LongInt;
|
||||||
|
Description : String[35];
|
||||||
Active : Boolean;
|
Active : Boolean;
|
||||||
AddrList : String[250];
|
Address : RecEchoMailAddr;
|
||||||
InType : Byte; // 0=Disabled 1=FTP 2=BINKP 3=EMAIL 4=DIRECTORY
|
ArcType : String[4];
|
||||||
OutType : Byte; // 0=Disabled 1=FTP 2=BINKP 3=EMAIL 4=DIRECTORY
|
// InType : Byte; // 0=Disabled 1=FTP 2=BINKP 3=EMAIL 4=DIRECTORY
|
||||||
FTPin : RecEchoMailNodeFTP;
|
// OutType : Byte; // 0=Disabled 1=FTP 2=BINKP 3=EMAIL 4=DIRECTORY
|
||||||
FTPout : RecEchoMailNodeFTP;
|
// FTPin : RecEchoMailNodeFTP;
|
||||||
BINKPin : RecEchoMailNodeBINKP;
|
// FTPout : RecEchoMailNodeFTP;
|
||||||
BINKPout : RecEchoMailNodeBINKP;
|
// BINKPin : RecEchoMailNodeBINKP;
|
||||||
|
// BINKPout : RecEchoMailNodeBINKP;
|
||||||
LastRecv : LongInt;
|
LastRecv : LongInt;
|
||||||
LastSent : LongInt;
|
LastSent : LongInt;
|
||||||
LastReset : LongInt;
|
LastReset : LongInt;
|
||||||
|
@ -159,10 +215,10 @@ Type
|
||||||
ScriptPath : String[mysMaxPathSize];
|
ScriptPath : String[mysMaxPathSize];
|
||||||
QwkPath : String[mysMaxPathSize];
|
QwkPath : String[mysMaxPathSize];
|
||||||
SemaPath : String[mysMaxPathSize];
|
SemaPath : String[mysMaxPathSize];
|
||||||
TemplatePath : String[mysMaxPathSize];
|
InboundPath : String[mysMaxPathSize];
|
||||||
MenuPath : String[mysMaxPathsize];
|
MenuPath : String[mysMaxPathsize];
|
||||||
TextPath : String[mysMaxPathSize];
|
TextPath : String[mysMaxPathSize];
|
||||||
WebPath : String[mysMaxPathSize];
|
OutboundPath : String[mysMaxPathSize];
|
||||||
// GENERAL SETTINGS
|
// GENERAL SETTINGS
|
||||||
BBSName : String[30];
|
BBSName : String[30];
|
||||||
SysopName : String[30];
|
SysopName : String[30];
|
||||||
|
@ -522,7 +578,8 @@ Type
|
||||||
Index : Word; // permanent index
|
Index : Word; // permanent index
|
||||||
Flags : LongInt; // MB flag bits see above
|
Flags : LongInt; // MB flag bits see above
|
||||||
Created : LongInt;
|
Created : LongInt;
|
||||||
Res : Array[1..76] of Byte; // RESERVED
|
EchoTag : String[40]; // EchoMail Tag
|
||||||
|
Res : Array[1..35] of Byte; // RESERVED
|
||||||
End;
|
End;
|
||||||
|
|
||||||
FScanRec = Record { <Data Path> *.SCN }
|
FScanRec = Record { <Data Path> *.SCN }
|
||||||
|
|
|
@ -2897,3 +2897,4 @@
|
||||||
+ MPL errors when executing a MPX module are now logged in the SYSOP logs
|
+ MPL errors when executing a MPX module are now logged in the SYSOP logs
|
||||||
|
|
||||||
<ALPHA 29 RELEASED>
|
<ALPHA 29 RELEASED>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue