Friday, October 05, 2007

command line yahoo messanger

Here's the deal. I want to write a program that capture my Yahoo! Messanger (YM) chat in a text file. Basically, a command line chat program. I could have a listener program, which listens my chat partner's responses, and a writer / talker / sender, which sends my text to YM server.

The idea is a mix of dsniff's msgsnarf and Pidgin's finch. Once I can separate the text, I could do so many things (like write a Tcl/Tk wrapper around them building a new GUI, or send them to a web-based program like Meebo, or ... many intersting things).

Now. I need suggestions.

Should I write it from scratch? (Probably using perl or C. Which perl module should I use? I've been neglecting perl for quite a while. I am rusted. I also notice that there is a libpurple library in C. Should I use that one, instead?)

Or modify existing program(s)? Which one? (I just found out there's a program called ari-yahoo on the *BSD port. It's an old program and uses yahoolib. Is using yahoolib a good approach? Or should I go through the jabber route? Then, use this one: jarl - Perl/Tk jabber client.)

Any pointer is welcome.

7 comments:

silent said...

how about libpurple [http://developer.pidgin.im/wiki/WhatIsLibpurple] sir?

sandalian said...

Sir, there is libyahoo in C ready for this purpose. You can check InfoLinux magazine a few months back. The article was written by Noprianto.

budi said...

I've read the documentation, but to be frankly I don't know if I should go into that route.

amadarum.net said...

Good idea,
hm... it will hide from your boss.
thanks for your idea.

Ariya Hidayat said...

I recalled making supersimple & barebone Qt-based YIM client using libyahoo2, it was dead easy and took only a weekend. Give it a try!

budi said...

I've got a lead from www.ycoderscookbook.com/. A nice and thorough site.

Done with the thing. Basically I wrote a messanger sniffer. Capture the packets with tcpdump or snort, then process them with perl + Net::TcpDumpLog. An interesting little beast.

In the message, there are fields (id) and values, separated by "C0 80". I still don't know exactly what the fields mean though since they use number. I just made guesses. For example, "14" is the message and so on. Do you still remember what those fields mean? (Is there a table somewhere?)

zacko said...

net ym modules from cpan
, i am sure its fixable :)