/* mAD dELETE v 0.01c by mAd mOOse / sUPREME */ parse arg node options results signal on error; signal on syntax; signal on ioerr address value 'AERexxControl'node tr=transmit;qu=query;sm=sendmessage;gc=getchar;gu=getuser cls = d2c('12') back = '08'x up=' ' gu 122; lines=result gu 131; args=result gu 127; confloc=result gu 100; user=result gu 510; conf=result tr cls tr ' ' tr 'Welcome to mAD dELETE v 0.01c by mAd mOOse / sUPREME' tr '' if ~exists('Doors:mAdmOOse/mADdELETE.cfg') then do; tr "Couldn't find config, using defaults!"; signal def;end sm 'Reading config file..' call open(cfg,'Doors:mAdmOOse/mADdELETE.cfg','R') temp=readln(cfg) sm ',' max=readln(cfg) sm '.' pw=readln(cfg) sm '.' names=readln(cfg) sm '.' if names='NONAMES' then do; tr 'Ok!'; signal ok; end tr 'Ok!' tr '' tr 'User online: 'user sm 'Checking name..' do a=1 to names name.a=readln(cfg) sm '.' if name.a=user then do; tr 'Name is OK!'; signal chkpw; end end close(cfg) tr 'Name is NOT OK!' signal slut chkpw: noc=readln(cfg) sm 'Reading the rest of the config..' do a=1 to noc cloc.a=readln(cfg) sm '.' end tr 'Ok!' close(cfg) if pw='NOPASSWORD' then signal ok qu 'Enter password: ' password=result if pw=password then do; tr 'Password is OK!'; signal ok; end tr 'Password is NOT OK!' signal slut ok: tr ''; top=0 do a=1 to max if exists(confloc'Dir'a) then top=a end tr '' if top>1 then do qu 'Delete from which Dir file (1-'top', CR='top') ? ' to=result if to=0 then top=0 if to0 then top=to end if top=0 then do; tr 'No files found!'; signal slut; end call open(list,confloc'Dir'top,'R') sm 'All, Manual (M/a) ? ' gc k=upper(result) if k='A' then do; tr 'All'; signal all; end tr 'Manual' tr '' sm 'Listing Dir'top'...' if eof(list) then do; tr 'No files found'; signal slut; end tr ''; tr ''; n=1; ll=1 do n=1 to 1; end; tag=1 tr cls tr up do forever do b=1 to lines-1 l=readln(list) tr l if eof(list) then signal menu ll=ll+1 putuser 526 putustr 1 end ok=0 do until ok=1 sm 'F]lag file(s), D]elete file(s), C]lear, Q]uit or CR ? ' gc k=upper(result) if k='Q' then do; tr ''; signal slut; end if k='N' then do; tr ''; signal slut; end if k='Y' then ok=1 if k='C' then do; tr cls; ok=1; end if k='F' then call tag if k='D' then signal sd if k~='F' then ok=1 end tr up'' sm ' ' tr up'' mklar: do n=0 to 0; end end menu: sm 'F]lag file(s), D]elete file(s), C]lear, Q]uit or CR ? ' gc k=upper(result) if k='Q' then do; tr ''; signal slut; end if k='N' then do; tr ''; signal slut; end if k='Y' then ok=1 if k='C' then do; tr cls; ok=1; end if k='F' then call tag if k='D' then signal sd tr '' sm ' ' tr '' if k~='F' then signal slut signal menu def: max=10 axx=255 pw='NOPASSWORD' names='NONAMES' signal ok slut: tr '' tr 'Thanks for using mAD dELETE v 0.01c by mAd mOOse / sUPREME' tr '' shutdown exit syntax: ioerr: error: tr '' tr 'Some kind of problem have been found on line 'sigl'! Please tell SysOp!' tr 'Error: 'errortext(sigl) tr '' signal slut tag: tr '['lines+1';1H ['lines';1H' sm 'Tags:  'tag' Filename: ' board=''; pos=0 shit='' do until shit='0d'x gc shit=result if shit=back & pos~=0 then do sendstring back' 'back pos=pos-1 if length(board)>0 then board=left(board,length(board)-1) end if pos~= 16 & shit~=back & shit~='0d'x then do board=board''shit sendstring shit pos=pos+1 end end a=upper(board) if a~='' then do; file.tag=a; tag=tag+1; end sm '['lines+1';1H ['lines+1';1H' return sd: if tag=1 then do; tr 'No files flaged!'; signal slut; end tr '' tr '' tr 'Files flagged:' tr '' do a=1 to tag-1 tr ' 'file.a end tr '' sm 'Reading Dir'top'..'; cu=0 if ~exists(confloc'Dir'top) then do; tr 'Dir'top' not found!'; signal slut; end close(list) call open(list,confloc'Dir'top,'R'); li=0; d=0 do until cu=1 listan.li=readln(list); li=li+1 if eof(list) then cu=1 d=d+1; if d=50 then do; sm '.'; d=0; end end tr 'Ok!' sm 'Removing file(s) from Dir'top'..' call open(ot,temp'Dir'top,'W') a=0; fo=0; lok=0; skip=0; c=0; max=li; li=0; mt=tag do until lok=1 l=listan.li; li=li+1 c=c+1; if c=50 then do; sm '.'; c=0; end if word(l,2)='P' | word(l,2)='N' | word(l,2)='F' & word(l,1)~='' then do skip=0 if skip=0 then do fil=upper(word(l,1)) do b=1 to mt if fil=file.b then skip=1 end end end if li=max then do; lok=1; skip=1; end if skip=0 then writeln(ot,l) end sm '.' close(ot) close(list) address command "C:Delete "||confloc||"Dir"||top address command "C:Copy "||temp||"Dir"||top||" "||confloc||"Dir"||top address command "C:Delete "||temp||"Dir"top tr 'Ok!' sm 'Delete files from HD (Y/n) ? ' gc k=upper(result) if k='N' then do; tr 'No'; signal slut; end tr 'Yes' tr '' tr 'Deleting file(s) from HD..' tr '' conf=conf+1 do b=1 to mt-1 sm ' 'file.b'...' if ~exists(cloc.conf''file.b) then tr 'Not found!' if exists(cloc.conf''file.b) then do; address command 'C:Delete 'cloc.conf''file.b; tr 'Ok!'; end end sm 'Create dummy files (Y/n) ? ' gc k=upper(result) if k='N' then do; tr 'No'; signal slut; end tr 'Yes' sm 'Creating dummy files..' do b=1 to mt-1 open(dum,cloc.conf''file.b,'W') writeln(dum,'DUMMY') close(dum) end signal slut all: tr '' sm 'Deleting Dir'top'...' close(list) open(test,confloc'Dir'top,'W') close(test) tr 'All done!' signal slut