/*) Selective Unban v1.0 for Grapevine 2.0 \\\ Written by Josef Faulkner (panther@gate.net) IRC: Arexx /// \\\ Requires WB3.0 or higher to run. Bug me and ill make it work with 2.0 /// \\\ Leaves the multiview window open until you close it. Not sure /// how I can find out what copy of multiview it is to send an arexx \\\ command to close it. /// \\\ This program does a banlist, then opens an AmigaGuide window with the /// list of bans. Simply click on one or more bans to unban the user. \\\ (*/ options results if ~show('L','rexxsupport.library') then if ~addlib('rexxsupport.library',0,-30,0) then do 'echo You need rexxsupport.library version 30 or greater in libs:' exit 10 end parse arg cmds parse source . . thisscript . thissscript=strip(thisscript) if word(cmds,1)~='¶' then do address command 'run >NIL: rx' thisscript '¶' address() cmds exit end else do parse var cmds .' 'addr' 'cmd' '. address(addr) cmd=upper(cmd) if cmd='ALL' then do c=0 ban.1='' ban.2='' ban.3='' call open(1,'t:gv.servfile',r) do until eof(1) text=readln(1) if (word(text,1)='«Ban')&(word(text,4)='Ban') then do c=c+1 ban.c=word(text,7) if c=3 then do 'unban' ban.1 ban.2 ban.3 ban.1='' ban.2='' ban.3='' c=0 end end end end else do 'closelog' call delete('T:gv.servfile') 'log t:gv.servfile' 'banlist' call delay(150) 'closelog' call open(1,'t:gv.servfile',r) call open(2,'t:servfile.guide',w) call writeln(2,'@database unbanlist') call writeln(2,'@node "Main" "Ban Remover v1.0 Grapevine 2.0"') call writeln(2,'@{b}Selective Ban Remover for Grapevine 2.0@{ub}') call writeln(2,'by Josef Faulkner (panther@gate.net) IRC: Josef') call writeln(2,'') call writeln(2,'@{b}Current bans:@{ub} (click on one to remove the ban)') found=0 do until eof(1) text=readln(1) if (word(text,1)='«Ban')&(word(text,4)='Ban') then do parse var text .' '.' '.' '.' '.' '.' '.' 'ban' 'text call writeln(2,'@{"'ban'" rxs "address 'addr' ''unban 'ban'''"} 'text) end found=1 end end call close(1) text="address command 'run rx "thisscript" ¶ "address()" all'" call writeln(2,'@{"Unban All" rxs "'text'"}') call writeln(2,'@endnode') call close(2) if found then address command 'multiview t:servfile.guide PUBSCREEN Grapevine.1' else address command 'requestchoice "Selective UnBan" "No banlist info found in parsed log" Ok' end end exit