Ftplogger ©FTPServerTools for logging in warftp,G6,raidenftp etc.. FTPLogger is for ZIP,RAR,SFV,M3U checking of one or more files. Parameters: USER="put the usercookie from the ftp server here" FILE="put the filepath ftpserver cookie here" DIR="put the dir path of all the files to check here" KEEP=TRUE or FALSE Default:FALSE You either use FILE= to check a single file or DIR= to check all files in a dir RaidenReply="c:\program files\raidenftpd\output\ask-onFileUploaded.@" For example: In G6 in the OnFileUpLoaded: "C:\Program Files\G6 FTP Server\FtpLogger.exe" USER=%CLIENTNAME FILE="%FILE" In G6 in the OnFileUpLoadIncomplete: "C:\Program Files\G6 FTP Server\FtpLogger.exe" USER=%CLIENTNAME FILE="%FILE" KEEP=TRUE Omitting USER= will make it USER=System (fetched from FTPServerTools.ini Section [Uploads] key DefaultUser) Omitting FILE= will make it attempt to use the whole commandline as a filepath Omitting KEEP= will make it work like KEEP=FALSE Omitting RaidenReply= will not cause a reply for raiden. So calling it with FTPLogger path/file.zip is also possible. Then USER=System (in this example) will be used. FTPLogger will make various cookies which can be used in the tags, and the message files. Cookies created by FTPLogger: %[ParentPath] = the full path of the parent dir being handled %[DirPath] = the full path of dir being handled %[DirName] = the name dir that is being handled %[FilePath] = the full path that is being handled %[FileName] = the filename that is being handled %[FileType] = (zip,rar,nfo,diz,sfv,m3u,mp3,*) * for any other type %[FileExtension] = (zip,rar,r00,r01,...ace,..) so the file extension %[FileStatus] = BAD, OK to show if the uploaded file is good or bad according to zip,sfv,rar,.. checking %[FileSpeed] = taken from SPEED= parameter, this is the speed with which a file is uploaded %[UserName] = the name of the user (taken from USER=) %[UserGroup] = the name of the group of the user (taken from GROUP=) %[ServerType] = RaidenFTPD,ioFTPD,Default,.. tken from FTPServerTools.ini ServerType= %[MP3Title] = Title of the MP3 file %[MP3Artist] = Artist of the MP3 file %[MP3Album] = Album name of the MP3 file %[MP3Year] = Year of the MP3 file %[MP3Comment] = Comment of the MP3 file %[MP3Genre] = Genre of the MP3 file %[MP3GenreNr] = The number of the genre (0..255) %[MP3Track] = Track of the MP3 file %[MP3ID3Type] = THe ID3 Tag type of the mp3 file %[MP3ProtBit] = Protection bit (0 or 1) of the MP3 file %[MP3Version] = Version of the MP3 file %[MP3Layer] = Compression layer if the MP3 file: "",III,II,I %[MP3BitRate] = Bitrate of the MP3 file %[MP3Mode] = The mode of the MP3 file: Stereo,Joint Stereo,Dual Channel,Mono %[MP3Copyright] = Whether the MP3 file is copyrighted or not: 0,1 %[MP3Original] = Whether the MP3 file is an original or not: 0,1 %[MP3Lyrics] = The lyrics (if available) %[MP3Emphasis = The emphasis of the MP3 file: none, 50-15 ms, CCITT j.17 %[MP3Version] = The MP3 version of the MP3 file: 2.5,"",2,1 %[FilesExpected] = nr files expected according to the diz count or the sfv/m3u count that are not .incomplete or .mising %[FilesAvailable] = nr mp3/rar/zip files available that are not .incomplete or .missing %[FilesGood] = nr files found that are in the sfv/m3u/diz count that are not .incomplete or .missing %[FilesBad] = nr bad files, the files with the RenameTo tag.. !%[FileName].bad and !%[FileName].bad.001 etc.. %[FilesMissing] = nr missing files, the files with the Missing tag. !%[FileName].missing %[FilesExtra] = nr extra files, the rar/mp3/zip files that are not in the sfv/m3u/diz count that somehow seem to be extra %[SizeAvailable] = size of all available rar/mp3/zip files in bytes/KBytes/MBytes %[SizeGood] = size of all rar/mp3/zip files found according to the sfv/m3u/diz count in bytes/KBytes/MBytes %[SizeExpected] = total size expected according to the sfv/m3u/diz count in bytes/KBytes/MBytes %[UserName] = username %[UserGroup] = usergroup %[PercentGood] = percentage from expected files that is already received %[PercentMissing] = percentage missing files %[ProgressBar] = a progress bar. Be aware unlike certain other scripts this progress bar will ONLY be full when the release is 100%. Quite a few other scripts fail here and on 98% will show a full bar. The result of it is that for example on 5% the bar will be empty. (if the bar is 10 long). %[DateLocal] = YYYY-MM-DD in local date %[DateUTC] = YYYY-MM-DD in UTC date (=GMT date) %[WeekdayLocal] = Mon,Tue,Wed,Thu,Fri,Sat,Sun according to local date %[WeekdayUTC] = Mon,Tue,Wed,Thu,Fri,Sat,Sun according to UTC (=GMT time) %[TimeLocal] = HH:MM:SS in local time %[TimeUTC] = HH:MM:SS in UTC time (=GMT time) %[ReleaseComplete] = INCOMPLETE, COMPLETE, EXTRA to tell if the release is incomplete, complete or if it has extra files %[ReleaseCount] = ???, SFV, DIZ, M3U shows where the count of the release is dediced from For the rest all environment variables are cookies as well, for example when you use FTPLogger with ioFTPD you will also have the cookies: %[ACCSPEED], %[CREDITSECTION], %[FLAGS], %[GID], %[GROUP], %[GROUPS], %[IDENT], %[IP], %[PATH], %[PWD], %[REALPATH], %[SECTION], %[SPEED] %[STATSSECTION], %[SYSTEMPATH], %[TAGLINE], %[UID], %[USER], %[VIRTUALPATH] Using it with any other program you simple get the normal dos environment string there: %[windir], %[USERPROFILE], etc.. (use set in a cmd box to see which. Then all parameters given as arguments also make cookies so FTPLogger.exe ExtraCookie=SomeFTPServerCookie .... will add: %[ExtraCookie] with value: SomeFTPServerTookie Any environment cookie can be overwritten by an argument cookie. Any environment and argument cookie can be overwriten by an internal FTPLogger cookie (those from the list above). All cookies can be used with length options. That goes as follows: %minwidth.maxwidth[cookie] minwidth is the minimal number of character to be shown, this number can be <0 or >0 or even absent. if it is <0 then it will be right aligned, otherwise leftaligned this may or may not be followed by a period maxwidth is the maximal number of characters to be shown. Examples: Suppose the %[FILE] cookie has value C:\FTP\DIR\FILE.TXT %[FILE] gives "C:\FTP\DIR\FILE.TXT" %10[FILE] gives "C:\FTP\DIR\FILE.TXT" %-10[FILE] gives "C:\FTP\DIR\FILE.TXT" %25[FILE] gives "C:\FTP\DIR\FILE.TXT " %-25[FILE] gives " C:\FTP\DIR\FILE.TXT" %25.5[FILE] gives "C:\FT " %-25.5[FILE] gives " C:\FT" %.5[FILE] gives "C:\FT" %-.5[FILE] gives "%-.5[FILE]" this is an incorrect cookie %XY[FILE] gives "%XY[FILE]" this is not recognized as correct Any unrecognized cookie gets directly printed as shown in the above example. The basic algorithm is quite simple. It works (simplified) like follows: if a file is upped of size<=3 then its bad. (DelSmallFile) if a bad zip file is upped the its bad. a bad file will be deleted according to the DelBadZip setting if a good sfv if upped then it will be checked againt all the files listed in it. if a good m3u is upped then it will be checked againt all the files listed in it. if a good zip file is upped then file_id.diz and the proper nfo file are extracted. A proper nfo is an nfo that appears in the ExtractFile list or that is the last piece in the directory, e.g. Release-CLS will automatically deduce CLS.NFO to be the file to be exctracted. if there are nfo's that are not supposed to be there then they are deleted. According to the sfv, m3u or the file_id.diz file it will be determined if a release is complete. A complete release if a release that has all the files that are needed in that release. How many files there are is written to the parent of the directory that is written in. e.g. I send to: 0day/release-ORION/orion1.zip In this case orion1.zip will be tested and ORION.NFO and file_id.diz will be extracted. Then there is logging. The format of the logfile can be set as you wish. It is just a line that gets the cookie values filled in. See FTPServerTools.ini for that info. I feel some extra explanation about cleaning zipfiles might be at place as well. So in FTPServerTools.ini we have the following options: [Zip] Clean= CleanComments= CleanFileComments= CleanExtraNfo= SkipFile=c:\ftp\SkipNFOFiles.txt KeepFile=c:\ftp\KeepNFOFiles.txt Clean=TRUE will parse and quickcheck a zip file and allow the following options to work, FALSE will leave a zipfile unchanged. CleanComments=TRUE will remove the global zip comment from the zip file. FALSE will leave it alone. ClenFileComments=TRUE will remove the comment of every file and dir in the zip. FALSE will leave it alone. CleanExtraNfo=TRUE will force every second of more nfo in the zip file that isnt in the ZipCleanWith list to be removed from the zipfile. A file_id.diz will not be removed from the zip files. A zip file will be cut after the end of central dir. There are some other tools that apparently put new a local fileheader,central dir tructure and end of central dir behind a normal correct zipfile. This is an error of those tools, since it is not according to the standard this extra info (which pkunzip correctly signifies as error) will be cut from the zipfile. Now for gene6 merged directory support I had to do some extra investigations: Say I have 3 merged directories: merge://"d:\A,B",d:\TST,d:\FTP Then gene6 makes this call if I upload a file called testfile.zip "C:\Program Files\Gene6 FTP Server\FTPLogger.exe" USER="testuser" FILE="merge://"d:\A,B\testfile.zip",d:\FRG\testfile.zip,d:\FTP\testfile.zip" If I upload a file test,file.zip: "C:\Program Files\Gene6 FTP Server\FTPLogger.exe" USER="ram" FILE="merge://"d:\A,B\test,file.zip","d:\FRG\test,file.zip","d:\FTP\test,file.zip"" Version info: 1.0.0.12: added a few new file_id.diz file count formats changed total to -1 if it cant be found (was 0) 1.0.0.13: changed file_id.diz and shrpened it out to be even better 1.0.0.14: internal version 1.0.0.15: I found the file_id.diz to go wrong on a Win9x2NT string.. It thought that meant 9 disks.. Yet another bug that the original glftp code had is resolved.. 1.0.0.16: if no nfo file could be found then warftplogger will try to extract the nfo frmo the dirname in which the zip is placed. i.e. release-0dd\xyz.zip will then try to extract 0dd.nfo 1.0.0.17: minor bugfix, I dont remember what anymore 1.0.0.18: added DELNFO=TRUE also DELNFO=YES is allowed. This will delete all not allowed nfo files and leave only the nfo nfo files of the EXTRACT= file. So this only happens with uploading zip files. When rar files are upped then EXTRACT= will not be executed anyway. Since this only happens with .zip files. Not stating this option means that no nfo files will be deleted. 1.0.0.19: bugfix. A dir like xyz.blabla-CLS would not extract CLS.nfo. Fixed in this version. 1.0.0.20: dont remember anymore 1.0.0.21: sfv file checking and size estimation added 1.0.0.22: also makes *-=[0-completed]=- now and *-[0-of-xx-completed]=- rar and zip counting changed to make it work better 1.0.0.23: bugfix, due to microsoft _findfile some files couldn't be found. And thus loads of files *completed]=- werent deleted. 1.0.0.24: bugfix, thanks to sputnik for helping me in testing. FindFirstFile seems to work not as expected. So the whole file finding stuff is completely rewritten. Added release-=[bad.diz]=- if a file_id.diz is found but no expected files could be deduced Added release-=[no.diz]=- if a file_id.diz is not obtainable (bad zip or no diz) Added release-=[no.files]=- if no files couldnt be counted (no diz or no sfv yet..) 1.0.0.25: Apparently there are still files left. After some looking it appeared to be the casing, so everything is converted to lowercase interenally. 1.0.0.26: It appears that microsoft visual neatly fucks up the code at some parts in optimized mode. The wildcard matching is rewritten. No also m3u files are read and mp3 files are checked for completion 1.0.0.27: Internal version. 1.0.0.28: Aha found the bug in the microsoft libraries. It seems isalpha is the cause so I just changed it to >'0'. Will they ever learn? 1.0.0.29: hmm one weird condition still seemed to occur in bad.diz releases. Thats fixed now. 1.0.0.30: if the diskamount is in the end of the line it was noted as bad.diz. This is fixed now. 1.0.0.31: you wouldnt believe it, not tabs are in the diz file. So another bad.diz is fixed. 1.0.0.32: fixed a situation where [01 x 2.88] wouldnt be recognized mp3 checking improved. preferably mp3 checking is done via the m3u file, secondary via the sfv file 1.0.0.33: bugfix 1.0.0.34: fixed a few situtations where the diskcount went wrong. e.g. [Disk:o1/o1 1.0.0.35: added SLEEP=xxx where xxx = milliseconds sometimes its handy to make it all work smoother 1.0.1: moved settings to ftplogger.ini, changed calling parameters 1.0.2: changed sfv recognition, now all files in sfv will be counted 1.0.3: changed file_id.diz extraction case where bad.diz occured 1.0.4: improved sizeguessing 1.0.5: rar checking attempt to build in. Somehow we cant crc check a rar file without unpacking it. This also goes for a multivolume rar. So upping a rar would result in lots of work. This routine in changed in the next version. 1.0.6: some internal variables renamed, rar files are now tested if they have the proper length (accoding to their blocks). 1.0.7: DelBadRar added and DelSmallFile added 1.0.8: DeleteMask,InCompleteMask,NoFilesMask,NoDizMask,BadDizMask added 1.0.9: fixed a situation where an sfv file would report a wrong number of files added date/time stamping of the release dir to the max date/time of the uploaded file 1.0.10: changed ini settings now they are named InParentXXX, Added InDirXXX to align with zerofxp bot from XMirroR 1.0.11: internal version 1.0.12: internal version, source code split up in several smaller files 1.0.13: date setting of the dir soemtimes sets a date past current date (if an nfo has a date past now), any filedate > now wont set the dir date anymore. 1.0.14: bugfix 1.0.15: the date of the dir now becomes the date of the creation of the completion tag, some morons seem to have file_id.diz and such dated in the future, so this avoids it. 1.0.16: file_id.diz diskcount improvement.. NT/2000 was incorrectly seen as 20 disks 1.0.17: for some reason win NT/2K got seen as 2 disks. Not anymore now. 1.0.18: added ß01/01ß recognition 1.0.19: changed the wildcard mathing routine so that now *-NONFO is matched properly 1.0.20: some sfv files seem to have the same filename mentioned more then one time, this caused a miscount. although I think its a fuckup it will be correctly interpreted now 1.0.21: internal testversion 1.0.22: some sfv files seem to close with ctrl-z apparently made by dos. Now that is filtered from the file. a new type of file_id.diz has DISKS :: x in there so its being accounted for as well when an entry like InDirComplete= with nothing behind was givem in the ini file it still created a filetag. This is corrected. Making a setting like that will no longer create a tag. Be aware that the default is set. Now the tagging of multilevel dirs is also going correctly according to the tags MultiLevel1 etc.. 1.0.23: small fix of previous version 1.0.24: fix of paradox file_id.diz due to the fact that lz0 file_id.diz was no longer acording to the standards 1.0.25: improvement of multilevel dirs. 1.0.26: InDirNoFiles=!-=[no.files]=- InDirNoDiz=!-=[no.diz]=- InDirBadDiz=!-=[bad.diz]=- defaults replaced by InDirNoFiles= InDirNoDiz= InDirBadDiz= since basically no tag in the dir except the completion tag has any use. 1.0.27: recompiled to use msvcrt.dll, smaller executable 1.0.28: uploads.log file changed, be aware!. No longer a full path,dir,file but only a full path in the logfile 1.0.29: added OnCompletion= and RenameTo= and DelBadZip=rename and DelBadRar=rename options, and a correction in this textfile. 1.0.30: recognition of ®xx/07¯ added. 1.0.31: small improvement in OnCompletion= and in RenameTo= 1.0.32: Commandline parameter pieces USER= and FILE= now case insensitive. 1.0.33: Apparently I forgot the %s parameter with the OnCompletion, so now it is added. Also %d has been added for a dir name instead of just a full filename. 1.0.34: VFS= added for raiden support. So now in the log file all dirs are translated to their virtual dirs. bugfix in the sfv recognition, it seems some *nux sites put "filename crc " in an sfv file. This wasnt recognized. Now it is. 1.0.35: Changed the tags and changed the ini file to FTPServerTools.ini 1.0.36: Warftp (yes some people still use it) seems to trigger the upload event twice. So you get twice the same line in the logfile. Using the [WarFTP] .. DoubleLineFix=TRUE you can fix this. 1.0.37: added sfv checking of all the files in the sfv file. Rename if sfv failed. 1.0.38: Any occurance of / in the commandline is changed to \ (for guildftpd) 1.0.39: Added sfv check of a single file if the sfv is already there. DelBadSFV implemented. 1.0.40: Silly bug removed 1.0.41: Added DelBadRenamed= to delete a bad file once a good one is uploaded 1.0.42: Added %m and other tags Added DeleteFile full path with wildcard recognition. 1.0.43: Fixed a small bug. 1.0.44: Improved file_id.diz disk count checking. Added OnCompletion1= , OnCompletion2= ... 1.0.45: Internally changes, improvement in SFV and M3U checking for bad sfv files, added .missing files with autoremoval if those files are uploaded later. When an sfv is uploaded first the count is already known so instead of creating a -=[no.files]=- now the InDirComplete and InParentComplete tag are used. 1.0.46: Internal version 1.0.47: Improved file_id.diz checking again a bit, improved .missing file handling, improved sfv stuff, revised program structure internally. 1.0.48: Date got falsely recognized as a diskcount. !-=[completed]=- got created where it shouldnt. %i and %o tag didnt worked due to a typo. InParentDelete= and InDirDelete= tags are default empty. Delete tags are automatically derived from the InParent tags and the InDir tags. 1.0.49: Forgot the InParentEmpty tag, that also needs to be deleted. 1.0.50: Some minor internal code rewriting. I discovered that a zip file that has a bad header somehow got through. So this is fixed now. 1.0.51: Changed the tagging system a bit, it looks like some tags stayed where it shouldn't. 1.0.52: The renamed .bad files were also counted in the completion count. That is not the intention. So now they now longer get added in the count. 1.0.53: Added 'ID3\03' recognition from sfv file. Changed situation of bla.rar! in sfv and something.rar being uploaded (not in sfv) where the count was wrong. Now a release is complete according to its sfv if all files of the sfv are actually available. Completely overhauled the tag system. Changed the uploads.log format. 1.0.54: When there are mp3 files it missed the check for m3u due to a typo. Added ISODirHandleTags 1.0.55: Lines starting # in sfv / m3u are now automatically skipped. 1.0.56: Woops a mistake in a cookie name. %~e should be %~f 1.0.57: Added ioFTPD compatibility 1.0.58: Added standard cookies for for various other tags. Fixed error that .missing and .bad files got created due to sfv/m3u file. Moved the WARFTPD DoubleLineFix tag to ServerType=WarFTPD 1.0.59: Changed to support ioFTPD beta 3.3.1 1.0.60: Changed the tags that display size in KBytes to bytes/KBytes/MBytes depending on size. <1024 is bytes, >=1K && <1M in megabytes >=1M in megabytes. Added InDirCompleteRemove= for not creating the InDirComplete tag when a release is completed (only then). 1.0.61: InDirCompleteRemove= should have been InDirCompletedRemove= 1.0.62: Added a progressbar 1.0.63: Fixed stupid bug with sfv file that occured only when mp3 was uploaded. Changed the type SFV/DIZ/M3U/??? for the logfile. 1.0.64: Fixed bad rar didnt get deleted after good rar was upped. 1.0.65: 100% in percentage left a dot too much. Fixed a wrong count when sfv was uploaded first Fixed InParentCompleted tag didnt get deleted properly. Changed ProgressBarInCompleteChar default to - 1.0.66: Added TagType support 1.0.67: Added 01/01 didnt get recognized properly. Changed internal mp3 fileheader checking is no longer active due to the stupid format being non standard like. So now internal check is based on the file extension only. Rar header check is still active. Fixed undocumented rar sub block type with unicode filename length, it caused failures when files where compressed using unicode filenames. 1.0.68: Added envronment variables for cookies (usefull for ioFTPD). .missing files and .bad files didnt get deleted when TagType=DIR 1.0.69: Fixed: date was recognized as a diz count. 1.0.70: Added: .message file creation Added: %f cookie translation 1.0.71: message cookie used the whole path of the dir instead of just the dirname 1.0.72: Changed: .message file automatically is a hidden file now. Fixed: when a dir was bigger then 4G the count went wrong, this is fixed now. 1.0.73: Fixed: dd/mm/yy was recognized as a diskcount. 1.0.74: Changed: DelSmallFile=3 always meant files <=3 bytes are to be deleted, now it means <3 bytes are deleted so DelSmallFile=0 will not delete small files anymore. Added: Parameter KeepIncomplete=TRUE/FALSE its not fully working in this version dont use it yet Added: Ignore1= Ignore2= etc. parameter. 1.0.75: Added: SPEED= and changed the logfile as well Fixed: sometimes a release could consist of abcda1.zip abcdb1.zip abcdc1.zip etc.. This was counted as extra files. 1.0.76: Added: SPEED= is automatically taken from $SPEED environment variable for ioFTPD. 1.0.77: Added: if a file is busy being uploaded it could be counted as a complete upload on another login Now the file will not be counted if there is also a .missing file. Also a .incomplete will not make it count. %#e=number of files expected in sfv. %#f=number of files in sfv that are not .incomplete or .missing %#a=number of files in that are not .incomplete or .missing 1.0.78: Fixed: Last .incomplete addon caused a wrong count. Added:NoLog 1.0.79: Added: MessageHidden=FALSE if you do not want the hidden bit to be on when the .message is created. 1.0.80: Added: vfs:add and vfs:del things for ioFTPD. 1.0.81: Changed: !vfs:add 755 %[UID]:%[GID] possibility added. 1.0.82: Changed: I decided to ditch the whole unzip32.dll and put the zip checker inside FTPLogger. hence the somewhat bigger size. Yet it is lots faster. :) Added: !vfs:add becomes set for extracted nfo and diz files as well. 1.0.83: Fixed: !vfs:add didnt work if there was a % in the tag. 1.0.84: Added: recognition of DiSKS:2o\2o 1.0.85: Fixed: nfo also extracted if it is in a subdir 1.0.86: Changed: zip files diz count went wrong if filename was 6 long or shorter 1.0.87: Changed: 01/16 wasn't recognized properly. 1.0.88: Changed: bad sfv files that had double entries and non valid entries now should be coutn better, the bad entries just get skipped. Added: SFVCorrect=TRUE/FALSE to correct a bad sfv file Added: DIZCorrect=TRUE/FALSE to remove strange eoln stuff created by text mode transfer of diz files Added: NFOCorrect=TRUE/FALSE to remove strange eoln stuff created by text mode transfer of nfo files Changed: nfo and diz files are not extracted from every zip once they are extracted from the first zip Added: ExtractAll=FALSE/TRUE with FALSE= to extrac the nfo/diz only once TRUE to extrac it from every uploaded zip Changed: upload of a zip file will cause a recount, the extra count=0 and zipcount is nr of all the zip files in the dir. 1.0.89: Fixed: Count went wrong on zipcounting. Fixed: SFV change went bad sometimes 1.0.90: Changed: when a file_id.diz of *.nfo exists of 0 bytes then the file_id.diz or that nfo will be extracted anyway regardless of the ExtracAll setting. 1.0.91: Changed: sfv could get corrupted when SFVCorrect=TRUE in ceain situations 1.0.92: Added: Some idiots seem to pack files as zip files and then name them rar files. Thus they are ignored. So now zipfiles that are badly named as .rar are allowed. Changed: minor ziplib error fixed that caused \0 chars to appear when correct nfo/diz/.. files. Added: TagDel for support of older versions of ioFTPD (below 4.6.x) Changed: default !vfs:del is set to empty in accordance to ioftpd 4.6.2 1.0.93: Fixed: Stupidly enough I left some debug code in and thus all files would pass sfv checking, also fixed is zip header recognition. 1.0.94: Fixed: When the last entry in an sfv file is double it isnt skipped, now it will be properly skipped. 1.0.95: Fixed: Crash upon upload of .m3u file 1.0.96: Fixed: Crash upon nfo clearing of double , missing Message* entry could cause assertion. 1.0.97: Fixed: logfile= read the wrong length filename. Fixed: 'Disk 2000' caused a wrong diskcount. Added: Size: 2 * ... gets recognized now as well. Added: [01x1MB] gets recognized now. Changed: Certain common diz patterns are attempted to be recognized first, the more difficult ones are tried in a second sweep. This gives a higher acuracy. Added: blah01xyz.zip blah02xyz.zip ... and various other such files now also get properly counted. Fixed: a very rare occasion of a bad zip passed falsely as correct, now it is correctly recognized as a bad zip. Added: [DISK and alike recognition in first sweep Changed: .nfo files in the sfv are NOT counted as a valid file, due to the point that various tools alter them and it would be a miscount on the release anyway. Changed: no.diz is per default now no.filecount Changed: uploading only a file with no diz/sfv/m3u will make the nocount flag active. 1.0.98: Added: Nfo/Diz/SFV/M3U Prepend and append 1.0.99: Added: SFVCorrectBadLines to attempt to correct a bad sfv, specially the last lines 1.0.100: Fixed: Removed bug due to previous fix. Changed: the no.filecount could appear in an iso dir if the nfo was uploaded into the root of the iso dir. 1.0.101: Fixed: Recognition of x/y count. 1.0.102: Fixed: Uninitialised variable could in a rare occasion cause a strange InDirCompleted tag. 1.0.103: Fixed: FilePrepend/append bug Fixed: SFV Complete test reenabled 1.0.104: Changed: .message file lines ended with now with what is exactly in the messagefile. 1.0.105: Fixed: .missing creation and tag with it 1.0.106: Fixed: return code 1 on a good file. 1.0.107: Fixed: file_id.diz and nfo more then main level or first level now also get extracted and tested. 1.0.108: Added: OnZIP= OnRAR= OnDIZ= OnSFV= OnM3U= On*= Windowstate used is HIDE. Changed: OnCompletion1= OnCompletion2=... changed to multiple OnCompletion lines Changed: OnCompletionWindow now is for all OnCompletionWindow lines Changed: IgnoreFile1= IgnoreFile2=.. now replaced by multiple IgnoreFile= lines Changed: DeleteFile1= DeleteFile2=.. now replaced by multiple DeleteFile= lines Changed: NoLog1= Nolog2=.. now replaced by multiple NoLog= lines Changed: IsoDir1= IsoDir2=.. now replaced by multiple IsoDir= lines Added: 1//20 gets recognized now as a diz count Changed: OnCompletion now has cookies %t, %s, %u 1.0.109: Added: ReplyOk and ReplyBad for Raiden and ioFTPD and so on. For raiden it will use the standard raiden replys. Added: CookieTranslation with Replys. Added: RaidenReply=to reply to raiden (for #sudo), see also http://www.raidenftpd.com/kb/kb000000014.html Added: %f cookie for ReplyBad and ReplyOk and so. Added: Onxxx for other extensions 1.0.110: Added: SFVTypes= and M3UTypes= and changed code for sfv/m3u checking according to this. 1.0.111: Fixed: [rs][0-0][0-9] didnt check properly, forgot me a \n 1.0.112: Fixed: SFVCorrectBadLines wasnt working exactly as I wanted it yet. 1.0.113: Added: Various ZipCleaning options. Fixed: When no path can be found in the commandline it will assume current working dir and use that path. 1.0.114: Fixed: Auto zip extraction based on release dir name wasnt working anymore. 1.0.115: Fixed: recognition for a too short zipfile went wrong on the EndOfCentralDir record of a zip file. Fixed: bad allocation of 1 byte short 1.0.116: Added: InParentTagType and InDirTagType Removed: TagType Added: FileIncomplete= tag adding if KEEP=TRUE is used and FileIncomplete= tag removal if the file is completely uploaded (KEEP=FALSE) Added: SizeFormat= tag for changing your size tag. 1.0.117: Fixed: KEEPINCOMPLETE= now works and changed to KEEP= 1.0.118: Fixed: OnCompletion,OnZip,OnRar,etc now support all the tags available. Thus speak can speak out more fun things. 1.0.119: Fixed: logtime month was 1 month off. 1.0.120: Fixed: minor bug when zipfile is read and still busy (e.g. because a virus scanner may have it open). Added: eithel diz check -01/01] 1.0.121: Fixed: OnCompletion had lost its %t tag, this is added in all areas again. 1.0.122: Added: ExtractFirstNfo to extract the first nfo from a zip file Changed: DelNfo=TRUE now only deletes nfo files if there is more then 1 nfo, it will leave at least one nfo intact. 1.0.123: Added: support for *.mp3 ID3 V1.x tags (not yet available in cookies yet) Changed: Cookies now are no longer the cryptic thingies but things like %[FilesExpected] and such which will later be needed for MP3 and race. 1.0.124: Added: Chmod= with default 755 Added: .raidenftpd.acl handling now all tags and extracted files are set to the last uploader in that dir. Fixed: %[ProgressBar] and %[FilesBad] were wrong Added: %[UserGroup], FileUserName and FileUserGroup for chmod settings Added: DefaultUserGroup from the ini is being used if no usergroup is available Changed: DefaultUserName from the ini is being used instead of DefaultUser Fixed: logfile only showed lowercase names 1.0.125: Fixed: .incomplete wasnt properly deleted from .raidenftpd.acl Fixed: FileUserName and FileUserGroup defaults were incorrect, they now default to DefaultUserName and DefaultUserGroup if they dont exist 1.0.126: Changed: All environment variables are now preread. Added: All commandline arguments are added as cookies. Fixed: nfo from delete list didnt get always deleted 1.0.127: Fixed: seperate percent sign got interpreted wrong causing extra tag lines when a percent is was in it. Added: Cookieformatting 1.0.128: Fixed: Tag error in IsoDir directories. 1.0.129: DateUTC and DateLocal was 1 month off. 1.0.130: Added: bad zip header start with PKxxPK is skipped over, this is caused due to bad scripts from people 1.0.131: Added: zlib 1.1.4 replaced by zlib 1.2.1 Added: updating of dupelists 1.0.132: Changed: "FILENAME" crc in sfv/m3u now recognized and changed to the proper format if requested Fixed: file_id.diz minor improvement. 1.0.133: Added: Files: 1 x blah recognition Changed: (temporarily) pkzip 2.1 contents file headers are being skipped now (will be upgrade to support deflate64 later) 1.0.134: Fixed: Crash when an MP3 Genre > 128 was found 1.0.135: Added: MP3 Genres "Heavy Rock(J)","Doom Rock(J)","J-POP(J)","Seiyu(J)","Tecno Ambient(J)","Moemoe(J)","Tokusatsu(J)","Anime(J)" added Added: GenreNr (0..255) 1.0.136: Changed: the program was a normal windows program that gave its output to the console, this is all usefull but it has one minor drawback. when running in console mode it does not show the console command reply, even tho it writes to the console. This makes no difference for any ftp server program as far as I know. But I liek to see some console reply. Fixed: ReplyOK and ReplyBad didnt show all the lines properly terminated by a CR LF. Thus the client FTPD didnt display it coorectly. 1.0.137: Added: Recognition of badly filled in DISK%N/09] in a diz file. 1.0.138: Added: Recognition of BRD01/02 badly filled in diz file. 1.0.139: Changed: DISKS: 1/5 and similar patterns didnt get recognized properly. 1.0.140: Changed: for ioFTPD: OnUploadComplete didnt work as it should. post stor also didnt. Due to the fact that io has the just uploaded file still locked and that OnUploadComplete suffices by itself I skip this post option completely. 1.0.141: Removed: SetDirDate= option removed so that the date is always set to when ftplogger was run. Added: DateToLast= option added to set the date of the dir to the date of the last non tag file/dir. 1.0.142: Changed: [*/7] is now recognised as a diz count. Added: NTFS always fiddles with the dates/times as soon as you do somethign with a file. This updates the dates/times on a dir as well. This is annoying if want to keep the dirs sorted on date. So now the date/time of uploaded file sets the date/time of the messagefile, .raidenftpd.acl file, the tags and the dir where the file resides in, as well as the parent dir tags. Changed:InDirDelete= and InParentDelete= can now be used multiple times (with wildcards of course). Removed: DateToLast= option is no more needed. 1.0.143: Fixed: zip/rar file date/time wasnt properly set in all occasions Changed: in multiple deep dirs (CD1,CD2,.. 0day, ..) the dir date is set by ntfs if the dir itself is changed of date. This is not what I want so I reset the dir date of the parent dir to what it was before. 1.0.144: Changed: Priority of some diz recogniser strings so that some that had a bad count now count correctly. 1.0.145: Fixed: %[MP3Year] cookie was incorrect 1.0.146: Changed: ZLib 1.22 replaced by ZLib 1.23 so some zips that went bad or didnt extract now should go good. 1.0.147: Changed: default logline slightly changed. 1.0.148: Added: Option Files : nr and [xx-nr] to diz check 1.0.149: Changed: " parsing in commandline, not FILE="merge://"blahblah"" gets properly recognized as "merge://"blahblah"" instead of as "merge://" Added: Support for merge:// as used in Gene6 ftp server. It is normal under gene6 that if a file is uplaoded in a merged dir that it lands in the first existing dir of the merge dirs, here I take the first file I find that matches 1.0.150: Fixed: .missing creation didnt work anymore. Removed: InDirComplete= and InDirCompletedRemove= Fixed: InParentDelete= was not working, it delete the same as InDirDelete= 1.0.151: Fixed: when FILE="..." was the last argument the last " was still part of the filename, this the filechecking did nothing. 1.0.152: Readded: due to requests I have readded the InDirComplete= yet is not used in dupe dir checking, it is only a tag that gets created when a release is completed. 1.0.153: Readded: due to requests I have readded InDirCompletedRemove (default = FALSE). If you use it to delete the InDirComplete tag then OnDirCreated will not be able to check for a dupe dir on directory level (it will when it checks against the files tho). 1.0.154: Added: [01 * 2,78MB recognition. Changed: Improvement of some other diz masks. 1.0.155: Added: - 01/04] and so recognition. 1.0.156: Changed: SizeAvailable was 0 for diz dirs. 1.0.157: Added: 01x.5.00 MB and such recognition in file_id.diz 1.0.158: Fixed: Cookieformatting went wrong in certain occasions. Changed: SizeFormat now follows C printf encoding. Default format changed to %01.0f%s. Check out FTPServerTools.ini for the details. 1.0.159: Fixed: single % issue that was not a cookie went wrong. Added: ioRecache is now build into FTPLogger to recache the parent dir, otherwise you will not see parent tags. 1.0.160: Fixed: SizeFormat incorrectly showed K instead of M Changed: SizeType added (See FTPServerTools.ini) options: Auto, Bytes, KBytes, MBytes, GBytes Fixed: refreshing the vfs files in ioftp could cause a crash Added: SizeType cookie which you can prepend before your Bytes word it is one of: ' ','K','M','G' 1.0.161: Fixed: Diz recognition added 1.0.162: Fixed: Diz recognition added 1.0.163: Fixed: Diz recognition added 1.0.164: Fixed: Diz recognition added 1.0.165: Fixed: Diz recognition category added so that it now recognises words with disk and file in it with another priority (FOSI) 1.0.166: Fixed: Crash could happen on a certain diz. 1.0.167: Fixed: Case sensitive files in a dir could cause extra tag to appear.