mirror of
https://github.com/GeorgeMcMullen/rxIRC.git
synced 2026-01-12 00:02:51 +00:00
423 lines
18 KiB
Plaintext
423 lines
18 KiB
Plaintext
.cm last change by lynx -- nov 94
|
|
|
|
_______
|
|
*|^^^^^^^|* The Internet Relay Chat client
|
|
*| rxIRC |* program for VM/CMS systems written
|
|
*|_______|* in RexX by Carl "LynX" v. Loesch.
|
|
^^^^^^^
|
|
|
|
Special features of rxIRC:
|
|
|
|
Variables:
|
|
rxIRC has it's own particular implementation of variables. You can
|
|
set variables with /set or /expr, then use them anywhere within a
|
|
command line like this:
|
|
|
|
set c #rxIRC
|
|
join $c
|
|
expr date date()
|
|
echo $(date)
|
|
set helpkey 1
|
|
pf$(helpkey) immed /help
|
|
|
|
Note how you can use variables even within command names. Variables
|
|
can be used with or without the braces. However, without braces only
|
|
the first character is considered part of the name. So 'echo $date'
|
|
will probably only output 'ate' since '$d' is not defined yet.
|
|
This is compatible to the way the make program handles variables.
|
|
|
|
With rxIRC variable names are case sensitive!
|
|
|
|
rxIRC provides a set of predefined variables which is compatible
|
|
to ircII. Here goes a list:
|
|
$, the nickname that last sent you a message, notice or invitation
|
|
$: the nickname that last joined your channel
|
|
$A your current away message
|
|
$C your current channel (or rather 'target' in rxIRC-speak)
|
|
$H last protocol command or numeric received
|
|
$I channel you were invited to last
|
|
$K the command character (usually '/')
|
|
$N your IRC nickname
|
|
$Q current query nickname
|
|
$S current IRC server's name
|
|
$T your query partner, if you are in a query, or otherwise
|
|
your target (channel usually)
|
|
| $U URL of your builtin httpd, if active
|
|
$V rxIRC version
|
|
$Z current time
|
|
$$ the $ symbol itself
|
|
|
|
Multiple commands:
|
|
You can execute multiple commands in a row by putting '::' between them.
|
|
Like this:
|
|
/smile::grin::giggle
|
|
|
|
Notice how the slash is valid for all three of the commands!
|
|
You need not and may not call something like "/smile::/grin".
|
|
|
|
Bitnet support:
|
|
rxIRC now fully supports BITNET messaging, first you have the /tell
|
|
and /yell commands for traditional way of sending bitnet messages,
|
|
but you also have /msg +nickname (or /query +nick, /target +nick).
|
|
When a message target begins with a leading plus sign, rxIRC will
|
|
not send the message to IRC, but instead send it to the BITNET
|
|
user specified. So you can easily query a bitnet user with /query +.
|
|
|
|
BITnet message receivers can be specified by nickname from NAMES
|
|
file or with <userid>@<node> or '<userid> at <node>' or <local_userid>.
|
|
|
|
rxIRC handles incoming BITnet messages properly and will
|
|
display them as neat as possible. It also checks for /ignore
|
|
by both nickname and userid@node. If you are /away, also bitnet
|
|
| users are informed of this when they talk to you, but only once.
|
|
|
|
rxIRC is capable of sending messages over alternative routes
|
|
than BITnet allows by default. To achieve this you need to
|
|
specify "via <node>" at the beginning of a message and all following
|
|
messages will be forwarded through that node. For instance:
|
|
|
|
/m +strange via psuvm hello!
|
|
|
|
This will send 'hello!' first to PSUVM which then forwards it to MAINE.
|
|
|
|
You can also generate local CP SMSG or CP SEND by specifying "smsg" or
|
|
"send" as arguments to "via".
|
|
You can remove a 'via' redirection with "via none".
|
|
You can set up different via's for each userid@node.
|
|
|
|
To speed up operation, rxIRC keeps internal mappings from nickname to
|
|
userid@node and from userid@node to nickname. That is, your NAMES file
|
|
is only queried once. So should you change the userid@node information
|
|
in your NAMES file from within rxIRC for a nickname that has already
|
|
been read in, you'll have to restart rxIRC.
|
|
|
|
Escape characters:
|
|
There are two escape characters in rxIRC. One is the rxIRC command
|
|
character, which is by default a slash ('/'). Two is the CMS command
|
|
escape character '!'. You can abbreviate /exec by just typing !<command>.
|
|
|
|
Default PF keys:
|
|
rxIRC stores your regular CMS PF-keys setup and re-defines it with
|
|
leading ! symbols which is the command escape of rxIRC. That means,
|
|
your normal CMS PF setup works also within rxIRC, unless you redefine
|
|
keys during your rxIRC session. When leaving, rxIRC puts the PF key
|
|
settings back as they were before (or almost).
|
|
|
|
Special commands of rxIRC:
|
|
|
|
/ABort
|
|
You may leave your session non-caring about the status of your TCPIP
|
|
connection. Use this only when you can't get out with /bye.
|
|
|
|
/ALias [<alias name> [[<argument catchers>] <command string>]]
|
|
You may create your own abbreviations for simple or complex commands.
|
|
Commands may not contain the command char. Multiple commands can be
|
|
specified by separating them with '::'. User-provided arguments can be put
|
|
into variables by writing as many '%<var>' as you need in front of the
|
|
command string. Alias names are case insensitive.
|
|
|
|
Some examples:
|
|
alias ni msg nickserv@service.de
|
|
This will convince rxIRC to send a message to NickServ with /ni <msg>.
|
|
|
|
alias date expr date date()::echo $(date)
|
|
This makes rxIRC output today's date. Notice how I first used the
|
|
/expr command, then the /echo command.
|
|
|
|
alias ctoggle %k %c pf$k imm /toggle $k |join $c|part $c
|
|
This allows you to setup a PF key to join or leave a channel
|
|
alternatingly simply by typing "/ctoggle 9 #PartyZone".
|
|
Notice how it catches the two arguments and puts it into $k and $c.
|
|
Then it calls pf$k which in our case is 'PF9', the rxIRC command
|
|
to setup the PF9 key. The key then will immediately perform
|
|
"/toggle 9 |join #PartyZone|part #PartyZone" which takes
|
|
care of the alternating impact of the pf9 key. See /toggle for details.
|
|
|
|
alias sgg smile::grin::giggle
|
|
/alias is treated differently from all other commands, in the sense
|
|
that the line following /alias is not preprocessed as usual.
|
|
This means $(variable) is only replaced _when_ the alias is actually
|
|
used, not when you define it. Also you can specify multiple commands
|
|
within an alias by putting '::' between them. The commands will be
|
|
executed in a row as soon as the alias is used.
|
|
|
|
alias sgg
|
|
Using /alias with just one argument will display the definition of
|
|
that particular alias.
|
|
|
|
alias
|
|
Using /alias without arguments will list the aliases.
|
|
|
|
Note: I have not provided a command to un-alias an alias as it's
|
|
not really needed.
|
|
|
|
/CAtalog
|
|
This command will show you a compact list of all channel names that have at
|
|
least 5 persons on them. Unfortunately it takes quite some time to perform
|
|
as it has to process a lot of data from the IRC server before being able
|
|
to display the collected information.
|
|
|
|
/Channel <new channel>
|
|
This command will automatically /part you from your previous channel
|
|
before joining this new channel. If you don't want to get confused
|
|
by multiple channels, better always use this command instead of /join.
|
|
Without argument it will tell you what channel you are on.
|
|
|
|
/CHOP <nickname> [<nickname> [<nickname>]]
|
|
Make people channel operators of the current channel.
|
|
A shorthand for "/mode $C +o <nickname>"
|
|
|
|
/CLear
|
|
Clear the screen. Just in case you're not used to hitting PA2.
|
|
|
|
/CMdchar <character>
|
|
Use another character than '/' to introduce commands.
|
|
|
|
/DEscribe <target> <description>
|
|
This command generates a CTCP ACTION description like /ME and the
|
|
other action commands, but you can specify where to send it to.
|
|
Target can be a nickname or a channel, not a bitnet user of course.
|
|
|
|
/ECHO <text>
|
|
Display a line of text to the screen. Typically used combined with
|
|
variables like this:
|
|
expr t left(time(),5)
|
|
echo The time is $t
|
|
|
|
/Execute <command> or more easily just: !<command>
|
|
You can execute CMS commands with this, but remember not to stay too
|
|
long outside IRC or the IRC-server will most likely close your connection.
|
|
|
|
/EXPOrt <filemasks>
|
|
| With this command you define which files can be accessed via WWW if you
|
|
| activate the builtin httpd, using a <filename>.<filetype> notation as is
|
|
| visible from WWW (hello.html being the file HELLO HTML *). Typical usage
|
|
| is "/export *.html", remember that index.html is the file that is loaded
|
|
| first when a user inspects your WWW server.
|
|
|
|
/EXPRession <varname> <rexx expression>
|
|
This allows you to store the value of a rexx expression into a variable.
|
|
You can use RexX builtin functions such as substr(), words() giving you
|
|
a quite powerful medium to operate on variables.
|
|
Some examples:
|
|
expr time time()
|
|
expr t left('$(time)',5)
|
|
echo $t
|
|
Notice the trick that makes the contents of $(time) a valid rexx
|
|
string by putting '' around it.
|
|
|
|
/Follow
|
|
If you have just been invited to a channel this is an easier way to
|
|
join it. rxIRC will remember the name of the channel for you.
|
|
|
|
/IF <rexx condition expression> THEN <command>
|
|
This will make rxIRC perform <command> only when <condition> is met.
|
|
The <condition> must not contain spaces, in exchange it may contain
|
|
RexX builtin function.. you can even make floating point calculus!
|
|
Here goes an example:
|
|
expr a 5/2
|
|
if 2*$a=5 then echo People really win on IRC!
|
|
|
|
/IGnore [ <nickname>|<address-mask> ] [ <more...> ]
|
|
If you don't want to receive a person's messages, you can use /ignore
|
|
on him. Use it again to remove the /ignore. Without arguments you
|
|
get the list of people being ignored by you. The ignore function
|
|
catches /msg's, /notice's and bitnet messages from the specified
|
|
nickname. It also sends a notice back to the sender telling him that
|
|
you are not receiving his messages unless you specify it to be silent with
|
|
the rxIRC option "(Quiet". An <address-mask> is a string that will
|
|
match a set of hosts from whom you don't want to hear anything.
|
|
For example "*.ais.org" will keep any message from a user of that
|
|
organization away from you. You can apply this to BITnet nodes aswell.
|
|
|
|
/INTerpret <rexx statement>
|
|
This will simply execute a RexX statement. A command for hackers.
|
|
|
|
/Invite <nickname> [<channel>]
|
|
I made the channel argument optional. "/i lynx" will invite me to
|
|
your current channel without hassle.
|
|
|
|
/K <nickname>
|
|
The quick way to kick somebody off a channel. This is a shorthand
|
|
for /kick $C <nickname>
|
|
|
|
/LAstlog [<number of lines>]
|
|
This shows you the last messages you received, usually 12 lines, but
|
|
you can request more (up to 50) or less.
|
|
|
|
/LIst
|
|
Shows a list of channel names, number of users and topic.
|
|
There must be at least 8 people on the channel for it to be listed,
|
|
unless you are running in LIST_ALL mode (See options in SYNTAX).
|
|
|
|
/Localwho (you may as well type /LCL)
|
|
Shows you a list of IRC users that are from the same site as you or
|
|
are using an IRC server which runs at your institution.
|
|
|
|
/LOgging [ON | OFF]
|
|
You can switch the logging on and off. That means you get a transcription
|
|
of your IRC session into the file IRC LOG A0 on disk.
|
|
|
|
/NAmes
|
|
Shows a list of channels and people on them, but only those channels
|
|
that have at least 7 visible persons aboard. This should be modified into
|
|
something more flexible but for now it's like this. See also: /cat
|
|
|
|
/NF [ <nicknames> ]
|
|
| Short form of /notify
|
|
|
|
/NOTIFy [ <nicknames> ]
|
|
| With this command you can tell rxIRC to watch out for certain people to
|
|
| show up on IRC. You will be informed within one minute when they sign on.
|
|
| Using /notify on the nickname again will remove it from the list.
|
|
|
|
/OMit [ <nickname>|<address-mask> ] [ <more...> ]
|
|
| This one lets you filter the communication on a channel by leaving the
|
|
| lines out that were typed by people you aren't listening to anyway.
|
|
| So it's much like an /ignore for channel talk.
|
|
|
|
/Query [ <nickname> | <channel> ]
|
|
You can get into a dialogue mode with a person, all lines you type are
|
|
sent as private message to this person. If you want to talk onto a
|
|
channel you might be on at the same time you can do "/ <text>" without
|
|
leaving the /query. To leave the /query use /query without arguments.
|
|
If you want to use #-type channels you need to /query those, too.
|
|
|
|
/PF<n> <mode> <string>
|
|
You can use /pf1 through /pf24 to setup your PF keys. This command is
|
|
actually nothing but a short form of !cp set pf<n> <mode> <string>
|
|
so better refer to the CP SET manual for details on usage.
|
|
Ok, I will resume: <mode> can either be IMMediate or DELayed.
|
|
|
|
/Reply
|
|
This is a shortcut to get into a /query with the person that last sent
|
|
you a message, notice or invitation.
|
|
|
|
/Request <nickname> | <channel>
|
|
Send a CTCP (Client To Client Protocol) Version Request to a person
|
|
or a whole Channel. IRC program that have this implemented will
|
|
automatically respond as does rxIRC when it gets such a request.
|
|
|
|
/SAY <words>
|
|
Speaks to the channel. Useful for aliases and source-scripts.
|
|
|
|
/SErver <address> [ <port> [ <timeout> ] ]
|
|
Switch to another IRC server. rxIRC will exit if the server does not
|
|
respond.
|
|
|
|
/SET [<variable> [<value>]]
|
|
Set or query the contents of a variable, or if used without arguments,
|
|
give a listing of all user-defined variables.
|
|
|
|
/SKIP <number_of_lines>
|
|
Tell rxIRC to skip the next <number> of lines of the file being
|
|
sourced. Meaningless to be entered interactively. Lookup up /source
|
|
for a practical example of skip's use.
|
|
|
|
/SOurce <filename>
|
|
Looks for a file called '<filename> RXIRC *' on all linked disks,
|
|
then attempts to read it and execute it line by line.
|
|
/source PROFILE is automatically executed when you start up rxIRC,
|
|
| /source CONNECT right after you have connected to the server.
|
|
Lines are always treated as commands. The commands may not have the
|
|
leading command character (the slash). Multiple commands can be specified
|
|
in one line separated by '::' and lines can be indented.
|
|
Especially interesting for scripts are the commands /if, /skip, /stop.
|
|
For instance like this:
|
|
|
|
expr month word(date(),2)
|
|
if word(date(),1)/=1 then skip 2
|
|
echo Hey! Today is the 1st of $(month)!
|
|
skip 1
|
|
echo Today is just another day of $(month)...
|
|
echo Anyway.. what I really wanted to say...
|
|
|
|
This shows how to make an if-then-else construct in an rxIRC script
|
|
in a pretty assembler-like manner.. ;)
|
|
Indenting improves readability slightly.
|
|
|
|
/STatus
|
|
This outputs some of rxIRC's variables, tells you what channel you are
|
|
talking to (Target), what query, where you got invited to last and who
|
|
last sent a message to you.
|
|
It also shows a /whois of yourself.
|
|
|
|
/STOP
|
|
This command only makes sense within scripts. It stops rxIRC from
|
|
executing scripts any longer. Might be useful combined with /if.
|
|
|
|
/T <topic>
|
|
Set a topic on the current channel. Shorthand for "/topic $C <topic>".
|
|
|
|
/TAlkto <new target>
|
|
This is the ONLY command to allow you to switch to another channel when
|
|
you are on multiple channels! You can NOT use /join for that.
|
|
However this command is even more flexible, you can use it with a nickname,
|
|
then all you type is sent to that person, just like /query. The difference
|
|
is: You can overlay two dialogues, by having two people in /talkto and
|
|
/query, then talk to the queried directly and to the other with the '/ '
|
|
command.
|
|
|
|
/TCPipstatus
|
|
Gives some information about your connection to IRC. The number of bytes
|
|
in the input buffer might be interesting. If there are any, then your
|
|
connection to the server is probably suffering from netlag.
|
|
|
|
/TEll <nickname>|<user@node>|<user at node> [via <gateway>] message
|
|
Use this command to send a message to a user in BITNet.
|
|
See note about the bitnet support of rxIRC at the top of this file.
|
|
|
|
/TOGgle <key> <c><first command><c><second command>
|
|
This is a tricky feature to allow you to program pf keys with alternating
|
|
function each time you use them. <key> is the number of the pf key.
|
|
<c> is the character used to separate the commands. I use '|' usually.
|
|
Toggle performs <first command>, then sets up PF<key> to call the
|
|
inverted command '/TOGGLE <key> <c><second command><c><first command>'
|
|
Here's one practical example you can include in your PROFILE RXIRC:
|
|
|
|
pf5 imm toggle 5 |query Nickserv@service.de|query
|
|
|
|
This will set up the PF05 key to /query or un-/query NickServ.
|
|
Look also for the 'ctoggle' alias described in /alias.
|
|
|
|
/Umode <mode switches>
|
|
Change your "mode", that is change some flags in the IRC server
|
|
concerning your connection. See IRC documentation about this.
|
|
This is just a shorthand for "/mode <yournick> <switches>".
|
|
|
|
/UNCHOP <nickname> [<nickname> [<nickname>]]
|
|
Remove channel operatorship of the current channel from some people.
|
|
A shorthand for "/mode $C -o <nickname>"
|
|
|
|
/VIewlog
|
|
A handy command to check out today's IRC log.
|
|
Uses the CMS command 'BROWSE'. Hope that one exists on every CMS.
|
|
|
|
/WHO [<channel> | <nickname> | <matchstring>]
|
|
The /who command can now be used without arguments, if you are talking
|
|
to a channel, it will show you the WHO list of that channel.
|
|
You can match hosts as well as real names with <matchstring>, so
|
|
the normal way to get a list of e.g. all italians is to type '/who *.it'.
|
|
The logic that displays WHO output has become very complex (and
|
|
colourful if you have colours by the way). It will display the channel
|
|
information only if it still fits into the line. Also, if there is still
|
|
not enough space, it will truncate the hostname and put an '*' after the
|
|
'@' to indicate that. But it will only truncate the hostname to a certain
|
|
minimum, from then on it will shorten the real name information and
|
|
indicate that with a pair of periods, but that only happens in extreme
|
|
cases. /who should always give you as much info as possible without
|
|
wrapping lines. If you however do need more info don't forget about /whois.
|
|
|
|
/Xamine
|
|
Quicky to get a /whois of the person that lest sent you a message.
|
|
|
|
/Yell <arguments>
|
|
This is just like /tell with one little difference. Yell prepends
|
|
your own nickname in front of the message. Use it when it's likely
|
|
that your dialogue partner is not running a message handling program
|
|
and doesn't know your userid by heart.
|
|
|
|
* <remark>
|
|
With this you can add CMS-style comments in your RXIRC source files.
|
|
Lines beginning with * are skipped.
|