This commit is contained in:
mysticbbs 2013-03-24 05:47:36 -04:00
parent 6f4f9bb2cd
commit 330fc6c452
11 changed files with 153 additions and 61 deletions

View File

@ -30,6 +30,7 @@ Type
ItemFlags,
ItemDate,
ItemPass,
ItemMask,
ItemPipe,
ItemCaps,
ItemBits,
@ -113,6 +114,7 @@ Type
Procedure AddPipe (HK: Char; D: String; X, Y, FX, FY, DS, FS, MX: Byte; P: Pointer; H: String);
Procedure AddPath (HK: Char; D: String; X, Y, FX, FY, DS, FS, MX: Byte; P: Pointer; H: String);
Procedure AddPass (HK: Char; D: String; X, Y, FX, FY, DS, FS, MX: Byte; P: Pointer; H: String);
Procedure AddMask (HK: Char; D: String; X, Y, FX, FY, DS, FS, MX: Byte; P: Pointer; H: String);
Procedure AddBol (HK: Char; D: String; X, Y, FX, FY, DS, FS: Byte; P: Pointer; H: String);
Procedure AddByte (HK: Char; D: String; X, Y, FX, FY, DS, FS: Byte; MN, MX: Byte; P: Pointer; H: String);
Procedure AddWord (HK: Char; D: String; X, Y, FX, FY, DS, FS: Byte; MN, MX: Word; P: Pointer; H: String);
@ -338,6 +340,7 @@ Begin
ItemPass,
ItemDate,
ItemPath,
ItemMask,
ItemString : S := P;
ItemBoolean : O := P;
ItemAttr,
@ -398,6 +401,13 @@ Begin
AddBasic (HK, D, X, Y, FX, FY, DS, FS, MX, ItemPass, P, H);
End;
Procedure TAnsiMenuForm.AddMask (HK: Char; D: String; X, Y, FX, FY, DS, FS, MX: Byte; P: Pointer; H: String);
Begin
If Items = FormMaxItems Then Exit;
AddBasic (HK, D, X, Y, FX, FY, DS, FS, MX, ItemMask, P, H);
End;
Procedure TAnsiMenuForm.AddPath (HK: Char; D: String; X, Y, FX, FY, DS, FS, MX: Byte; P: Pointer; H: String);
Begin
If Items = FormMaxItems Then Exit;
@ -529,6 +539,7 @@ Procedure TAnsiMenuForm.FieldWrite (RecPos : Word);
Begin
With ItemData[RecPos]^ Do Begin
Case ItemType of
ItemMask,
ItemPass : WriteXY (FieldX, FieldY, cData, strPadR(strRep('*', Length(S^)), FieldSize, ' '));
ItemCaps,
ItemDate,
@ -564,6 +575,7 @@ Begin
ItemCaps : S^ := Input.GetStr(FieldX, FieldY, FieldSize, MaxSize, 2, S^);
ItemDate : S^ := Input.GetStr(FieldX, FieldY, FieldSize, MaxSize, 3, S^);
ItemPipe,
ItemMask,
ItemString : S^ := Input.GetStr(FieldX, FieldY, FieldSize, MaxSize, 1, S^);
ItemBoolean : Begin
O^ := Not O^;

View File

