GOZERBOT 0.9.1 released

August 11, 2009

here it is .. GOZERBOT 0.9.1 !!

Main change this time is the distribution method, we now provide a tar.gz with all the dependencies included. This means that you can run the bot locally without any root required. Python 2.5 or higher needed, see http://gozerbot.org

Enjoy !


gozerbot goes nesting

April 13, 2009

so we use pypi now to distribute gozerbot and this made me realize that easy_install could also be used to make a local installation of gozerbot. this puts gozerbot and all its dependancies into 1 directory from which gozerbot can be run. thus i made this script which is downloadable from http://gozerbot.org/gozerbot-nest

quickrun:

  • wget http://gozerbot.org/gozerbot-nest
  • chmod +x gozerbot-nest
  • ./gozerbot-nest
  • cd gozernest
  • ./gozerbot –owner <your userhost>
  • edit gozerdata/mainconfig and gozerdata/fleet/default/config
  • DONE !! ;]

here is the script for the curious:

#!/usr/bin/env python
#
#

__copyright__ = 'this file is in the public domain'

from subprocess import Popen, PIPE
import sys, site, os, subprocess

if not os.path.isdir('gozernest'):
os.mkdir('gozernest')
nestdir = os.path.abspath(os.path.join(os.getcwd(), 'gozernest'))
os.environ['PYTHONPATH'] = nestdir
proc = Popen('easy_install --install-dir gozernest -U gozerbot gozerplugs'.split() + sys.argv[1:], stdout=sys.stdout, shell=False)
proc.wait()
print 'done'
os._exit(0)


GOZERBOT 0.9 RELEASED

February 6, 2009

Finally gozerbot 0.9 has been released.  This is a huge step forward to version 1.0 and contains a number of changes:

  • use json as the format to save data in instead of pickles
  • let config files also use json, this makes them more readable and human editable
  • remove popen usage from the bot core
  • remove execfile() calls from the bot core
  • rewrite the gozerbot package into several subpackages
  • use sqlaclhemy to provide database backend (sqlite3 is default)
  • require python2.5
  • move most of the plugins into their own package
  • restructure the gozerdata layout so its more readable

All these changes makes upgrading from older versions of gozerbot necessary so a gozerbot-upgrade program is provided (upgrading from 0.7 is not supported yet, will follow soon).

See http://gozerbot.org on how to install gozerbot 0.9


shell injection bug found in the ping.py plugin

February 5, 2009

last week a shell injection bug was found in the ping.py plugin. this plugin is not part of the basic gozerbot distribution but can be installed from a remote plugin server with the !install-plug command. this plugin is also provided with the following gozerplug distributions:

  • gozerplugs-BETA1.tar.gz
  • gozerplugs-BETA2.tar.gz
  • gozerplugs-BETA3.tar.gz

all gozerbot maintainers are asked to remove the ping.py plugin from the myplugs (0.8) or gozerplugs (0.9) directory and restart the bot.

because this is a serious bug the gozerbot core is rewritten to remove usage of popen as much as possible and not to allow remote execution of popen calls to the user. therefor the install plugin and upgrade plugins have been removed from core and a seperate program gozerbot-install has been made to allow bot maintainers to install remote plugins while not exposing the installation of plugins to bot users.

this is all done in the new 0.9 release of gozerbot which i will anounce soon.

Bart


Request For (gozerbot) Testers

January 2, 2009

So 0.9 is getting in shape and there is one issue that keeps me from releasing 0.9 and that is the upgrade path. 0.9 is vastely different from 0.8 so a special upgrade script has been written to aid with this. Now i have tested this on some gozerbot users but i need a more broader audience that wants to test this for me. So if you run a 0.8 gozerbot you could help me out with testing the 0.9 upgrade script, testing can be done along side your own bot so you dont loose your old configuration.

To test do the following:

1) hg clone http://core.gozerbot.org/hg/dev/0.9 0.9bot
2) cd 0.9bot
3) hg clone http://core.gozerbot.org/hg/plugs/gozerplugs
4) ./bin/gozerbot-upgrade <oldbotdir> .
5) ./bin/gozerbot

Check if the bot has converted your data properly with the !size command. As a last step you can test the plugins with the !test-plugs command.
If you have any problems with testing gozerbot 0.9 let me know on #dunkbots IRCnet or at bthate@gmail.com .. THNX ;]

Bart


GOZERBOT and the battle of the beta’s

December 1, 2008

version 1.0 of gozerbot is drawing nearer and nearer and this makes me nervous. When 1.0 hits the streets it needs to be API stable so people that write plugins for gozerbot can rely on gozerbot to NOT change. This however turned out difficult for me todo as i have the desperate urge to change the core once every while. So while we are at 0.8.1.1 now i thought of making small changes in 0.8.2 0.8.3 etc until we reached 0.9 hoping at that time that things would have stabilized.

This however turned more difficult because the changes i needed to make in gozerbot were so drastic that the code base got FORKED because keeping backwards compatible code in gozerbot made it grow into obscurity. The fork was made by maze one of gozerbot biggest contributors see http://boozer.codehub.org/.

Like a wakeup call this made my alarm fase turn red and rushed me into moving towards a 0.9 release now in which i try to do all the changes i think are necessary for gozerbot 1.0.

