vicq - console ICQ2000 client
vicq [-u UIN] [-rbo] [-c config] [-t delay]
vicq is console icq2000 client, simmilar to micq When invoked with -u option, vicq expects to read single message from stdin and sends it to the specified UIN Use alternative config instead of ~/.vicq/config Do not send contact list and visible/invisible list (use in a non-interactive mode) Do not request offline messages (use in a non-interactive mode) Delay between commands in non-interactive mode Register new UIN on startup
Non-interactive mode You can use vicq in non-interactive mode by writing script and sending it on stdin of programm, for example:
echo "msg gonzo/hi" ⎪ vicq -b -o
or
$cat > xxmsg gonzo/himsg gonzomultilinemessage.^D$cat xx ⎪ vicq -b -o -t 5
On slow connections you must set delay between commands using -t option because some message disappears ( i dont sure that source of this problem slow connections, may be ICQ server drops flood messages) Config file (~/.vicq/config) consists of several sections described below. Each section starts with header line like this: '[section_name]'. Lines starting with '#' are comments. You can split entire config in several files using 'include' directive. BUT! You should place whole section in one file, the section header should be placed in the same file. Example of using include you can find at http://www.gonzo.kiev.ua/projects/vicq/eg/
[options] The [options] section contains configuration variables. Each variable is in "name=value" format (case-sensitive). Configuration variables: User's UIN User's password If you dont want to save config on exit set this variable to 1: keep_config=1 Valid values 'koi','win' and 'translit', depending on your terminal If not zero, vICQ will request info on every UIN which is not in ContactList automaticaly if not zero ICQ will not show your IP Main vICQ prompt template. The following variables will be parsed and may be used in prompt string:
%S - by short description of your status
%U - by your uin
%h - current hour
%m - current minute
%s - current second
%% - '%'
Example:
prompt=vICQ(%S)/%U[%h:%m:%s]E<gt>
Path to external file with sms phones in [phones] section format. Section tag ('[phones]') is must for this file. Length of separator line if not equal to 0 disables separator without text Number of messages which displays in user history, if its negative - displays all history Valid values normal or silent. In silent mode status_change events does not appear on screen. Initial status. Valid values are:
OnlineFree_For_ChatAwayNot_AvalibleOccupiedDo_Not_DisturbInvisible
If this is not 0, vicq will use colors. If this is not 0, vICQ use colors for history output(You can set you PAGER environment variable to less -R for using color) Color of the separator line Color for the title separator Color for highlighting nicknames Color for highlighting uins Color for highlighting status Color for highlighting time Message color Color for incoming events in history Color for outgoing events in history
Valid colors are:
NORMALYELLOWMAGENTAWHITEBLACKREDGREENBROWNBLUECYANLIGHT_CYANLIGHT_REDLIGHT_GREENLIGHT_BLUE
And three text attributes for monochrome terminals:
BOLDUNDERSCOREREVERSE
Command for playing sounds (see [sounds] section) '%f' in player path will be replaced with filename chosen according to the [sounds] section
Example:
player=/path/to/player -f %f -o /dev/dsp
Command for browsing received URLs: '%u' in browser command will be replaced with last recieved url
Example:
browser=/path/to/browser -navigator %u
If not 0, vICQ with work through HTTPS-capable proxy If not 0, vICQ with work through SOCKS-capable proxy(v5 only available for this moment) HTTPS/SOCKS proxy host HTTPS/SOCKS proxy port Login for HTTPS/SOCKS proxy authorization (if ommited - don't use aythorization for SOCKS proxy) Password for HTTPS/SOCKS proxy authorization if 1, always connect to login.icq.com on port 443, regardless of what specified in the reconnection messages
Example of HTTPS proxy configuration:
https_proxy=1proxy_port=3128proxy_host=10.25.0.99proxy_force_https_port=1
Example of SOCKS proxy configuration(without authorization):
socks_proxy=1proxy_port=1080proxy_host=10.25.0.99
Directory, which contains history files.
Example:
log_path=~/.vicq.log
Specifies method which logs saves. Its a string if its empty - don't log, else calls methods correspondingly chars which appears in strings. Valid chars:
a - log to <log_path>/vicq.logu - log to <log_path>/<uin>.logs - log status changesn - make newlines between log recordsl - make symlinks <nick>.log to <uin>.log
Default: log_type=u.
Example:
log_type=usln
If not 0 mICQ style completion is using: cicles through UINs used in previous msg commands If not 0 messages longer than 450 chars will be splitted into several parts, otherwise - message will be truncated to 450 chars
[aliases] The [aliases] section contains run-time options. Its format is 'alias=command'. Example:
m=msg
[phones] The [phones] section contains phonebook for SMS messages in 'nick phone' format. You can use these aliases in 'sms' command Example:
squid +380xxxxxReY +380xxxxxx
[events] The [events] section contains events hooks. Its format is
event[/nick][⎪my_status] command or
[!][⎪]event[/nick][⎪my_status] "command1","command2" where event is the type of event, nick_or_uin sender's nick or uin, my_status your status (all parameters could be glob-style wildcard), if optional parameters nick_or_uin or my_status is ommited then they acts as *(any). command is an command name to be executed when event occurs and event type, sender's info and your status matches specified parameters.! in the beggining means that hook is inactive. ⎪ in the beginning means that event does not break checking after match. The following variables will be parsed and may be used in 'command' string:
%e - by type of event
%u - by sender's uin
%n - by sender's nick
%t - by message text (or status value if type of event is 'status_change') Y ou can use uppercase modifiers to make them colored e.g.
%E - colored type of event
If you want run external command - use ! in command definition. Examples:
* ! echo 'Event %e from %n(%u) : %t' ⎪ mail [email protected]
(send email to [email protected] with the full description of the recieved event)
text_message msg %u/i will read this message later
(simple autoresponder)
text_message⎪online msg %u/hi\nI am onlinetext_message/GonZo⎪away msg %u/hi GonZo\nI am away
(extended autoresponder) List of events types:
sms_delivery_receipt
status_change
URL
sms_message
contacts_request
email_message
text_message
offline_text_message
contacts
add_message
auth_request
sms_response
sms_message
user_short_info
user_info_not_found
ack_offline
set_permissions_ack
user_info_unknown
user_info_about
user_info_main
user_info_extra_emails
set_main_info_ack
wp_final_result_info
wp_empty
user_info_homepage
wp_result_info
user_info_past_background
user_info_personal_interests
[sounds] Section [sounds] is similar to [events] section, allowing you to specify audio files played upon various incoming events. Playback will be done through the "player" application defined in the [option] section, with %f token substituted with the proper filename.
[contacts] [contacts] section lists UINs, format is the same as in .micqrc:
UIN Nickname
To add user to visible list add asterisk (*) before UIN (see vicqrc.example). If you want be invisible to user add tilde (~) before UIN. If you want create alias for UIN/Nick just add aliases in the line below UIN (see vicqrc.example)
Completion & nick handling You can use TAB to complete command or nick, if your nicks contains spaces: use double quotes to handle this nicks eg:
vICQ>msg "anri <TAB>
Messages handling send an instant ICQ message send SMS to specified person replie to last received message send a message to the last person you sent a message send an authorization to specified UIN send an URL to specified person
Status managment change status to 'Online' change status to 'Invisible' change status to 'Away' change status to 'Not availabe' change status to 'Occupied' change status to 'Do Not Disturb' change status to 'Free for chat' change status to 'Offline/Disconnect'
Contact list managment add UIN as nick to contact list display the current status of every person in your contact list display the current status of every online person in your contact list add/remove user to/from visible list add/remove user to/from invisible list display last count entries of the user's history. If count is negative shoes all entries display user's UIN, nick, current status, IP(and resolved host if available), dirrect connection info, and client version
Miscellaneous commands display help on command execute external command save config send user info request searche for ICQ user toggle to silent mode - change status events does not displays toggle to normal mode - change status events displays open last recieved URL with browser command shows/sets config variables values set basic White Pages info clear screen
show/change command aliases, ex:alias q=quit
Show last message from UIN or nickname
Sends to the output I<sting>. Use mainly in hooks
Set 'web aware/need authorization' on/off, ex:permissions +auth -web
Display current version of vICQ
activate/deactivate event or add new event
register new UIN with specified password
Message editing Input . in the empty line to end message or # to cancel message Alexander Timoshenko <[email protected]>