@ -130,28 +130,43 @@ Var
Box : TAnsiMenuBox;
Form : TAnsiMenuForm;
Topic : String;
TempB : Byte;
Begin
Topic := '|03(|09Echomail Node|03) |01-|09> |15';
Box := TAnsiMenuBox.Create;
Form := TAnsiMenuForm.Create;
Box.Header := ' Index ' + strI2S(Node.Index) + ' ';
Box.Shadow := False;
Box.Open (14, 6, 66, 18);
Box.Open (3, 5, 76, 21);
VerticalLine (29, 9, 12);
VerticalLine (29, 14, 16);
VerticalLine (19, 7, 12);
VerticalLine (19, 15, 19);
VerticalLine (53, 7, 11);
// VerticalLine (53, 14, 19);
WriteXY (21, 8, 112, 'Address');
WriteXY (13, 14, 112, 'BINKP');
// WriteXY (49, 13, 112, 'FTP');
Form.AddWord ('Z', ' Zone' , 23, 9, 31, 9, 6, 5, 0, 65535, @Node.Address.Zone, Topic + 'Network Zone');
Form.AddWord ('N', ' Net' , 24, 10, 31, 10, 5, 5, 0, 65535, @Node.Address.Net, Topic + 'Network Net');
Form.AddWord ('O', ' Node' , 23, 11, 31, 11, 6, 5, 0, 65535, @Node.Address.Node, Topic + 'Network Node');
Form.AddWord ('P', ' Point' , 22, 12, 31, 12, 7, 5, 0, 65535, @Node.Address.Point, Topic + 'Network Point');
Form.AddStr ('D', ' Description' , 6, 7, 21, 7, 13, 23, 35, @Node.Description, Topic + 'Node description');
Form.AddBol ('A', ' Active' , 11, 8, 21, 8, 8, 3, @Node.Active, Topic + 'Is node active?');
Form.AddStr ('R', ' Archive Type' , 5, 9, 21, 9, 14, 4, 4, @Node.ArcType, Topic + 'Archive type for packets');
Form.AddTog ('E', ' Network Type' , 5, 10, 21, 10, 14, 7, 0, 1, 'FidoNet QWK', @Node.NetType, Topic);
Form.AddTog ('L', ' Session Type' , 5, 11, 21, 11, 14, 5, 0, 1, 'BinkP FTP', @Node.ProtType, Topic);
Form.AddTog ('Y', ' Export Type' , 6, 12, 21, 12, 13, 6, 0, 3, 'Normal Crash Direct Hold', @Node.MailType, Topic);
Form.AddBol ('A', ' Active' , 21, 14, 31, 14, 8, 3, @Node.Active, Topic + 'Is node active?');
Form.AddStr ('D', ' Description', 16, 15, 31, 15, 13, 35, 35, @Node.Description, Topic + 'Node description');
Form.AddStr ('R', ' Arc Type' , 19, 16, 31, 16, 10, 4, 4, @Node.ArcType, Topic + 'Archive type for packets');
Form.AddStr ('H', ' Host' , 13, 15, 21, 15, 6, 20, 60, @Node.binkHost, Topic + '<hostname>:<port>');
Form.AddMask ('S', ' Password' , 9, 16, 21, 16, 10, 20, 20, @Node.binkPass, Topic);
Form.AddWord ('T', ' TimeOut' , 10, 17, 21, 17, 9, 4, 10, 9999, @Node.binkTimeOut, Topic + 'Inactive session timeout (seconds)');
Form.AddWord ('B', ' BlockSize' , 8, 18, 21, 18, 11, 5, 4096, 30720, @Node.binkBlock, Topic + 'Blocksize in bytes');
Form.AddTog ('M', ' CRAM-MD5' , 9, 19, 21, 19, 10, 6, 0, 2, 'No Yes Forced', @Node.binkMD5, Topic);
Form.AddWord ('Z', ' Zone' , 47, 7, 55, 7, 6, 5, 0, 65535, @Node.Address.Zone, Topic + 'Network Zone');
Form.AddWord ('N', ' Net' , 48, 8, 55, 8, 5, 5, 0, 65535, @Node.Address.Net, Topic + 'Network Net');
Form.AddWord ('O', ' Node' , 47, 9, 55, 9, 6, 5, 0, 65535, @Node.Address.Node, Topic + 'Network Node');
Form.AddWord ('P', ' Point' , 46, 10, 55, 10, 7, 5, 0, 65535, @Node.Address.Point, Topic + 'Network Point');
Form.AddStr ('I', ' Domain' , 45, 11, 55, 11, 8, 8, 8, @Node.Domain, Topic + 'Network Domain');
Form.Execute;
@ -302,6 +317,9 @@ Var
With EchoNode Do Begin
Description := 'New echomail node';
Index := GetPermanentIndex(FileSize(EchoFile));
ArcType := 'ZIP';
BinkBlock := 16 * 1024;
BinkTimeOut := 30;
End;
Write (EchoFile, EchoNode);

View File

@ -302,7 +302,7 @@ Begin
List.Close;
Case List.ExitCode of
#13 : Begin
#13 : If List.ListMax <> 0 Then Begin
UserFile.Seek (List.Picked - 1);
UserFile.Read (User);

