yaccc, “yet another cyan chat client”, is written by Denis Defreyne. It is a client for the CyanChat protocol, a chat system written by Cyan Worlds, creators of Myst, Riven and Uru. It is written in Python and licensed under the GPL.
History
I began writing yaccc because there were no good CyanChat clients for *nix. I wanted a simple, command-line client that fully supported protocol 1.
yaccc was partially inspired by chip’s CyanChat program, also known as CCCP (Chip’s Cyan Chat Program
). It worked in Linux, but was quite slow. I took the socket stuff from CCCP, modified it, and used it for yaccc. In the meantime, chip has rewritten the yaccc socket stuff himself (he has the now outdated yaccc patches on his web site).
chucker has been working on ccccccc, an alternative to yaccc written in Ruby. (At the moment of writing, ccccccc is not very usable yet, though.)
Download
Download yaccc 0.1.1 (the latest version).
Older versions can be found in the yaccc directory.
Installation
Before trying to run yaccc, make sure you have installed Python. You can get Python from the Python web site. Python 2.1 or newer is required.
To install and configure yaccc:
- chmod +x yaccc.py
- edit yaccc.py and edit the preferences at the top of the file (under the license)
- ./yaccc.py
You can also install yaccc.py into /usr/local/bin/. You can either do this by typing ‘make install‘ as root. Or, you can ‘cp yaccc.py /usr/local/bin/yaccc‘ manually. Now you can just type ‘yaccc‘ to run yaccc. Also, make sure /usr/local/bin/ is in your $PATH.
Commands
All commands are lowercase.
- /login nick: logs in with the chosen nick
- /login: logs in with the default nick
- /nick newnick: changes your nick to newnick
- /query user: starts a conversation with user
- /query: stops the current conversation
- /who: shows a list of online users
- /whois user: shows information about nick
- /help: shows help
- /ignore user: ignores user
- /ignored: shows a list of ignored users
- /me action: acts out action
- /say text: says text (useful if text starts with a slash)
- /logout: logs out
- /quit: quits yaccc
Preferences
Most of yaccc’s preference options are self-explanatory, but I’ll explain the more complex options here.
timestampformat: This option allows you to set your own file stamp format. The tokens used are the directives from Python’s time module. Here’s a list of tokens you can use (taken from the Python time module reference):
- %a: Locale’s abbreviated weekday name.
- %A: Locale’s full weekday name.
- %b: Locale’s abbreviated month name.
- %B: Locale’s full month name.
- %c: Locale’s appropriate date and time representation.
- %d: Day of the month as a decimal number [01,31].
- %H: Hour (24-hour clock) as a decimal number [00,23].
- %I: Hour (12-hour clock) as a decimal number [01,12].
- %j: Day of the year as a decimal number [001,366].
- %m: Month as a decimal number [01,12].
- %M: Minute as a decimal number [00,59].
- %p: Locale’s equivalent of either AM or PM.
- %S: Second as a decimal number [00,61].
- %U: Week number of the year (Sunday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Sunday are considered to be in week 0.
- %w: Weekday as a decimal number [0(Sunday),6].
- %W: Week number of the year (Monday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Monday are considered to be in week 0.
- %x: Locale’s appropriate date representation.
- %X: Locale’s appropriate time representation.
- %y: Year without century as a decimal number [00,99].
- %Y: Year with century as a decimal number.
- %Z: Time zone name (or by no characters if no time zone exists).
- %%: A literal “%” character.
usecustomserver, customserveraddress, customserverport: These three commands allow you to choose a custom server. You can also specify a proxy address instead of a server address. If you want to use a custom server/proxy, set usecustomserver to 1. Then, change customserveraddress to the address of the server, and change customserverport to the port you want to connect to. That’s it! =)
Tips & Tricks
If the chat message you are sending gets mixed up by incoming messages, hit ^R (control-R). Your full chat message will appear on the bottom line.
In Mac OS X, you can rename yaccc.py to yaccc.command to make it double-clickable. When you double-click it, yaccc will open in a new terminal window. Very useful!
Authors
- Denis “amonre” Defreyne: Main program author and maintainer
- Paul “chip” Querna: Wrote the patch: cleaned up source code by adding a separate connection class
- Thomas “Beelsebob” Davie: Wrote the easter egg =)
Bugs
If you are typing something while a new message arrives, the input line gets messed up. This will be fixed in version 0.2 (ncurses-based GUI will get rid of this). In the meantime, you can type ^R to make your text appear at the bottom of the line.
Linkin messages do not display from where the user links in.
Linkout messages do not display how the user links out (”links out safely…” or “mistakenly used an unsafe linking book…”)
License
yaccc is open source; it is licensed under the GPL, which comes with the tarball.