199 lines
4.8 KiB
Plaintext
199 lines
4.8 KiB
Plaintext
{$IFDEF WIN32}
|
|
{$I DEFINES.INC}
|
|
{$ENDIF}
|
|
|
|
{$A+,B-,D+,E-,F+,I-,L+,N-,O+,R-,S+,V-}
|
|
|
|
UNIT File7;
|
|
|
|
INTERFACE
|
|
|
|
PROCEDURE CheckFilesBBS;
|
|
|
|
IMPLEMENTATION
|
|
|
|
USES
|
|
DOS,
|
|
Common,
|
|
File0,
|
|
File1,
|
|
File10,
|
|
TimeFunc;
|
|
|
|
PROCEDURE AddToDirFile(FileInfo: FileInfoRecordType);
|
|
VAR
|
|
User: UserRecordType;
|
|
NumExtDesc: Byte;
|
|
BEGIN
|
|
LoadURec(User,1);
|
|
|
|
WITH FileInfo DO
|
|
BEGIN
|
|
(*
|
|
FileName := ''; Value Passed
|
|
Description := ''; Value Passed
|
|
*)
|
|
FilePoints := 0;
|
|
Downloaded := 0;
|
|
(*
|
|
FileSize := 0; Value Passed
|
|
*)
|
|
OwnerNum := 1;
|
|
OwnerName := AllCaps(User.Name);
|
|
FileDate := Date2PD(DateStr);
|
|
VPointer := -1;
|
|
VTextSize := 0;
|
|
FIFlags := [FIHatched];
|
|
END;
|
|
|
|
IF (NOT General.FileCreditRatio) THEN
|
|
FileInfo.FilePoints := 0
|
|
ELSE
|
|
BEGIN
|
|
FileInfo.FilePoints := 0;
|
|
IF (General.FileCreditCompBaseSize > 0) THEN
|
|
FileInfo.FilePoints := ((FileInfo.FileSize DIV 1024) DIV General.FileCreditCompBaseSize);
|
|
END;
|
|
|
|
FillChar(ExtendedArray,SizeOf(ExtendedArray),0);
|
|
|
|
IF (General.FileDiz) AND (DizExists(MemFileArea.DLPath+SQOutSp(FileInfo.FileName))) THEN
|
|
GetDiz(FileInfo,ExtendedArray,NumExtDesc);
|
|
|
|
WriteFV(FileInfo,FileSize(FileInfoFile),ExtendedArray);
|
|
|
|
IF (UploadsToday < 2147483647) THEN
|
|
Inc(UploadsToday);
|
|
|
|
IF ((UploadKBytesToday + (FileInfo.FileSize DIV 1024)) < 2147483647) THEN
|
|
Inc(UploadKBytesToday,(FileInfo.FileSize DIV 1024))
|
|
ELSE
|
|
UploadKBytesToday := 2147483647;
|
|
|
|
SaveGeneral(FALSE);
|
|
|
|
Print('^1hatched!');
|
|
|
|
SysOpLog(' Hatched: "^5'+SQOutSp(FileInfo.FileName)+'^1" to "^5'+MemFileArea.AreaName+'^1"');
|
|
|
|
LastError := IOResult;
|
|
END;
|
|
|
|
(* Sample FILES.BBS
|
|
TDRAW463.ZIP THEDRAW SCREEN EDITOR VERSION 4.63 - (10/93) A text-orient
|
|
ZEJNGAME.LST [4777] 12-30-01 ZeNet Games list, Updated December 29th, 2
|
|
*)
|
|
|
|
PROCEDURE CheckFilesBBS;
|
|
VAR
|
|
BBSTxtFile: Text;
|
|
TempStr: AStr;
|
|
FArea,
|
|
SaveFileArea,
|
|
DirFileRecNum: Integer;
|
|
Found,
|
|
FirstTime,
|
|
SaveTempPause: Boolean;
|
|
BEGIN
|
|
SysOpLog('Scanning for FILES.BBS ...');
|
|
SaveFileArea := FileArea;
|
|
SaveTempPause := TempPause;
|
|
TempPause := FALSE;
|
|
Abort := FALSE;
|
|
Next := FALSE;
|
|
FArea := 1;
|
|
WHILE (FArea >= 1) AND (FArea <= NumFileAreas) AND (NOT Abort) AND (NOT HangUp) DO
|
|
BEGIN
|
|
|
|
LoadFileArea(FArea);
|
|
|
|
FirstTime := TRUE;
|
|
Found := FALSE;
|
|
LIL := 0;
|
|
CLS;
|
|
Prompt('^1Checking ^5'+MemFileArea.AreaName+' #'+IntToStr(CompFileArea(FArea,0))+'^1 ...');
|
|
|
|
IF (Exist(MemFileArea.DLPath+'FILES.BBS')) THEN
|
|
BEGIN
|
|
|
|
Assign(BBSTxtFile,MemFileArea.DLPath+'FILES.BBS');
|
|
Reset(BBSTxtFile);
|
|
WHILE NOT EOF(BBSTxtFile) DO
|
|
BEGIN
|
|
ReadLn(BBSTxtFile,TempStr);
|
|
TempStr := StripLeadSpace(TempStr);
|
|
IF (TempStr <> '') THEN
|
|
BEGIN
|
|
|
|
FileInfo.FileName := Align(AllCaps(Copy(TempStr,1,(Pos(' ',TempStr) - 1))));
|
|
|
|
IF (FirstTime) THEN
|
|
BEGIN
|
|
NL;
|
|
NL;
|
|
FirstTime := FALSE;
|
|
END;
|
|
|
|
Prompt('^1Processing "^5'+SQOutSp(FileInfo.FileName)+'^1" ... ');
|
|
|
|
IF (NOT Exist(MemFileArea.DLPath+SQOutSp(FileInfo.FileName))) THEN
|
|
BEGIN
|
|
Print('^7missing!^1');
|
|
SysOpLog(' ^7Missing: "^5'+SQOutSp(FileInfo.FileName)+'^7" from "^5'+MemFileArea.AreaName+'^7"');
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
FileArea := FArea;
|
|
RecNo(FileInfo,FileInfo.FileName,DirFileRecNum);
|
|
IF (BadDownloadPath) THEN
|
|
Exit;
|
|
IF (DirFileRecNum <> -1) THEN
|
|
BEGIN
|
|
Print('^7duplicate!^1');
|
|
SysOpLog(' ^7Duplicate: "^5'+SQOutSp(FileInfo.FileName)+'^7" from "^5'+MemFileArea.AreaName+'^7"');
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
|
|
TempStr := StripLeadSpace(Copy(TempStr,Pos(' ',TempStr),Length(TempStr)));
|
|
IF (TempStr[1] <> '[') THEN
|
|
FileInfo.Description := Copy(TempStr,1,50)
|
|
ELSE
|
|
BEGIN
|
|
TempStr := StripLeadSpace(Copy(TempStr,(Pos(']',TempStr) + 1),Length(TempStr)));
|
|
FileInfo.Description := StripLeadSpace(Copy(TempStr,(Pos(' ',TempStr) + 1),50));
|
|
END;
|
|
|
|
FileInfo.FileSize := GetFileSize(MemFileArea.DLPath+SQOutSp(FileInfo.FileName));
|
|
|
|
AddToDirFile(FileInfo);
|
|
|
|
END;
|
|
Close(FileInfoFile);
|
|
Close(ExtInfoFile);
|
|
END;
|
|
Found := TRUE;
|
|
END;
|
|
END;
|
|
Close(BBSTxtFile);
|
|
|
|
IF (NOT (FACDROM IN MemFileArea.FAFlags)) THEN
|
|
Erase(BBSTxtFile);
|
|
END;
|
|
|
|
IF (NOT Found) THEN
|
|
BEGIN
|
|
LIL := 0;
|
|
BackErase(15 + LennMCI(MemFileArea.AreaName) + Length(IntToStr(CompFileArea(FArea,0))));
|
|
END;
|
|
|
|
Inc(FArea);
|
|
|
|
END;
|
|
TempPause := SaveTempPause;
|
|
FileArea := SaveFileArea;
|
|
LoadFileArea(FileArea);
|
|
LastError := IOResult;
|
|
END;
|
|
|
|
END. |