Age | Commit message (Collapse) | Author |
|
|
|
|
|
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.
|
|
Fly-by whitespace cleanups too.
|
|
Instead of failing (silently) when the OAuth process cannot complete due
to a missing key/secret pair, report the issue to the user.
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
This prevents the regexp scan to grab the Google Privacy link when no
results were found.
|
|
|
|
|
|
|
|
|
|
The target was being of the wrong class (String vs Irc::Channel),
busting all the hash lookups.
|
|
|
|
|
|
|
|
|
|
Solve a few gettext issue, and re-introduce the commas around the
region.
|
|
It's 'hangman define' now, and we should only use one prefix in the
example command
|
|
|
|
This prevents spurious messages about the game join timer being
cancelled when a game is ended by all players but one dropping out.
|
|
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.
|
|
|
|
|
|
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.
|
|
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.
|
|
This prevents a game from starting after it has ended.
|
|
The drop is still counted, to prevent people from leaving and then
rejoining until they have nice cards.
|
|
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.
|
|
|
|
Set up gettext strings properly, adjust case, and cope more cleanly with
the case of multiple address prefixes.
|
|
|
|
|
|
Use the time parsing routines in utils, and compute the split at blob
parse time rather than at command recognition time.
|
|
|
|
|
|
shortenurls: Add a favorite service config option.
Auto-shortening URLs is mutually exclusive with showing information about them as the output would be very confusing.
The favorite shortenting service option only really applies when other plugins call shortenurls.shorten, so they don't have to hard-code which shortening service to use.
|
|
Polls can be brief (2 minutes) or longer lasting (2 weeks).
|
|
|