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

Reply via email to