QtChat Chat Client Homepage

CONTENTS


DESCRIPTION

QtChat is a GUI chat client front-end for Yahoo! Chat for UNIX and X-Windows. It uses the Qt toolkit from Troll Tech and has been compiled on FreeBSD and Linux platforms. The goal of this project is to create a feature-rich collaborative tool with lots of goodies for programmers.

This project was begun for several reasons:

Currently QtChat is in an early alpha stage at best, but still functions fairly well.

The current release, 0.9.7.6 , is a development snapshot to fix the latest in Yahoo's changes to the YCHT login protocol.  Many thanks and malted beverages due to divine_dj, who supplied the patch.  I am only releasing this version now since noone is able to use QtChat without this fix and apparently I have the only working copy.  BE WARNED: This version was slated to fix many of the annoying little bugs in QtChat before I was forced to make it public, and has many debugging print statements turned on (of course you have the source code and may comment the 'cerr <<' lines out yourself).  Among the features fixed/added are:

There's a passive anti-spam feature added which returns all posts from a user back to that user via PM... and I mean *every* post.  It was meant to cut some of the bandwidth of some spammers.  Knowing human nature this feature will disappear from any subsequent release.

Development in the current tree has been suspended and work has shifted completely to the 2.0 model.  Being the procrastinator that I am, I almost never work on 2.0 at the moment, but most of the core is complete, I have to implement the Yahoo protocol-specific code and actually write a front end for it, which will probably be a curses client initially.  Right now the best (okay, only) command line client I've seen is from Hiro_Protagonist_II called Curfloo.

Version 2.0 is slated for a revamped engine with support for user-defineable plug-in modules using (hopefully) CORBA, file transfer, other goodies.  It will be OS-independent and front-end independent; as such, calling it "QtChat" will be something of a misnomer since it doesn't use Qt or any other GUI lib by default.  There will probably be a Qt front-end, and probably a GTK+ one (since everyone's been bitchin' at me to use GTK+ :-) and a Curses one.

QtChat currently supports features such as joining rooms, chatting, pm, ignore user, autoignore, minimal invitation support, User away/back messaging, minimal buddylists, etc.

A later version will feature a whiteboard application or collaboration on source code. Also will be file transfer protocol that will try to be compatible with as many other third party clients as possible.  The whiteboard application is being coordinated by myself and ronin_aurora_eagle of Yahoo! Chat and I hope to have a webpage up describing the interfaces for my sketchings of the project.  I'm also reading the specifications for the voice codec that Yahoo! Chat uses, but it's been so long since I've done digital signal manipulation and the code is greek to me at present.  So a QtChat-only voice protocol might be in the works.
 

SCREENSHOTS
 
 

QtChat: Main Screen QtChat: Login Dialog QtChat: Ignore Preferences Dialog QtChat: Debug Widget

 

NEWS
 



