/*
   $VER: SendBinaryFromDOpus.rexx 1.0 (7.7.96) Copyright (c) Nils Görs

    Dies ist ein  ARexx-Skript um eine Datei die beim DOpus selektiert
    wurde mittels Zodiac's Point zu verschicken.
    Hierbei können Sie die Datei entweder an den  Empfänger der  Nach-
    richt schicken  die Sie gerade  angewählt haben, oder  einen bzw.
    mehrere Empfänger aus der Aliasliste auswählen.


    Sie dürfen dieses Skript beliebig kopieren,  solange  es  zusammen
    mit  Zodiac's  Point  eingesetzt wird, aber verändern Sie es bitte
    nicht ohne Erlaubnis des Autors.

    Sie erreichen den Autor wie folgt:

       Nils Görs              Tel. : +49 (0)202 78xxxx
       Kaiserstr. 97a         EMail: N.Goers@Art-Line.de
       42329 Wuppertal          oder über das ZP-Support-Brett.

   Verwenden Sie bitte nach Möglichkeit elektronische Post!


   Installation:

    Es müssen dem Skript zwei Parameter übergeben werden. Der erste
    muß der Name des Files sein, welches Sie versenden möchten und
    der zweite muß mit dem Arexx-Port von DOPUS gefüllt werden.

    Bei mir sieht der Aufruf, aus DOPUS, wie folgt aus:

    Sys:Rexxc/RX REXX:DOpus/SendBinaryFromDOpus.rexx {f} {p}
*/


/* Wie breit bzw. hoch soll das Fenster sein ? (0 = default)       */
Fensterbreite = 600
Fensterhoehe  = 400

/*******************************************************************
 *      Bitte unterhalb dieser Zeile nichts mehr verändern!        *
 *******************************************************************/

NL = '0a'x
fenster.height  = fensterhoehe
fenster.width   = fensterbreite
fenster.font    = 'SCREEN'
fenster.sort    = 'TRUE'

OPTIONS RESULTS

parse ARG Filename OPUS .



IF Filename == "" THEN EXIT
 IF OPUS == "" THEN EXIT

fenster.pubscreen = OPUS



FileName = COMPRESS(Filename,'"')

/* öffne alle nötigen libraries - wenn nicht möglich Programmende */

IF ~SHOW('LIBRARIES','rexxreqtools.library') THEN
  IF ~ADDLIB('rexxreqtools.library',0,-30,0) THEN
    EXIT

IF ~SHOW('LIBRARIES','rexxtricks.library') THEN
  IF ~ADDLIB('rexxtricks.library',0,-30,0) THEN
    EXIT

/* hier kommt eine SNR (Spezial Nils Routine) um zu sehen, welche ZPoint-Ports
   geöffnet sind */

PortList = SHOW('Ports')

i = 0
more = 1
positionnew = 1
DO WHILE more
Position = POS('ZPoint',PortList,Positionnew)
If Position == 0 THEN more = 0
                 ELSE DO
                  i = i+1
                  PortList= DELSTR(PortList,1,Position-1)
                  PortName.i = SUBWORD(PortList,1,1)
                  PortList=SUBWORD(PortList,2,)
                 END
END
PortName.0 = i

/* Ist Zodiac's Point geöffnet ??? */
IF PortName.0 == 0 THEN DO
CALL rtezrequest("Sie sollten Zodiac's Point starten,",
               NL"wenn Sie dieses Skript nutzen möchten!", "Mach ich",,"rt_pubscrname="OPus)
 
 EXIT
END


IF PortName.0 > 1 THEN DO
 /* Welchen Port von ZP soll ich nutzen ?? */
 fenster.title       = "Bitte wählen Sie einen Zodiac's Point Port"
 fenster.multiselect = "FALSE"

  IF VIEWLIST('PortName','fenster','destvar') THEN DO
   IF destvar.gadget == 0 THEN CALL EXIT
    ADDRESS value destvar.1
  END
END
ELSE ADDRESS value Portname.1

/* alles klar, auf gehts !! */

'GUILOCK text="es läuft SendBinaryFromDOpus.rexx"'

WHICHLEVEL
 IF result ~= "BOARD" THEN DO
   requestnotify "Bitte begeben Sie sich in ein Brett."
   EXIT
 END


dateiname = RXTR_FILEPART(FileName)


BOARDINFO LABEL
IF INDEX(result,'(Spool') == 0 THEN MESSAGEINFO AUTHOR
                               ELSE MESSAGEINFO RECEIVER
 Receiver = result
 Email = WORD(receiver,1)

IF Receiver == "RESULT" THEN CALL _UseAlias

CALL rtezrequest("Möchten Sie wirklich die Datei:" Dateiname,
               NL"an" receiver "schicken?", "_Ja|_Aliasliste|_Nein ",,"rt_pubscrname="OPus)


 SELECT
   WHEN result == 1 THEN
        WRITEMESSAGE "FILE" Filename "RECEIVER" email "SUBJECT" Dateiname "BINARY"
   WHEN result == 2 THEN CALL _UseAlias
   OTHERWISE
   NOP
 END
GUILOCK OFF
EXIT

_UseAlias:
PATHINFO HOME
HomePath = result
bool = RXTR_READFILE(HomePath||"/alias.zp",AliasListe)
 IF bool == 0 THEN DO
  requestnotify "Kann" HomePath||"/alias.zp nicht öffnen!"
  EXIT(5)
 END

j = 0

DO i = 1 to AliasListe.0
 IF ABBREV(AliasListe.i,"A:") THEN DO
  j = j+1
  ReceiverList.j = SUBSTR(AliasListe.i,3,LENGTH(AliasListe.i)-2)
 END
END

ReceiverList.0 = j

fenster.title       = 'Bitte wählen Sie einen Empfänger'
fenster.multiselect = "TRUE"

IF VIEWLIST('Receiverlist','fenster','destvar') THEN DO
 IF destvar.gadget == 0 THEN CALL _EXIT
  IF destvar.0 > 1 THEN DO
     email = destvar.1
     CALL RXTR_STEMREMOVE(destvar,1,1)
     CALL RXTR_WRITEFILE('t:RCVFILE',destvar)
     WRITEMESSAGE "FILE" Filename "RECEIVER" email "SUBJECT" Dateiname "RCVFILE t:RCVFILE" "BINARY"
     ADDRESS COMMAND "delete t:RCVFILE QUIET"
     CALL _EXIT
  END
     email = destvar.1
        WRITEMESSAGE "FILE" Filename "RECEIVER" email "SUBJECT" Dateiname "BINARY"

END
_EXIT:
GUILOCK OFF
EXIT
/*EOS*/