View File

@ -362,6 +362,8 @@ Begin
End;
Procedure TEditorANSI.ReDrawTemplate (Reset: Boolean);
Var
Count : LongInt;
Begin
TBBSCore(Owner).io.AllowArrow := True;
@ -385,6 +387,13 @@ Begin
QuoteAttr := Session.io.ScreenInfo[2].A;
FindLastLine;
If LastLine > 1 Then
For Count := 1 to LastLine Do
If Session.Msgs.IsQuotedText(GetLineText(Count)) Then
ANSI.SetLineColor(QuoteAttr, Count)
Else
ANSI.SetLineColor(CurAttr, Count);
End;
DrawPage(1, WinSize, False);
@ -550,7 +559,7 @@ Var
JoinBuf : Array[1..255] of RecAnsiBufferChar;
Begin
If CurX <= CurLength Then Begin
Move (ANSI.Data[CurLine][CurX + 1], ANSI.Data[CurLine][CurX], (CurLength - 1) * SizeOf(RecAnsiBufferChar));
Move (ANSI.Data[CurLine][CurX + 1], ANSI.Data[CurLine][CurX], (CurLength - CurX + 1) * SizeOf(RecAnsiBufferChar));
ANSI.Data[CurLine][CurLength].Ch := #0;

View File

@ -71,7 +71,7 @@
PurgeMessageBases = false
PostTextFiles = false
PackMessageBases = false
ImportEchoMail = true
ImportEchoMail = false
ExportEchoMail = false
; ==========================================================================
@ -385,10 +385,6 @@
max_msgs = 500
max_msgs_age = 365
; default base type when creating (if unknown) 0=jam 1=squish
base_format = 0
; network type (0=local, 1=echomail, 2=newsgroup 3=netmail)
net_type = 1
@ -410,19 +406,39 @@
; If you want to save duplicated / bad messages to a certain message
; base, then set this value to the *INDEX* of the message base (viewable
; at the top of the editor). Otherwise, set this value to -1 or leave it
; commented out and they will be ignored
; at the top of the msgbase editor). Otherwise, set this value to -1
; or leave it commented out and they will be ignored.
dupe_msg_index = 5
; dupe_msg_index = 5
; Set this value to true if you'd like to auto create message bases when
; an incoming message is found for an area that does not exist. MUTIL
; takes default values from the Import_MessageBase function and the system
; configuration, then uses attributes from the message itself in order to
; build a new message base profile.
; If you want MUTIL to auto create message bases when it finds an
; echomail message for a non-existing base, set this value to true
; and use the options below to define the default values
auto_create = true
; base format 0=jam 1=squish
base_format = 0
acs_list =
acs_read =
acs_post =
acs_news =
acs_sysop = s255
header = msghead
read_template = ansimrd
index_template = ansimlst
max_msgs = 500
max_msgs_age = 365
; true/false type values 0=false 1=true (newscan 2=forced)
use_autosig = 1
use_realname = 0
kill_kludge = 1
new_scan = 1
qwk_scan = 1
; ==========================================================================
; ==========================================================================
; ==========================================================================

View File

