With reference to 'Kill the noise' by Mike Leavitt
Yes you were right Mike, it was poor.
regards
Jules
take two...
--- 8< --- Cut Here --- 8< ---
/*
$VER: 1.01 CleanMessage.rexx (28-03-2001)
$AUTHOR: by Jules ([EMAIL PROTECTED]) ©2001
$DESCRIPTION:Kill the noise
This script was written to remove un-wanted material (adverts)
from messages. This is an early version so it carries on guarantee.
To use this script you will need:
rexxreqtools.library (v37.95)
Snoopdos (aminet/util/moni/SnoopDos.lha) (in libs: )
Change v2.39 (aminet/text/misc/Change.lha) by Dirk Stoecker (put it in c: )
FreshBar 1.1 (On aminet/util/rexx/FreshBar.lha) (put it in c:)
If SnoopDos is not in your system path you will need to change the
'SNOOP' path to the full path of your copy.
To run this script:
Open MD-2s' message list window, then select but do not open the message
from which you wish to start the cleaning process.
Then; in a shell window, type:
rx path_to_script/CleanMessage.rexx N/A
example: rx REXX:CleanMessage.rexx 100
(if you do not wish to see any output then use: rx >NIL: REXX:CleanMessage.rexx 100)
then press return.
or you can add it to a button.
*/
OPTIONS RESULTS
PARSE ARG TARGETMESS
IF ~SHOW('L','rexxsupport.library') THEN CALL ADDLIB("rexxsupport.library", 0, -30, 0)
/* Snoopdos Path */
SNOOP='SNOOPDOS'
IF TARGETMESS <1 THEN DO
URQT=1
CALL ADDLIB("rexxreqtools.library", 0, -30, 0)
NL = '0a'x
CALL RTGETLONG('1','How Many Messages'NL'do you wish to clean',
,'Kill the noise by Jules',"_Clean|_Leave",'RTGL_MIN=1 RTGL_MAX=250')
IF RTRESULT~=1 THEN EXIT
TARGETMESS=RESULT
END
/* Default Path */
SNOOPPATH='RUN >NIL: "'||SNOOP||'" HIDEMETHOD=TOOLSMENU HIDE'
/* Is Microdot running */
IF ~SHOW('P','MD.1') THEN EXIT
/* The counter */
TARGETMESS=STRIP(TARGETMESS)
CALL PRAGMA 'D',FILEPATH
IF EXISTS('T:SnoopMD') THEN CALL DELETE('T:SnoopMD')
/* Is SnoopDos running; if not, start it */
IF ~SHOW('P','SNOOPDOS') THEN DO
ADDRESS COMMAND SNOOPPATH
ADDRESS COMMAND 'WAITFORPORT SNOOPDOS'
END
/* Set up Snoopdos */
ADDRESS SNOOPDOS
FUNCTIONS NONE;NOONLYSHOWFAILS;NOSHOWCLI;NOMONITORPACKETS
NOPACKETDEBUGGER;NOMONITORROMCALLS;IGNORESHELL;NOUSEDEVICENAMES
NOSHOWFULLPATH;OPEN;SHOWFULLPATH;CLEARBUFFER;FORMAT "%255n";ENABLE
/* Make the list of Files */
ADDRESS MD.1
DO I=1 TO TARGETMESS
IF I<2 THEN READSELECTEDMSGS
ELSE GOTOMSG NEXT
END ; DROP I
ADDRESS COMMAND 'WAIT'
ADDRESS SNOOPDOS;DISABLE;SAVEBUFFER "T:SnoopMD";QUIT
ADDRESS COMMAND 'WAIT'
IF ~EXISTS('T:SnoopMD') THEN EXIT
/* Find the correct line. */
PDRAW="";TARGETMESS=0
CALL OPEN('MD','T:SnoopMD','R')
CALL OPEN('DT','T:DETACH','W')
DO UNTIL EOF('MD')
PDRAW=STRIP(READLN('MD'),'B')
IF POS('DBX_',PDRAW)>1 THEN DO
IF EXISTS(PDRAW) THEN DO
CALL WRITELN('DT',PDRAW)
TARGETMESS=TARGETMESS+1
END
END
END
CALL CLOSE('MD') ; CALL CLOSE ('DT')
CALL DELETE('T:SnoopMD')
ADDRESS COMMAND "RUN >NIL: C:FreshBar"
ADDRESS COMMAND 'WAITFORPORT FRESHBAR_REXX.1'
ADDRESS FRESHBAR_REXX.1
CREATEBARWINDOW '"Kill the noise"' ; WINDI1 = RESULT
ADDBAR WINDI1 TARGETMESS NAME 'Post:' ; BARDI1 = RESULT
SETBARWINDOWWIDTH WINDI1 200
SETPROGRESSMODE WINDI1 BARDI1 2
OPENBARWINDOW WINDI1
COUNTDOWN=TARGETMESS-1
CALL OPEN('DT','T:DETACH','R')
DO UNTIL EOF('DT')
SETCURRENT WINDI1 BARDI1 TARGETMESS-COUNTDOWN
PDRAW=STRIP(READLN('DT'),'B')
IF PDRAW>" " THEN CALL LETSGETTOIT
COUNTDOWN=COUNTDOWN-1
END
CALL CLOSE('DT')
QUIT
CALL DELETE('T:DETACH')
IF URQT=1 THEN CALL rtezrequest("Completed","Thank you","Kill the noise!")
ELSE SAY 'Complete.'
EXIT
LETSGETTOIT:
CALL OPEN('TF',PDRAW,'R')
HOWLONG=WORD(STATEF(PDRAW),2)
TFILE=READCH('TF',HOWLONG+1)
CALL CLOSE('TF')
EDITO.1 ='------------------------ Yahoo!'
EDITO.2 ='--_->'
EDITO.3 ='__________________________________________________'
EDITO.4 ='yahoo.com/?.refer=text'
EDITO.5 ='________________________________________________'
EDITO.6 ='mail.yahoo.ie'
EDITO.7 ='________________________________________________'
EDITO.8 ='mail.yahoo.com'
EDITO.9 ='Your use of Yahoo! Groups is subject to http://docs.yahoo.com/'
EDITO.10='info/terms/'
EDITO.11='________________________________________________'
EDITO.12='MSN Hotmail at http://www.hotmail.com.'
DO J=1 TO 11 BY 2
AA=POS(EDITO.J,TFILE) ; JJ=J+1 ; BB=POS(EDITO.JJ,TFILE) ; CC=LENGTH(TFILE)
IF AA>0 & BB>AA THEN TFILE=DELSTR(TFILE,AA,(CC-AA)-(CC-BB)+LENGTH(EDITO.JJ))
END
CALL OPEN('MD','T:MESSHELD','W') ; CALL WRITELN('MD',TFILE) ; CALL CLOSE('MD')
EDITO.1='"> >"' ; EDITO.2='">>"' ; EDITO.3='"Re: Re:"' ; EDITO.4='"Re:"'
EDITO.5='"<sb>"' ; EDITO.6='" "' ; EDITO.7='"<tsb>"' ; EDITO.8='" "'
DO J=1 TO 9 BY 2 ; JJ=J+1
ADDRESS COMMAND 'CHANGE FROM T:MESSHELD '||EDITO.J||' TO T:MESSHELD '||EDITO.JJ
END
EDITO.1='"\0A\0A\0A"' ; EDITO.2='"\0A\0A"' ; EDITO.3='">\0A>\0A>\0A"' ; EDITO.4='">"'
DO J=1 TO 3 BY 2 ; JJ=J+1
DO I= 1 TO 4
ADDRESS COMMAND 'CHANGE FROM T:MESSHELD '||EDITO.J||' TO T:MESSHELD '||EDITO.JJ
END
END
CALL OPEN('TF','T:MESSHELD','R')
HOWLONG=WORD(STATEF(PDRAW),2) ; TFILE=READCH('TF',HOWLONG+1)
CALL CLOSE('TF')
CALL OPEN('DF',PDRAW,'W') ; CALL WRITECH('DF',TFILE) ; CALL CLOSE('DF')
CALL DELETE('T:MESSHELD')
RETURN
/* CR=0A '=27 "=22 */
--- 8< --- And here --- 8< ---
__________________________________________________________________
MicroDot-II Mailing List - http://www.vapor.com/md2/
MicroDot-II FAQ: http://faq.vapor.com/md2/
Listserver Help: mailto:[EMAIL PROTECTED]?Subject=HELP
Unsubscribe....: mailto:[EMAIL PROTECTED]?Subject=UNSUBSCRIBE