mUtil message post, message purge
This commit is contained in:
parent
ef161cbc9c
commit
7964933a16
|
@ -4900,3 +4900,14 @@
|
||||||
|
|
||||||
! MBBSUTIL BBS list packer was not working properly when checking
|
! MBBSUTIL BBS list packer was not working properly when checking
|
||||||
verification days.
|
verification days.
|
||||||
|
|
||||||
|
+ MUTIL now has a message posting function. This function can post any
|
||||||
|
number of text files to a message base, including echomail and netmail
|
||||||
|
bases. It will also split large posts into multple messages - allowing
|
||||||
|
up to 10,000 line text files to be posted. To enable, add this to your
|
||||||
|
[GENERAL] section of your mUtil .INI configuration files:
|
||||||
|
|
||||||
|
PostTextFiles = true
|
||||||
|
|
||||||
|
Then add the [PostTextFiles] section from the default mutil.ini from a
|
||||||
|
new install.
|
||||||
|
|
|
@ -52,17 +52,16 @@ Uses
|
||||||
mUtil_AllFiles,
|
mUtil_AllFiles,
|
||||||
mUtil_MsgPurge,
|
mUtil_MsgPurge,
|
||||||
mUtil_MsgPack,
|
mUtil_MsgPack,
|
||||||
mUtil_MsgPost;
|
mUtil_MsgPost,
|
||||||
|
bbs_Common;
|
||||||
|
|
||||||
{$I MUTIL_ANSI.PAS}
|
{$I MUTIL_ANSI.PAS}
|
||||||
|
|
||||||
Function CheckProcess (pName: String) : Boolean;
|
Function CheckProcess (pName: String) : Boolean;
|
||||||
Begin
|
Begin
|
||||||
Result := False;
|
Result := INI.ReadBoolean(Header_General, pName, False);
|
||||||
|
|
||||||
If strUpper(INI.ReadString(Header_General, pName, 'FALSE')) = 'TRUE' Then Begin
|
|
||||||
Result := True;
|
|
||||||
|
|
||||||
|
If Result Then Begin
|
||||||
Inc (ProcessTotal);
|
Inc (ProcessTotal);
|
||||||
|
|
||||||
Log (2, '+', ' EXEC ' + pName);
|
Log (2, '+', ' EXEC ' + pName);
|
||||||
|
|
|
@ -13,7 +13,8 @@ Uses
|
||||||
m_Strings,
|
m_Strings,
|
||||||
m_FileIO,
|
m_FileIO,
|
||||||
mUtil_Common,
|
mUtil_Common,
|
||||||
mUtil_Status;
|
mUtil_Status,
|
||||||
|
bbs_Common;
|
||||||
|
|
||||||
Const
|
Const
|
||||||
TotalFiles : Cardinal = 0;
|
TotalFiles : Cardinal = 0;
|
||||||
|
|
|
@ -7,9 +7,11 @@ Interface
|
||||||
Uses
|
Uses
|
||||||
m_Output,
|
m_Output,
|
||||||
m_IniReader,
|
m_IniReader,
|
||||||
mutil_Status;
|
mutil_Status,
|
||||||
|
bbs_Common,
|
||||||
{$I RECORDS.PAS}
|
bbs_MsgBase_Abs,
|
||||||
|
bbs_MsgBase_Squish,
|
||||||
|
bbs_MsgBase_JAM;
|
||||||
|
|
||||||
Var
|
Var
|
||||||
Console : TOutput;
|
Console : TOutput;
|
||||||
|
@ -47,6 +49,8 @@ Procedure AddFileBase (Var FBase: RecFileBase);
|
||||||
Function ShellDOS (ExecPath: String; Command: String) : LongInt;
|
Function ShellDOS (ExecPath: String; Command: String) : LongInt;
|
||||||
Procedure ExecuteArchive (FName: String; Temp: String; Mask: String; Mode: Byte);
|
Procedure ExecuteArchive (FName: String; Temp: String; Mask: String; Mode: Byte);
|
||||||
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 SaveMessage (mArea: RecMessageBase; mFrom, mTo, mSubj: String; mAddr: RecEchoMailAddr; mText: RecMessageText; mLines: Integer) : Boolean;
|
||||||
|
|
||||||
Implementation
|
Implementation
|
||||||
|
|
||||||
|
@ -313,4 +317,88 @@ Begin
|
||||||
Close (F);
|
Close (F);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
End.
|
Function MessageBaseOpen (Var Msg: PMsgBaseABS; Var Area: RecMessageBase) : Boolean;
|
||||||
|
Begin
|
||||||
|
Result := False;
|
||||||
|
|
||||||
|
Case Area.BaseType of
|
||||||
|
0 : Msg := New(PMsgBaseJAM, Init);
|
||||||
|
1 : Msg := New(PMsgBaseSquish, Init);
|
||||||
|
End;
|
||||||
|
|
||||||
|
Msg^.SetMsgPath (Area.Path + Area.FileName);
|
||||||
|
Msg^.SetTempFile (TempPath + 'msgbuf.tmp');
|
||||||
|
|
||||||
|
If Not Msg^.OpenMsgBase Then
|
||||||
|
If Not Msg^.CreateMsgBase (Area.MaxMsgs, Area.MaxAge) Then Begin
|
||||||
|
Dispose (Msg, Done);
|
||||||
|
Exit;
|
||||||
|
End Else
|
||||||
|
If Not Msg^.OpenMsgBase Then Begin
|
||||||
|
Dispose (Msg, Done);
|
||||||
|
Exit;
|
||||||
|
End;
|
||||||
|
|
||||||
|
Result := True;
|
||||||
|
End;
|
||||||
|
|
||||||
|
Function SaveMessage (mArea: RecMessageBase; mFrom, mTo, mSubj: String; mAddr: RecEchoMailAddr; mText: RecMessageText; mLines: Integer) : Boolean;
|
||||||
|
Var
|
||||||
|
SemFile : File;
|
||||||
|
Count : SmallInt;
|
||||||
|
Msg : PMsgBaseABS;
|
||||||
|
Begin
|
||||||
|
Result := False;
|
||||||
|
|
||||||
|
If Not MessageBaseOpen(Msg, mArea) Then Exit;
|
||||||
|
|
||||||
|
Msg^.StartNewMsg;
|
||||||
|
Msg^.SetLocal (True);
|
||||||
|
|
||||||
|
If mArea.NetType > 0 Then Begin
|
||||||
|
If mArea.NetType = 2 Then Begin
|
||||||
|
Msg^.SetMailType (mmtNetMail);
|
||||||
|
Msg^.SetCrash (bbsConfig.netCrash);
|
||||||
|
Msg^.SetHold (bbsConfig.netHold);
|
||||||
|
Msg^.SetKillSent (bbsConfig.netKillSent);
|
||||||
|
Msg^.SetDest (mAddr);
|
||||||
|
End Else
|
||||||
|
Msg^.SetMailType (mmtEchoMail);
|
||||||
|
|
||||||
|
Msg^.SetOrig(bbsConfig.NetAddress[mArea.NetAddr]);
|
||||||
|
|
||||||
|
Case mArea.NetType of
|
||||||
|
1 : Assign (SemFile, Config.SemaPath + fn_SemFileEcho);
|
||||||
|
2 : Assign (SemFile, Config.SemaPath + fn_SemFileNews);
|
||||||
|
3 : Assign (SemFile, Config.SemaPath + fn_SemFileNet);
|
||||||
|
End;
|
||||||
|
|
||||||
|
ReWrite (SemFile);
|
||||||
|
Close (SemFile);
|
||||||
|
End Else
|
||||||
|
Msg^.SetMailType (mmtNormal);
|
||||||
|
|
||||||
|
Msg^.SetPriv (mArea.Flags And MBPrivate <> 0);
|
||||||
|
Msg^.SetDate (DateDos2Str(CurDateDos, 1));
|
||||||
|
Msg^.SetTime (TimeDos2Str(CurDateDos, False));
|
||||||
|
Msg^.SetFrom (mFrom);
|
||||||
|
Msg^.SetTo (mTo);
|
||||||
|
Msg^.SetSubj (mSubj);
|
||||||
|
|
||||||
|
For Count := 1 to mLines Do
|
||||||
|
Msg^.DoStringLn(mText[Count]);
|
||||||
|
|
||||||
|
If mArea.NetType > 0 Then Begin
|
||||||
|
Msg^.DoStringLn (#13 + '--- ' + mysSoftwareID + ' BBS v' + mysVersion + ' (' + OSID + ')');
|
||||||
|
Msg^.DoStringLn (' * Origin: ' + mArea.Origin + ' (' + strAddr2Str(Config.NetAddress[mArea.NetAddr]) + ')');
|
||||||
|
End;
|
||||||
|
|
||||||
|
Msg^.WriteMsg;
|
||||||
|
Msg^.CloseMsgBase;
|
||||||
|
|
||||||
|
Dispose (Msg, Done);
|
||||||
|
|
||||||
|
Result := True;
|
||||||
|
End;
|
||||||
|
|
||||||
|
End.
|
||||||
|
|
|
@ -12,8 +12,9 @@ Uses
|
||||||
m_Types,
|
m_Types,
|
||||||
m_Strings,
|
m_Strings,
|
||||||
m_FileIO,
|
m_FileIO,
|
||||||
mutil_Common,
|
mUtil_Common,
|
||||||
mutil_Status;
|
mUtil_Status,
|
||||||
|
bbs_Common;
|
||||||
|
|
||||||
Procedure uImportFileBone;
|
Procedure uImportFileBone;
|
||||||
Var
|
Var
|
||||||
|
|
|
@ -13,7 +13,8 @@ Uses
|
||||||
m_FileIO,
|
m_FileIO,
|
||||||
m_DateTime,
|
m_DateTime,
|
||||||
mUtil_Common,
|
mUtil_Common,
|
||||||
mUtil_Status;
|
mUtil_Status,
|
||||||
|
bbs_Common;
|
||||||
|
|
||||||
Procedure uImportFilesBBS;
|
Procedure uImportFilesBBS;
|
||||||
Var
|
Var
|
||||||
|
|
|
@ -10,8 +10,9 @@ Implementation
|
||||||
|
|
||||||
Uses
|
Uses
|
||||||
m_Strings,
|
m_Strings,
|
||||||
mutil_Common,
|
mUtil_Common,
|
||||||
mutil_Status;
|
mUtil_Status,
|
||||||
|
bbs_Common;
|
||||||
|
|
||||||
Procedure uImportNA;
|
Procedure uImportNA;
|
||||||
Var
|
Var
|
||||||
|
|
|
@ -13,6 +13,7 @@ Uses
|
||||||
m_DateTime,
|
m_DateTime,
|
||||||
mUtil_Common,
|
mUtil_Common,
|
||||||
mUtil_Status,
|
mUtil_Status,
|
||||||
|
bbs_Common,
|
||||||
bbs_MsgBase_ABS,
|
bbs_MsgBase_ABS,
|
||||||
bbs_MsgBase_JAM,
|
bbs_MsgBase_JAM,
|
||||||
bbs_MsgBase_Squish;
|
bbs_MsgBase_Squish;
|
||||||
|
@ -40,19 +41,7 @@ Begin
|
||||||
|
|
||||||
PurgeBase := 0;
|
PurgeBase := 0;
|
||||||
|
|
||||||
Case Base.BaseType of
|
If Not MessageBaseOpen(MsgBase, Base) Then Continue;
|
||||||
0 : MsgBase := New(PMsgBaseJAM, Init);
|
|
||||||
1 : MsgBase := New(PMsgBaseSquish, Init);
|
|
||||||
End;
|
|
||||||
|
|
||||||
MsgBase^.SetMsgPath (Base.Path + Base.FileName);
|
|
||||||
MsgBase^.SetTempFile (TempPath + 'msgbuf.tmp');
|
|
||||||
|
|
||||||
If Not MsgBase^.OpenMsgBase Then Begin
|
|
||||||
Dispose (MsgBase, Done);
|
|
||||||
|
|
||||||
Continue;
|
|
||||||
End;
|
|
||||||
|
|
||||||
If Base.MaxAge > 0 Then Begin
|
If Base.MaxAge > 0 Then Begin
|
||||||
MsgBase^.SeekFirst(1);
|
MsgBase^.SeekFirst(1);
|
||||||
|
|
|
@ -12,8 +12,9 @@ Uses
|
||||||
m_QuickSort,
|
m_QuickSort,
|
||||||
m_Strings,
|
m_Strings,
|
||||||
m_FileIO,
|
m_FileIO,
|
||||||
mutil_Common,
|
mUtil_Common,
|
||||||
mutil_Status;
|
mUtil_Status,
|
||||||
|
bbs_Common;
|
||||||
|
|
||||||
Type
|
Type
|
||||||
TopListType = (TopCall, TopPost, TopDL, TopUL, TopPCR);
|
TopListType = (TopCall, TopPost, TopDL, TopUL, TopPCR);
|
||||||
|
|
|
@ -11,8 +11,9 @@ Uses
|
||||||
m_FileIO,
|
m_FileIO,
|
||||||
m_Strings,
|
m_Strings,
|
||||||
m_DateTime,
|
m_DateTime,
|
||||||
mutil_Common,
|
mUtil_Common,
|
||||||
mutil_Status;
|
mUtil_Status,
|
||||||
|
bbs_Common;
|
||||||
|
|
||||||
Procedure uMassUpload;
|
Procedure uMassUpload;
|
||||||
Var
|
Var
|
||||||
|
|
Loading…
Reference in New Issue