/* MiamiDxOffline.yam - Go offline in MiamiDX
 *
 * $VER: MiamiDxOffline.yam 1.01 (15.6.01) © H. van der Ree <hivdree@uwnet.nl>
 *
 * This script is used after new mail is send or downloaded. It is importend
 * that the option 'wait for ' is NOT ticked when the argument SENT is supplied,
 * otherwise YAM will be locked!
 */

OPTIONS RESULTS

PARSE ARG args .

interface = GETVAR(MIAMIINTERFACE, "GLOBAL")
miamiport = "MIAMI.1"
file = "YAM:Rexx/YahooGroupsScanner.rexx"

IF pos("SEND", upper(args)) = 1 THEN
DO
  CALL SETVAR(YAMSTARTED, "YES", "GLOBAL")
  ADDRESS "YAM"
  changedyamstatus = GETVAR("CHANGEDYAMSTATUS", "GLOBAL")
  IF changedyamstatus = "YES" THEN
  DO
    IF OPEN(FS, 'T:YAMSTATUSLIST', 'R') THEN
    DO
      SETFOLDER 'Outgoing'
      FOLDERINFO STEM folder.
      LISTSELECT NONE
      orgmsgid = READLN(FS)
      DO i = 0 TO folder.TOTAL - 1
        SETMAIL i
        MAILINFO STEM mail.
        IF POS(orgmsgid, mail.MSGID) ~= 0 THEN
        DO
          MAILSTATUS W
          orgmsgid = READLN(FS)
        END
      END
      CALL CLOSE(FS)
    END
    CALL DELETEVAR("CHANGEDYAMSTATUS", "GLOBAL")
    ADDRESS COMMAND 'SYS:C/Yam2NN POST ALL'
    ADDRESS COMMAND 'delete >NIL: "T:YAMSTATUSLIST"'
  END
  MAILCHECK MANUAL
  EXIT 0
END

IF pos("NEWS", upper(args)) = 1 THEN
DO
  ADDRESS COMMAND 'SYS:c/Yam2NN'
  EXIT 0
END

/* Don't go offline if one of these applications is running */
ports = "IBROWSE VOYAGER AMFTP.1 AWebControlPort ATC_MAIN ATC_TRADER.1"

action = GETVAR(YAMSTART, "GLOBAL")
IF action = "YES" THEN
DO
  DO i = 1 TO WORDS(ports)
    IF SHOW('P', WORD(ports, i)) THEN CALL LastBits
  END

  IF SHOW('P', miamiport) THEN
  DO
    ADDRESS VALUE miamiport
    ISONLINE interface
    IF RC = 1 THEN
    DO
      OFFLINE interface
    END
  END
END

LastBits:

CALL DELETEVAR(YAMSTART, "GLOBAL")
CALL DELETEVAR(YAMSTARTED, "GLOBAL")

IF EXISTS(file) THEN
DO
  ADDRESS REXX file
END

EXIT 0
