home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / icbrg200.zip / README.TXT < prev    next >
Text File  |  1996-02-25  |  21KB  |  524 lines

  1.                      
  2.         IceBerg V 2.00
  3.         A REXX script for GTirc
  4.         Written by Stephen Berg
  5.         (C)1996 - Stephen Berg
  6.  
  7. Table of Contents
  8.  
  9. 1.  Introduction
  10.  
  11. 2.  Disclaimer
  12.  
  13. 3.  Installation
  14.  
  15. 4.  Usage
  16.  
  17. 5.  Commands
  18.     5a.  General Commands
  19.     5b.  Shortened/enhanced versions of normal IRC commands
  20.     5c.  Message logger commands
  21.     5d.  Silly commands
  22.     5e.  Accessible OS/2 commands
  23.     5f.  Split Finder commands
  24.     5g.  Access commands for OS2bot on EFNet
  25.     5h.  Command notes
  26.     5i.  Other Commands/Features
  27.  
  28. 6.  Miscellaneous
  29.     6a.  Start up commands
  30.     6b.  IrcRexxWildCard
  31.  
  32. 7.  New in version 2.00
  33.  
  34. 8.  Future Plans
  35.  
  36. 9.  Credits
  37.  
  38. 10.  Contacts
  39.  
  40. *******************************************************
  41. *                1.  Introduction:                    *
  42. *******************************************************
  43.  
  44.     Thank you for looking at IceBerg.  This script was written with two
  45. distinct goals in mind.  To customize and enhance the GTirc Internet Relay 
  46. Chat client and to provide me with a learning tool for REXX programming.  
  47. It has been ideal for both purposes.
  48.  
  49.     IceBerg is a first generation product.  While I did look at other 
  50. UNIX based IRC scripts for ideas, the bulk of the IceBerg script is my own 
  51. creation, with two exceptions.
  52.  
  53.     The message logging portion was written by someone else who went by 
  54. the nick of "Wease", I've included some info about him in the credits 
  55. section at the end of this document.  I've changed this portion to save the
  56. messages to a file instead of memory.  This is so even in between GTirc 
  57. sessions your log of messages will be saved.  It also solved one problem that
  58. I had with the original code in previous versions of IceBerg.
  59.  
  60.     Armin Kunaschik contributed the original XDCC script.  I rewrote 
  61. it to intergrate it a bit more smoothly with IceBerg but the original idea 
  62. and code is his.
  63.  
  64.     I did get a couple of other ideas from various people in the
  65. newsgroups and on IRC itself concerning the mechanics of the REXX code.  But 
  66. the final code is mine.
  67.  
  68.     IceBerg is POSTCARD-ware.  That means it's free of charge, $0.00, 
  69. here for the taking, up for grabs, or whatever you want to call it.  I 
  70. do ask that if you're using it, drop me an E-Mail (Address is at the end 
  71. of this document) and let me know what you think.
  72.  
  73. *******************************************************
  74. *                2.  Disclaimer:                      *
  75. *******************************************************
  76.  
  77.     (That silly legal stuff)
  78.  
  79.     OK, as I said in the Introduction section this script was written 
  80. partly as a learning tool for me.  Which means I am in no way an expert 
  81. in REXX.  The entire code is here for you to see, change, use or not use.  
  82. I will *NOT* be held responsible if your machine blows up, if your 
  83. Internet Provider disconnects you, if your significant other/wife/husband 
  84. leaves you, if the IRS audits you or anything else bad happens to you by 
  85. fault or not in this set of scripts.  That's why it's free.  And by using 
  86. these scripts you fully and without reservation accept these terms.  If 
  87. you don't accept, then don't run these scripts, it won't effect my paycheck 
  88. either way.  =:-)
  89.  
  90. *******************************************************
  91. *                3.  Installation:                    *
  92. *******************************************************
  93.  
  94.     Well if you're reading this you've probably managed to un-zip the 
  95. archive file.  Place at least the three main files in your GTirc 
  96. subdirectory.  Next define the three files in the "Options" --> 
  97. "Preferences" dialog of GTirc.  Startup Command would be 
  98. "/run icestart.txt", "Input Message Script" would be IBergMsg.CMD and 
  99. "Output Command Script" would be "IBergCmd.CMD".  That gets you up and 
  100. running right away, no re-booting the machine, no re-loading GTirc, none 
  101. of that nonsense.  You may want to issue a "/run icestart.txt" command to
  102. set the variables in there that IceBerg uses in it's operation.  Aside
  103. from that, once you click on the "OK" button you are ready to roll.  To 
  104. use the autoop and XDCC feature you'll also need the "autoop.lst" and
  105. "filelist.txt" files in the GTirc directory.
  106.  
  107. *******************************************************
  108. *                     4.  Usage:                      *
  109. *******************************************************
  110.  
  111.     Using IceBerg is simple, most of the commands are either shortened 
  112. versions of the normal IRC commands, or command names that you may be used 
  113. to from other IRC scripts.  I may have used a different name for a command 
  114. from what you're used to.  Probably cause I haven't used the same scripts 
  115. as you, =:-).  While running IceBerg you can type in "/icehelp", 
  116. "/icehelp2" or "/msghelp" to view the help screens.  
  117.  
  118.     The "icestart.txt" file contains some commands to set up up flags
  119. that IceBerg relys on for it's use.  Changing some of the "/iceberg ....." 
  120. commands in this file will cause IceBerg to behave erratically, and I 
  121. wouldn't suggest it.  You can change the default awaymsg by simply editing
  122. the "icestart.txt" file.  Read the GTirc help on how to use text files and 
  123. the "/RUN" command for further info.
  124.  
  125.     First thing I would suggest that you do once you have these
  126. scripts loaded is to start GTirc, and run "/icehelp", "/icehelp2" and 
  127. "/msghelp".  That will display some help screens on what commands are
  128. available, their syntax and a brief description.
  129.  
  130. *******************************************************
  131. *                    5.  Commands:                    *
  132. *******************************************************
  133.  
  134. <XXXX> - means a required parameter
  135. [XXXX] - means an optional parameter
  136.  
  137.     5a.  General Commands
  138.  
  139. /iceberg <setting> [value]        query the value of or change a 
  140.                     global GTirc REXX variable
  141.  
  142.  
  143. /whom <nick>                Get VERSION & USERINFO about nick
  144.  
  145.  
  146. /idle <nick>                Get idle time for nick
  147.  
  148.  
  149. /icehelp                displays brief help statements for
  150.                     IceBerg commands (this is mostly 
  151.                     the functional, practical stuff)
  152.  
  153. /icehelp2                displays brief help statements for
  154.                     IceBerg commands not in /icehelp 
  155.  
  156. /msghelp                displays brief help statements for 
  157.                     the IceBerg message logging 
  158.                     functions
  159.  
  160. /dw <hostname|IP address>        does a who on the hostname or IP
  161.                     address, placing an "*" at the 
  162.                     beginning and end to do a wildcard 
  163.                     who on that domain
  164.  
  165. /wall <#channel> <text>            sends a msg to every visible 
  166.                     occupant of #channel
  167.                     (** See Note 1 **)
  168.  
  169. /wallop <#channel> <text>        sends a msg to every visible 
  170.                     channel op of #channel  
  171.                     (** See Note 1 **)
  172.  
  173. /xdccadv                Sends notices announcing the files
  174.                     you have made available via the XDCC
  175.                     function.  (** See Note 2**)
  176.  
  177. /cstat <#channel>            get and diplay statistics on the
  178.                     specified channel
  179.  
  180.     5b.  Shortened versions of normal IRC commands
  181.  
  182. /k <nick> [reason]            performs a kick on nick, with a reason
  183.                     if one is specified
  184.  
  185. /kb <#channel> <nick> [reason]        sets a ban for #channel against nick
  186.                     then kicks nick from #channel for reason
  187.  
  188. /j <#channel>                joins #channel
  189.  
  190. /q <nick>                starts a private query with <nick>
  191.  
  192. /lv [#channel]                leaves current channel or the 
  193.                     specified channel
  194.  
  195. /not <nick|#channel> <text>        notice the target nick or channel
  196.                     with text (see note 3)
  197.  
  198. /t [new topic]                sets the current channel's topic, 
  199.                     without arguments it will display 
  200.                     the topic
  201.  
  202. /wi <nick>                does a whois on nick
  203.  
  204. /ww <nick>                does a whowas on nick
  205.  
  206. /inv <nick>                invites nick to current channel
  207.  
  208. /cm [[+|-] modes]            adds or subtracts mode settings for 
  209.                     the current channel, with no 
  210.                     parameters it retrieves and 
  211.                     displays the current channels modes
  212.  
  213. /um <+|- modes>                changes your user modes
  214.  
  215.  
  216.     5c.  Message logger commands
  217.  
  218. /reset                    clears and resets the message 
  219.                     buffer (** See Note 2 **)
  220.  
  221. /play                    displays the messages saved
  222.  
  223. /playlong                displays the messages saved showing 
  224.                     the message originators full address
  225.                     instead of just their nick
  226.  
  227. /msgchk                    displays the current number of 
  228.                     messages stored in the buffer
  229.  
  230. /gone [away message]            marks you to being away with the 
  231.                     optional away message and turns 
  232.                     message logging on.  If no away 
  233.                     message is specified the default 
  234.                     "awaymsg" in "icestart.txt" is 
  235.                     used (see "/awaymsg")
  236.  
  237. /back                    turns off message logging, displays 
  238.                     the messages in the buffer as if 
  239.                     /last had been run, and unmarks 
  240.                     you as being away
  241.  
  242. /awaymsg [away message]            checks or sets the default away 
  243.                     message
  244.  
  245.     5d.  Silly commands (I had to add a few of these!)
  246.  
  247. /crypt <text>                encrypt and send text to the 
  248.                     current channel.  Other GTirc users
  249.                     that have IceBerg will get an 
  250.                     automatic decryption of the text
  251.                     everyone else will most likely see
  252.                     junk.  (This is in *NO* way un-
  253.                     breakable code)
  254.  
  255. /revsay <text string>            reverses the text string and sends 
  256.                     it to the current channel or query
  257.  
  258. /revmsg <nick> <text string>        same as /revsay, but in a msg to 
  259.                     nick
  260.  
  261. /revme <text string>            once again, but sends it as a /me
  262.                     command to the current channel or 
  263.                     query
  264.  
  265.  
  266.     5e.  Accessible OS/2 commands
  267.  
  268. /nsl <hostname|IP address>        runs an "NSLOOKUP" command on the
  269.                     hostname or IP, and returns the
  270.                     result to the GTirc window
  271.  
  272. /host <hostname|IP address>        runs a "HOST" command on the
  273.                     hostname or IP, and returns the 
  274.                     result to the GTirc window
  275.  
  276. /osping <hostname|IP address>        runs a "PING" command to the
  277.                     hostname or IP, (using two, 25 
  278.                     byte packets) and returns the 
  279.                     result to the GTirc window
  280.  
  281. /ossend <command>            runs command and sends the result
  282.                     to the current channel or query
  283.                     this does ignore any blank lines 
  284.                     when it sends the results to the
  285.                     channel  (see note 4)
  286.  
  287. /osmsg <nick> <command>            same as /ossend but sends the 
  288.                     results to nick in a /msg
  289.  
  290. /exec <command>                runs an OS/2 command and returns 
  291.                     the result to the GTirc window
  292.  
  293.     5f.  Split Finder commands
  294.  
  295. /getservers                get a listing of all currently
  296.                     present servers from your current
  297.                     server.  This does not need to be
  298.                     run each time you want to find any
  299.                     split servers, IceBerg saves this
  300.                     file and updates it when you run
  301.                     the /findsplit or /addnew command 
  302.                     (see note 5a)
  303.  
  304. /findsplit                gets a listing of all currently
  305.                     present servers, then compares
  306.                     that to "servers.lst" to find any
  307.                     split servers and displays the
  308.                     split servers in the control
  309.                     window  (see note 5b)
  310.  
  311. /addnew                    find and add any servers currently
  312.                     listed in the "current.lst" file, 
  313.                     generated by /findsplit, that do 
  314.                     not appear in "servers.lst" to 
  315.                     "servers.lst" and displays those 
  316.                     new servers in the control
  317.                     window  (see note 5b)
  318.  
  319.     5g.  Access commands to OS2bot on EFNet
  320.  
  321. /calc <string>                send a calc message to OS2Bot on
  322.                     #OS/2 (EFNet) the string will be
  323.                     evaluated for a value and the value
  324.                     will be returned.  
  325.                     (Try "/calc ssgt" or "/calc ibm")
  326.  
  327. /phone <string>                send a message to OS2Bot on #OS/2
  328.                     (EFNet) the string will be
  329.                     evaluated for a value and the value
  330.                     will be returned.  This does lookups
  331.                     of phone numbers for companies 
  332.                     involved with OS/2
  333.                     (Try "/phone novastor" or "/phone ibm")
  334.  
  335.  
  336.     5h.  Command notes
  337.  
  338. (Note 1) - The /wall and /wallop commands may be used from inside or outside 
  339. a channel.  When outside a channel it will not be able to see any users 
  340. that have set the (+i, or invisible) mode for themselves.  Abuse of these 
  341. commands will usually get you kicked and/or banned from channels.  Excessive 
  342. abuse may get you K-lined from servers.
  343.  
  344. **  You've been warned, so don't blame me when you get banned from a  **
  345. **  channel or K-lined from a server.                                 **
  346.  
  347. (Note 2) - This is another thing that can be obnoxious if abused depending
  348. on the channel you happen to be in.  And if you have a large number of files 
  349. offered, it could possibly get you disconnected by your server due to the 
  350. fact that it may mistake the output as a flood.
  351.  
  352. (Note 3) - The /NOT command is not a short version of /NOTIFY.  This is
  353. just a version of the /notice command.  The /NOTICE command is not supported 
  354. in GTirc at this time.  Incoming notices from other users are handled as 
  355. private messages.  I have tried to fix this, but it tends to mess up other 
  356. functions in GTirc, so I left it alone.
  357.  
  358. (Note 4) - This can generate quite a bit of text to be sent to the channel 
  359. or query one line at a time depending on the command you are issuing.  It 
  360. can cause you to be kicked from channels, and possibly disconnected from 
  361. your server due to excess flooding being detected.  If you're unsure how 
  362. much data is going to be returned, run the command using the "/exec" 
  363. command first since that displays the result only to you.
  364.  
  365. (Note 5a) - Only run "/getservers" if your "servers.lst" has become 
  366. corrupted or lost.  I have included the "servers.lst" that I have with the 
  367. IceBerg distribution.  If you're running this on UnderNet it won't be of 
  368. much help to you, since it lists EFNet servers.  I'm currently thinking 
  369. about how to support multiple nets with this function.  
  370.  
  371. (Note 5b) - Running "/findsplit" will show you any servers in "servers.lst" 
  372. that do not appear on the net at that time.  It will then run "/addnew" 
  373. which will find any new servers that do not appear in "servers.lst", it 
  374. will display the servers name and add it to the "servers.lst" file.
  375.  
  376.     5i.  Other Commands/Features
  377.  
  378. Auto-Op:  By setting the Auto-Op feature using "/iceberg autoop on", you
  379. will enable the Auto-Op feature in IceBerg.  Auto-Op uses the file,
  380. "autoop.lst" as a list of people you wish to automatically give ops to in 
  381. particular channels.  Each line in this file represents one user and one 
  382. channel.  (An example is included with IceBerg.)
  383.  
  384. XDCC:  I've included a sample file "filelist.txt" that the XDCC feature
  385. uses to determine what files are available to the rest of the IRC world.
  386. The syntax is very simple, "filename description".  Filename can be a
  387. fully qualified pathname, and description can be any string of words but 
  388. they both *MUST* be on one line for things to work properly.
  389.  
  390. *******************************************************
  391. *                  6.  Miscellaneous                  *
  392. *******************************************************
  393.  
  394.     6a.  Start up commands
  395.  
  396.     I'm working on a scheme to set up an initial set of start up 
  397. commands instead of using the "icestart.txt" file.  This is due to the fact
  398. that GTirc runs any defined Startup Command any time you connect to a
  399. server, instead of just at the initial program start.
  400.  
  401.     6b.  IrcRexxWildCard
  402.  
  403.     I finally figured out how to utilize the IrcRexxWildCard() function
  404. that GTirc provides.  It is used in the autoop feature.  Basically if you
  405. are familiar with wildcard use in the IRC environment for user@host.com 
  406. matching, it provides that whereas doing it in REXX is difficult and somewhat
  407. slow.  I'm gonna look into my scripts a bit more closely on possibly making
  408. better use of this feature.
  409.  
  410.     For the autoop.lst file to properly match a user, the user entry
  411. must be properly formatted.  (Ex:  "*sberg@*.southwind.com")  IceBerg
  412. uses this to match against the JOIN message.  If it matches and the channel
  413. matches, then a mode +o for the user is sent.  Note:  It won't work too
  414. well if you're not opped yourself.  =:-)
  415.  
  416. *******************************************************
  417. *                7.  New in Version 2.00              *
  418. *******************************************************
  419.  
  420.     This version adds support for XDCC functions.  Credits to Armin 
  421. Kunaschik for the code.  Basically a listing of files that you wish to make 
  422. available to anyone is contained in a text file, people can then message 
  423. you with XDCC requests.  These requests can be to list the available files, 
  424. send a particular file or to send help on the XDCC function.  Also an 
  425. /xdccadv command is added to advertise that you have XDCC capability and 
  426. what files are available.
  427.  
  428.     The autoop feature now makes use of GTirc's IrcRexxWildCard 
  429. matching feature.  So if you have people you wish to autoop that are on a
  430. dynamic IP address/hostname it is much easier to set up now.
  431.  
  432.     Added in a /phone command to get company phone numbers from OS2Bot
  433. on EFNet.
  434.  
  435.     Changed the message logger feature to utilize file storage of the 
  436. messages instead of memory.  This makes your message log survive even if 
  437. you shut down and restart GTirc and also fixed the problem of initializing
  438. the logger at startup in version 1.10.  Changed the "/last" to "/play" for 
  439. playback of the stored messages.  Added a "/playlong" to playback the messages
  440. but display the full user id of whoever sent the message instead of just a
  441. nickname.
  442.  
  443.     A simple kick command is replacing the joke kicks from previous 
  444. versions.  
  445.  
  446.     A kickban routine is now implemented for banning and then kicking a
  447. user from a channel.  Syntax for /kb is:    "/kb <#channel> <nick> [reason]"
  448.  
  449.     A "/q" command for quick starting a query with another user.
  450.  
  451.     Some of the CTCP responses were replying to the requestor with a
  452. private message.  These should be done with a notice according to RFC1459.  
  453. I have added in support for CTCP responses using my "/not" command to 
  454. accomplish this.  If you are concerned with complying with RFC1459, do not
  455. define any CTCP Options in GTirc.  Change the "*resp" strings in my 
  456. ibergmsg.cmd script to personalize the ones that I handle.  Leave the
  457. beginning and ending smiley face characters as they are, this how GTirc and
  458. other IRC clients identify CTCP messages.  My script handles them, and then 
  459. passes them on to GTirc, so if you do define CTCP Options this problem will 
  460. appear.  (NOTE:  It probably won't hurt if you do but it is possible to get 
  461. stuck in a loop with someone elses script if these features are used.)
  462.  
  463. The CTCP USERINFO option does not show this undesired behavior regardless 
  464. of whether or not you have a CTCP Option defined so I left it alone.
  465.  
  466. *******************************************************
  467. *                   8.  Future Plans:                 *
  468. *******************************************************
  469.  
  470.     I have a few more ideas that I need some time to work out the REXX
  471. code for that I plan to add into IceBerg.  I have heard that there is a 
  472. planned release sometime around spring 96 of GTirc V2.00.  From what I have
  473. heard (take that with a grain of salt) that there will be some changes
  474. that may effect how the REXX scripts need to be written.  Hopefully it'll
  475. be simple changes that I can implement easily.
  476.  
  477.     If you have any ideas that you would like to see implemented in 
  478. IceBerg send me an E-mail and I'll definitely look into it.  
  479.  
  480.     Right now I'm gonna stop developing IceBerg until I get GTirc 2.00
  481. installed and running and can see what (if any) changes in these scripts
  482. will be necessary.
  483.  
  484. *******************************************************
  485. *                     9.  Credits:                    *
  486. *******************************************************
  487.  
  488. Message logger - 
  489.     Greg Spath  (Wease on the IRC)
  490.     gspath@epix.net
  491.  
  492.     his web page is:
  493.     http://www.epix.net/~gspath
  494.  
  495. XDCC code - 
  496.     Armin Kunaschik <Armin.Kunaschik@e-technik.tu-chemnitz.de>
  497.  
  498. General Ideas and his constant bugging me to get it done -
  499.     Profx on IRC in #os/2 (author of Intercom for OS/2)
  500.         http://revsoft2.is.net/ic/intercom.html
  501.  
  502. General REXX advice -
  503.     RajV on IRC in #os/2
  504.     Topham on IRC in #os/2
  505.     Lots of others on IRC
  506.     Quite a few people on Usenet in comp.lang.rexx
  507.     Quite a few people on various REXX mailing lists
  508.  
  509.                 *******************************
  510.                 *   !! THANKS TO YOU ALL !!   *
  511.                 *******************************
  512.  
  513. *******************************************************
  514. *                  10.  Contacts                      *
  515. *******************************************************
  516.  
  517.     I can be found on IRC usually on EFNet using "SSgt" as a nick.  
  518. For E-Mail, sberg@southwind.com works.
  519.  
  520.     If you have suggestions *please* E-Mail them to me, that way I can 
  521. keep an archive on what suggestions I've looked at/worked on/added in, and 
  522. I can also keep track of who suggested what.
  523.  
  524.