You are not logged in Log in Join
You are here: Home » Members » TheJester » The Stupidest Zope Product Ever Written

Log in
Name

Password

 
 

Folder icon The Stupidest Zope Product Ever Written

IrcBot for Zope The Stupidest Zope Product Ever Written.

WARNING: This product interacts dangerously with your live Zope ZODB, if you want to install and run this product you are completely crazy. If you've ever had a corrupted Data.fs file, then you know the possible pain you could be letting yourself in for.

OK, upward, and onward.

I have no idea if this will work under Windows, I seriously doubt it, don't bug me about making it work under windows if it doesn't.

This is an IRC bot that is managed from Zope, and includes a mini-irc client in it that uses Javascript (I didn't spend too much time on this, its more of a proof of concept), to update things like user lists and the channel data. Also some of the framing is hosed :-) needs a bit of a tidy up, but, you use this to "Auth" users to the system, which is to assign them a user level, and allows them to interact with other plugins.

Features are added to the bot via the Plugin system that's available, there are several plugins supplied by default that illustrate different things, most of them allow you to run multiple copies of them if you want to do slightly different things.

  • Log Plugin Logs various channel events, to a Zope structure, and creates searchable logs if you have a ZQuadSex indexer installed.
  • Op Plugin Shows parsing join info and message information
  • Faq Plugin Logs questions and answers to a database for later searching via IRC
  • Fortune Plugin Not really specifically for fortune, executes a command and returns the output back to IRC. Caches the output and prevents multiple calls within a user definable timeframe. Could just as easily be used to ping a site or anything else.
  • User Info Plugin A simple plugin that lets you set attributes on Authorised users and play them back.

Authorised users can /dcc send files to the bot, and they will be stored in the User's Home Folder, they can fetch them later via http. DCC uploads are handled asychronously so they don't lock the bot up. The IrcUser class could be extended possibly with a Membership product to create a mini-portal where people can store and retrieve files, and display stuff from the UserInfo plugin.

Basically I wanted to find out how to get live action happening with Zope, and an IRC Bot is something that can get hammered by others to cause the transaction machinery to fail for me. I didn't want to go via ZEO.

There is an IrcRegistry created in the Root Folder. This is how the bot communicates with the IrcChannel you create. If you run into problems, you can delete the IrcChannel (which force quits the bot), and the delete the IrcRegistry which will prevent it from starting. You can then delete the product from lib/python/Products and you should be ok.

Known bad things: -----------------

The Registry uses the id of the IrcChannel you create, which isn't guaranteed to be unique, we should use absolutePath to create a key that both parties know and can use -- pretty trivial to fix.

Some of the interactions with ZODB don't quite work, there's a problem in particular with the Log Plugin, when it creates a new Days' Log. Restarting Zope if this happens cures all ills -- (some transaction gets committed or something), there shouldn't be any Conflict Errors left, but, with threads and networking who can tell reliably d8)

There is a global event lock, so running more than one bot at once probably won't work the way you want it to, also pretty simple to fix.

It doesn't detect when it gets disconnected from the server, (although adding a hook for the disconnection numerics is trivial to add, I'm just not that interested in going overboard).

Some of the plugins could do with more management interface cleanup.

 Title   Type   Size   Modified   Status 
 Initial Release Edit object Software Release   2001-04-30 published
 Part Users bug fixed Edit object Software Release   2001-04-30 published
 The one with the faq schema Edit object Software Release   2001-04-30 published
 This one build properly... Edit object Software Release   2001-04-30 published