changes as i have them at this moment are:

  • rewriting of the gozerbot package into several subpackages
  • moving base plugins into the gozerbot package so basic bot functionality is provided into the core
  • use sqlite3 as the base backend storage
  • depend on sqlalchemy to also provide backends to other databases
  • moving locally installed plugins into a “gozerplugs” package, this is because the “myplugs” install target didn’t provide enough namespace purity
  • use a new config file format based on json .. no execfile used anymore, plugin config files are now human editable
  • use a new layout of the gozerdata dir adding users, fleet and plugins directories to store related data
  • let Persist class now use json to serialize data to disk as well, getting rid of pickles all to gether since they were the root of a lot of upgrade problems (peristed classed are stored by name making it difficult to move modules around)
  • move third party software into the botdir level. This makes the code as if it the code were globally installed. Basically done so that gozerbot is easier installed on systems like debian and freebsd
  • rename some of the provided programs .. gozerbot-init gozerbot-upgrade

These changes make a huge difference in format in which data is stored, so a seperate upgrade program will be provided in 0.9 to convert older formats into the new one. This however needs a lot of testing and is not yet completed

Anyone who want to help cranking the bugs out of 0.9 is very welcome in out channel #dunkbots on IRCNET. Tarballs are available from http://gozerbot.org but if you want to get into gozerbot development or testing running it from the developement mercurial repository is best. By running it from mercurial it makes it easy to sync changes i make to the bot base by simply running the !upgrade command. repo is at http://core.gozerbot.org/hg/dev/0.9

I really hope that i can finish this need to change urge and stabilize the bot API wise.

Bart


GOZERBOT 0.8.2-BETA released

September 16, 2008

It is time for a new gozerbot release so we are pushing a new BETA for the world to test. This time the change is rather big as most plugins are removed from the core and put into there own tarball. So if you want to try out 0.8.2-BETA for us and report any problems with it on http://dev.gozerbot.org/ or in our channel #dunkbots on IRCnet we would very much appreciate it. You can also contact me at bthate@gmail.com. Download can be done from our website http://gozerbot.org.

new features:

  • most plugins removed from core .. this keeps the base of the bot as small as possible
  • missing plugins can be installed via internet or via tarball
  • rewritten core .. callbacks and commands when not threaded are not executed in the main loop anymore but instead in what are called “runners”, threads that do the jobs. this limits the threads that are launched
  • new debug mode that enables more verbose logging (stacktrace)
  • a REST server and client have been added to the core .. the cloud plugin uses these to communicate between bots. data is transfered in json format
  • new plugins are added to the plugin collection
    • powernick (core) .. a plugin to relay the log file to an OPER via DCC CHAT
    • throttle (core) .. throttle users to max number of commands per minute
    • cloud (myplugs) .. connect gozerbots together
    • traclog (myplugs) .. log channel in a format suitable for integration with trac
    • register (myplugs) .. enables users to register themselves with the bot
    • anon (myplugs) .. register users on channel join
  • config changes are now written to the config file instead of a pickle

download the gozerbot-0.8.2-BETA tarball here
download the myplugs-0.8.2-BETA tarball here
core bot mercurial repository here
myplugs mercurial repository here

TAKE NOTE: most of the plugins are removed from the core bot .. you can use the !install-defaultplugs command to get most of these plugins .. otherwise see !install-list of plugins that can be installed


GOZERBOT 0.8.1.0 released

June 2, 2008

0.8.1.0 is here and can be downloaded from http://gozerbot.org

new features:

  • ssl connections are now supported
  • third party software included into gozerbot:
    • feedparser (used by RSS) .. makes atom feeds possible
    • simplejson (used by COLLECTIVE)
    • BeautifulSoup (used to parse webpages)
  • renewed RSS plugin
  • renewed collective plugin
  • renewed webserver plugin .. new webserver API
  • tcp.py notification plugin as well as a totcp.py client program

the following plugins were removed from the main distribition:

  • autovoice
  • away
  • convert
  • country
  • event
  • grab
  • jcoll
  • probe

if you are using one of these plugins use install-plug <plugin> to install them from the plugin server.

any problems with the bot can be reported on #dunkbots on IRCnet or email bthate@gmail.com

debian package and freebsd port will follow

have fun ;]


GOZERBOT 0.8.1-BETA released

May 18, 2008

working to a new 0.8.1 release we make a BETA available to be tested by interested users.

new features:

  • ssl connections are now supported
  • third party software included into gozerbot:
    • feedparser (used by RSS) .. makes atom feeds possible
    • simplejson (used by COLLECTIVE)
    • BeautifulSoup (used to parse webpages)
  • renewed RSS plugin
  • renewed collective plugin
  • renewed webserver plugin .. new webserver API
  • tcp.py notification plugin as well as a totcp.py client program

if you are using one of these features please test this BETA.

the BETA can be downloaded from http://gozerbot.org and problems with it can be reported on http://dev.gozerbot.org or email me at bthate@gmail.com


GOZERBOT 0.8 released

March 4, 2008

so 0.8 is there and can be downloaded from http://gozerbot.org

new features:

  • third party addons for plugins. (needs setup.py  to work)
  • reboots without disconnects (irc only for now)
  • ipv6 udp support
  • queues used all over the place to reduce thread usage
  • normal irc log format is now supported (simplelog plugin)
  • irc can now be disabled for jabber only usage
  • owneruserhost is now a list so multiple userhosts can be used
  • jabber reconnect code is improved
  • rss error reporting is improved
  • udp code is improved especially in the jabber case
  • lots of other bug fixes

problems with this release can be reported on http://dev.gozerbot.org or contact us on #dunkbots on IRCnet or freenode. email is at bthate@gmail.com