wiki:zomgChangelog
close Warning: Can't synchronize with repository "(default)" (Unsupported version control system "svn": Can't find an appropriate component, maybe the corresponding plugin was not enabled? ). Look in the Trac log for more information.

Version 2 (modified by vsTerminus, 14 years ago) (diff)

--

Changelog

This is a record of all changes made to zomg since the original release. I find it interesting to view my own development patterns, you might as well.

This file will be included with the subversion repository as well.

Version 0.8.3 – October 25th 2010

  • Dropping the "Defiance" name from the code and docs. People recognize the bot as "zomg".
  • Moved zomg to my own server (freeing up some resources on the SG server for RB3)
  • Set up a persistent ZNC connection for zomg
    • Ideally you won't even notice when I reconnect the bot for updates and fixes

Version 0.8.2 – August 11th 2010

  • Added !weather
    • Added GeoIP support to !weather
  • Added !locate
  • Added .addword
  • Added .delword
  • Added .loadwords
  • Added several new custom commands to demo new functionality
    • For example, !8ball and !fight
  • Bot now leaves 'empty' channels and waits for a notice from ChanServ that a person has joined before coming back.
    • A channel containing only the bot and ChanServ is considered 'empty'
  • Using !alias and .alias will now allow you to put*!*@ in front of a hostmask, just for convenience.
  • Converted documentation to Wiki format and moved to new location
  • Extended the functionality of Custom Commands considerably
    • Added $pick[arg1,arg2,arg3,...,argN] (Does not support spaces in the args yet)
    • Changed $rint to $rand
    • Added $rand[min,max] (Integer values only)
    • Added $uc[text] and $lc[text] (Do not support spaces yet)
  • Extended the functionality of Custom Variables considerably
    • Variables can now be added on the fly by an oper with the addword command
    • All [ ] variables are fully nestable, including with existing optional args that have defaults enclosed in [ ]
    • Variables can be enclosed in { } if ambiguous. For example,
      • $balls will look for a word category "balls"
      • ${ball}s will look for a word category "ball" and add the "s" to the end of whatever $ball it chooses.
  • Optimized startup time
  • Fixed bug where bot would not respond to custom commands if addressed by name
  • Fixed several command parsing bugs
  • Restored !wotd hint option for regular users
  • Moved zomg's code into a subversion repository
  • Secured code to load sensitive data from elsewhere

Version 0.8.1 – December 2nd 2009

  • Moved help page to static.socialgamer.net
    • Updated help command to reflect this
  • Updated help page formatting and style
  • Bot no longer auto-rejoins when kicked by ChanServ
  • Fixed !stfu length when a time was not specified
  • !nowplaying now uses the Last.FM API instead of screen scraping
    • Smaller output (1 line instead of 3)
    • API doesn't give me the player information (yet). Sorry.
  • Added more functionality to !lastfm
    • You can now customize your !nowplaying output
    • Syntax is different now, please read the entry for it
  • !alias now accepts and removes*!*@ prefix on hostnames.

