Giuseppe Bilotta [Tue, 30 Nov 2010 17:52:43 +0000 (18:52 +0100)]
poll: missing choice value in reply
Giuseppe Bilotta [Tue, 30 Nov 2010 17:46:06 +0000 (18:46 +0100)]
poll: cope with gettext frozen string
Some gettext versions freeze the string they return, so dup them before
modifying them.
Giuseppe Bilotta [Thu, 25 Nov 2010 16:53:57 +0000 (17:53 +0100)]
rss: watch handle case during rename
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.
Giuseppe Bilotta [Thu, 25 Nov 2010 12:49:15 +0000 (13:49 +0100)]
remind: fix presence of 'in', 'every' or 'at' in message
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.
Giuseppe Bilotta [Thu, 18 Nov 2010 15:08:19 +0000 (16:08 +0100)]
rss plugin: don't fail when feed.last_success is nil
The first_run check comparing the time delta from last success failed
when feed.last_success was nil. Prevent this from happening by checking
if we are on the first run before the rest of the checks.
Giuseppe Bilotta [Tue, 9 Nov 2010 19:53:49 +0000 (20:53 +0100)]
imdb: fix title regexp for missing second date
Giuseppe Bilotta [Mon, 8 Nov 2010 19:25:06 +0000 (20:25 +0100)]
UNO!: fix g9r9 fix
Commit
a306b2c68eb58c1c88057ff7ee78895401adb6a9 introduced a fix to
prevent a player from playing something like g9r9, but the fix actually
prevented any single-card play. Fix by making the \1 optional.
Giuseppe Bilotta [Sun, 31 Oct 2010 11:38:42 +0000 (12:38 +0100)]
urban: fix regexp
Giuseppe Bilotta [Mon, 18 Oct 2010 22:39:13 +0000 (00:39 +0200)]
uno plugin: don't allow g9r9 card specification
The regexp should make sure that the second card is equal to the first
specified card, instead of matching the card expression one or two
times. Otherwise, a play like 'pl g9r9' would be accepted when the
player had two r9 cards and could play them.
This is only a aesthetical change because the plays would still be
valid, albeit (1) surprising and (2) mismatching what the user actually
wrote.
Raine Virta [Mon, 4 Oct 2010 16:39:50 +0000 (19:39 +0300)]
translator: don't show provider
Giuseppe Bilotta [Thu, 14 Oct 2010 13:08:30 +0000 (15:08 +0200)]
imdb: restore 'character of' functionality
Giuseppe Bilotta [Thu, 14 Oct 2010 11:18:54 +0000 (13:18 +0200)]
imdb: update to latest html
Giuseppe Bilotta [Thu, 14 Oct 2010 09:16:02 +0000 (11:16 +0200)]
search: gcalc fix
Google changed their HTML again, breaking gcalc. Fix by using the WAP
search and get the first result if it contains an equal sign.
Giuseppe Bilotta [Thu, 14 Oct 2010 08:35:26 +0000 (10:35 +0200)]
safe_exec fixes
Some plugins (ri, fortune) wrap safe_exec in begin/rescue blocks that
did not get triggered because the exceptions from the execution were
caught in the popen block (and would never get exposed anyway). Fix this
by raising if $? does not indicate success.
Giuseppe Bilotta [Thu, 14 Oct 2010 08:15:47 +0000 (10:15 +0200)]
dictclient: monkeypatch DICTError
The Ruby/DICT library is so tightly coupled with the rdict client that
its errors exit on initialize, instead of letting the lib user do that.
This makes those errors untrappable from the code.
Fix by monkeypatching DICTError to just act like the other exceptions in
Ruby.
Giuseppe Bilotta [Tue, 12 Oct 2010 15:05:21 +0000 (17:05 +0200)]
youtube: fix detection of video pages
Giuseppe Bilotta [Wed, 6 Oct 2010 18:52:29 +0000 (20:52 +0200)]
TokyoCabinet #fwmkeys() expects a string
Convert the (optional) first argument to #each*() methods to a string to
ensure the calls work as expected. This fixes a problem with
@registry.each not working as expected, and although it would have been
sufficient to convert the default for the first argument from nil to the
empty string, the approach implemented by this patch is more robust
overall.
Giuseppe Bilotta [Wed, 6 Oct 2010 08:18:08 +0000 (10:18 +0200)]
TokyoCabinet: upgrade from BDB using case-insensitive tree
Giuseppe Bilotta [Mon, 4 Oct 2010 21:41:59 +0000 (23:41 +0200)]
DBFatal at load time deserve special treatment
Don't trap them, rerise and let the bot handle them
Giuseppe Bilotta [Mon, 4 Oct 2010 19:19:23 +0000 (21:19 +0200)]
time plugin: properly reset TZ in on_timezone
Giuseppe Bilotta [Mon, 4 Oct 2010 19:08:54 +0000 (21:08 +0200)]
poll: suppress warning
Giuseppe Bilotta [Thu, 30 Sep 2010 15:30:09 +0000 (17:30 +0200)]
compat19: fix condition monitor waiting
When timing out during a wait, return false instead of raising. This
fixes a problem with TimeoutError being raised during restarts on
ruby 1.9.x
Giuseppe Bilotta [Thu, 30 Sep 2010 10:08:34 +0000 (12:08 +0200)]
Revert "markov: removed unnecessary mutexes"
This reverts commit
06485aeb187dde5e81204b06c8e956e7e035c323. The mutex
is necessary because of the concurrent learning and database conversion.
Some other approach should be used instead (e.g. skipping the mutex if
not running a conversion).
Giuseppe Bilotta [Wed, 29 Sep 2010 23:37:05 +0000 (01:37 +0200)]
IRC framework: Server#to_s must always return a String
Having Server#to_s alias the hostname would cause problems when the
hostname was nil (e.g. after a disconnect). Fix by making sure that to_s
always returns a string instead.
Giuseppe Bilotta [Wed, 29 Sep 2010 23:15:33 +0000 (01:15 +0200)]
* more BDB leaking fixed
Giuseppe Bilotta [Tue, 28 Sep 2010 11:28:24 +0000 (13:28 +0200)]
twitter: fix status count
Giuseppe Bilotta [Mon, 27 Sep 2010 11:52:14 +0000 (13:52 +0200)]
* wrap BDB::Fatal classes for abstract trapping
When using a DB backend different from BDB, the BDB constant may not be
defined, causing a NameError during error trapping in the main loop. Fix
this by defining our own DBFatal error that maps to BDB::Fatal in the
BDB case and is defined as an (unused) Exception for TokyoCabinet.
Giuseppe Bilotta [Mon, 27 Sep 2010 10:38:59 +0000 (12:38 +0200)]
time: support POSIX time
Voker57 [Fri, 24 Sep 2010 06:36:31 +0000 (10:36 +0400)]
Check BDB version only if it's loaded
Giuseppe Bilotta [Thu, 23 Sep 2010 22:47:46 +0000 (00:47 +0200)]
TokyoCabinet: more BDB checks
Giuseppe Bilotta [Thu, 23 Sep 2010 20:34:08 +0000 (22:34 +0200)]
TokyoCabinet: only warn about skipped upgrade if the old reg was found
Giuseppe Bilotta [Thu, 23 Sep 2010 20:31:19 +0000 (22:31 +0200)]
TokyoCabinet: fix extension in 0.9.9 upgrade path
Giuseppe Bilotta [Thu, 23 Sep 2010 20:20:57 +0000 (22:20 +0200)]
TokyoCabinet: 0.9.5-to-0.9.9 must use BDB only
When upgrading from 0.9.5 data, write the 0.9.9-style regisitry using
BDB still rather than trying to use TokyoCabinet already. This makes
sure that the next step (0.9.9 to modern times) works correctly.
(Moreover, the existing BDB-to-TC attempt wouldn't have worked anyway
due to wrong var names. I doubt anybody will ever hit this path and
notice though.)
Raine Virta [Thu, 23 Sep 2010 13:04:15 +0000 (16:04 +0300)]
translator: stricter url mapping
Raine Virta [Thu, 23 Sep 2010 13:01:19 +0000 (16:01 +0300)]
time: be consistent with <Continent>/<City> notation
Raine Virta [Sat, 18 Sep 2010 08:25:27 +0000 (11:25 +0300)]
translator: url translation through google
Raine Virta [Sat, 18 Sep 2010 08:24:50 +0000 (11:24 +0300)]
time: use "time zone" consistently in replies
Raine Virta [Sat, 18 Sep 2010 08:22:07 +0000 (11:22 +0300)]
lastfm: fix set user suggestion reply
Raine Virta [Sun, 12 Sep 2010 14:15:43 +0000 (17:15 +0300)]
time: update help
Giuseppe Bilotta [Thu, 23 Sep 2010 11:55:17 +0000 (13:55 +0200)]
tumblr: typo in var name
Giuseppe Bilotta [Wed, 15 Sep 2010 13:45:26 +0000 (15:45 +0200)]
tumblr: support tags
Tags are specified on the IRC line by putting them between square
brakets.
Giuseppe Bilotta [Wed, 15 Sep 2010 13:26:19 +0000 (15:26 +0200)]
tumblr: embed Vimeo videos
Giuseppe Bilotta [Wed, 15 Sep 2010 13:01:04 +0000 (15:01 +0200)]
tumblr: adjust TODO list
Giuseppe Bilotta [Wed, 15 Sep 2010 12:09:42 +0000 (14:09 +0200)]
tumblr: support reblogging and fix HTML issues
Detect tumblr posts and use the reblogging API to post them. Also
produce HTML-escaped lines for video and photo captions because
the format=markdown specification doesn't seem to apply to them.
Giuseppe Bilotta [Tue, 14 Sep 2010 22:05:23 +0000 (00:05 +0200)]
twitter: warn about failed authorization
Fly-by whitespace cleanups too.
Giuseppe Bilotta [Tue, 14 Sep 2010 21:46:13 +0000 (23:46 +0200)]
twitter: report missing key/secret configuration
Instead of failing (silently) when the OAuth process cannot complete due
to a missing key/secret pair, report the issue to the user.
Giuseppe Bilotta [Fri, 10 Sep 2010 19:08:30 +0000 (21:08 +0200)]
twitter: let user know when no status was found
Raine Virta [Fri, 10 Sep 2010 17:04:35 +0000 (20:04 +0300)]
time: calibrate to user's timezone when parsing time input
Raine Virta [Tue, 7 Sep 2010 18:00:45 +0000 (21:00 +0300)]
time: add timestamp parser as a fallback to the default functionality
Giuseppe Bilotta [Tue, 7 Sep 2010 18:20:50 +0000 (20:20 +0200)]
twitter: don't fail on missing oauth
When OAuth is missing, some barebone functionality in the twitter plugin
is still available (namely, status reading from public timelines), so
don't fail loading and just warn the users and admins about the reduced
availability.
NeoLobster [Mon, 6 Sep 2010 10:11:49 +0000 (05:11 -0500)]
twitter: bugfix for invalid OAuth PIN Entry
There was a bug in "twitter pin" functionality where it didn't
check to verify that the PIN entered by the user was valid. As
a result, if the user entered an invalid PIN, the bot would
not respond as to whether or not twitter account binding was
successful. I replaced it with an error message if the PIN
is invalid. I also changed the error message for someone
who tries to enter a PIN without first using "twitter
authorize" to be more clear.
NeoLobster [Mon, 6 Sep 2010 09:35:02 +0000 (04:35 -0500)]
twitter: add OAuth support
Module now requires twitter.key and twitter.secret config parameters for
write access and private users' statuses. Added twitter authorize,
twitter deauthorize, and twitter pin features, removed twitter identify
feature, as basic authentication is no longer supported.
Giuseppe Bilotta [Thu, 2 Sep 2010 13:31:43 +0000 (15:31 +0200)]
rss plugin: support atom categories
Atom categories don't have a content attribute, and obviously they don't
have an empty? method. Squash them to their label rather than bombing
out with error during the blank2nil processing.
Giuseppe Bilotta [Wed, 1 Sep 2010 13:04:18 +0000 (15:04 +0200)]
search: google calc can be in non-h2 headers
Giuseppe Bilotta [Thu, 26 Aug 2010 15:40:37 +0000 (17:40 +0200)]
digg: cleanup whitespace in title
Giuseppe Bilotta [Thu, 26 Aug 2010 15:36:26 +0000 (17:36 +0200)]
digg: new URL
Giuseppe Bilotta [Thu, 26 Aug 2010 15:34:04 +0000 (17:34 +0200)]
digg: fix message when news could not be retrieved
Giuseppe Bilotta [Tue, 24 Aug 2010 17:43:14 +0000 (19:43 +0200)]
hangman plugin: don't fail silently on !hangman
If the random generation site failed for any reason (eg. by returning a
non-2xx page), starting a hangman game would fail silently.
Catch this case and announce the failure.
Giuseppe Bilotta [Tue, 24 Aug 2010 16:34:44 +0000 (18:34 +0200)]
auth: minimal help about user import/export
Giuseppe Bilotta [Wed, 18 Aug 2010 08:45:21 +0000 (10:45 +0200)]
Plugin rake task: specify the path the plugin was written to
Raine Virta [Thu, 22 Apr 2010 20:47:36 +0000 (23:47 +0300)]
Add a plugin skeleton generator
`rake plugin`
Raine Virta [Thu, 22 Apr 2010 19:29:08 +0000 (22:29 +0300)]
Fix typo
Raine Virta [Tue, 20 Apr 2010 17:36:25 +0000 (20:36 +0300)]
lastfm: require spotify plugin to be enabled for spotify link info
Giuseppe Bilotta [Tue, 17 Aug 2010 07:24:12 +0000 (09:24 +0200)]
search: skip non-search-results link
This prevents the regexp scan to grab the Google Privacy link when no
results were found.
Giuseppe Bilotta [Fri, 13 Aug 2010 14:20:52 +0000 (16:20 +0200)]
translator: support both pre-1.0 and post-1.0 Mechanize namespaces
Giuseppe Bilotta [Thu, 5 Aug 2010 07:43:51 +0000 (09:43 +0200)]
UNO!: replace_player() returns whether it worked or not
Giuseppe Bilotta [Thu, 5 Aug 2010 07:40:50 +0000 (09:40 +0200)]
UNO!: don't replace with nonexisting players
Giuseppe Bilotta [Thu, 5 Aug 2010 07:28:22 +0000 (09:28 +0200)]
UNO!: prevent a challenge after a pick after a W+4
Giuseppe Bilotta [Tue, 3 Aug 2010 14:56:56 +0000 (16:56 +0200)]
hangman: fix playing with a private message
The target was being of the wrong class (String vs Irc::Channel),
busting all the hash lookups.
Giuseppe Bilotta [Tue, 3 Aug 2010 14:47:40 +0000 (16:47 +0200)]
hangman: IRCify HTML in definitions
Giuseppe Bilotta [Thu, 29 Jul 2010 12:20:48 +0000 (14:20 +0200)]
hangman: ensure 'hangman define' always answers
Giuseppe Bilotta [Sat, 24 Jul 2010 21:29:14 +0000 (23:29 +0200)]
imdb: fix plot detection
Giuseppe Bilotta [Sat, 24 Jul 2010 21:11:50 +0000 (23:11 +0200)]
imdb: fix grab_info()
Giuseppe Bilotta [Tue, 20 Jul 2010 08:21:56 +0000 (10:21 +0200)]
geoip: massage a few messages
Solve a few gettext issue, and re-introduce the commas around the
region.
Giuseppe Bilotta [Sun, 18 Jul 2010 21:16:33 +0000 (23:16 +0200)]
hangman plugin: update a couple of messages
It's 'hangman define' now, and we should only use one prefix in the
example command
Giuseppe Bilotta [Sat, 10 Jul 2010 16:14:45 +0000 (18:14 +0200)]
factoids plugin: more help
Giuseppe Bilotta [Sat, 10 Jul 2010 13:44:10 +0000 (15:44 +0200)]
UNO! plugin: clean join_timer when game starts
This prevents spurious messages about the game join timer being
cancelled when a game is ended by all players but one dropping out.
Giuseppe Bilotta [Mon, 5 Jul 2010 13:36:21 +0000 (15:36 +0200)]
load-gettext: cope with ruby gettext 2.1.0
Giuseppe Bilotta [Sat, 3 Jul 2010 21:52:57 +0000 (23:52 +0200)]
freshmeat plugin: use XML news if possible
Freshmeat now provides the news in XML form under /index.xml, which
provides more information, and in a more computer-friendly way. Use that
if possible (correctly-configured API token), fall back to RSS parsing
otherwise.
Giuseppe Bilotta [Sat, 3 Jul 2010 20:22:24 +0000 (22:22 +0200)]
HTTP: only set cookies for the correct domain
When a redirect has a Set-Cookie: header, check if the cookie domain is
valid for the host we are redirected to. If not, don't set the cookie
in the new request.
Giuseppe Bilotta [Sat, 3 Jul 2010 19:26:18 +0000 (21:26 +0200)]
HTTP: support servers that forget to escape the redirect location
Giuseppe Bilotta [Fri, 2 Jul 2010 22:09:08 +0000 (00:09 +0200)]
hangmang plugin: rename 'define' to 'hangman define'
Giuseppe Bilotta [Fri, 2 Jul 2010 11:32:42 +0000 (13:32 +0200)]
Release checklist
We sometimes skip releases for such a long time that we forget what
exactly we have to do, and in what order. Let's keep this list in view
and up-to-date
Giuseppe Bilotta [Fri, 2 Jul 2010 11:19:48 +0000 (13:19 +0200)]
figlet plugin: never prepend nick
Giuseppe Bilotta [Fri, 2 Jul 2010 11:08:25 +0000 (13:08 +0200)]
Strange error in po/en/rbot-uno.rb
Giuseppe Bilotta [Fri, 2 Jul 2010 10:55:20 +0000 (12:55 +0200)]
UNO! plugin: prevent double wild play
This allows lazy players to specify the color after playing the wild by
pressing up-arrow and adding the color to the previous line, without
running the risk of playing their precious second wild.
Giuseppe Bilotta [Fri, 2 Jul 2010 10:31:32 +0000 (12:31 +0200)]
UNO! plugin: be more discreet about user failures
The public announcement is now a generic "can't do that", with the
specific message being notified to the user. This reduces the chance of
other players guessing what the current player has from the error
messages.
Giuseppe Bilotta [Fri, 2 Jul 2010 10:08:37 +0000 (12:08 +0200)]
UNO! plugin: stop join_timer on end_game
This prevents a game from starting after it has ended.
Giuseppe Bilotta [Fri, 2 Jul 2010 10:04:42 +0000 (12:04 +0200)]
UNO! plugin: cope with pre-game drops
The drop is still counted, to prevent people from leaving and then
rejoining until they have nice cards.
Giuseppe Bilotta [Thu, 1 Jul 2010 23:09:14 +0000 (01:09 +0200)]
freshmeat plugin: use current API
The old XML files are not accessible, sadly, and the new API requires an
auth token. But at least it works again. For updates, we use the RSS
feed, parsing it manually.
Giuseppe Bilotta [Thu, 1 Jul 2010 22:19:58 +0000 (00:19 +0200)]
Update PO files
Giuseppe Bilotta [Thu, 1 Jul 2010 19:51:35 +0000 (21:51 +0200)]
Update versions in manpages when tagging
Giuseppe Bilotta [Thu, 1 Jul 2010 19:48:11 +0000 (21:48 +0200)]
Some man page rationalization
Add myself, reformat, minor tuneups to the text, complete missing
information, etc
Giuseppe Bilotta [Thu, 1 Jul 2010 18:50:36 +0000 (20:50 +0200)]
Rakefile: get rid of useless dependency
It's loaded by gempackagetask anyway ...
Giuseppe Bilotta [Thu, 1 Jul 2010 18:43:57 +0000 (20:43 +0200)]
Ignore man pages
Giuseppe Bilotta [Thu, 1 Jul 2010 18:43:08 +0000 (20:43 +0200)]
Get rid of man/Makefile
Giuseppe Bilotta [Thu, 1 Jul 2010 18:42:54 +0000 (20:42 +0200)]
Rake manpages rule
Giuseppe Bilotta [Thu, 1 Jul 2010 18:39:46 +0000 (20:39 +0200)]
Package man files
Define a rule in the Rakefile to generate them, and change the Dir[]
into a FileList[] into the gemspec. The latter change has the downside
of requiring Rake's FileList, but the upside of listing non-existing
files, so that Rake can create them, if possible, or complain if they
are just missing.
Giuseppe Bilotta [Thu, 1 Jul 2010 16:22:06 +0000 (18:22 +0200)]
poll plugin: some TODOs
Giuseppe Bilotta [Thu, 1 Jul 2010 16:05:33 +0000 (18:05 +0200)]
poll plugin: message fixes
Set up gettext strings properly, adjust case, and cope more cleanly with
the case of multiple address prefixes.