Terra/Builds

From Botdom Wiki

< Terra
Revision as of 01:48, 24 April 2010 by Photofroggy (Talk | contribs)
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search
    Welcome to the build list!
    This tells you the date of each build, and perhaps some brief details.
    The format for build names is "Build [build number] ([date]-[time(24hr - HHMMSS)]) [Series name]
 
    Build 115 (24042010-023750) Flux
        * Added a database API for extensions!
        ** This has suffered several modifications during the build.
        ** Most useful database commands have a method for them.
        *** The level of abstraction for each command differs.
        * misc_lib.export_struct now outputs valid JSON code!
        * Main configuration file uses JSON from misc_lib.export_struct.
        * Users configuration file uses JSON from misc_lib.export_struct.
        * Removed pointless code from the eval command handler.
        * Added to the existing documentation!
        ** Created the file ~/storage/docs/readme/extension/index.html.
        *** This file introduces extensions and commands.
        ** Rewrote the OS X setup instructions.
        *** It's sort of a cop-out really, as I don't have OS X to test things on.
        ** Created the file ~/storage/docs/readme/dAmn.html
        *** Used my own doc_factory tp create the HTML for this.
        
    Build 114 (14042010-162933) Flux
        * Edited the extension command.
        ** It is now slightly more intelligent.
        * Fixed an error in Terrafm.
        ** Last.fm keep changing their bloody API!
        * Changed series name.
        ** Changed to "Flux".
        * Changed Terrafm slightly.
        ** Fixed bugs in the method api.current.
        ** Allowed any user to set their last.fm username.
        *** Use the command !fmname to view and set the stored usernames.
        ** !tasteometer now automatically compares tastes with you.
        *** This is only if you do not provide two usernames in the first place.
        * Updated to latest build of dAmn Viper.
        
    Build 113 (06042010-032007) Major Tom
        * Fixed a minor bug in terra.misc_lib.
        ** Thanks, once again, to blazer-flamewing, for finding the bug.
        * Updated the extension "dAmn" to compensate.
        * Cleaned up terra.misc_lib a little.
        * Fixed a bug that stopped Terra from restarting.
        ** Thanks to Angie for telling me about that one.
        * Made it possible to reload extensions!
        ** This is made easier thanks to Python 3's imp module.
        * Fixed a small bug in the AI extension.
        
    Build 112 (16032010-003705) Major Tom
        * Added code to clean up the dAmnViper folder.
        * Quit command no longer takes "hard" as an argument.
        ** Use "!quit soft" to stop the bot from completely exiting.
        ** The default action of "!quit" is now that of "!quit hard".
        * Updated to latest build of dAmn Viper.
        * Debug mode now displays the title and topic of a channel in the console.
        ** This only happens when dAmn actually sends the title or topic to the bot.
        * Fixed a bug in debug mode.
        ** The method terra.Events.Platform.load_exts was using a non-existent variable.
        * Changed the way that the event object takes in data.
        * Fixed some other small bugs and cleaned up the code a bit.
        * Changed development state to Public Beta!
        
    Build 111 (25112009-002308) Ground Control
        * Removed ~/extensions/OFF/Example.py.
        ** ~/extensions/OFF/Hello_World.py works fine as an example extension.
        * Reworked Terrafm's fmrecent command to work with changes made to Last.fm's output.
        * Fixed various bugs around the place.
        * Updated to latest build of dAmn Viper!
        ** Made appropriate changes to make sure the bot works with the new build.
        
    Build 110 (05102009-215143) Ground Control
        * Moved the setup HTML files around a bit.
        * README html and CSS updated and tweaked somewhat.
        * Setup instructions for Linux are near enough finished.
        ** Thanks to electricjonny for the help!
        
    Build 109 (04102009-210108) Ground Control
        * Altered the README HTML files slightly.
        * Fixed a bug in the README HTML files.
        * Fixed a bug in the Google extension.
        
    Build 108 (04102009-182759) Ground Control
        * Rearranged README.html slightly.
        * Moved the README CSS into a separate file: ~/storage/docs/rsrc/style.css.
        * Created setup instruction files in the HTML format.
        ** Created ~/storage/docs/setup_windows.html.
        ** Created ~/storage/docs/setup_osx.html.
        ** Created ~/storage/docs/setup_linux.html.
        *** These instructions are not yet finished.
        *** The Windows setup instructions are near-enough finished, and I would appreciate feedback.
        * Fixed a bug in the TerraFM extension.
        ** The nowplaying command now returns correct responses.
        ** AutoNP now works as expected.
        * Fixed a bug in terra.Core.main which prevented the bot from starting up.
        
    Build 107 (27092009-130825) Ground Control
        * Fixed a bug in rebooting the bot.
        ** Thanks to nichka for pointing out the bug to me.
        * Rearranged the core class.
        
    Build 106 (14092009-172636) Ground Control
        * Fixed a bug in the Birthday extension.
        * Changed the terra.extension.storage.file_op method to prevent extensions from using files outside of the storage folder.
        * Changed the shebang line of the run scripts to call the python3 runtime, rather than Python3.0.
        * Moved method terra.Events.event.arguments to terra.misc_lib.arguments.
        ** The terra.Events.event class now creates a wrapper for the arguments method if the event has a message attached to it.
        * Fixed code in terra.menu which may be buggy on Linux.
        ** The bug still has not been fully resolved. Bug found thanks to cypher-neo.
        * Made other changes. I forget what they are though...
        
    Build 105 (28082009-211234) Ground Control
        * Updated to dAmn Viper build 36.
        * Corrected some stupid mistakes in the bot's core and extensions.
        * Finished the title and topic commands in the dAmn extension.
        
    Build 104 (28082009-151502) Ground Control
        * Updated to dAmn Viper build 35.
        ** This fixes the members command.
        
    Build 103 (28082009-042308) Ground Control
        * Updated to dAmn Viper build 34.
        ** Updated internal code to compensate for changes made to dAmnViper.
        ** Made the terra.Custom.Client class cleaner.
        *** This is done by taking advantage of new features in the latest dAmnViper builds.
        ** Created method terra.Custom.Client.nullflags.
        *** Still calls dAmnViper's ReconnectingClient.nullflags method.
        * Made terra.misc_lib a far less colourful place.
        ** Removed needless comments. Very few people will read it anyways.
        * Added __inst__ method to the terra.Events.Binding class.
        ** This method is to be overwritten by classes which extend the class.
        ** Class terra.rules.command.Binding uses the __inst__ method to manipulate the type property.
        * Brushed up core code in various places.
        * Fixed some minor bugs.
        * Need to make more significant changes.
        
    Build 102 (16062009-125637) Ground Control
        * Fixed the user control system.
        ** Groups were not being cleared where appropriate.
        ** Groups were not being returned properly.
        ** The owner was not being properly added as the owner.
        
    Build 101 (14062009-165003) Ground Control
        * Fixed a very very very stupid bug.
        
    Build 100 (14062009-161101) Ground Control
        * Updated to latest build of dAmn Viper.
        ** Updated code to compensate.
        * Fixed a bug which prevented the main menu from loading properly.
        ** Thanks for Frozen-Jakalope for pointing that one out.
        * Launch scripts now import Launch instead of spawning subprocesses.
        * Reimplemented user group aliases.
        * Fixed other bugs all over the place.
        * Added class terra.extension.storage.
        ** This replaces the file operation methods in terra.extension.api.
        ** Create an instance of this class if you want to access files in storage.
        
    Build 99 (09062009-223948) Ground Control
        * Fixed bugs found by nichka.
        ** Thanks!
        * Updated to latest build of dAmn Viper.
        ** Updated core to compensate.
        * Restructured the core code.
        ** Now uses dAmn Viper as it was intended.
        ** Removed modules:
        *** terra.Console.
        *** terra.configure.
        *** terra.networkconfig.
        *** extensions.dAmn_Manager.
        ** Recoded modules:
        *** Launch.
        *** terra.Core.
        *** terra.menu.
        ** Added module terra.Custom.
        *** Added class terra.Custom.Client(terra.dAmn.Client)
        *** Added method terra.Custom.get_input.
        *** Added method terra.Custom.Config.
        ** Updated core modules to compensate for the above changes.
        ** Updated extensions to compensate for the above changes.
        
    Build 98 (29052009-183339) Ground Control
        * Updated to latest build of dAmn Viper.
        ** Updated core code to compensate.
        ** Updated extensions to compensate.
        * Fixed a bug in the default event ruleset class.
        
    Build 97 (29052009-013751) Ground Control
        * Added method intftimelen() to misc_lib.
        * Tweaked code.
        * Removed pkt_* and logfpkt_* methods from dAmn.
        * Added class protocol to module terra.dAmn.
        ** This class dynamically processes packet data from dAmn.
        ** Updated bot code to compensate.
        * Other stuff that I can't remember.
        
    Build 96 (27052009-184615) Ground Control
        * More bug fixes.
        * Changed code to use subprocess instead of os.spawn*.
        * Also rectified a stupid mistake.
        ** I was spawning "python" rather than sys.executable. Silly me.
        * Done a massive rehaul of core code.
        ** Most configuration files now use json.
        *** Updated core to compensate.
        ** Remodeled the extensions system to get rid of references to the core class.
        *** Updated all code to compensate.
        ** Allowed room for in __inst__() method in extensions.
        ** Remodeled the user access controls.
        *** Code for the controls is more simplified.
        *** Lost inheritance and exclusions as a result.
        *** Temporarly lost group aliases.
        *** Updated all code to compensate.
        ** Removed misc_lib.save_config().
        ** Moved most core object attributes to a nested class.
        *** Updated all code to compensate.
        * Even more bug fixes.
        
    Build 95 (24052009-214405) Ground Control
        * Fixed some bugs here and there.
        * Changed extend module to contain class "base".
        ** Extensions should extend this class.
        ** Events system updated to compensate.
        *** Reduced amount of hackery here.
        ** Updated core class to compensate.
        ** All extensions updated to compensate.
        * Added extension "Hello world".
        ** This is a more simple example extension.
        * Brushed up the away extension a bit.
        ** Renamed command 'awayconf' to 'away'.
        ** Added a more detailed help string for the 'away' command.
        * Fixed extension reloading.
        ** References were left unchanged, so event bindings failed.
    
    Build 94 (23052009-172836) Ground Control
        * Fixed bugs that stopped Terra from launching properly.
        ** Thanks to testing on Linux OS' by Rhyk and Frozen-Jakalope.
        * Restructured the events system a bit.
        ** Updated bot code to compensate.
        ** Extension interface is not affected by these changes.
    
    Build 93 (20052009-223508) Ground Control
        * Reworked events system to get rid of unneeded data.
        ** Instances of Events.event no longer have the for_rules list when passed to handlers.
        ** People making rulesets should be wary of these changes.
        * Tweaked code in the dAmn module.
        * Fixed some more code here and there.
    
    Build 92 (19052009-213957) Ground Control
        * Added extension Google.
        * Added module terra.extra.Google.
        ** Extension Google uses terra.extra.Google.
        * Fixed some minor bugs.
        * Moved terra.dAmn_tablumps to dAmn.tablumps.
        ** Updated code to compensate.
        * Made some improvements to Events.event.arguments().
        * Added dummy method __inst() to Events.event object.
        
    Build 91 (18052009-011239) Ground Control
        * Fixed bugs in event.arguments().
        * Tweaked code slightly.
        * Removed misc_lib.WriteFile().
        ** Updated core to compensate.
        * Removed misc_lib.ReadFile().
        ** Updated core to compensate.
        * Created an HTML readme file.
        ** Playing around with ideas.
        * Removed redundant file ~/terra/tablumps.py.
        * Fixed a bug involving filepaths.
        ** If the bot was in a folder with a space in the name, it would not restart.
        
    Build 90 (17052009-154523) Ground Control
        * Made a lot of bug fixes.
        * Created the class Events.Binding.
        ** Updated events system to use instances of this class.
        * Added method arguments() to the Events.event object.
        ** Updated bot code to use this instead of misc_lib's args().
        ** Removed misc_lib's args() function.
        * Made fixes to the dAmn Library.
        * Experimented with SQLite3 logging.
        ** Got a working prototype.
        ** Not included in builds until ready.
        * More changes that I can't seem to remember.
        
    Build 89 (25022009-220351) Ground Control
        * Added extension "Responses".
        ** Added command response.
        * Cleaned up code.
        * Fixed various bugs.
        
    Build 88 (24022009-214542) Ground Control
        * Added extension "Terms".
        ** Added command term.
        ** Added command defterm.
        * Fixed various bugs.
        
    Build 87 (18022009-152710) Ground Control
        * Fixed extension reloading.
        * Fixed a bug in the Console.
        * Save data directories for extensions are now resolved to their full pathnames.
        * Added a change log of sorts.
        ** It's just a condensed build list, and far too messy.
        
    Build 86 (17022009-163245) Ground Control
        * Fixed some minor bugs.
        * Renamed command "away" to "awayconf".
        * Added Welcome extension.
        ** Added command wt.
        ** Added command welcome.
        * Welcome extension is in the OFF folder with all extra extensions.
        
    Build 85 (13022009-001129) Ground Control
        * Added an Away extension.
        ** Added command away.
        ** Added command setaway.
        ** Added command setaway.
        * Fixed various bugs.
        
    Build 84 (12022009-221934) Ground Control
        * Added a Games extension.
        ** Ported from Contra.
        * Fixed various bugs.
        
    Build 83 (12022009-022509) Ground Control
        * menu.py now offers the chance to reboot the bot before exiting.
        * Fixed a few typos.
        ** Thanks to nichka for bringing these to my attention.
        * Fixed various bugs.
        * Updated to latest build of dAmn Viper.
        
    Build 82 (12022009-003641) Ground Control
        * Moved ~/extensions/AI.py to ~/extensions/OFF
        * Changed the AI extension to only have a single status.
        * Removed the AI command.
        * Changed ~/terra/extend.py to use os.join.path() where appropriate.
        * Added information strings to all current commands.
        * Changed parameters for binding events.
        ** Information parameter removed.
        * Command ruleset now uses the first additional argument as the information string.
        * Fixed the events platform so that underscores are removed from extension names.
        * Removed try..except blocks where they weren't needed.
        
    Build 81 (10022009-135628) Ground Control
        * Removed all .cmd and .command files.
        ** These have been replaced by .py files.
        ** Rewrote README.txt to reflect changes.
        * Moved the license to ~/storage/docs
        * Renamed ~/core to ~/terra
        * Moved ~/extra to ~/terra
        * Turned ~/terra into a package.
        * Turned ~/terra/extra into a package.
        * Turned ~/terra/rules into a package.
        * Turned ~/extensions into a package.
        * Turned ~/storage into a package.
        * Reworked the Login class in ~/terra/dAmn.py
        * Fixed various bugs in the system.
        * Reworked source code to use os.path.join() where appropriate.
        
    Build 80 (29012009-123851) Ground Control
        * Reworked the run.py file to work better.
        * Made network settings configurable.
        ** Created ~/core/network_config.py to handle configuring.
        *** ~/core/network_config.py creates ~/storage/nwconfig.py
        ** The configuring script can only be accessed via the main menu.
        ** If default settings are used, ~/storage/nwconfig.py is deleted.
        * Changed menu.py to accomodate for new options.
        * Changed the dAmn Manager extension to accomodate for the config.
        
    Build 79 (25012009-185304) Ground Control
        * Updated to latest build of dAmn Viper.
        * Done some bug fixes.
        * Brushed up on code in some areas.
        * Improved on the Last.fm API slightly.
        
    Build 78 (11012009-223319) Ground Control
        * Added file ~/storage/docs/Thought process - Extensions and events.txt
        * Added module lastfm.
        ** This is used by Terrafm.
        * Added extension Terrafm.
        ** Added command 'nowplaying'.
        ** Added command 'autonp'.
        ** Added command 'fmrecent'.
        * Fixed various bugs.
        * Enabled autorejoin.
        * Added extension AI.
        
    Build 77 (11012009-030805) Ground Control
        * Renamed command line scripts.
        * Updated README file.
        * Added file ~/storage/docs/Note from the author.txt
        * Fixed some minor bugs.
        * Added a type variable to the extensions base.
        
    Build 76 (11012009-003058) Ground Control
        * Fixed bugs caused by changed user groups too much.
        * Fixed various bugs in other places.
        * Changed the extension API.
        ** You must give a reference to a method instead of just a name when binding.
        ** Updated all extensions to work with the new API.
        * Updated to latest build of dAmn Viper.
        
    Build 75 (10012009-023029) Ground Control
        * Added class Groups.User.
        * Integrated User objects in the user group system.
        * Updated rest of bot to work with the new system.
        * Fixed inherent bugs from using the dAmn.Channel object excessively.
        
    Build 74 (09012009-133041) Ground Control
        * Added class command.event.
        ** This is an extension of Events.event.
        ** The output of __repr__() and __str__() is slightly different.
        * Changed the dAmn.Channel class.
        ** Added a __str__() function.
        ** Added a __repr__() function.
        ** Added a type() function.
        * Events now use the dAmn.Channel instance for the channel where possible.
        ** This is instead of just using a raw string.
        * Updated rest of code to work with these changes.
        * Created module menu.py.
        ** Moved function misc_lib.menu() to menu.py.
        ** Renamed function menu() to run().
        ** Improved function code slightly.
        * Updated run.py to work with these changes.
        * Fixed small errors found in several places.
        
    Build 73 (08012009-155429) Ground Control
        * Changed license to GNU General Public License version 3.
        * Updated to latest build of dAmn Viper.
        * Added function __create_log_path__ to Console.py.
        * Added properties log_path and log_path_access to class Console.setting
        * Created module configure.py.
        ** Moved source of misc_lib.config() to configure.py.
        ** Reorganised the code to work better.
        * Changed other parts of the bot to import configure when needed.
        * Removed the need to call configure in run.py.
        * Made changes to Events.object.
        ** Renamed to Events.event.
        ** Added method __repr__()
        ** Added method __str__()
        *** Returns string "<event 'event_name'>".
        ** Attributes can no longer be deleted.
        * Updated code in dAmn Manager.py to work with the changes to Events.object.
        
    Build 72 (07012009-233343) Ground Control
        * Reorganised Console.py.
        ** Class Console no longer exists.
        *** Previous methods are now loose functions in the module.
        ** Added class setting to Console module.
        ** Moved cli_in() to Console.py from misc_lib.py.
        *** Renamed cli_in() to get_input().
        ** Moved cli_args() to Console.py from misc_lib.py.
        *** Renamed cli_args() to get_args().
        ** Added function menu() to Console.py.
        ** Console.py functions now use sys.stdout.write() instead of print()
        * Changed the rest of the source to work with the above changes.
        
    Build 71 (06012009-221631) Ground Control
        * Updated to latest build of dAmn Viper.
        * Updated code to work with changes in dAmn Viper.
        * Brushed up on code in several places.
        
    Build 70 (23122008-005620) Ground Control
        * Updated to latest build of dAmn Viper.
        * Cleaned up code in Events.py.
        * Cleaned up code in command.py.
        * Made things more readable.
        
    Build 69 (19122008-171608) Ground Control
        * Updated to latest build of dAmn Viper.
        * Added more documentation.
        
    Build 68 (17122008-125734) Ground Control
        * Added function timelen_until() to misc_lib.
        ** Returns a timelen tuple.
        * Events system now catches exceptions raised by extensions.
        * Event "quit" is now triggered when the main loop exits.
        * Added extension Birthdays.
        ** This is in the OFF folder.
        ** It's quite a simple idea, but shows what you can do with pickles and suchlike.
        
    Build 67 (14122008-214217) Ground Control
        * Fixed minor bugs in System extension.
        
    Build 66 (14122008-160709) Ground Control
        * Updated to latest build of dAmn Viper.
        * Made slight changes to the way the authtoken grabbing process is handled.
        * Reordered how extensions are loaded and reloaded.
        * Added a notes extension.
        ** Now you can leave notes for people.
        * Made some changes to the way the target namespace is detected when triggering commands.
        
    Build 65 (11122008-202548) Ground Control
        * Fixed some more bugs found by cthom06.
        
    Build 64 (11122008-162538) Ground Control
        * Replaced raw_input() with input().
        * Fixed a bug in the Console class.
        * Fixed a bug in the viper command.
        ** Thanks to cthom06 for pointing those out to me.
        * Updated to latest build of dAmn Viper.
        
    Build 63 (11122008-130351) Ground Control
        * Got rid of all printf formatting.
        
    Build 62 (11122008-104928) Ground Control
        * Moved log_* methods to dAmn.py.
        * Renamed log_* functions to logfpkt_*
        * logfpkt_* functions now return a tuple.
        * dAmn Library extension renamed to dAmn Manager.
        * dAmn Manager handles logfpkt_* functions appropriately.
        * Changed more of the printf formatting to .format().
        ** Still got a way to go with those.
        
    Build 61 (11122008-005745) Ground Control
        * Fixed a small bug when parsing commands.
        
    Build 60 (11122008-005028) Ground Control
        * Fixed bugs around the place.
        * Updated code to closer meet the standards defined in PEP 8.
        ** URL: http://www.python.org/dev/peps/pep-0008/
        ** Changed most printf formatting to .format().
        *** The rest will be changed later.
        * Updated to latest build of dAmn Viper.
        * Commands now use their docstrings for help strings.
        * Made the events system cleaner.
        * Commands ruleset is cleaner.
        * Changed most printf formatting to .format().
        ** The rest will be changed later.
        * Added methods to the extension base class.
        ** read(file) - reads data from file.bsv in the extension's storage folder.
        ** write(file, data) - writes data to file.bsv in the extension's storage folder.
        ** unlink(file) - unlinks file.bsv from the extension's storage folder.
        ** pickle(file, object) - pickles object to file.bsv in the extension's storage folder.
        ** unpickle(file) - returns unpickled data from file bsv in the extension's storage folder.
        * Reorganised extension loading process slightly.
        * Added command "exec".
        * Commands command now shows the correct number of commands present.
        
    Build 59 (08122008-190134) Ground Control
        * Brushed up code in places.
        * Ported to Python 3000!
        * Updated to latest build of dAmn Viper.
        
    Build 58 (04122008-223159) Ground Control
        * Disabled restarting when running from the main menu.
        * Added INFO.txt to ~/extensions/OFF
        
    Build 57 (03122008-205030) Ground Control
        * Added an example extension.
        * Added folder ~/extensions/OFF
        
    Build 56 (03122008-134532) Ground Control
        * Fixed error in which the core deleted the password from the config file.
        * Debug mode now writes all console messages to a file.
        * Debug mode now tells you if someone tries to run a command which doesn't exist.
        
    Build 55 (03122008-113154) Ground Control
        * Added a readme file.
        
    Build 54 (03122008-000000) Ground Control
        * Made changes to the way system information is gained.
        ** This was done in an effort to make things more portable.
        
    Build 53 (02122008-232540) Ground Control
        * Added ping command.
        
    Build 52 (02122008-224531) Ground Control
        * Used chmod to own folders.
        * Made the event system unbind any events left behind by unsuccessful extensions.
        ** A bug was brought to my attention by philo23. Thanks again.
        
    Build 51 (02122008-215309) Ground Control
        * Completed user group management commands.
        ** Forgot about those before...
        
    Build 50 (02122008-081856) Ground Control
        * Changed startup messages slightly.
        * Added more cmd and command scripts.
        ** Lovely CLI! Lolololololol.
        * Bumped to version number 1.
        ** Development state: Beta Preview.
        ** Mainly docs and extra useless commands left now.
        
    Build 49 (02122008-075234) Peak
        * Added command 'title'.
        * Added command 'topic'.
        ** Both of the above emulate the dAmn commands of the same name.
        
    Build 48 (01122008-232015) Peak
        * Added command 'members'.
        ** This lists the members in a given channel.
        
    Build 47 (01122008-225620) Peak
        * Slightly changed the output of the whois command.
        
    Build 46 (01122008-215517) Peak
        * Completed handling for the whois command.
        * Made a slight change to strftimelen().
        
    Build 45 (01122008-195027) Peak
        * Added command 'ctrig'.
        ** This lets you change your bot's trigger.
        * Added command 'sudo'.
        ** Perform a command as someone else.
        *** Lololololololol.
        
    Build 44 (01122008-175034) Peak
        * Emulated all native dAmn commands.
        * Renamed command 'send' to 'raw'.
        * Updated to latest build of dAmn Viper.
        * Modified the bot's user agent string.
        
    Build 43 (01122008-143918) Peak
        * Added command 'autojoin'.
        ** This allows people to view and manage the bot's autojoin list.
        * Added command 'channels'.
        ** Shows the currently joined channels.
        * Made improvements to misc_lib.
        * Added pointless security measures to protect the password.
        * Made command method c_kick into a lambda.
        
    Build 42 (01122008-123956) Peak
        * Fixed command eval.
        ** Now shows it's own style of trace stack in the console on error.
        * Tweaked timelen functions in misc_lib.
        
    Build 41 (30112008-223509) Peak
        * Added command "e"/"eval" which evaluates a python expression.
        
    Build 40 (30112008-190152) Peak
        * Improved System extension method "cmd_listing" slightly.
        * Moved command "reload" to a subcommand of "extensions".
        
    Build 39 (30112008-174612) Peak
        * Fixed user access control for commands.
        
    Build 38 (30112008-172245) Peak
        * Added some simple commands to manage and list bot users.
        * Fixed some small errors in the user group system.
        * Changed function timelen() in misc_lib slightly.
        
    Build 37 (30112008-145609) Peak
        * Updated run files. Hopefully pybin isn't needed now.
        * Made it possible to reload extensions.
        * Brushed up code here and there.
        
    Build 36 (29112008-192033) Peak
        * Added functions to misc_lib.
        ** Function human_list returns a grammatically correct string of a list.
        ** Function timelen returns a tuple of time lengths from a timestamp.
        *** (years, weeks, days, hours, minutes, seconds)
        ** Function strftimelen returns human_list(timelentuple)
        * Added uptime command.
        * Added command "connected" to show time connected to dAmn.
        * Added command "disconnects" to show how many times the bot has disconnected.
        * Added command "refresh" to refresh the connection to dAmn.
        * Extension command now shows the command list for the extension.
        
    Build 35 (29112008-121528) Peak
        * System command now returns system information.
        
    Build 34 (29112008-114403) Peak
        * Now responds to trigcheck!
        * Made the configuration process slightly more intuitive.
        * Extensions can actually change their name in the code now.
        
    Build 33 (29112008-104012) Peak
        * Added more system commands and stuff! Yeah!
        * Improved the command ruleset.
        * Fixed small bugs here and there.
        
    Build 32 (28112008-000621) Peak
        * Improved main .cmd file.
        * Added a .command file.
        
    Build 31 (27112008-223042) Peak
        * Updated to latest build of dAmn Viper.
        * Added some basic commands!
        ** Join, part, say, send and me/action for dAmn.
        ** Quit, restart, about and build for System commands.
        ** "viper" shows build info for dAmn Viper.
        * Command ruleset now allows lists as commands.
        ** This means you can set several names to one command.
        *** This should help save memory.
        * Autojoin channels are actually joined now.
        * Fixed minor bugs in other places around the core.
        
    Build 30 (27112008-122856) Tor
        * Updated to latest build of dAmn Viper.
        * Refined connection handling.
        ** Disconnects detected in part messages.
        ** Disconnects when no channels are joined.
        * Modified Events handler to allow lists/tuples as an option.
        
    Build 29 (26112008-224309) Tor
        * Fixed a few bugs in pkt_ functions.
        * Added a basic ruleset for event "command".
        * Created a basic method to search for commands.
        * Created a test command as a proof of concept.
        
    Build 28 (26112008-182720) Contour
        * Updated to latest build of dAmn Viper.
        * Finished channel data management code.
        * Renamed attribute "from" to "user" in events.
        * Might slight changes to the Events platform.
        
    Build 27 (26112008-005705) Contour
        * Successfully managed to remove channels on part/kick.
        ** Thanks to testing done in #WebDevelopment with philo23.
        
    Build 26 (26112008-002243) Contour
        * Updated to latest build of dAmn Viper.
        * Started creating Channel class in dAmn module.
        ** Hooked join event successfully in #WebDevelopment.
        
    Build 25 (25112008-204939) Thumper
        * Finished dAmn logging methods.
        ** Logs recv_admin_rename.
        ** Logs recv_admin_move.
        ** Logs recv_admin_remove.
        ** Acknowledges recv_admin_show.
        ** Logs recv_admin_privclass.
        ** Logs kicked.
        ** Logs ping.
        ** Logs disconnect.
        ** Logs send errors.
        ** Logs kick errors.
        ** Logs get errors.
        ** Logs set errors.
        ** Logs kill errors.
        ** Logs unknown packets.
        
    Build 24 (25112008-183412) Thumper
        * Added more logging methods.
        ** Logs recv_privchg.
        ** Logs recv_kicked.
        ** Logs recv_admin_create.
        ** Logs recv_admin_update.
        
    Build 23 (25112008-171845) Thumper
        * Added logging method for recv_msg/action.
        * Fixed small error in pkt_ functions.
        
    Build 22 (24112008-234608) Thumper
        * Started on logging everything!
        ** dAmn handshake successfully logged.
        ** dAmn Login successfully logged.
        ** dAmn join successfully logged.
        * Fixed some small problems in some code.
    
    Build 21 (24112008-135512) Thumper
        * Updated to latest build of dAmn Viper.
        ** We now have format_ns() and deform_ns() methods!
        
    Build 20 (23112008-171232) Thumper
        * Fixed small errors in pkt_ functions.
        * Updated to latest build of dAmn Viper.
        * Successfully tested dAmn lambda methods!
        
    Build 19 (23112008-130506) Thumper
        * Rearranged function pkt_property slightly.
        * Renamed extension dAmn Lib to dAmn Library.
        
    Build 18 (22112008-161323) Thumper
        * Updated to latest build of dAmn Viper.
        * Added basic handling for login packet.
        * Logged into dAmn for the first time!
        * Authtoken is now stored on file.
        
    Build 17 (22112008-122912) Thumper
        * Moved pkt_ commands into dAmn.py.
        
    Build 16 (22112008-122723) Thumper
        * Updated to latest build of dAmn Viper.
        * Moved out of pre-alpha into Alpha.
        
    Build 15 (17112008-214056) Rambler
        * Finished first prototype for the packet sorter.
        
    Build 14 (17112008-191723) Apollo 13
        * Made a solid start to processing dAmn packets.
        * Fixed up code here and there.
        * dAmn Handshake handled properly!
        
    Build 13 (16112008-204356) Mission Control
        * Updated to latest build of dAmn Viper.
        * Basic reading capabilities added for dAmn.
        * Still only in a debugging format for the dAmn connection.
        * Successfully received a handshake!
        * Got our first dAmn event (packet)!
        
    Build 12 (16112008-185123) Mission Control
        * Managed to open a connection to dAmn on startup!
        * Now grabs authtoken autonomously!
        * Sends a handshake to dAmn!
        * Commented more places again...
        
    Build 11 (16112008-172049) Breaching Concepts
        * Fixed some bugs in the events class.
        * Got a proof of concept for the events system!
        * Added more comments around the place.
        
    Build 10 (16112008-160000) Breaching Concepts
        * Finished main Event data object.
        
    Build 9 (16112008-154023) Breaching Concepts
        * Main event handling class near completed. Possibly final.
        * Added a few comments here and there.
    
    Build 8 (16112008-131334) Breaching Concepts
        * Started touching on the ideas of event rules.
        * Started implementation of event rules.
    
    Build 7 (16112008-030916) Early Bird
        * Added function find() to user groups base class.
        
    Build 6 (15112008-001055) Early Bird
        * Core class now has method "login".
        * Added args() to misc_lib.
        * Commented core class slightly.
        * Removed .command file until I can be bothered to implement the CLI properly.
        
    Build 5 (13112008-175148) Early Bird
        * Updated dAmn capabilities
        
    Build 4 (13112008-125710) Implementations
        * Reorganised the dAmn handling features slightly.
        * Looking to implement everything more fully.
        
    Build 3 (13112008-034654) Initial Experiment
        * Changed bot info structure in the main class.
        
    Build 2 (13112008-013838) Initial Experiment
        * Created a basic user groups system which will be used for authenticating users when accessing commands.
        ** This idea was stolen from discussions with infinity0.
        * Changed the startup messages given by the core class.
    
    Build 1 (12112008-172145) Initial Experiment
        * VERY basic system. Considered a base to build on. Authtoken retrieval works around SSL using built-in processes.