Archive for May, 2007
Sleek as that.
5:34 pmSome people may know that I was once loosely involved in a personality script for IRC bots called ‘bMotion‘, which makes Eggdrop bots a bit more interesting. Although it’s been some years, I still like to keep them around because I think they’re fun; because of this, I’ve been trying for some time to keep ‘Iono’, in the Psi MUC (psi@conference.psi-im.org). Iono was a sellotape and string effort to have bMotion in the MUC. There was an Eggdrop bot running the bMotion script connected to an IRC server, in the same channel as a bridge bot, written in perl, which tried (and frequently failed) to relay the comments of the bot to the Psi MUC, and provide input in the reverse direction. This never worked very well, and I’ve been looking for a better solution, which has now presented itself. The solution takes the form of the SleekBot, which is an early version of a bot, written by Nathan Fritz, based on his SleekXMPP Python library. Read his recent blog post on the subject for more information, and a nice example of Ad-Hoc command usage.
SleekXMPP already has a very nice plugin-based system, with XEPs each being a seperate plugin (it was easy enough for me to write an XMPP Ping plugin, and my Python is famously bad). I tweaked SleekBot a little, and now it also has a similar plugin system (although Fritzy will no doubt fix this up when he finds my bad code), wrote some helper scripts for the Psi MUC (like fact scripts, XEP lookup, Flyspray (our bug tracker) lookups etc.) and set to work on the main bulk of the interest.
The reason for my interest in SleekBot, apart from being a fun piece of kit, is that I’m writing an implementation of the Eggdrop script API as a plugin. What this means is that it’ll be possible to load, with no modification, all the TCL Eggdrop scripts which you love or hate on IRC directly into a bot in an XMPP MUC. This turns out to be a far more major undertaking than I’d originally thought, due to the scale of the eggdrop API, but I’m getting there.
At the weekend, I reached my first milestone. I’ve implemented enough of the API that very simple scripts, such as the Discworld Quotes script will work. Below is a quote of a genuine transaction between the previously mentioned Eggdrop script running directly in SleekBot:
[17:42:43] <kev> !disc
[17:42:43] <iono (Sleek)> “It wasn’t blood in general he couldn’t stand the sight of, it was just his blood in particular that was so upsetting. — (Terry Pratchett, Sourcery)”
So, things are looking good, Eggdrop scripts running natively on XMPP bots. It’s not easy, at least in part because TCL’s not my favourite language, and I’m not too skilled in Python, but it’s progress, and I’m finding it pretty interesting. The next aim before full API support is bMotion running, and once that’s done iono will be in the Psi MUC being as irritating and pseudo-random as ever ![]()
Categories: Jabber, Psi
No Comments »
Psi 0.11-RC1 released
11:34 amIt’s release candidate time.
Psi-0.11-RC1 is out there to be tested, please grab your copies from
Source: http://downloads.sourceforge.net/psi/psi-0.11-RC1.tar.bz2
Mac: http://downloads.sourceforge.net/psi/Psi-0.11-RC1.dmg
Windows: http://downloads.sourceforge.net/psi/Psi-0.11-RC1-win32.zip
Please test this to destruction. If no show-stopping bugs are
revealed in the next few weeks, we’ll go gold. The changelog is as
follows:
* Reworked account registration process (including proper support for XEP-0077 (In-band registration))
* Finished support for XEP-0004 (Data Forms) by supporting forms in messages. (thanks to Roelof Naude)
* Added support for JEP-0070 (Verifying HTTP Requests via XMPP).
* Customizable shortcuts (thanks to Ephraim)
* Added spell checking (thanks to Ephraim). Currently only aspell is supported on non-Macs.
* Added option to automatically set the resource (using the hostname)
* Added new default Stellar3 iconset
* Added support for JEP-138 (Stream Compression)
* Added support for using JEP-33 (Extended Stanza Addressing) to multicast messages to multiple users. Use option.enable-multicasting to enable it.
* Added ‘Show status message’ toggle. There is a hidden option to put status messages under the nickname (at the cost of 2 extra pixels when no status message is shown)
* Support for Bookmark Storage (JEP-0048), where bookmarked conferences are auto-joined. No UI is provided for creating bookmarks (yet).
* Better error messages, including error condition mappings (JEP-0086)
* Support dynamically changing priority
* Improved PGP error messages
* Hiding the deprecated protocol selector for service discovery by default. Use option.ui.show-deprecated.service-discovery.protocol-selector to re-enable it.
* New options system (see options.xml)
* Receiving support for vCard-Based Avatars (JEP-0153)
* Support for Multi-User-Chat (JEP-0045)
* Preliminary support for User Nickname (JEP-0172)
* Preliminary support for Roster Item Exchange (JEP-0144)
* Psi now uses the Qt4(>=4.2.3) and QCA2 libraries, replacing the Qt3 and QCA1 requirements.
* “Privacy List” support in the account dialog.
* Support for JEP-0050 (Ad-hoc commands)
* Preliminary support for JEP-0163 (Personal Eventing Protocol)
* Preliminary support for JEP-0146 (Remote Controlling Clients)
* Large parts of the codebase have been restructured.
* Fixed a chat room bug where subject/topic changes were not shown.
* Mac OS X builds are now universal binaries, supporting the new Intel based Macs.
* Support for JEP-85 (Chat State Notifications).
* Support for JEP-0115 (Entity Capabilities).
* There is now a config.xml option to make some windows use the brushed metal theme on Mac OS X.
* Window opacity support is now present for all three supported platforms.
* Fixed Unicode URL opening bug #510
* Auto-reconnect accounts on wakeup
* Copy-pasting with emoticons now works
* Fixed issue #263 where emoticons would disappear in a reply or quote
* History index is rebuilt faster
* Configure toolbars merged into main preferences dialog
* Moving tooltips
* MingW32 compiler support (Coupled with the open source Qt4 Windows library this now allows completely free building of Psi on Windows)
This is also an announcement of a string freeze and a build system freeze (both short of finding errors in the text or the build system) so translators are encouraged to start translating now, and packagers to test their build systems ready for release.
In the development of 0.11 we’re also pleased to have onboard two new developers, Machekku and Textshell, who’ve both already proved themselves invaluable. Welcome to both.
So, go enjoy yourselves.
Categories: Jabber, Psi
12 Comments »
