summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-05-11weather: fall back from nws to wuGiuseppe Bilotta
If a user uses NWS as default service and asks for a location that the our NWS implementation can't retrieve, fall back to the Weather Underground service. To simplify this management, rewrite the code to use the bot HTTP util and its caching functionality.
2011-05-11weather: URI-encode stationGiuseppe Bilotta
The NWS code assumed that the station could be used as-is in the URL, which is actually true for the station codes accepted by NWS, but incorrect in general. People with NWS as the default weather service would get strange errors about bad URIs if trying something like "weather birmingham, uk". Solve by URI-encoding the station name: even if the resulting URL will still give a 404, at least it doesn't give out odd errors.
2011-05-10search: update gdef to changes in web resultGiuseppe Bilotta
2011-05-10bdb: don't retrieve the db values when warning about nil keyGiuseppe Bilotta
When either of the keys passed to the BDB compare function is nil, we emit a warning. In this warning, however, we used to peek at the registry value, which required the use of the comparison function itself, falling in a nested loop. Solve by omitting the self[<key>].inspect from the warning.
2011-05-09weather: fix url detection for multiple stations/sitesGiuseppe Bilotta
2011-05-03Preliminary support for the LIST commandGiuseppe Bilotta
2011-04-03* less eager quit message resetGiuseppe Bilotta
Only reset quit message when entering the main loop sanely.
2011-04-02utils: support new HTMLEntities interfaceGiuseppe Bilotta
Since version 4.1.0, HTMLEntities removed the decode_entities() class method and uses a decoder since. Support the new interface as well as the old one. Also slightly optimize by moving the conditional outside of the method definition. Now a rescan is required even if HTMLEntities is loaded at runtime, but the method should be slightly faster.
2011-03-16Add &ndash; to known HTML charactersGiuseppe Bilotta
This was affecting the imdb plugin when htmlentities was not available, because TV series were split at en dashes, which were being converted to asterisks when our built-in UNESCAPE_TABLE was being used.
2011-02-14twitter plugin: change the api urls to receive RTsMatthias -apoc- Hecker
2011-02-07auth: force no-nick reply when meeting someoneGiuseppe Bilotta
This prevents things such as "nickA: hi, nickB" where nickA is e.g. the owner and nickB is the newly met user.
2011-02-03quiz: stop quizzes and timers on cleanupGiuseppe Bilotta
This prevents spurious timers from running after a rescan
2011-02-03quiz: more consistent autoskip/autoask managementGiuseppe Bilotta
Also respect autoask delay when autoskipping
2011-02-03quiz: autoskip featureGiuseppe Bilotta
2011-02-03quiz: autoask cleanupGiuseppe Bilotta
2011-02-03quiz: refactor and localize admin helpGiuseppe Bilotta
2011-02-03quiz: refactor quiz db problem announcementGiuseppe Bilotta
2011-02-03quiz: autoask status queryGiuseppe Bilotta
2011-02-02httputil: nicer UI message when lacking sslGiuseppe Bilotta
Rather than complaining about a missing use_ssl= method, if net/https fails to load we define a mock use_ssl= method that raises a runtime error making the LoadError message public. This is not the most user-friendly message (we would prefer not to expose internals), but it should be clear enough to help owners that forget to read the log find what's missing.
2011-01-31comments and message fixesGiuseppe Bilotta
2011-01-30weather: defaults for missing serviceGiuseppe Bilotta
The refactoring that introduced google removed them erroneously.
2011-01-28bdb: support running without envsGiuseppe Bilotta
The various checkpointing function may be called when no env has been loaded (yet), support this.
2011-01-26TokyoCabinet pseudo-environmentGiuseppe Bilotta
Since TokyoCabinet does not provide a DB environment, trying to reopen the same db multiple times (something that happens with subregistry mostly, and possibly after rescans) causes the subsequent opens to fail due to "threading errors". Fix by implementing some sort of environmentalish database management (only keeps track of open databases, returns existing ones if reopening the same db multiple times, closes all of them on exit).
2011-01-26weather: support google service tooGiuseppe Bilotta
2011-01-26weather: use bot standard html cleanup functionsGiuseppe Bilotta
Get rid of wu_clean and replace it with ircify_html or riphtml depending on context.
2011-01-26weather: config option for default unitsGiuseppe Bilotta
2011-01-26html entities: add degGiuseppe Bilotta
The symbol appears in weather underground data an was not being escaped when htmlentities was not available
2011-01-26extends: fix riphtmlGiuseppe Bilotta
2011-01-12Ruby 1.9 cleanup: variables warningsGiuseppe Bilotta
Fix most ruby 1.9 warnings about shadowed variables (still one remaining in keywords.rb). The only significant changes are in the quiz game plugin. Also fix an issue in dictclient where the block parameter of a method was not correctly isolated from the previous parameter.
2011-01-12Limit Comparable inclusion to ArrayGiuseppe Bilotta
Including Comparable at the top level causes infinite recursions in Ruby 1.9.2
2011-01-12Load the 1.9 compatibility code earlierGiuseppe Bilotta
The compat19 code touches the monitor mixins which are used by the logger which is started as soon as ircbot.rb is loaded. To make sure the logger uses the compat code we must load compat19 before ircbot.
2011-01-11rss: obviously, the precending patch wasn't enoughGiuseppe Bilotta
Proper support for a 'modified' element actually requires its model to be defined and added to the RSS Atom namespace.
2011-01-11rss: updated can be nilGiuseppe Bilotta
An Atom item can reply to updated even though its value is nil, so check for it actually being valued instead. Also, some malformed Atom feeds use the nonstandard 'modified' element instead, so check for that too.
2010-12-31fake message: set replied on replyGiuseppe Bilotta
Although the reply method for fake messages was actually relying on the original, we still need to set 'replied' to prevent the fake message from being wrongly delegated to 'unreplied'. The most obvious bug this commit fixes is the potentially infinite loop triggered by defining a command reaction triggered by the command name itself (e.g. reply to ping with cmd:ping).
2010-12-12+ Array#delete_if_atGiuseppe Bilotta
Allow deletion of an element from the array iff it's at a given position (or in a given range of positions).
2010-12-11small updates for italian markovGiuseppe Bilotta
2010-12-11time plugin: check if argument is a nick earlierGiuseppe Bilotta
When !time <somenick> was being used and the user <somenick> hadn't set his or her location, the bot would wrongly assume the argument was some timezone. Fix by checking against local nicks first.
2010-12-10geoip: blogama is dead, long live ipinfodbGiuseppe Bilotta
Sadly, the new ipinfodb API requires an API key, and I don't know yet if I'm allowed to redistributed it (I'm betting on no, but in case I can it will added with an appropriate patch).
2010-12-09UNO!: when the game hasn't started, it's nobody's turnGiuseppe Bilotta
2010-12-09UNO!: prevent joins after a challengeable cardGiuseppe Bilotta
If someone joins after a challengeable W+4, he would be inserted between the last and first player, and if there is a challenge _his_ cards would be exposed. So prevent joining in such a situation.
2010-12-08UNO!: reset must_play when changing turnGiuseppe Bilotta
After a successful challenge, the challenged player can choose to pick&pass instead of playing one of its allowed cards. In such a case, the must_play array would not get reset, preventing the next player to be able to play any of its card. Fix by resetting must_play on next_turn rather than on set_discard.
2010-12-08UNO!: early exit when checking if W+4 was legalGiuseppe Bilotta
Exit as soon as we find a card that reveals that the W+4 was not a valid move.
2010-12-08auth module: update for messagemapper changesGiuseppe Bilotta
Since commit a993d1c358e24ab85621568c10411c5496e2dea8, the message mappers have a more rational way of reporting failures, but the auth module was not using it, resulting in the wrong permissions being granted/revoked whenever allow/deny was being used.
2010-12-07More gettext frozen string woesGiuseppe Bilotta
2010-12-07The mIRC color for white is 0, not 16Giuseppe Bilotta
Default mIRC colors are 0-15, and some clients don't react too well to a color > 15, while most wrap or default. Konversation, for example, will stop the color command parsing and interpret it as color 1, followed by the literal digit 6. So use the 'official' (mIRC) value of 0 for white.
2010-12-07Greet plugin: bot should not greet himselfGiuseppe Bilotta
2010-11-30poll: missing choice value in replyGiuseppe Bilotta
2010-11-30poll: cope with gettext frozen stringGiuseppe Bilotta
Some gettext versions freeze the string they return, so dup them before modifying them.
2010-11-25rss: watch handle case during renameGiuseppe Bilotta
We allow rss handles to be of any case on creation, even though matching is case-insentivie. However, when renaming an rss using 'rss change handle' and only changing the case, two things prevented this from working correctly: * since the new downcased handle was equal to the old downcased handle, the bot would prevent the renaming due to the existence of the new handle * the new handle was forcefully downcased, preventing the user from renaming handle 'case' to 'CaSe'. Fix by checking for this case explicitly, and handling it separately.
2010-11-25remind: fix presence of 'in', 'every' or 'at' in messageGiuseppe Bilotta
if 'in' was present in the message but not part of the time specification (e.g. because the specification was with 'every' or with 'at'), the parser would fail at the first attempt (look for time after 'in') and fail unnecessarily. Fix by trying all possibilities and only giving an error if none succeeds.