/* ARexx - Script für MicroDot */ /* ** $VER: RequestFC.mdmrexx 1.0 (3.6.94) ** ** ** Beschreibung: ** ------------- ** Das Script durchsucht eine 'POINT-INFO' oder 'Re: INHALT' Nachricht ** von 'MAPS' der Boxsoftware 'Fastcall' nach requestbaren Dateien. Alle ** gefundenen Dateien werden alphabetisch sortiert in einem Fenster auf ** dem Screen von 'MicroDot' dargestellt. Hier können Sie die gewünschten ** Dateien auswählen und requesten, Multiselect ist dabei möglich. Die ** Dateien werden per 'REQUEST' von 'MAPS' angefordert. Leider muß für ** jede Datei eine eigene Mail abgeschickt werden, weil der ARexx-Port ** von 'MicroDot' das Verschicken von mehrzeiligen Mails zur Zeit noch ** nicht unterstützt. ** ** ** Installation: ** ------------- ** 'RequestFC.mdmrexx' soll über das ARexx-Menü von 'MicroDot' aufrufbar ** sein und muß deshalb nach 'MicroDot/Rexx' kopiert werden. Im Menü ** 'Rexx/Nachrichten-Makros' erscheint dann der Menüpunkt 'RequestFC'. ** ** Am Anfang des Scripts können einige Parmeter eingestellt werden: ** ** filelaenge - Stellt ein, ob die Filelängen im Fenster angezeigt ** werden sollen. 0 = aus, 1 = ein ** ** brettname - Stellt ein, ob die Brettnamen im Fenster angezeigt ** werden sollen. 0 = aus, 1 = ein ** ** brettnamelaenge - Stellt die anzahl der Zeichen des Brettnamens ein ** ** listenfont - Stellt ein, welcher Font für die Liste verwendet ** werden soll. 'DEFAULT' = Standard-Systemfont ** 'SCREEN' = Screen-Font ** fensterbreite = Stellt die Breite des Listview-Fensters ein ** ** Das Script verwendet die 'rexxtricks.library', die Library ** liegt dem Paket bei und muß nach 'LIBS:' kopiert werden. ** ** ** Autor: ** ------ ** Jürgen Kohrmeyer ** Oststraße 2 ** 49143 Bissendorf ** ** E-Mail: J_Kohrmeyer@wilam.north.de ** */ /*************************************************************************/ filelaenge = 1 /* 0 = aus, 1 = ein */ brettname = 1 /* 0 = aus, 1 = ein */ brettnamelaenge = 28 /* Anzahl Zeichen des Brettnamens */ listenfont = 'DEFAULT' /* 'DEFAULT' oder 'SCREEN' */ fensterbreite = 600 /* Breite des Listview-Fensters */ /*************************************************************************/ /* Ergebnisse anfordern */ OPTIONS RESULTS /* rexxtricks.library öffnen */ IF ~SHOW('LIBRARIES','rexxtricks.library') THEN IF ~ADDLIB('rexxtricks.library',0,-30,0) THEN EXIT(10) /* rexxsupport.library öffnen */ IF ~SHOW('LIBRARIES','rexxsupport.library') THEN IF ~ADDLIB('rexxsupport.library',0,-30,0) THEN EXIT(10) /* Absender und Betreff auslesen */ GETCURRENTMAILHEADER ABS IF rc ~= 0 THEN DO BEEP() EXIT(10) END absender = result GETCURRENTMAILHEADER BET IF rc ~= 0 THEN DO BEEP() EXIT(10) END betreff = result /* Prüfen, ob es eine 'Re: INHALT' oder eine */ /* 'POINT-INFO' Nachricht von 'MAPS' ist */ error = 1 IF MATCHPATTERN(absender,'MAPS@#?') THEN IF MATCHPATTERN(betreff,'RE:#?INHALT') | MATCHPATTERN(betreff,'POINT-INFO') THEN error = 0 IF error THEN DO BEEP() EXIT(10) END /* Nachricht auslagern */ EXTRACTCURRENTMAIL 'T:Request-Rexx.temp' IF rc ~= 0 THEN DO BEEP() EXIT(10) END /* Auslagerungsdatei öffnen */ IF OPEN('tempdatei','T:Request-Rexx.temp','READ') = 0 THEN EXIT(10) /* Je nach Nachricht das richtige Unterprogramm aufrufen */ IF MATCHPATTERN(betreff,'POINT-INFO') THEN CALL newfiles ELSE CALL inhalt /* Auslagerungsdatei schließen und löschen */ dummy = CLOSE('tempdatei') dummy = DELETE('T:Request-Rexx.temp') /* ListView-Fenster Definition */ GETMDPUBSCREENNAME screenname = result windef.title = 'Zu requestende Dateien auswählen' windef.postext = '_Requesten' windef.negtext = '_Abbrechen' windef.pubscreen = screenname windef.sort = 'TRUE' windef.font = listenfont windef.width = fensterbreite /* ListView-Fenster öffnen */ IF VIEWLIST('string','windef','destvar') THEN DO /* Alle ausgewählten Dateien requesten */ DO i = 0 TO destvar.count-1 x = LSEARCH(destvar.i,'string') IF x ~= (-1) THEN DO SENDSHORTMAIL 'MAPS' '"'||request.x||'"' 'SUBJECT REQUEST' END END /* Script beenden */ EXIT(0) /* 'POINT-INFO' Nachricht von 'MAPS' nach requestbaren Files durchsuchen */ newfiles: anzahl = 0 DO WHILE ~EOF('tempdatei') zeile = READLN('tempdatei') IF LEFT(zeile,11) = 'File Name :' THEN string.anzahl = LEFT(SUBSTR(zeile,13),31) IF LEFT(zeile,11) = 'KBytes :' THEN kbytes = SUBSTR(zeile,13)||'k' IF LEFT(zeile,11) = 'Brett :' THEN aktuellbrett = SUBSTR(zeile,13) IF LEFT(zeile,11) = 'Request :' THEN DO request.anzahl = SUBSTR(zeile,13) IF filelaenge THEN string.anzahl = string.anzahl RIGHT(kbytes,4) IF brettname THEN string.anzahl = LEFT(aktuellbrett,brettnamelaenge) string.anzahl anzahl = anzahl+1 END END string.count = anzahl RETURN /* 'RE: INHALT' von 'MAPS' nach requestbaren Files durchsuchen */ inhalt: anzahl = 0 DO WHILE ~EOF('tempdatei') zeile = READLN('tempdatei') IF LEFT(zeile,17) = 'Inhalt von Brett:' THEN aktuellbrett = SUBSTR(zeile,19) IF DATATYPE(WORD(zeile,3)) = 'NUM' THEN DO string.anzahl = SUBSTR(zeile,47) request.anzahl = aktuellbrett string.anzahl string.anzahl = LEFT(string.anzahl,31) IF filelaenge THEN string.anzahl = string.anzahl RIGHT(WORD(zeile,3),4)||'k' IF brettname THEN string.anzahl = LEFT(aktuellbrett,brettnamelaenge) string.anzahl anzahl = anzahl+1 END END string.count = anzahl RETURN