home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 109 / EnigmaAmiga109CD.iso / software / on-line / amirc2stricq / amirc2stricq.amirx next >
Text File  |  2000-02-09  |  21KB  |  568 lines

  1. /* $VER: AmIRC2STRICQ 1.2 by Lorens Johansson aka SnorsleX (SnorsleX@Home.se)
  2.               _       .  _   _     _       _  ___  _  .  _  _
  3.              |_| |\/| | |_) /       )     (_   |  |_) | /  / \
  4.              | | |  | | | \ \_     (_      _)  |  | \ | \_ \_\
  5. */
  6.  
  7. OPTIONS RESULTS
  8. PARSE ARG args
  9.  
  10. bold='02'x
  11. underline='1F'x
  12. inverse='16'x
  13. color='03'x
  14. cr='0d'x
  15. nl='0a'x        /* Not used */
  16. crnl='0d0a'x    /* Not used */
  17.  
  18. CALL LoadRexx
  19.  
  20. /*
  21. ADDRESS STRICQ.1
  22. GETVERSION
  23. IF ICQRC<0.1567 THEN DO
  24.     CALL Cecho('To old STRICQ, 0.1567+ is needed')
  25.     EXIT
  26. END
  27. */
  28.  
  29. IF LEFT(args,2)="A " THEN DO
  30.     aother=DELSTR(args,1,2)
  31.     SELECT
  32.         WHEN LEFT(UPPER(aother),5)="!HELP" THEN CALL Help
  33.         WHEN LEFT(UPPER(aother),5)="!MSG " THEN CALL Message_Normal(0)
  34.         WHEN LEFT(UPPER(aother),5)="!URL " THEN CALL Message_URL
  35.         WHEN LEFT(UPPER(aother),5)="!ADD " THEN CALL File_Add
  36.         WHEN LEFT(UPPER(aother),5)="!ADDR" THEN CALL File_AddReq
  37.         WHEN LEFT(UPPER(aother),5)="!CLEA" THEN CALL File_Clear
  38.         WHEN LEFT(UPPER(aother),5)="!FILE" THEN CALL File_List
  39.         WHEN LEFT(UPPER(aother),5)="!SEND" THEN CALL File_Send
  40.         WHEN LEFT(UPPER(aother),5)="!STAT" THEN CALL Status
  41.         WHEN LEFT(UPPER(aother),5)="!UINF" THEN CALL UserInfo
  42.         WHEN LEFT(UPPER(aother),5)="!MAKE" THEN CALL MakeList
  43.         WHEN LEFT(UPPER(aother),5)="!LIST" THEN CALL List
  44.         WHEN LEFT(UPPER(aother),5)="!DELE" THEN CALL DeleteUser
  45.         OTHERWISE CALL Message_Normal(1)
  46.     END
  47. END
  48. ELSE IF LEFT(args,2)="M " THEN DO
  49.     PARSE VALUE args WITH "M "aother
  50.     IF playsound=1 THEN ADDRESS COMMAND "run >NIL: "sound_player" "sound_message
  51. END
  52. ELSE IF LEFT(args,2)="O " THEN DO
  53.     PARSE VALUE args WITH "O "aother
  54.     ADDRESS STRICQ.1
  55.     GETCONTACT 'UIN='aother
  56.     /*AmIRC_Address>0 <- When working! */
  57.     IF SHOW("P","AMIRC.1") THEN CALL CechoS('[Online Notify] - 'ICQRC.NICK'('aother') is now online!')
  58.     ELSE IF showreqifnoamirc=1 THEN ADDRESS COMMAND 'requestchoice >NIL: TITLE "AmIRC2STRICQ" BODY "'ICQRC.NICK'('aother') is now online!" GADGETS "Ok"'
  59.     IF playsound=1 THEN ADDRESS COMMAND "run >NIL: "sound_player" "sound_online
  60. END
  61. ELSE IF LEFT(args,2)="F " THEN DO
  62.     PARSE VALUE args WITH "F "aother
  63.     ADDRESS STRICQ.1
  64.     GETCONTACT 'UIN='aother
  65.     /*AmIRC_Address>0 <- When working! */
  66.     IF SHOW("P","AMIRC.1") THEN CALL CechoS('[Offline Notify] - 'ICQRC.NICK'('aother') is now offline!')
  67.     ELSE IF showreqifnoamirc=1 THEN ADDRESS COMMAND 'requestchoice >NIL: TITLE "AmIRC2STRICQ" BODY "'ICQRC.NICK'('aother') is now offline!" GADGETS "Ok"'
  68.     IF playsound=1 THEN ADDRESS COMMAND "run >NIL: "sound_player" "sound_offline
  69. END
  70. ELSE IF LEFT(args,2)="D " THEN DO
  71.     PARSE VALUE args WITH "D "aother
  72.     ADDRESS STRICQ.1
  73.     GETCONTACT 'UIN='aother
  74.     CALL CechoS('[FileDirect Notify] - 'ICQRC.NICK'('aother') is sending you files!')
  75.     IF playsound=1 THEN ADDRESS COMMAND "run >NIL: "sound_player" "sound_filedirect
  76. END
  77. ELSE DO
  78.     /*AmIRC_Address>0 <- When working! */
  79.     IF SHOW("P","AMIRC.1") THEN DO
  80.         "getversion"
  81.         IF result<3.2 THEN DO
  82.             CALL Cecho('To old AmIRC, 3.2+ is needed')
  83.             EXIT
  84.         END
  85.  
  86.         uin=WORD(args,1)
  87.         msgtype=WORD(args,2)
  88.         filename=SUBWORD(args,3)
  89.  
  90.         ADDRESS STRICQ.1
  91.         GETCONTACT 'UIN='uin
  92.         nick=ICQRC.NICK
  93.  
  94.         IF OPEN(1,filename,"R") THEN DO
  95.             loop=1
  96.             DO UNTIL EOF(1)
  97.                 line.loop=READLN(1)
  98.                 IF line.loop~="" THEN DO
  99.                     IF SUBSTR(line.loop,LENGTH(line.loop),1)=cr THEN line.loop=DELSTR(line.loop,LENGTH(line.loop))
  100.                 END
  101.                 loop=loop+1
  102.             END
  103.             lines=loop-1
  104.             IF line.lines="" THEN lines=lines-1
  105.             CALL CLOSE(1)
  106.             CALL DELETE(filename)
  107.         END
  108.         ELSE DO
  109.             CALL Cecho('Error : Couldn''t open message file!')
  110.             EXIT
  111.         END
  112.  
  113.         /*IF opendccwin=1 THEN "SAY /QUERY STRICQ-Mess"*/
  114.         /*
  115.         Implemented:
  116.         1=Normal Message
  117.         14=Pager Message
  118.         Not: (from Doug)
  119.         #define MSG_MSG         0x0001 0001 Used to send a normal message, same for UDP and TCP
  120.         #define MSG_CHAT        0x0002 0002 Used to initiate a Chat session
  121.         #define MSG_FILE        0x0003 0003 Used to initiate a FileDirect session
  122.         #define MSG_URL         0x0004 0004 Used to send a URL message, same for UDP and TCP
  123.         #define MSG_REQ_AUTH    0x0006 0006 Used to request authorization to add to contact list
  124.         #define MSG_DENY_AUTH   0x0007 0007 Used to deny authorization to add to contact list
  125.         #define MSG_GIVE_AUTH   0x0008 0008 Used to grant authorization to add to contact list
  126.         #define MSG_ADDED       0x000C 0012 Used to notify that your UIN was added to a contact list
  127.         #define MSG_WEB_PAGER   0x000D 0013 Used to receive a web pager message from the white page
  128.         #define MSG_EMAIL_PAGER 0x000E 0014 Used to receive an EMail message from UIN@pager.mirabilis.com
  129.         #define MSG_ADDUIN      0x0013 0019 Used to send UINs from one client to another
  130.         #define MSG_GREETING    0x001A 0026 Used to send a greeting card
  131.         */
  132.         IF msgtype=14 THEN DO
  133.             PARSE VALUE line.1 WITH pm_name"þ"pm_unknown1"þ"pm_unknown2"þ"pm_email"þ"pm_unknown3"þ"pm_subject
  134.             CALL CechoS('[Pager Message] - From: 'pm_name' ('pm_email') 'pm_subject)
  135.             DO l=2 TO lines
  136.                 CALL CechoS('PM: 'DELSTR(line.l,LENGTH(line.l),1))
  137.             END
  138.         END
  139.         ELSE DO /* 1 = Normal Message */
  140.             DO l=1 TO lines
  141.                 IF POS('FE'x,line.l)>0 THEN DO
  142.                     PARSE VALUE line.l WITH part1"þ"part2
  143.                     CALL CechoS('['uin' ('nick')] - 'part1' 'part2)
  144.                 END
  145.                 ELSE CALL CechoS('['uin' ('nick')] - 'line.l)
  146.             END
  147.         END
  148.     END
  149. END
  150. EXIT
  151.  
  152. Message_Normal:
  153.     num=1
  154.     IF ARG(1)=0 THEN num=num+1
  155.     nick=WORD(aother,num)
  156.     uin=NickToUIN(nick)
  157.     therest=SUBWORD(aother,num+1)
  158.     ADDRESS STRICQ.1
  159.     SENDMESSAGE 'UIN='uin 'MSG="'therest'"'
  160.     success=rc
  161.     IF success=0 THEN CALL Cecho('[!msg -> 'nick'] - 'therest)
  162.     IF success=5 THEN CALL Cecho('[!msg -> 'nick'] - 'inverse'Either UIN/K or MSG/K is missing.  Both are required.'inverse)
  163.     IF success=10 THEN CALL Cecho('[!msg -> 'nick'] - 'inverse'The client is currently offline.'inverse)
  164. RETURN
  165.  
  166. Message_URL:
  167.     nick=WORD(aother,2)
  168.     uin=NickToUIN(nick)
  169.     therest=SUBWORD(aother,3)
  170.     PARSE VALUE therest WITH mess1" "mess2
  171.     ADDRESS STRICQ.1
  172.     SENDMESSAGE 'UIN='uin 'MSG="'mess2'"' 'URL="'mess1'"'
  173.     success=rc
  174.     IF success=0 THEN CALL Cecho('[!url -> 'nick'] - 'therest)
  175.     IF success=5 THEN CALL Cecho('[!url -> 'nick'] - 'inverse'Either UIN/K or MSG/K is missing.  Both are required.'inverse)
  176.     IF success=10 THEN CALL Cecho('[!url -> 'nick'] - 'inverse'The client is currently offline.'inverse)
  177. RETURN
  178.  
  179. File_Add:
  180.     therest=SUBWORD(aother,2)
  181.     ADDRESS STRICQ.1
  182.     ADDFILE 'FILE='therest
  183.     success=rc
  184.     IF success=0 THEN CALL Cecho('[!add] - Everything went fine.')
  185.     IF success=5 THEN CALL Cecho('[!add] - 'inverse'The file was not found.'inverse)
  186. RETURN
  187.  
  188. File_AddReq:
  189.     ADDRESS COMMAND 'requestfile >T:file.am2st TITLE "Select one file to add..." NOICONS'
  190.     IF RC~=0 THEN RETURN
  191.     IF OPEN(1,"T:file.am2st","R") THEN DO
  192.         file=READLN(1)
  193.         CALL CLOSE(1)
  194.     END
  195.     file=STRIP(file,"B",'"')
  196.     ADDRESS STRICQ.1
  197.     ADDFILE 'FILE='file
  198.     success=rc
  199.     IF success=0 THEN CALL Cecho('[!addreq] - Everything went fine.')
  200.     IF success=5 THEN CALL Cecho('[!addreq] - 'inverse'The file was not found.'inverse)
  201. RETURN
  202.  
  203. File_Clear:
  204.     ADDRESS STRICQ.1
  205.     ADDFILE CLEAR
  206.     success=rc
  207.     IF success=0 THEN CALL Cecho('[!clear] - Everything went fine.')
  208.     IF success=5 THEN CALL Cecho('[!clear] - 'inverse'List already empty!'inverse)
  209. RETURN
  210.  
  211. File_List:
  212.     ADDRESS STRICQ.1
  213.     GETFILES 'var=tosend'
  214.     success=rc
  215.     IF success=0 THEN DO
  216.         IF tosend.0>0 THEN DO
  217.             DROP name
  218.             DROP size
  219.             num=0
  220.             DO UNTIL num=tosend.0
  221.                 CALL Cecho('File 'num+1': 'bold''tosend.name.num''bold' , 'tosend.size.num)
  222.                 num=num+1
  223.             END
  224.         END
  225.     END
  226.     IF success=5 THEN CALL Cecho('[!filelist] - 'inverse'No files in list!'inverse)
  227. RETURN
  228.  
  229. File_Send:
  230.     nick=WORD(aother,2)
  231.     uin=NickToUIN(nick)
  232.     therest=SUBWORD(aother,3)
  233.     ADDRESS STRICQ.1
  234.     IF therest="" THEN FILEDIRECT 'UIN='uin
  235.     ELSE FILEDIRECT 'UIN='uin 'DESC="'therest'"'
  236.     success=rc
  237.     IF success=0 THEN CALL Cecho('[!send -> 'nick'] - Everything went fine.')
  238.     IF success=5 THEN CALL Cecho('[!send -> 'nick'] - 'inverse'Either the UIN keyword was not given or there are no files listed in the FileDirect Request window.'inverse)
  239.     IF success=10 THEN CALL Cecho('[!send -> 'nick'] - 'inverse'The UIN was not found in the contact list.'inverse)
  240. RETURN
  241.  
  242. Status:
  243.     therest=SUBWORD(aother,2)
  244.     ADDRESS STRICQ.1
  245.     IF therest="" THEN DO
  246.         STATUS GET
  247.         CALL Cecho('[!status] - Your status is: 'ICQRC)
  248.     END
  249.     ELSE DO
  250.         STATUS 'SET="'therest'"'
  251.         success=rc
  252.         IF success=0 THEN CALL Cecho('[!status] - Everything went fine.')
  253.         IF success=5 THEN CALL Cecho('[!status] - 'inverse'SET did not recognize the status passed to it.'inverse)
  254.     END
  255. RETURN
  256.  
  257. UserInfo:
  258.     nik=WORD(aother,2)
  259.     uinn=NickToUIN(nik)
  260.     therest=SUBWORD(aother,3)
  261.     ADDRESS STRICQ.1
  262.     GETCONTACT 'UIN='uinn
  263.     success=rc
  264.     IF success=0 THEN DO
  265.         CALL Cecho('Userinfo of contact :'bold' 'nik)
  266.         IF UPPER(therest)="UID"              | therest="" THEN CALL Cecho(bold'UID          'bold': 'ICQRC.UIN)
  267.         IF UPPER(therest)="NICK"             | therest="" THEN CALL Cecho(bold'Nick         'bold': 'ICQRC.NICK)
  268.         IF UPPER(therest)="FIRST NAME"       | therest="" THEN CALL Cecho(bold'First name   'bold': 'ICQRC.FIRST)
  269.         IF UPPER(therest)="LAST NAME"        | therest="" THEN CALL Cecho(bold'Last name    'bold': 'ICQRC.LAST)
  270.         IF UPPER(therest)="E-MAIL"           | therest="" THEN CALL Cecho(bold'E-Mail       'bold': 'ICQRC.EMAIL)
  271.         IF UPPER(therest)="E-MAIL SECONDARY" | therest="" THEN CALL Cecho(bold'E-Mail Sec.  'bold': 'ICQRC.EMAIL_SECONDARY)
  272.         IF UPPER(therest)="E-MAIL OLD"       | therest="" THEN CALL Cecho(bold'E-Mail Old   'bold': 'ICQRC.EMAIL_OLD)
  273.         IF UPPER(therest)="CITY"             | therest="" THEN CALL Cecho(bold'City         'bold': 'ICQRC.CITY)
  274.         IF UPPER(therest)="STATE"            | therest="" THEN CALL Cecho(bold'State        'bold': 'ICQRC.STATE)
  275.         IF UPPER(therest)="COUNTRY"          | therest="" THEN CALL Cecho(bold'Country      'bold': 'ICQRC.COUNTRY)
  276.         IF UPPER(therest)="TELEPHONE"        | therest="" THEN CALL Cecho(bold'Telephone    'bold': 'ICQRC.PHONE)
  277.         IF UPPER(therest)="FAX"              | therest="" THEN CALL Cecho(bold'Fax          'bold': 'ICQRC.FAX)
  278.         IF UPPER(therest)="CELLULAR"         | therest="" THEN CALL Cecho(bold'Cellular     'bold': 'ICQRC.CELLULAR)
  279.         IF UPPER(therest)="HOMEPAGE"         | therest="" THEN CALL Cecho(bold'Homepage     'bold': 'ICQRC.HOMEPAGE)
  280.         IF UPPER(therest)="ABOUT"            | therest="" THEN CALL Cecho(bold'About        'bold': 'ICQRC.ABOUT)
  281.         IF UPPER(therest)="AGE"              | therest="" THEN CALL Cecho(bold'Age          'bold': 'ICQRC.AGE)
  282.         IF UPPER(therest)="SEX"              | therest="" THEN CALL Cecho(bold'Sex          'bold': 'ICQRC.SEX)
  283.         IF UPPER(therest)="LOCAL COMMENT"    | therest="" THEN CALL Cecho(bold'Local comment'bold': 'ICQRC.COMMENT)
  284.         IF UPPER(therest)="IP ADDRESS"       | therest="" THEN CALL Cecho(bold'IP Address   'bold': 'ICQRC.IP)
  285.         IF UPPER(therest)="UNREAD MSGS"      | therest="" THEN CALL Cecho(bold'Unread msgs  'bold': 'ICQRC.NEWMSGS)
  286.         IF UPPER(therest)="STATUS"           | therest="" THEN CALL Cecho(bold'Status       'bold': 'ICQRC.STATUS)
  287.         IF UPPER(therest)="LAST ONLINE"      | therest="" THEN CALL Cecho(bold'Last Online  'bold': 'ICQRC.LAST_ONLINE)
  288.         IF UPPER(therest)="MESSAGE TO"       | therest="" THEN CALL Cecho(bold'Message To   'bold': 'ICQRC.MESSAGE_TO)
  289.         IF UPPER(therest)="MESSAGE FROM"     | therest="" THEN CALL Cecho(bold'Message From 'bold': 'ICQRC.MESSAGE_FROM)
  290.    END
  291.     IF success=5 THEN CALL Cecho('[!uinfo] - The UIN was not found in the contact list, the ENTRY was out of range, or there is no SELECTED entry.')
  292. RETURN
  293.  
  294. Help:
  295.     CALL Cecho('+-----------------------------------------------------+')
  296.     CALL Cecho('|'inverse' [HELP - For AmIRC2STRICQ v1.1 by Lorens Johansson!] 'inverse'|')
  297.     CALL Cecho('+-----------------------------------------------------+')
  298.     CALL Cecho('|Help on the templates below:                         |')
  299.     CALL Cecho('| <xxx> means that the argument is REQUIRED!          |')
  300.     CALL Cecho('| [xxx] means that the argument is optional!          |')
  301.     CALL Cecho('+-----------------------------------------------------+')
  302.     CALL Cecho('|Available commands:                                  |')
  303.     CALL Cecho('| 'bold'/icq <uin|nick> <message>'bold'                           |')
  304.     CALL Cecho('| 'bold'/icq !help'bold'                                          |')
  305.     CALL Cecho('| 'bold'/icq !msg <uin|nick> <message>'bold'                      |')
  306.     CALL Cecho('| 'bold'/icq !url <uin|nick> <url> <message>'bold'                |')
  307.     CALL Cecho('| 'bold'/icq !add <path and file>'bold'                           |')
  308.     CALL Cecho('| 'bold'/icq !addreq'bold'                                        |')
  309.     CALL Cecho('| 'bold'/icq !clear'bold'                                         |')
  310.     CALL Cecho('| 'bold'/icq !filelist'bold'                                      |')
  311.     CALL Cecho('| 'bold'/icq !send <uin|nick> [text]'bold'                        |')
  312.     CALL Cecho('| 'bold'/icq !status [status]'bold'                               |')
  313.     CALL Cecho('|   online, occupied, invisible, away, not available, |')
  314.     CALL Cecho('|   do not disturb, free for chat, offline            |')
  315.     CALL Cecho('|   It will tell you your status if no arg is given!  |')
  316.     CALL Cecho('| 'bold'/icq !uinfo <uin|nick> [part]'bold'                       |')
  317.     CALL Cecho('|   UID, Nick, First Name, Last Name, E-Mail,         |')
  318.     CALL Cecho('|   E-Mail Secondary, E-Mail Old, City, State,        |')
  319.     CALL Cecho('|   Country, Telephone, Fax, Cellular, Homepage,      |')
  320.     CALL Cecho('|   About, Age, Sex, Local Comment, IP Address,       |')
  321.     CALL Cecho('|   Unread Msgs, Status, Last Online, Message To,     |')
  322.     CALL Cecho('|   Message From                                      |')
  323.     CALL Cecho('| 'bold'/icq !makelist'bold'                                      |')
  324.     CALL Cecho('| 'bold'/icq !list [status]'bold'                                 |')
  325.     CALL Cecho('| 'bold'/icq !delete <uin|nick>'bold'                             |')
  326.     CALL Cecho('+-----------------------------------------------------+')
  327.     CALL Cecho('|'inverse' Only until AmIRC 3.4, do this for querywin...       'inverse'|')
  328.     CALL Cecho('|'inverse' 'bold'/query STRICQ-Mess'bold'                                  'inverse'|')
  329.     CALL Cecho('+-----------------------------------------------------+')
  330.     CALL Cecho('|'inverse'       For more info, read AmIRC2STRICQ.ReadMe.      'inverse'|')
  331.     CALL Cecho('+-----------------------------------------------------+')
  332. RETURN
  333.  
  334. List:
  335.     therest=SUBWORD(aother,2)
  336.     IF OPEN(1,"ENV:AmIRC2STRICQ.contacts","R") THEN DO
  337.         CALL Cecho('Lists users:')
  338.         CALL Cecho(bold' UIN          Nick                  Status        Last Online')
  339.         CALL Cecho(bold' ------------ --------------------- ------------- ------------------------')
  340.         DO UNTIL EOF(1)
  341.             line=READLN(1)
  342.             IF line~="" THEN DO
  343.                 colcode=""
  344.                 PARSE VALUE line WITH nick_"            "uin_
  345.                 ADDRESS STRICQ.1
  346.                 GETCONTACT 'UIN='uin_
  347.                 IF ICQRC.STATUS="Online" THEN colcode=color"3"
  348.                 IF ICQRC.STATUS="Free For Chat"|ICQRC.STATUS="Invisible" THEN colcode=color"9"
  349.                 IF ICQRC.STATUS="Occupied"|ICQRC.STATUS="Away"|ICQRC.STATUS="DND"|ICQRC.STATUS="Not Available"|ICQRC.STATUS="Offline" THEN colcode=color"4"
  350.                 printperson=0
  351.                 IF therest="" THEN printperson=1
  352.                 IF UPPER(therest)="ONLINE"&(UPPER(ICQRC.STATUS)="INVISIBLE"|UPPER(ICQRC.STATUS)="FREE FOR CHAT") THEN printperson=1
  353.                 IF UPPER(therest)="OFFLINE"&(UPPER(ICQRC.STATUS)="AWAY"|UPPER(ICQRC.STATUS)="DND"|UPPER(ICQRC.STATUS)="OCCUPIED"|UPPER(ICQRC.STATUS)="NOT AVAILABLE") THEN printperson=1
  354.                 IF UPPER(therest)=UPPER(ICQRC.STATUS) THEN printperson=1
  355.                 IF printperson=1 THEN CALL Cecho(colcode' 'LEFT(uin_,13)''LEFT(nick_,22)''LEFT(ICQRC.STATUS,14)''ICQRC.LAST_ONLINE)
  356.             END
  357.         END
  358.         CALL Cecho(bold' ------------ --------------------- ------------- ------------------------')
  359.         CALL CLOSE(1)
  360.     END
  361.     ELSE DO
  362.         CALL Cecho('Could not open the contacts file, have u used the !makelist command?')
  363.     END
  364. RETURN
  365.  
  366. DeleteUser:
  367.     uin=WORD(aother,2)
  368.     uin=NickToUIN(uin)
  369.     choice=SelectChoice("!!! AmIRC2STRICQ ALERT !!!","Do you REALLY want to delete this user You CAN NOT get him back!","Yes|No")
  370.     IF choice=1 THEN DO
  371.         ADDRESS STRICQ.1
  372.         DELETEUIN 'UIN='uin
  373.         success=rc
  374.         IF success=0 THEN DO
  375.             CALL Cecho('[!delete] - Everything went fine.')
  376.             CALL MakeList
  377.         END
  378.         IF success=10 THEN CALL Cecho('[!delete] - 'inverse'UIN does not exist!'inverse)
  379.     END
  380. RETURN
  381.  
  382. MakeList:
  383.     CALL GetPath
  384.     ADDRESS COMMAND 'list 'stricqpath'Users/'your_uin'/Users lformat="%n" >T:A2S_users.temp'
  385.     IF ~OPEN(1,"T:A2S_users.temp","R") THEN DO
  386.         CALL Cecho('[!makelist] - Could not open temp file, aborting...').
  387.         EXIT
  388.     END
  389.     IF ~OPEN(2,"ENVARC:AmIRC2STRICQ.contacts","W") THEN DO
  390.         CALL Cecho('[!makelist] - Could not open AmIRC2STRICQ.contacts file (is it in use?), aborting...').
  391.         EXIT
  392.     END
  393.     DO UNTIL EOF(1)
  394.         cline=READLN(1)
  395.         IF cline~="" THEN DO
  396.             IF OPEN(3,stricqpath"Users/"your_uin"/Users/"cline,"R") THEN DO
  397.                 nick=DELSTR(READLN(3),1,5)
  398.                 CALL WRITELN(2,nick"            "cline)
  399.                 CALL CLOSE(3)
  400.             END
  401.             ELSE CALL Cecho('[!makelist] - Could not open file for user: 'cline' (did you set your UIN correctly?), skipping...')
  402.         END
  403.     END
  404.     CALL CLOSE(1)
  405.     CALL CLOSE(2)
  406.     ADDRESS COMMAND "copy >NIL: ENVARC:AmIRC2STRICQ.contacts ENV:"
  407.     CALL DELETE("T:A2S_users.temp")
  408.     CALL Cecho('[!makelist] - Everything went fine.')
  409. RETURN
  410.  
  411. GetPath:
  412.     IF OPEN(1,"ENV:STRICQ.path","R") THEN DO
  413.         stricqpath=READLN(1)
  414.         CALL CLOSE(1)
  415.     END
  416.     ELSE DO
  417.         ADDRESS COMMAND 'requestfile >ENVARC:STRICQ.path TITLE "Where is STRICQ installed?" DRAWERSONLY NOICONS'
  418.         IF RC~=0 THEN EXIT
  419.         IF OPEN(1,"ENV:STRICQ.path","R") THEN DO
  420.             stricqpath=READLN(1)
  421.             CALL CLOSE(1)
  422.         END
  423.         stricqpath=STRIP(stricqpath,"B",'"')
  424.         IF RIGHT(stricqpath,1)~=":"&RIGHT(stricqpath,1)~="/" THEN stricqpath=stricqpath"/"
  425.         CALL OPEN(1,"ENVARC:STRICQ.path","W")
  426.         CALL WRITELN(1,stricqpath)
  427.         CALL CLOSE(1)
  428.         ADDRESS COMMAND "copy ENVARC:STRICQ.path ENV:"
  429.     END
  430.     IF RIGHT(stricqpath,1)~=":"&RIGHT(stricqpath,1)~="/" THEN stricqpath=stricqpath"/"
  431.     IF ~EXISTS(stricqpath"STRICQ") THEN DO
  432.         CALL Cecho('This is not the path to STRICQ! Please choose the correct path!')
  433.         ADDRESS COMMAND "delete ENVARC:STRICQ.path QUIET"
  434.         ADDRESS COMMAND "delete ENV:STRICQ.path QUIET"
  435.         EXIT
  436.     END
  437. RETURN
  438.  
  439. NickToUIN:
  440.     ui=arg(1)
  441.     IF DATATYPE(ui,"W")=0 THEN DO
  442.         found=0
  443.         IF OPEN(1,"ENV:AmIRC2STRICQ.contacts","R") THEN DO
  444.             DO UNTIL EOF(1)
  445.                 line=READLN(1)
  446.                 IF line~="" THEN DO
  447.                     PARSE VALUE line WITH nick_"            "uin_
  448.                     IF UPPER(ui)=UPPER(nick_) THEN DO
  449.                         newuin=uin_
  450.                         found=1
  451.                     END
  452.                 END
  453.             END
  454.             CALL CLOSE(1)
  455.         END
  456.         ELSE DO
  457.             CALL Cecho('Could not open the contacts file, have you used the !makelist command?')
  458.             newuin=ui
  459.         END
  460.         IF found=0 THEN DO
  461.             CALL Cecho('Could not find the specified nick, have you used the !makelist command?')
  462.             newuin=ui
  463.         END
  464.     END
  465.     ELSE newuin=ui
  466. RETURN(newuin)
  467.  
  468. Cecho:
  469.     text=ARG(1)
  470. /*    CALL AmIRC_Address*/
  471.     ADDRESS AMIRC.1
  472.     IF LENGTH(text)>200 THEN DO
  473.         DO FOREVER
  474.             text1=LEFT(text,200)
  475.             IF opendccwin=1 THEN 'ECHO P='d2c(27)''inverse'«STRICQ» N=STRICQ-Mess 'text1
  476.             ELSE 'ECHO P='d2c(27)''inverse'«STRICQ» 'text1
  477.             IF LENGTH(text)<201 THEN LEAVE
  478.             text=SUBSTR(text,201)
  479.         END
  480.     END
  481.     ELSE DO
  482.         IF opendccwin=1 THEN 'ECHO P='d2c(27)''inverse'«STRICQ» N=STRICQ-Mess 'text
  483.         ELSE 'ECHO P='d2c(27)''inverse'«STRICQ» 'text
  484.     END
  485. RETURN
  486.  
  487. CechoS:
  488.     text=ARG(1)
  489. /*    CALL AmIRC_Address*/
  490.     ADDRESS AMIRC.1
  491.     IF LENGTH(text)>200 THEN DO
  492.         DO FOREVER
  493.             text1=LEFT(text,200)
  494.             IF opendccwin=1 THEN 'ECHO P='d2c(27)''inverse'«STRICQ» N=STRICQ-Mess 'x2c(02)''text1
  495.             ELSE 'ECHO P='d2c(27)''inverse'«STRICQ» 'x2c(02)''text1
  496.             IF LENGTH(text)<201 THEN LEAVE
  497.             text=SUBSTR(text,201)
  498.         END
  499.     END
  500.     ELSE DO
  501.         IF opendccwin=1 THEN 'ECHO P='d2c(27)''inverse'«STRICQ» N=STRICQ-Mess 'x2c(02)''text
  502.         ELSE 'ECHO P='d2c(27)''inverse'«STRICQ» 'x2c(02)''text
  503.     END
  504. RETURN
  505.  
  506. AmIRC_Adress:
  507. /*    define_port:
  508.     return word(show('p'),find(compress(show('p'),'0123456789'),arg(1)'.'))
  509. */
  510.  
  511. /*
  512. l=show('P');p=1
  513. do until p=0
  514.     p=pos('AMIRC',l,p)
  515.     if p~=0 then do
  516.         address value substr(l,p,7)
  517.         'QUIT'
  518.         address
  519.         p=p+1
  520.     end
  521. end
  522. */
  523.  
  524. /*
  525. do i=1 to 5
  526.     if pos('AMIRC',address())~=0 then signal install
  527.     delay(50)
  528. end
  529. x=show('P')
  530. p=pos('AMIRC',x)
  531. if p=0 then exit
  532. if p~=0 then address value substr(x,p,7)
  533. install:
  534. "ECHO P="d2c(27)"b«Kuang11» TEXT=Preparing to Install Kuang Eleven!"
  535. 'SAY /RX REMOVEALIASES'
  536. */
  537.  
  538.     prt=0
  539.     SELECT
  540.         WHEN SHOW("P","AMIRC.1")=1 THEN DO;prt=1;ADDRESS AMIRC.1;END
  541.         WHEN SHOW("P","AMIRC.2")=1 THEN DO;prt=2;ADDRESS AMIRC.2;END
  542.         WHEN SHOW("P","AMIRC.3")=1 THEN DO;prt=3;ADDRESS AMIRC.3;END
  543.         WHEN SHOW("P","AMIRC.4")=1 THEN DO;prt=4;ADDRESS AMIRC.4;END
  544.         WHEN SHOW("P","AMIRC.5")=1 THEN DO;prt=5;ADDRESS AMIRC.5;END
  545.         OTHERWISE NOP
  546.     END
  547. RETURN(prt)
  548.  
  549. LoadRexx:
  550.     IF ~OPEN(1,"ENV:AmIRC2STRICQ.prefs","R") THEN DO
  551.         CALL Cecho('You MUST use the install script to make this work, because the install script is also the prefs program!')
  552.         EXIT
  553.     END
  554.     rexxtext=READCH(1,64000)
  555.     INTERPRET rexxtext
  556.     CALL CLOSE(1)
  557.     DROP rexxtext
  558. RETURN
  559.  
  560. SelectChoice:
  561.     ADDRESS COMMAND 'requestchoice >T:A2S.temp TITLE "'ARG(1)'" BODY "'ARG(2)'" GADGETS "'ARG(3)'"'
  562.     IF OPEN(1,"T:A2S.temp","R") THEN DO
  563.         cho=READLN(1)
  564.         CALL CLOSE(1)
  565.     END
  566.     CALL DELETE("T:A2S.temp")
  567. RETURN(cho)
  568.