Version 0.8.0 – October 28th 2009

  • Big update, long time
    • With school, working on the new SocialGamer? beta site, and other commitments it can be hard to find time to develop zomg further
  • Changed the database serialization (storage) system
    • Previously used the XML::Dumper perl module to convert all of my hash tables, important variables and other data into a convenient XML file that could be read on startup to restore information.
      • XML::Dumper is Extremeley inefficient, and was causing me to use several hundred MB of RAM at run time! o_O
    • Switched to YAML::XS (A perl module written in C) I can serialize the database into a single human-readable string of data and store that in a file
    • RAM usage is now 1/10th of what it was previously
      • I can still reduce this further with optimizations to save/load and cleaning old/invalid/unnecessary data in other areas.
  • Added !fml
    • May add an option to select a specific entry or grab the latest entry if there is interest
  • Added !wtf
    • Uses the system wtf command, which contains definitions for common acronyms (Like 'LOL' and 'wtf') as well as man page entries for most apps
    • The wtf database is not really that extensive, and a response of 'Nothing Appropriate' means 'I don't know'
  • Modified the now playing (!mp3) command to use Last.FM
    • Renamed the !mp3 command to !nowplaying
    • Added a hard-coded alias, !mp3 which redirects to the new command. Usage doesn't change.
    • Command spans 1-3 lines of output, and so can only be used every 20 or so seconds to reduce spam.
  • Added !lastfm <last.fm-account> | none
  • Fixed a couple regex matches (Thanks Thierry for breaking it and Grinnz for solving it)
  • Added !drums
    • Wrote a search function into this command, so if you can't spell it will try to help.
  • Added the ability to use the $ variables from custom commands in all commands (With the exception of $1,2,3 etc because that's just silly)
  • Added some new variables for use (They work in any command, not just customs!)
    • $noun, $verb, $pronoun, $adverb, $preposition, $adjective, $clothing
  • Fixed default parameter parsing
  • Added new words to the word of the day file

Version 0.7.4 – September 1st 2009

  • Added uptime to restart message
  • Added a 10 second ban to channel protections by default
    • Breaks sf ban currently, will be removing that.
  • Added <nick>++ or <nick>-- triggers for awarding wins to users
  • Added <nick>+=, -=,*= and /= as well
    • eg. toymachine++ is equivalent to .award toymachine 1
    • and toymachine+=5 is equivalent to .award toymachine 5
  • A word of the day system to award users with wins
    • The word is selected at random, but can be set by an oper
    • When the word is guessed, a new word is chosen (At random)
    • A word un-guessed for 24 hours will expire next time anyone uses !wordoftheday
      • Might update this to use a timer system in the future
  • Tripping the spamfilter also removes 1 win now.
  • Commands via PM can now be done without a trigger
    • eg. /msg zomg time
  • Custom Commands now support required parameters
    • Variables defined with $ are optional, where as variables defined with & will be required. If a required parameter is left undefined, the command will error and ask for more input.
  • !listcmd now displays the access level required to use the command
  • Fixed glitch in !wins when looking up offline users
  • Added !slogan
  • Added $rword, $rnick, and $rint variables to custom commands
  • Added defaults-system to optional args in custom commands
  • Added !bantime to allow channel admins to adjust the default ban length in their channel
  • Fixed arg swapping in custom commands
  • Fixed .enable to support command aliases
  • Made the word of the day game configurable per channel
    • By default, disabled. Can be enabled with !wordoftheday on
  • Removed the word-of-the-day hint, too spammy
  • Time input for bans, kickbans and stfu now support a more human-readable format (ex, 5h15m10s)
  • Bot no longer freaks out if words.txt doesn't exist
  • Database is now loaded before connecting to the server
    • The DB is getting so big that it was causing the bot to time out and lose connection
    • Considering splitting this file up into a few smaller files, or maybe truncating data

Version 0.7.3 – July 29th 2009

  • Fixed bug in timed kickbans using regex matches
  • Fixed !uptime's parsing of CPU uptime when there is only 1 user
  • !mass now supports custom commands
  • Re-wrote the todo list to use a hash instead of an array
    • Index values will be unique to each item added. They will continue to increase, instead of the list squishing down when something is removed.
  • Added greet type 'public' to greet users publicly in the channel
  • oper .alias <user> will send via PM if more than 15 results are found in a lookup
  • Fixed bot's own nick recognition if the server changes its name
  • added !top3 wins
  • Improved sorting code in !top3
  • Added !top3 peaks
  • Reduced resolution of time tracking since peak was set
  • Added !top3 customs
  • Added 'who is banned' (Thanks SoccerThierry?)

Version 0.7.2 – July 15th 2009

  • Added !uptime
  • User definitions are now displayed with !whois as well
  • Variables in custom commands that are left undefined will be hidden from output
  • Added $server, $unixtime and $localtime to the custom command variable list
  • Fixed a bug when adding custom commands using a command alias
  • Who/What? is defined” now sends via PM
  • !alias shows the user's hostmask as well
  • Fixed custom commands with 'Service' access level
  • Fixed !cmdlist when applied to a global custom command
  • Prevented saving during DB loading, hopefully to stop accidental DB corruption
  • Modified the error message when a user tries to kick an admin to include the username
  • Added !time global custom command (Access required: None)
  • Added 'who banned <user>' to go along with 'who kicked <user>'
  • Modified the way 'who kicked <user>' is stored and displayed
  • Better tracking of the $server variable
  • Added .restart for opers

Version 0.7.1 – May 11th 2009

  • Started tracking how many messages each user sends (April 30)
    • Used for top3 command
  • Added !top3
  • Added !text
  • Updated !stfu, !ban, and !kickban to allow users to specify a duration (in minutes)
  • Improved Auto-Save to create a backup of the db every hour
    • Database got corrupted on May 5, most recent manual backup was April 22
  • Various grammatical, aesthetic changes
  • Bug fixes to
    • Nick Filter
    • Stfu
    • kick/kickban
      • Specifically regex matches no longer match against the bot's nick, regardless.
    • Top3 commands works properly now

Version 0.7.0 – April 29th 2009

  • Added Custom Commands!
    • Big help file entry for these.....
    • In any channel, Voiced users can use !cclist to view existing custom commands in that channel
    • Voiced users can also use !ccinfo <custom-command> to see info on any existing custom command
  • Added Global Custom Commands
    • Same as regular custom commands, but apply to all channels
    • It is possible, using customs and global customs, to give regular users access to oper-only commands, or certain parts (eg pre-defined args) of an oper-only command.
    • In any channel, voiced users can use !gclist to see all existing global customs
    • voiced users can also use !gcinfo <global-custom> to see info on a global custom command.
  • Added !greet
  • !cmdlist now supports custom commands as well
    • This obsoletes the global !ccinfo custom command, which I will be removing
  • Nickfilter now ignores self
    • aka you cannot make the bot ban itself using a nick filter
  • Added !wins
    • For users to check wins
  • Added .award
    • For opers to hand out wins
  • Added !floodban (About time)
  • Added additional syntax to !autobans
    • This supports banning repeat offenders automatically in your channel
    • By default, anyone who trips your spamfilter, or any of the autobans 3 times in 5 minutes will receive a 30 minute ban. This is configurable, but always enabled.
  • Fixed a small glitch with spamban where looking for excess repeat chars was not done properly
  • Some updates to .stats
    • Addition of .stats customs (For custom command stats)
    • Syntax modification

Version 0.6.9 – April 19th 2009

  • Added repeat support to timers
    • Syntax change, please note it
    • Timers command now assumes channel if not specified
  • Kick and Kickban now support Regex matching!
    • Works for opers and regular users too
    • Case insensitive by default
  • Added .amsg
    • Send a message to all channels the bot is currently in
    • Not particularly useful I suppose, but it's something.
  • Added .enable and .disable
    • Opers can disable commands now
    • Only applies to regular user commands (.disable enable would be stupid)
  • Added oper version of .stfu
    • Check for oper removed
    • Auto-devoices, dehalfops and deops the person in question
  • Added !me
    • Same as /me, but makes the bot use it
  • Added handler for actions
    • Previously, the bot did not see actions (/me) at all

Version 0.6.8 – April 14th 2009

  • Improved mode parser
    • Still doesn't handle -qaohv well though
  • Improvements to timer system
    • See: Total overhaul
  • Improved timer accuracy from 10s to 1s
  • Added !nickfilter
  • Added hourly auto-save
  • Found out that Net::IRC doesn't parse extbans properly
    • Added a workaround for this in my mode parser
  • Added .timers
    • No args: list existing timers
    • add
    • del
    • # (Display info for a specific timer)
  • Timers are now saved between sessions
  • Modified the way timers are parsed
    • Now stores the nick that created the timer
  • All Private Messages sent to zomg are now forwarded to vsTerminus

Version 0.6.7 – April 1st 2009

  • Added .whisperback
  • Added !mp3
  • Fixed Modelock
  • Added some extra protection against XML db corruption
  • Added !spamfilter
  • Added .kickban for opers
  • Added a mode parser
    • No longer need to /who the channel on mode changes!
  • Help file updates
    • Moved to an HTML format
    • Hosted on my machine instead of omploader

Version 0.6.6 – March 2nd 2009

  • Added .addchan
  • Added !announce
    • Very different from announce in the old zomg
  • Added logging
    • One file per channel
    • Command log
    • Kick log
  • Added an option to !who
    • !who <banned|kicked> <user>
  • Fixed to-do list saving.
  • Added !autobans
  • Added !capsban
  • Added !spamban
  • Added !repeatban
  • Fixed some warnings in on_text and parseCommand subs
  • Improved command handling and multi-command handling

Version 0.6.5 – February 27th 2009

  • Modified topic template
  • Fixed topic tracking for topics set by other users
  • Added command aliases, definable by opers
    • .addcmd <New Command> <Existing Target Command>
    • .delcmd <Command Alias>
    • .listcmd <Command Alias | Command>
  • Removed the 'did you mean' responses, they were just annoying and cropping up too often
  • Added more options to .stats
    • .stats users|kicks|text|peak|defs

Version 0.6.4 – February 23rd 2009

  • Added comical 'did you mean' on invalid commands
  • Added protection to !stfu to stop it from accepting empty args
  • Upgraded the multi-command parsing to be more intuitive
    • If a command in the string does not exist, it will be treated as the arg for the most recent successful command, allowing any command to take multiple args (essentially).
    • eg. !stfu Xyzzy; Scissors, Pie
  • 'who is defined' now lists users for opers.
  • Topic text is now filtered when stored to prevent XML errors.
  • Added .todo
  • Added .done
  • Fixed another glitch with nick changes
  • Bot will no longer attempt to parse blank commands during multi-parsing
  • Fixed problem with 'who/what is defined' not splitting lists into multiple messages
  • Added option 'list' for the oper join command.
  • Added !peak
    • Also added oper .peak
  • Added peak info to .stats
    • Stats by default uses a compressed, one-message format
    • Optionally, user can pass 'v' or 'verbose' to get the full, multi-line version with additional info.
  • Fixed regex for special 'who is' and 'what is' commands
  • Added oper .help which allows sending to other users (also massable)
  • Fixed a check in the mass command

Version 0.6.3 – February 11th 2009

  • Added !kickcount
  • Added !kickme
  • Added two new hashes
    • %kicks # Stores info on all kicks seen
    • %mykicks # Stores info on kicks by the bot
  • Fixed tracking of hostmasks on nick changes
  • Added more info to stats
  • Fixed glitch in the mass command where it wasn't checking the opers hash
  • Reset the kick counter in favor of having accurate kick data

Version 0.6.2 – February 11th 2009

  • Removed !addban
  • Added a %hosts hash to keep the hosts for users seperate from the user objects
    • This makes it easier to track whether a user is online or offline
  • Adjusted !whois output to reflect offline users
  • Added .stats
  • Adjusted on_quit and on_part events
  • Changed !help to send a NOTICE instead of a PM

Version 0.6.1 – February 10th 2009

  • Added .say
  • Added !cycle
  • Added !rr
  • Added !nn
  • Added !censor
  • Added !mute
  • Added !strip
  • Added support to catch SIG{TERM} and SIG{INT} and save before exiting

Version 0.6.0 – February 10th 2009 (Initial Release)

  • Why start at 0.6.0?

*For those who remember the original zomg project, it was written in mIRC script and as it grew it became increasingly troublesome to work with.

  • It was at version 0.5.x when I dropped it and moved to zomg in Perl, so I just bumped the version up to 0.6.0 and kept going.