I am interested in making a Google Talk client using Python and would like to use the Twisted libraries Words module. I have looked at the examples, but they don't work with the current implementation of Google Talk.
Has anybody had any luck with this? Would you mind documenting a brief tutorial?
As a simple task, I'd like to create a client/bot that tracks the Online time of my various Google Talk accounts so that I can get an aggregate number. I figure I could friend the bot in each account and then use the XMPP presence information to keep track of the times that I can then aggregate.
Thanks.
wokkel is the future of twisted words. metajack wrote a really nice blog post on getting started.
If you want a nice, functional sample project to start with, check out my whatsup bot.
I have written a simple Jabber bot (and thus Google talk bot) using the xmpppy
library, which works well. The examples on xmpppy should get you started (specifically bot.py
)
As for something actually implemented in twisted.Words:
Here is a simple tutorial on creating a bot that prints every received message to the local terminal (and a version that replies with the revere of the received message). To track the online time of various accounts, you would add a callback for "presences" (going online/offline/away etc are "presence changes", in Jabber terminology)
For a more complete system, pownce-jabber-bot uses twisted.words and wokkel for the jabber interface.
The powncebot/__init__.py file seems like a good place to start - it's seems pretty simple.
I was looking building an XMPP client in python a while ago. I haven't gotten around to working on the project I was looking at it for. I didn't see anything that used twisted but are a couple XMPP libraries I found.
- https://launchpad.net/python-xmpp/
- http://xmpppy.sourceforge.net/
- http://pyxmpp.jajcus.net/
I also found a python program, under the GPL, that acts multi-point conference system using XMPP.
http://coders.meta.net.nz/~perry/jabber/confbot.php
As the Twisted libs seem to be out of date, you have two choices:
Implement your own XMPP-handler or look for another library.
I would suggest working with the raw XML; XMPP is not that complicated and you are bound to learn something.