- annoying bug: antiflood claimed the lines for itself... ==================================================== - only call listing of existing modules... (operations) ==================================================== - added load and save state for the roulette - bug in emoteparser solved: actText has to be resetted as entering into the mode tag.... ========================= RELEASE2.47 ======================= - added into operators_pam antiflood protection, look into new sample-operators_pam.conf how to activate - corrected some debug messages ==================================================== VersionID = "$Revision: 1.50 $"; - added to operators_pam a new setting: automode toutouland:v toto:o adds automatic mode change for all users on entering the channel - dangerous... any op could stop the bot, now only owner may, owner may also let le bot leave any channel, using his ownerstatus in one of them... - changed activa chan handling, now in servers.conf the lines for active chan got even more complicated: '#toutouland%fr%all,#toto%en%operators_pam+basereactions', the list is all modules that should be active in that channel, all or nothing, means that all modules are active for that channel - added automode, put o,h or v into that variable and everyone entering a channel gets that right - added to operations command show modules|servers that shows the installed modules or ircservers, since the set list is very very long and tedious, a faster way to get directly to the interesting info - changed setting method to spit out the stringified list of scalar settings replaces dumpSettings - added default target self settings at dumpSettings of zebot - added a real setter to ircSrever - messageHandler dumpXML now returns a hash, save now saves to the different files for the different modules. Baseactor was changed to load the individual message file, the name might be setted in the conf file under the tagname 'messages' ==================================================== - added further user levels, the same levels with arg at the end to differentiate message that are thought with an argument and calls that are made without an argument ==================================================== - glitch in install-files mdir instead of mkdir... - in parse bet before parsing for number it was necessary to rejoin the bettype with the rest of the line since it were all numbers, with the users beeing able to separate the numbers by space and ,... - didn't identify the problem in adduser when if the user just registered there was an error when trying to add to a group, trying to add anyway, and if the userid isn't there, make a subselect to fetch it in the insert - post keeplive in JOIN only if we haven't done it before, otherwise we have a lot of keepalive sessions running.... - protected roulette fill account etc for right type of args ==================================================== - added own account for the bank in roulette - added check for 0 in give and take of roulette - added to roulette:score the table of gains - normally yawn should now be stopped if there's action on the bots private channel - added history handling ==================================================== - roulette now works - configHandler swallowed up canal defs cause they started with #, changed to swallow ' #.*' now - loadHash didn't threw out finishing spaces - changed dummypam to give back operator rights to everyone, that way it would be easily usable for test purposes - changed test.pl at least so far as to use the test-kernel - moved actors and channel lang fetches from direct access to the data hash towards a method of the zebot framework - begun at least for roulette to add a test framework in perl manner, still far from perfect... ========================= RELEASE2.38 ======================= - ressources, %c alone is to get back to original color an not %c1 - and a last stupid one, in fetchGroups the type hash was invalidated.. - another stupid bug, also in zebot::DB:Helper::batch... one time the queries are full hashes the next time an that's more logical they are a list of SQL requests... time to change createTables to don't overdo it... ==================================================== - found stupid bug in zebot::DB:Helper::batch insteand of extracting the actual query the query was added to the sourroiunding query as query, thus what was given to DBI was not a SQL request pour a stringified and thus unusable hash... ==================================================== - added docu and french project page and translations - added a switch to the args that allow softswitching of return through STDOut or by hashref - corrected but in DB:Helper prepare now returns the structure immediately - added connector ======== RELEASE2-33 =============================== ======= - ircServer there was confusion between the nick of the bot, old style was heap->botname, new style heap->nick, but botname was used in zebot kick procedure, so i set both.. - pam: changed all referencing to use lower case nicks - pam:groupsDisplayed nick var was read wrong,nick instead of usernick - pam::addToGroup in SQL users wasn't escaped - pam: auth forgot to add the net to the group adding - pam: passwd didn't record the passwd change in the local hash ==================================================== - added connector class for the GUI - changed GUI to use SimpleMenu instead of itemfactory - changed GUI to use POE as event loop instead of Gtk eventloop - changed configLoader slightly to take the settings ref from the CTOR args - splitted gui starter from mainwindow class - added gui classes of ya into cvs ==================================================== - moved db settings from pam* into zebot.conf file - added documentation - changed active chan format to use % instead of [ to separate channel and language..., calsehd with the new config loader module - extracted config loading to a separate module ==================================================== - pam functions are a bit flakey still some major rewrite perhaps needed there - bug in quitting, in pam and mailbox the wrong kernel was fetched, now use of the session send kernel ref - added to ircServer a autoconnect fag, if it isn't setted the obejct will not connect - reload needed to simulate a join channels to the modules otherwise eg pam doesn't reload the users... - intialized the tokens to ' ' in completeMsg to avoid warnings, but not leave %xxx string in the responses ==================================================== - changed the reload method to purge the modules from the symbol table after dropping and shutting down the modules. This time we can reuse the use - no, drop smbol tables - use paradigm, having code that effectively reload from file the classes and does not produce unecessary warnings... - the introduction of the DBI abstraction broke the reload ability of zebot, due ot the fact that the fast call of the methods from operations didn't leave the time to the shutdown events send to the DB stuff to take effect, the thing crashed down due to the still presence of the old DB sessions whilst trying to start the new ones. - glitch in loading servers.conf : it was still loaded from . - glitch in sample-servers.conf ==================================================== - save settings are adapted to the new paradigm, don't know how to save the comments.. at the moment the bare settings are wrote out... - building the settings up in multiple files and storing them in tree structure brought a change of baseactor::setting with it, now a local settings is extracted from general settings in the init method of baseactor, so its VITAL that submodules call $this->SUPER::init($sysref); prior to anything in their own init method. baseactor::setting is changed to lookup first locally and then globally... - moved the generalized configfile parser from test to zebot.pm, now all .conf files in the configpath/config directory are read in and merged with the general settings hash, into the subtree subsettings->modulename - added command line parsing - i was tod it was confusing to have the starter script of zebot called runBot instead of zebot, so i renamed it to zebot.pl - moved connect to one server out of connect to servers, and added in operations a connect command, that way it is possible to reconnect manually to servers we were eventually dropped off, or to be able to use the auto/manually connect stuff - added DCC CHAT handling ==================================================== - moved the post command from using the session reference to use the session names, again makes it easier to handle.... - the 'pars' command set the bot into shutdown mode whatever the argument was... so letting it leave a channel set the stop bit.... - the fact to use simoultaneously several ncknames swept out a whole bunch of bugs.... - noticed that somewhere i broke the mechanism to change the botname if it was allready take... repaired.... - moved the communication bewtween ircServer objects and the zebot mainframe from method invocation to POE events, will make the addition of the GUI easier! ==================================================== - new module downloader to handle incoming dcc file transfers - changed mailbox pg to use the DB spawner - moved use of settings to a getter of the framework, changed also the test script to continue to be able to test this stuff ==================================================== - created an own multitasking DBI querying lib this creates some connections to the DB and waits for jobs, those are spawned in own threads, and thus do not interfere with the normal bot-work/POE-system - added some minimal entity rewriting for save_XML stuff as <> were written literally... - added a \n after reply if there is a body part - changed pam to use exclusively DB/Helper to query the database, first step to my own POE-DBI abstraction - added dbiquery class that performs all the DBI queries i need and packages the eventuall returning data in arrays of hashes, actually i implemented only the retrun types i need myself. - added into ircServer a keepalive cycle: on connection to an irc server hope we get long enough connected to reach the first ping, use that to mesure the ping rate, if we miss one of those ping requests, send as ison event to the server to check if we are still connected and recognize automatically that the socket went dead.... - changed emoteparser to use also a body part for the mode env - mailbox_pg reacts now on activity on the channels ==================================================== - owner mode was unreachable due to lack of argument passed to the isOwnerOrOper method... - passivated in operators_pam put in return if the list of rights was undef - hmmm strange.... there was an exit in irc_quit if the incoming was a name instead of a channel... - seems not all irc servers send the channel nameslist under irc_353, moved irc_366 to irc_server too and added channel rejoin inhibitin mechanism there too - checked in load* methods that empty lines get ignored too - shifted language handling to ircServer and make the settings of the subargs in the methods called by the irc component, makes fetchChannelLang obsolete ==================================================== - forgot to set the target to rejoin correctly, the join event was send to the slave session instead of the IRC session - in operators pam added bail out of JOINaction if no usertype was found ==================================================== - extended the newbie help and splitted README into INSTALL and README - in operators pam added bail out of JOINaction if no usertype was found ==================================================== - dummypam lacked a sysdata getter - added documentation to the samplefiles and made the load methods ignore comments - changed triggers to react also to private messages, removed the excessive reactions from the reactions file. (thanks to Rocco Caputo for pointing that one out) - commented sample-zebot.conf (thanks to J-M Libs for pointing that out) ==================================================== - forgot to adjust getEmote to the new paradigm, now triggers is changed to set the targets of the emotes in the subargs hash, and leave the substituion of the predefined strings to the getEmote method, same as for getMesg ==================================================== - bug in messageHandler: it didn't reset the mode to default, if the requested mode wasn't found.... - legacy removal, there was a log of print statements without enclosing () for the arguments... modules now elegate the printing to a method in baseactor, that way its easy to make a copy of the dataflow into a file, since perl somehows swallows up a part of the console output.... ==================================================== - changed the way mesage work, now as argument it takes the message and the line hash, that wa completeMsg is called systematically on the generated messages and thus the substitutions of the keywords allways take place - added in messages all the messages that were missing so far - added makefile to generate the doc, added a little script to reformat the pod2html output to suit more of the style of the rest of the pages - readded stricts everywhere, seems it copes again with dynamically loaded code! ==================================================== - added documentation - begun to move operators_pam to use emotes... still need to add the text of those emotes.. - operators works! - stupid, invalidated most of the events in zebot.pm by setting success var to 1.. thus the modules weren't called for them... ==================================================== - the bot reconnects automaticly to a lost server - toutou now tries to rejoin the channel after having been kicked, timeout is set through normal settings - got the saveSettings working again... had to make another var to get the ref function working... - addEmote now works - added triggers, uses new method of messagehandler getEmote to fetch an emote and send out an action for it. - got reload working thanks to a wellplaced do in before the us in oadActors - starting new schema for reaction and messages, added emoteparse which parses a 2 xml files for emotes and messages, the emotes can hols special sequences which will be resolved to actual data, same for the second file the messages which are thought as the system messages for the bot, thus achieving internationalization. the second part of that system is the messagehandler which uses the emote parser to load up and save those messages. actually adding shell support to add and edit those messages. ==================================================== - new pam module, all given functions work! ==================================================== - new pam caches user names of registered users, added a new user type - moved existing pam to pam_pg - had to separate constructor and init phase of zebot.... seemd incompatible.... the hash wasn't initialized.... - splitted nickserv auth further to cope with several handlers and different auth sequences - conf files is overwritten with empty file... because dumpsettings had wrong settings ref in keys - normally only owners and ops should now receive the bot started message - still the addressed bug in kick.. the addressed was wrongly assumed to be an array... - the error message response of the postgres database change d slightly (using ' instead of "....), made a better regexp to cope with it... - zebot.pm join and part had the wrong type, the channel info was assumed for the wrong place... ==================================================== - PRIVSmsg now extracts the first word (if start with #) as a target chan, its now again possible ot let the bot bites someone from the private chat window using #chan mords theguy - moved reactions to use only inbuild post or action, simplified both of them due to default setted kernel and context per object - kernel was wrongly overwritten in findoperators, maybe setting of kernel and context shouldn't be done there, since it should be done only on the bot entry points, when starting of parsing begins - added some links to webpage - bot is now active only in channels it was activated for ==================================================== - found a bug, the target channels come through a ref and not through an array, okok, seems logical, but still, i treated it as array, thus no banana, should work now - moved actor init to the end of the object instantiation, because irc events poured in even before the previous location could be found - removed POE stuff from baseactor and zebot kernel, ircServer are the only POE objects, the others are there for callbacks - begin to move the stuff to make the inbuild docu availabe as POD data - adapted ircServer to use zebot as central object for event handling - introduced leveHandler a module to handle the leverloda irc leech script - changed all references to settings:channel to use the dynamic incoming channel... doesn't make much sense for some of the commands that need to act on the actuual channel and not on th user tab, but its a migration version.... - changed all static references to zebot session to a dynamic session ref, which hopefully will work, only thing for multuserver stuff missing, an object instance representing a server, delegating all calls to the zebot object, thus we eed a launcher and make zebot a real object - added channelHandler, which will load in future the servers.conf file, start the different server sessions, join the different channels on connection and also handle nickserv, chanserv stuff - begun to add channel tag to subargs, and added sender context too, to be able to handle multiple server context ==================================================== - better compliance to the GPL, the licence was now added as a ref to all prject files. - reverted to use a loop over the modules to dispatch events, this ensure the correct order of processing and solves some weir POE signal (not) transfer probs... ==================================================== - in prevision of passing all the modules to use POE, the init loop was made after the P:C:IRC session of the main-frame of the bot starts. Otherwise it wouldn't be possible for the modules to register the IRC events.... - a 5 second sleep was added between reconnect tries, otherwise the servers reject the reconnection tries, since they are coming too fast... ==================================================== - present users when the bot reloads are notifiyed that they need to authenticate to use it - reload now tries to unload the module packages, hopefully this will solve the class reloading problem. - little bug, the line wasn't passed along when calling for user help - added an auth mecanisms to authentificate a user - moved passwd setting to public section - added a privmsg error message on unknown stuff - removed the unique tag of the nick, since users can connect from different placeswith the same nick - removed an annoying error message posted to the users ==================================================== - moved the whole thing to use P:C:IRC ==================================================== - slight error when catching offensive stuff against the owner in reactions... - slight syntax error, teki is written with one 'k'.... ==================================================== - modifyed operators and mailbox modules to take advantage of the pam module - slight problem whise saving and reloading settings: hash were trasnformed into string representation of the address, causing after reload disfuctions, filtered out on reload.... - PAM module now seems to work ==================================================== - added PAM module, reads in a user file, extracts it and allows for identification requests. Ask it ot fetch the record of a user, its group, if the user is recorded and passwd authentifyed... ==================================================== - added version thing to modules - changed to use lowercase for commands, now CTCP command version finds its target! - removed some parts inheritated by magazine version, now line parsing is done once, and only the remains need to be parsed further - little bug didn't send setting along with kiccking bite ==================================================== - added mailbox with postggres DB support - added dbaccess prototype - added object oriented mailbox func - little bug, the connect var wasn't resetted on socket closage - added a global loop around the socket reading, now the bot should try to reconnect to the sever when the socket fails - moved simple emotes out to a separate ressource file - bboett: added version string retrieved from this file!! don't change the first line!! :D ==================================================== - bboett: added command reload, reloads all external ressources (users, settings, reactions and ownerreactions) - bboett: moved reactions and ownerreactions out of main file - bboett: the set command now invokes the set.attributename() sub to activate the change - bboett: added lots of subs for handling the change of bot attributes - bboett: added an endmessage ========================================================================== - bboett:moved settings into a hash, stored in an external file administrable though the set and save commands. - bboett:added external op-lists, can be managed by the showop, save, add, delete commands - bboett:added auto-op lists - bboett:bot may be rejoin after beeing kicked - bboett:splitted help into admin help and user help - bboett:added help,Bryan,pat,caresse,kiss,fucks,mords,fetch, apporte, assis triggers - bboett:splitted user type reactions from admin type reactions - bboett:moved reactions to stimuli to a separate datastructure - bboett:moved all static settings into global vars into the header - bboett: redirected logging stream to a file - First Version by Jyhem copyed down from a magazine and slightly extended triggers for susucre, baton, viens, pars