@ -203,19 +203,19 @@ Var
MBase.ColOrigin := bbsConfig.ColorOrigin;
MBase.ColKludge := bbsConfig.ColorKludge;
MBase.Origin := bbsConfig.Origin;
MBase.BaseType := INI.ReadInteger(Header_IMPORTMB, 'base_type', 0);
MBase.ListACS := INI.ReadString(Header_IMPORTMB, 'acs_list', '');
MBase.ReadACS := INI.ReadString(Header_IMPORTMB, 'acs_read', '');
MBase.PostACS := INI.ReadString(Header_IMPORTMB, 'acs_post', '');
MBase.NewsACS := INI.ReadString(Header_IMPORTMB, 'acs_news', '');
MBase.SysopACS := INI.ReadString(Header_IMPORTMB, 'acs_sysop', 's255');
MBase.Header := INI.ReadString(Header_IMPORTMB, 'header', 'msghead');
MBase.RTemplate := INI.ReadString(Header_IMPORTMB, 'read_template', 'ansimrd');
MBase.ITemplate := INI.ReadString(Header_IMPORTMB, 'index_template', 'ansimlst');
MBase.MaxMsgs := INI.ReadInteger(Header_IMPORTMB, 'max_msgs', 500);
MBase.MaxAge := INI.ReadInteger(Header_IMPORTMB, 'max_msgs_age', 365);
MBase.DefNScan := INI.ReadInteger(Header_IMPORTMB, 'new_scan', 1);
MBase.DefQScan := INI.ReadInteger(Header_IMPORTMB, 'qwk_scan', 1);
MBase.BaseType := INI.ReadInteger(Header_ECHOIMPORT, 'base_type', 0);
MBase.ListACS := INI.ReadString (Header_ECHOIMPORT, 'acs_list', '');
MBase.ReadACS := INI.ReadString (Header_ECHOIMPORT, 'acs_read', '');
MBase.PostACS := INI.ReadString (Header_ECHOIMPORT, 'acs_post', '');
MBase.NewsACS := INI.ReadString (Header_ECHOIMPORT, 'acs_news', '');
MBase.SysopACS := INI.ReadString (Header_ECHOIMPORT, 'acs_sysop', 's255');
MBase.Header := INI.ReadString (Header_ECHOIMPORT, 'header', 'msghead');
MBase.RTemplate := INI.ReadString (Header_ECHOIMPORT, 'read_template', 'ansimrd');
MBase.ITemplate := INI.ReadString (Header_ECHOIMPORT, 'index_template', 'ansimlst');
MBase.MaxMsgs := INI.ReadInteger(Header_ECHOIMPORT, 'max_msgs', 500);
MBase.MaxAge := INI.ReadInteger(Header_ECHOIMPORT, 'max_msgs_age', 365);
MBase.DefNScan := INI.ReadInteger(Header_ECHOIMPORT, 'new_scan', 1);
MBase.DefQScan := INI.ReadInteger(Header_ECHOIMPORT, 'qwk_scan', 1);
MBase.NetAddr := 1;
For Count := 1 to 30 Do
@ -224,13 +224,13 @@ Var
Break;
End;
If INI.ReadString(Header_IMPORTMB, 'use_autosig', '1') = '1' Then
If INI.ReadString(Header_ECHOIMPORT, 'use_autosig', '1') = '1' Then
MBase.Flags := MBase.Flags OR MBAutoSigs;
If INI.ReadString(Header_IMPORTMB, 'use_realname', '0') = '1' Then
If INI.ReadString(Header_ECHOIMPORT, 'use_realname', '0') = '1' Then
MBase.Flags := MBase.Flags OR MBRealNames;
If INI.ReadString(Header_IMPORTMB, 'kill_kludge', '1') = '1' Then
If INI.ReadString(Header_ECHOIMPORT, 'kill_kludge', '1') = '1' Then
MBase.Flags := MBase.Flags OR MBKillKludge;
// ADD DOWNLINK INFORMATION HERE INTO ECHONODES??

View File

@ -44,6 +44,7 @@ Begin
MBase.Name := BaseName;
MBase.QWKName := BaseName;
MBase.NewsName := strReplace(BaseName, ' ', '.');
MBase.EchoTag := BaseName;
MBase.FileName := BaseName;
MBase.Path := bbsConfig.MsgsPath;
MBase.NetType := INI.ReadInteger(Header_IMPORTMB, 'net_type', 0);

View File

@ -60,6 +60,7 @@ Begin
MBase.Name := BaseName;
MBase.QWKName := TagName;
MBase.NewsName := strReplace(BaseName, ' ', '.');
MBase.EchoTag := TagName;
MBase.FileName := TagName;
MBase.Path := bbsConfig.MsgsPath;
MBase.NetType := 1;

View File

@ -96,7 +96,8 @@ Type
ArcType : String[4];
MailType : Byte;
binkHost : String[60];
binkPort : Word;
NetType : Byte;
ProtType : Byte;
binkTimeout : Word;
binkBlock : Word;
binkMD5 : Byte;
@ -114,7 +115,8 @@ Type
InSize : Cardinal;
OutFiles : Cardinal;
OutSize : Cardinal;
Res : Array[1..512] of Byte;
binkPass : String[20];
Res : Array[1..491] of Byte;
End;
RecSauceInfo = Packed Record