01-April-2002
Once again, Yahoo has screwed with the protocol.  I'm working on adding YMSG support (anyone got any docs?)
20-May-2001:
Okay, if Yahoo would quit changing the fuckin' protocol I wouldn't have to do this. 0.9.7 fixes Yahoo's change to the username information on 'Room Enter' packets.
27-February-2001:
Added binary for RedHat-6.2.  If this complains about not being able to find a shared library, do an 'ldd' on the binary to see what it's looking for & what the runtime linker was able to match.
04-January-2001: 0.9.6.pre4 and 0.9.5.3 released; fixes yet another Yahoo breaking of their cookie protocol. 0.9.5.3 is actually courtesy of penguin_power86 (hope I got the screenname right) and has many different options, including support for XMMS (needed to compile). 0.9.5.3 is alpha and is only on this page because I've been using it for the past 2 months or so. I've changed a few things from penguin's mods to more realign it with my own tastes (hey, it's an open source client :-) ).
xx-December-2000: Been on something of hiatus since September; new girlfriend (hi  Jag [HTML editor screwup, no time to fix now]
"%21%29,%0Anew%20job,%20new%20city,%20new%20bills%20%28I%20do%20accept%20donations%20for%20QtChat%20by%20the%20way%29...%0Aneedless%20to%20say,%20Jag%27s%20the%20best%20change%20to%20my%20life%20in%20that%20list%20:-%29%0A%3C/td%3E%0A%3C/tr%3E%0A%0A%3Ctr%3E%0A%3Ctd%3E%3Cb%3E24-August-2000:%3C/b%3E%3C/td%3E%0A%0A%3Ctd%3E%3Ca%20href="
0.9.5.2 released; fixes bug in cookie-parsing code.  0.9.6.pre1 patched as well.
15-June-2000:  0.9.6.pre1 made available on this site.
11-May-2000:  0.9.5.1 submitted to Freshmeat and LinuxApps.
10-May-2000:  QtChat-0.9.5 submitted to LinuxApps.com.
Freshmeat.net links cleared up & correctly point to my page.  Again I apologize for any inconvenience.  Apparently (and I don't know why this is) anyone with a Freshmeat account can change an entry, including myself.
09-May-2000 Unfortunately someone has already posted QtChat to Freshmeat , making it impossible for me to post new revisions to this distribution website under the name "QtChat".  I have contacted the person, who ironically offered to maintain binaries of QtChat on his site, but neglected to inform me of the submission.  In an effort to maintain control over the distribution of the intellectual property of the developers of QtChat, I am forced to temporarily deny access to the tarballs from this website.  Hopefully this is merely a simple misunderstanding and the person will remove the unauthorized submission so that I may return the distribution to Freshmeat under my name.  If you desparately need a copy of this spiffy Yahoo! chat client, drop me a line along with a short note mentioning where you heard about QtChat.  I apologize for any inconvenience, and the site will be more publicly available soon.  In the meantime, I'll probably post QtChat to Freshmeat under an alternate name.
08-May-2000 Version 0.9.5 released.
24-Apr-2000 Version 0.9.4.2 released.
24-Apr-2000 Binary distributions for RedHat Linux may be found here.

 

CHANGELOG
 



Moved version number to 0.9.5.1.
Fixed segfault when null chatter created by mis-parsing of some received packets.
Added clickable link for Yahoo mail when announced.
11-May-2000 0.9.5.1
Moved version number to 0.9.5.
Fixed resizing of client.
Completed state saving code.
Fixed updating of chatters list.
08-May-2000 0.9.5 
Added ignore PMs from chatters below specified FriendLevel
Added code to enable/disable/adjust clone detection.
Fixed FriendLevel-handling bug
Began adding code to save QtChat state in ~/.qtchat/qtchat.ini
04-May-2000  
Added enable/disable for different autoignore conditions  21-Apr-2000  
Added AutoIgnore enable/disable to prefs dialog
Added autoignore friend level to prefs dialog
Started on Find dialog again
20-Apr-2000 0.9.4.2
Added clickable status bar that changes menu options. 19-Apr-2000 0.9.4.1
Fixed autoignore count setting in preferences
Added /goto command
14-Apr-2000  
I lost half my changes notes apparently 
Added partial command evaluation (/tel, /q, etc.)
Corrected highlight color restore operation
Corrected highlight color dialog setting (was setting highlight to black if cancelled)
Changed autoignore isIgnorable() to not autoignore FRIEND or higher
13-Apr-2000  
Moved revision number to 0.8.5. 
Added script to check for function declaration of strdup().
Should fix the strdup() declaration problems.
Reenabled compilation of core/emotion.h in lieu of fix.
12-Nov-1999 0.8.5
Fixed bug with /exec command when command is not found in search path. 09-Nov-1999  
Moved revision number to 0.8.4
Fixed bug where chatters who left chatroom were deleted by the damn Qt QListBox widget when removed from the widget. This is thought to be the source of the crash bug.
Fixed the /join command.
Disabled compilation of the core/emotion.* files due to strdup() problems on Linux platforms.
03-Nov-1999 0.8.4
Segfaults noticed on several platforms, including mine :-(  It apparently has to do with my edits to the network class in order to accomplish multiple simultaneous connections.  We can't put off any longer moving to the new model and breaking up YahooNetConnection.  Further comments in this file will include details of changes to new model. 21-Oct-1999  
Moved revision number to 0.8.3. 
Implemented File->New Window menu functionality.
Added File->Close menu item to close single window.
Began adding separate PM window capability.
Modified Makefiles to add warning messages/ copyright info.
Added COPYRIGHT file (empty).
18-Oct-1999 0.8.3
Added new "Connection" pane to preferences dialog.  This pane is non-functional at the moment.
"/exec"/"/shell" commands added.
Fixed View [component] menu item functionality.
Began adding of state persistence to components. Still have to work out mechanism for saving/ restoring state.
Deleted extra files in 3rdparty/ since they aren't being used.  Reduced tarball size to sub-70k.
Edit [Cut|Copy|Paste] functionality added.
Chat entry "Copy" menu item and functionality added.
Added ability to display PM text to room, revamped PM-handling menus.
12-Oct-1999  
Moved revision to 0.8.2 from 0.8.1.  08-Oct-1999 0.8.2
Added new "Diagnostics" pane to preferences dialog, the only pane implemented so far.  New pane now controls messages to stderr such as constructor invocation and network debug printf()'s. 07-Oct-1999  
Added menu items to control display of statusbar,  menubar, chatterslist, ignore bin.  06-Oct-1999  
Added control over debug messages sent to stderr, converted constructor/destructor messages to new method.
Added blank preferences dialog, set up structure for coding the widget.
05-Oct-1999  
Modified net/net.cc to allow entries that begin with ' /' but are not recognized commands to be entered as regular text.
Fixed bug with debug widget; was being instantiated with outgoing posts disabled.
Added arrows to debug widget display to indicate direction of data, until colors are added in the future.
04-Oct-1999  
Moved version no. to 0.8.1 from 0.8.0. 
Added autoignore, fixed limit of 3 identical posts.  This will be *much* more configurable in the future.
Caught a bug with Chatter *me, who represents the person using the client; 'me' was getting deleted when person exits the room and the roomlist was cleared.
Modified roomnames in login widget to drop the "Comp:" part as per the usual Yahoo silliness.
03-Oct-1999 0.8.1
Added ignore bin scrollbox to ChattersListWidget. 02-Oct-1999  
Added loop's patch for Yahoo autologout. 01-Oct-1999  

DOWNLOAD

Current alpha version (sourcecode): qtchat-0.9.7.6.tar.gz
FreeBSD 4.x binary (broken): qtchat-FreeBSD-0.9.7.tar.gz (675917 bytes)
RedHat-6.2 binary (broken): qtchat-RH62-0.9.7.pre1.tar.gz (227466 bytes)
You may browse the archive of QtChat versions here .

INSTALLATION

  1. Download QtChat tar.gz file and save to a working directory, say /usr/home/foobar.  Uncompress and unarchive the archive:

  2.    cd /usr/home/foobar
       gunzip -c qtchat-x.y.z.tar.gz | tar xvf -
  3. Change to the source directory:  qtchat/src/ x.y .z/.
  4. Edit the config.mk file to match your platform.  Also read the INSTALL and README files for instructions & tips.
  5. Type make or gmake to build.  This should try to locate your Qt2 installation directory, as well as determine if you are missing some function declarations that some people have been having problems with.  See the INSTALL file for help with compile problems.
  6. su to root.  If that's not possible, see INSTALL file for alternatives.
  7. Type make install  or  gmake install to install to the directory you specified in config.mk.


KNOWN BUGS


TO DO

Email me at  Scoobi_doo@yahoo.com   if you have any to add to the lists.


Maintained by: Anthony Jenkins
Last updated: May 1, 2002