
On Sun, Apr 08, 2007 at 02:03:03AM +0200, Magnus Henoch wrote:
I'm hacking a library for writing XMPP clients, and just decided that my work is good enough to call it version 0.0.1. Find source and documentation here:
Congrats, you are (at least) the third person to do this. Jeremy Shaw (stepcut): http://www.n-heptane.com/nhlab/repos/haskell-xmpp/ Dimitry Astopov (ADEpt): http://adept.linux.kiev.ua:1080/repos/xmpp
http://www.dtek.chalmers.se/~henoch/text/hsxmpp.html
It contains a werewolf bot as an example. I wanted the bot to speak several languages, but I couldn't find any library that would make that easier, so I wrote one myself, in Translate.hs. Is there any other way to do that? What do other projects use?
I don't know what werewolf is, but maybe you were looking for something like this: http://www.cse.unsw.edu.au/~dons/lambdabot/Plugin/Babel.hs
The library contains an event loop: it waits for data from the network, treats it as events and handles them. (the loop is in runXMPP in XMPPMonad.hs, and the actual waiting is in getString in TCPConnection.hs) I can imagine that it might be useful to integrate this in another event loop, e.g. to create a chat client with a GUI. Do you have any thoughts on whether and how to do that?
The best way to do that is with select(2), known in Haskell as forkIO. Stefan