View File

@ -8,6 +8,7 @@ design elements/issues.
BUGS AND POSSIBLE ISSUES
========================
! DUPE database needs to limit itself based on configurable size
! GE option 32 (change def protocol) might be broken
! LBP menus arent scrolling correctly in Linux
! MUTIL FILESBBS import is not skipping FILES.BBS?
@ -29,6 +30,8 @@ BUGS AND POSSIBLE ISSUES
FUTURE / IDEAS / WORK IN PROGRESS / NOTES
=========================================
- cut/paste needs to be added back into the FS editor
- QWK put/get per individual users via FTP
- EXCLUDE from all files list. important.
- Reply to echomail via netmail.
- Msgbase flag for AKA matching or just rewrite netmail all together.

View File

@ -2902,16 +2902,16 @@
Configuration.
+ Added new Echomail node editor. This allows you to configure nodes which
you are going to exchange echomail from, either an uplink or downlink.
you are going to exchange echomail from, either an uplink or downlink. In
addition, you can view/edit the list of message bases configured for
export to that node.
+ Message bases now have a echomail TAG option which is intended to include
the bases's echomail tag from the .NA files.
the bases's echomail tag from .NA files.
+ Message bases now have an "Export To" option where up to 2 million
echomail nodes can be linked to each message base.
+ The echomail node editor now has an editor where message bases can be
list, linked, and unlinked from each configured node.
echomail nodes can be linked to each message base. This relationship with
nodes can also be edited from the Echomail node editor.
! Fixed a bug which would cause the file to be deleted if you tried to
move it to the new file base. Mystic should check now and give an
@ -2936,24 +2936,54 @@
+ Mystic will now attempt to perform AKA matching on the origin address
of netmail messages. If you have a netmail base configured as the address
of 1:111/111 but you send a Netmail to 911:111/111, Mystic will switch the
origin address to your 911 AKA if you have one configured in Network
addresses. Translation: Use one netmail base for many networks with
tossers like FastEcho.
origin address to your 911 AKA (if you have one configured in Network
addresses).
+ Message quoting will now indent itself by a single character to better
facilitate separation from regular text. The text will wrap and
reformat itself so no text should be lost.
+ The full screen editor now shows a different text color for quoted text.
The attributes are defined in the template file (ansiedit.ans). The
attribute of |!1 is the standard text color, and the attribute of |!2 is
the quoted text color.
+ If you change message base's storage filename or path, Mystic will now ask
you if you want to physically rename them on disk too (and of course it
will rename them if you say yes).
you if you want to physically rename them on disk too upon leaving the
base editor.
+ MUTIL now has a full binkley-style echomail importer and exporter with a
bunch of features. It can autocreate new bases, perform unlimited dupe
checking, and store duplicate/badmsgs to name a few.
+ MUTIL now has a full binkley-style echomail importer and exporter. It
can autocreate new bases, perform dupe checking, and push duplicate msgs
to their own base. All node configuration, echos, and export info comes
from within the new editor options with Mystic's configuration.
INSERT NEW SHIT HERE WHEN NOT DRUNK AND LAZY LOL
Please review MUTIL.INI for the two new added functions for import/export
+ NEW FSE/BSO FTN TOSSER AND BINKP MAILER need to type up the changes
when done
The basic setup is this:
0. Set your inbound and outbound directories in the System Paths.
1. Edit echomail message bases to set their ECHOTAG value (match
whatever they are from the .NA definitions). Make sure you don't
forget to set your origin address / base type!
2. Configure any nodes that you want to import/export echomail with
using the Echomail Node editor.
3. Link each message base to the node that you want to export messages
to. You can do this either by node (using Echomail Node editor)
or by attaching nodes to a specific message base (using the Message
base editor).
4. If you want to use a base for duplicate messages, see information
inside of MUTIL.INI
5. If you want to auto-create message bases when a new echobase is
found, see information inside of MUTIL.INI
6. Turn on importing/exporting in MUTIL.INI.
7. At your own risk: Delete FastEcho, GEcho, CrashMail, etc. :)
! Fixed a bug that could cause the user editor to crash directly after a
new install if you didn't create your SysOp account first.