This commit is contained in:
mysticbbs 2013-09-07 15:52:38 -04:00
parent 76b42f6852
commit 59f04ee524
3 changed files with 73 additions and 11 deletions

View File

@ -476,19 +476,26 @@
; The above example will search in c:\nodelist and select the latest
; nodelist.### and agoranet.### nodelists. This comparison is first done
; by checking the day extension. If the extension is archived (.z12, etc)
; it will unarchive the nodelist first before comparison.
; it will be unarchived before comparison.
;
; After decompressing, the 3-digit day extensions are compared, selecting
; the highest number. It will then compare the years of the file dates,
; the highest number. It will also compare the years of the file dates,
; and select the newest option. So if you have nodelist.025 dated 2013
; and also nodelist.320 dated 2012, nodelist.025 will be selected.
;
; The same process would then be repeated for agoranet.### and once the
; two files are found, it will merge them together in Mystic's data folder
; so it can be used for nodelist lookups.
; The same process is then be repeated for agoranet.### and once all of
; the defined 'nodefiles' are processed, they will be merged together and
; copied into Mystic's DATA folder so it can be used for nodelist lookups.
;
; If no nodelists are found, Mystic will not overwrite the current
; nodelist.
; nodelist. Comments are stripped while merging to lower filesize and
; increase search performance.
; Strip nodes marked as DOWN?
strip_down = true
; Strip nodes marked as PRIVATE?
strip_private = true
nodefile=d:\nodelists\nodelist
nodefile=d:\nodelists\agoranet

View File

@ -17,6 +17,53 @@ Uses
mUtil_Common,
mUtil_Status;
Var
NodeListNoPrivate : Boolean;
NodeListNoDown : Boolean;
Procedure FileAppend (F1, F2: String);
Var
BufIn,
BufOut : Array[1..8*1024] of Char;
TF1 : Text;
TF2 : Text;
Str : String;
Begin
Assign (TF1, F1);
{$I-} Reset(TF1); {$I+}
If IoResult <> 0 Then Exit;
SetTextBuf (TF1, BufIn);
Assign (TF2, F2);
{$I-} Append(TF2); {$I+}
If (IoResult = 2) Then
ReWrite (TF2);
SetTextBuf (TF2, BufOut);
While Not Eof(TF1) Do Begin
ReadLn (TF1, Str);
If (Str[1] = ';') Then
Continue;
If NodeListNoDown And (Copy(Str, 1, 4) = 'Down') Then
Continue;
If NodeListNoPrivate And (Copy(Str, 1, 3) = 'Pvt') Then
Continue;
WriteLn (TF2, Str);
End;
Close (TF1);
Close (TF2);
End;
Procedure ExtractNodeLists (BaseFile: String);
Var
DirInfo : SearchRec;
@ -156,7 +203,7 @@ Begin
If Not NotFound Then Begin
ProcessStatus ('Merging ' + ResPath + Res.Name, False);
FileAppend (ResPath + Res.Name, bbsCfg.DataPath + 'nodelist.txt');
FileAppend (ResPath + Res.Name, bbsCfg.DataPath + 'nodelist.txt');
End;
DirClean(TempPath, '');
@ -174,6 +221,9 @@ Begin
FileErase (bbsCfg.DataPath + 'nodelist.$$$');
FileReName (bbsCfg.DataPath + 'nodelist.txt', bbsCfg.DataPath + 'nodelist.$$$');
NodeListNoDown := Ini.ReadBoolean(Header_NODELIST, 'strip_down', False);
NodeListNoPrivate := Ini.ReadBoolean(Header_NODELIST, 'strip_private', False);
Ini.SetSequential(True);
Repeat

View File

@ -120,8 +120,10 @@ Begin
While Not Eof(F) Do Begin
ioRead (F, QwkNet);
If PollByQwkNet(QwkNet) Then
Inc (Count);
Case Mode of
0 : If PollByQwkNet(QwkNet) Then
Inc (Count);
End;
End;
Close (F);
@ -129,13 +131,16 @@ Begin
End Else
If strS2I(Str) > 0 Then Begin
If GetQwkNetByIndex(strS2I(Str), QwkNet) Then
If PollByQwkNet(QwkNet) Then
Inc (Count);
Case Mode of
0 : If PollByQwkNet(QwkNet) Then
Inc (Count);
End;
End Else Begin
WriteLn ('Invalid command line.');
WriteLn;
WriteLn ('Syntax: QWKPOLL [ALL]');
WriteLn (' [Qwk Network Index]');
WriteLn;
WriteLn (' [EXPORT] [QwkNet Index] [PATH TO CREATE REP]');
WriteLn (' [IMPORT] [QwkNet Index] [PATH OF QWK PACKET]');
WriteLn;