Alien has asked for the wisdom of the Perl Monks concerning the following question:

This node falls below the community's threshold of quality. You may see it by logging in.

Replies are listed 'Best First'.
Re: How to start writing modules
by Util (Priest) on Feb 23, 2007 at 06:09 UTC

    Start by searching CPAN and Google, to see how much of the wheel you need not reinvent! My search turned up these resources:

    • CPAN modules Net-YMSG and Net-YahooMessenger; Neither looks complete, but you might complete them, or use them as a starting point for your module, or just steal their docs.
    • Gaim is a very popular instant messaging client, that handles (among many others) the Y! Messenger protocol, and allows direct Perl scripting.

    I see that you received similar advice several months ago in a previous thread. Have you asked either of the module authors about taking over maintenance for an existing module? Have you tried Gaim's Perl scripting?

    If you *must* forgo the simpler avenues of attack, then consider writing your module as an Inline::C interface to libgaim. At the very least, try to glean the protocol info from the Y! Messenger sections of the Gaim source code. Packet sniffing can be fun, but not when the traffic you are trying to decipher has been deliberately obfuscated.

      Gaim's Perl scripting is not in good shape (or the highly limited documentation is wrong for sending messages) from what I can tell in my attempts to use it.

      I'd personally like a libgaim module, and would be willing to write tests/documentation for such a module. I talked with the developers about this briefly, but I don't know C at all.

Re: How to start writing modules
by ikegami (Patriarch) on Feb 23, 2007 at 06:01 UTC
      None of the Yahoo modules on CPAN currently work , that's why I would like to write one from scratch.
        You could start by figuring out why they don't work.

        Once you've gone through that, possibly even getting it to work, then you'll have enough experience to know where to start from scratch. And possibly, why.