mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-26 20:59:27 +01:00
Internationalize Filter, Format, Games, and Google
This commit is contained in:
parent
d14bb0cc16
commit
9917232d9a
@ -29,22 +29,24 @@
|
|||||||
|
|
||||||
import supybot.conf as conf
|
import supybot.conf as conf
|
||||||
import supybot.registry as registry
|
import supybot.registry as registry
|
||||||
|
from supybot.i18n import PluginInternationalization, internationalizeDocstring
|
||||||
|
_ = PluginInternationalization('Filter')
|
||||||
|
|
||||||
Filter = conf.registerPlugin('Filter')
|
Filter = conf.registerPlugin('Filter')
|
||||||
conf.registerGroup(Filter, 'spellit')
|
conf.registerGroup(Filter, 'spellit')
|
||||||
conf.registerGlobalValue(Filter.spellit,
|
conf.registerGlobalValue(Filter.spellit,
|
||||||
'replaceLetters', registry.Boolean(True, """Determines whether or not to
|
'replaceLetters', registry.Boolean(True, _("""Determines whether or not to
|
||||||
replace letters in the output of spellit."""))
|
replace letters in the output of spellit.""")))
|
||||||
conf.registerGlobalValue(Filter.spellit,
|
conf.registerGlobalValue(Filter.spellit,
|
||||||
'replacePunctuation', registry.Boolean(True, """Determines whether or not
|
'replacePunctuation', registry.Boolean(True, _("""Determines whether or not
|
||||||
to replace punctuation in the output of spellit."""))
|
to replace punctuation in the output of spellit.""")))
|
||||||
conf.registerGlobalValue(Filter.spellit,
|
conf.registerGlobalValue(Filter.spellit,
|
||||||
'replaceNumbers', registry.Boolean(True, """Determines whether or not to
|
'replaceNumbers', registry.Boolean(True, _("""Determines whether or not to
|
||||||
replace numbers in the output of spellit."""))
|
replace numbers in the output of spellit.""")))
|
||||||
conf.registerGroup(Filter, 'shrink')
|
conf.registerGroup(Filter, 'shrink')
|
||||||
conf.registerChannelValue(Filter.shrink, 'minimum',
|
conf.registerChannelValue(Filter.shrink, 'minimum',
|
||||||
registry.PositiveInteger(4, """Determines the minimum number of a letters
|
registry.PositiveInteger(4, _("""Determines the minimum number of a letters
|
||||||
in a word before it will be shrunken by the shrink command/filter."""))
|
in a word before it will be shrunken by the shrink command/filter.""")))
|
||||||
|
|
||||||
def configure(advanced):
|
def configure(advanced):
|
||||||
# This will be called by supybot to configure this module. advanced is
|
# This will be called by supybot to configure this module. advanced is
|
||||||
|
568
plugins/Filter/messages.pot
Normal file
568
plugins/Filter/messages.pot
Normal file
@ -0,0 +1,568 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR ORGANIZATION
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"POT-Creation-Date: 2010-10-17 11:48+CEST\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=CHARSET\n"
|
||||||
|
"Content-Transfer-Encoding: ENCODING\n"
|
||||||
|
"Generated-By: pygettext.py 1.5\n"
|
||||||
|
|
||||||
|
|
||||||
|
#: config.py:38
|
||||||
|
msgid ""
|
||||||
|
"Determines whether or not to\n"
|
||||||
|
" replace letters in the output of spellit."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: config.py:41
|
||||||
|
msgid ""
|
||||||
|
"Determines whether or not\n"
|
||||||
|
" to replace punctuation in the output of spellit."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: config.py:44
|
||||||
|
msgid ""
|
||||||
|
"Determines whether or not to\n"
|
||||||
|
" replace numbers in the output of spellit."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: config.py:48
|
||||||
|
msgid ""
|
||||||
|
"Determines the minimum number of a letters\n"
|
||||||
|
" in a word before it will be shrunken by the shrink command/filter."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:51
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"This plugin offers several commands which transform text in some way.\n"
|
||||||
|
" It also provides the capability of using such commands to 'filter' the\n"
|
||||||
|
" output of the bot -- for instance, you could make everything the bot says\n"
|
||||||
|
" be in leetspeak, or Morse code, or any number of other kinds of filters.\n"
|
||||||
|
" Not very useful, but definitely quite fun :)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:85
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"[<channel>] [<command>]\n"
|
||||||
|
"\n"
|
||||||
|
" Sets the outFilter of this plugin to be <command>. If no command is\n"
|
||||||
|
" given, unsets the outFilter. <channel> is only necessary if the\n"
|
||||||
|
" message isn't sent in the channel itself.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:98
|
||||||
|
msgid "That's not a valid filter command."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:108
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Removes all the vowels from <text>. (If you're curious why this is\n"
|
||||||
|
" named 'hebrew' it's because I (jemfinch) thought of it in Hebrew class,\n"
|
||||||
|
" and printed Hebrew often elides the vowels.)\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:120
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Removes all the spaces from <text>.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:130
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text>, with all consecutive duplicated letters removed.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:143
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns the binary representation of <text>.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:169
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns a hexstring from the given string; a hexstring is a string\n"
|
||||||
|
" composed of the hexadecimal value of each character in the string\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:179
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<hexstring>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns the string corresponding to <hexstring>. Obviously,\n"
|
||||||
|
" <hexstring> must be a string of hexadecimal digits.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:187
|
||||||
|
msgid "Invalid input."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:192
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Rotates <text> 13 characters to the right in the alphabet. Rot13 is\n"
|
||||||
|
" commonly used for text that simply needs to be hidden from inadvertent\n"
|
||||||
|
" reading by roaming eyes, since it's easily reversible.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:203
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns the lisping version of <text>\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:234
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns the l33tspeak version of <text>\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:254
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Replies with an especially k-rad translation of <text>.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:270
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Replies with a string where each word is scrambled; i.e., each internal\n"
|
||||||
|
" letter (that is, all letters but the first and last) are shuffled.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:335
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<Morse code text>\n"
|
||||||
|
"\n"
|
||||||
|
" Does the reverse of the morse command.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:352
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Gives the Morse code equivalent of a given string.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:364
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Reverses <text>.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:381
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text> with each character randomly colorized.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:391
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text> colorized like a rainbow.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:402
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text> stripped of all color codes.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:411
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text> as if an AOLuser had said it.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:438
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text> as if JeffK had said it himself.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:534
|
||||||
|
msgid "ay"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:534
|
||||||
|
msgid "bee"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:534
|
||||||
|
msgid "dee"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:534
|
||||||
|
msgid "see"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:535
|
||||||
|
msgid "aych"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:535
|
||||||
|
msgid "ee"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:535
|
||||||
|
msgid "eff"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:535
|
||||||
|
msgid "gee"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:536
|
||||||
|
msgid "ell"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:536
|
||||||
|
msgid "eye"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:536
|
||||||
|
msgid "jay"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:536
|
||||||
|
msgid "kay"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:537
|
||||||
|
msgid "cue"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:537
|
||||||
|
msgid "em"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:537
|
||||||
|
msgid "en"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:537
|
||||||
|
msgid "oh"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:537
|
||||||
|
msgid "pee"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:538
|
||||||
|
msgid "arr"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:538
|
||||||
|
msgid "ess"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:538
|
||||||
|
msgid "tee"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:538
|
||||||
|
msgid "you"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:539
|
||||||
|
msgid "double-you"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:539
|
||||||
|
msgid "ecks"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:539
|
||||||
|
msgid "vee"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:539
|
||||||
|
msgid "why"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:540
|
||||||
|
msgid "zee"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:545
|
||||||
|
msgid "exclamation point"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:546
|
||||||
|
msgid "quote"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:547
|
||||||
|
msgid "pound"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:548
|
||||||
|
msgid "dollar sign"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:549
|
||||||
|
msgid "percent"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:550
|
||||||
|
msgid "ampersand"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:551
|
||||||
|
msgid "single quote"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:552
|
||||||
|
msgid "left paren"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:553
|
||||||
|
msgid "right paren"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:554
|
||||||
|
msgid "asterisk"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:555
|
||||||
|
msgid "plus"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:556
|
||||||
|
msgid "comma"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:557
|
||||||
|
msgid "minus"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:558
|
||||||
|
msgid "period"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:559
|
||||||
|
msgid "slash"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:560
|
||||||
|
msgid "colon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:561
|
||||||
|
msgid "semicolon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:562
|
||||||
|
msgid "less than"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:563
|
||||||
|
msgid "equals"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:564
|
||||||
|
msgid "greater than"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:565
|
||||||
|
msgid "question mark"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:566
|
||||||
|
msgid "at"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:567
|
||||||
|
msgid "left bracket"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:568
|
||||||
|
msgid "backslash"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:569
|
||||||
|
msgid "right bracket"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:570
|
||||||
|
msgid "caret"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:571
|
||||||
|
msgid "underscore"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:572
|
||||||
|
msgid "backtick"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:573
|
||||||
|
msgid "left brace"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:574
|
||||||
|
msgid "pipe"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:575
|
||||||
|
msgid "right brace"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:576
|
||||||
|
msgid "tilde"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:579
|
||||||
|
msgid "one"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:579
|
||||||
|
msgid "three"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:579
|
||||||
|
msgid "two"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:579
|
||||||
|
msgid "zero"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:580
|
||||||
|
msgid "five"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:580
|
||||||
|
msgid "four"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:580
|
||||||
|
msgid "seven"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:580
|
||||||
|
msgid "six"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:581
|
||||||
|
msgid "eight"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:581
|
||||||
|
msgid "nine"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:585
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text>, phonetically spelled out.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:615
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text> as GNU/RMS would say it.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:624
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text> with each word longer than\n"
|
||||||
|
" supybot.plugins.Filter.shrink.minimum being shrunken (i.e., like\n"
|
||||||
|
" \"internationalization\" becomes \"i18n\").\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:643
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text> with the l's made into r's and r's made into l's.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:692
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text> rotated 180 degrees. Only really works for ASCII\n"
|
||||||
|
" printable characters.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
@ -39,11 +39,14 @@ from supybot.commands import *
|
|||||||
import supybot.ircmsgs as ircmsgs
|
import supybot.ircmsgs as ircmsgs
|
||||||
import supybot.ircutils as ircutils
|
import supybot.ircutils as ircutils
|
||||||
import supybot.callbacks as callbacks
|
import supybot.callbacks as callbacks
|
||||||
|
from supybot.i18n import PluginInternationalization, internationalizeDocstring
|
||||||
|
_ = PluginInternationalization('Filter')
|
||||||
|
|
||||||
class MyFilterProxy(object):
|
class MyFilterProxy(object):
|
||||||
def reply(self, s):
|
def reply(self, s):
|
||||||
self.s = s
|
self.s = s
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
class Filter(callbacks.Plugin):
|
class Filter(callbacks.Plugin):
|
||||||
"""This plugin offers several commands which transform text in some way.
|
"""This plugin offers several commands which transform text in some way.
|
||||||
It also provides the capability of using such commands to 'filter' the
|
It also provides the capability of using such commands to 'filter' the
|
||||||
@ -77,6 +80,7 @@ class Filter(callbacks.Plugin):
|
|||||||
'scramble', 'morse', 'reverse', 'colorize', 'squish',
|
'scramble', 'morse', 'reverse', 'colorize', 'squish',
|
||||||
'supa1337', 'colorstrip', 'aol', 'rainbow', 'spellit',
|
'supa1337', 'colorstrip', 'aol', 'rainbow', 'spellit',
|
||||||
'hebrew', 'undup', 'gnu', 'shrink', 'azn', 'uniud']
|
'hebrew', 'undup', 'gnu', 'shrink', 'azn', 'uniud']
|
||||||
|
@internationalizeDocstring
|
||||||
def outfilter(self, irc, msg, args, channel, command):
|
def outfilter(self, irc, msg, args, channel, command):
|
||||||
"""[<channel>] [<command>]
|
"""[<channel>] [<command>]
|
||||||
|
|
||||||
@ -91,7 +95,7 @@ class Filter(callbacks.Plugin):
|
|||||||
self.outFilters.setdefault(channel, []).append(method)
|
self.outFilters.setdefault(channel, []).append(method)
|
||||||
irc.replySuccess()
|
irc.replySuccess()
|
||||||
else:
|
else:
|
||||||
irc.error('That\'s not a valid filter command.')
|
irc.error(_('That\'s not a valid filter command.'))
|
||||||
else:
|
else:
|
||||||
self.outFilters[channel] = []
|
self.outFilters[channel] = []
|
||||||
irc.replySuccess()
|
irc.replySuccess()
|
||||||
@ -99,6 +103,7 @@ class Filter(callbacks.Plugin):
|
|||||||
[('checkChannelCapability', 'op'),
|
[('checkChannelCapability', 'op'),
|
||||||
additional('commandName')])
|
additional('commandName')])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def hebrew(self, irc, msg, args, text):
|
def hebrew(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -110,6 +115,7 @@ class Filter(callbacks.Plugin):
|
|||||||
irc.reply(text)
|
irc.reply(text)
|
||||||
hebrew = wrap(hebrew, ['text'])
|
hebrew = wrap(hebrew, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def squish(self, irc, msg, args, text):
|
def squish(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -119,6 +125,7 @@ class Filter(callbacks.Plugin):
|
|||||||
irc.reply(text)
|
irc.reply(text)
|
||||||
squish = wrap(squish, ['text'])
|
squish = wrap(squish, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def undup(self, irc, msg, args, text):
|
def undup(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -131,6 +138,7 @@ class Filter(callbacks.Plugin):
|
|||||||
irc.reply(''.join(L))
|
irc.reply(''.join(L))
|
||||||
undup = wrap(undup, ['text'])
|
undup = wrap(undup, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def binary(self, irc, msg, args, text):
|
def binary(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -156,6 +164,7 @@ class Filter(callbacks.Plugin):
|
|||||||
irc.reply(''.join(L))
|
irc.reply(''.join(L))
|
||||||
binary = wrap(binary, ['text'])
|
binary = wrap(binary, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def hexlify(self, irc, msg, args, text):
|
def hexlify(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -165,6 +174,7 @@ class Filter(callbacks.Plugin):
|
|||||||
irc.reply(text.encode('hex_codec'))
|
irc.reply(text.encode('hex_codec'))
|
||||||
hexlify = wrap(hexlify, ['text'])
|
hexlify = wrap(hexlify, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def unhexlify(self, irc, msg, args, text):
|
def unhexlify(self, irc, msg, args, text):
|
||||||
"""<hexstring>
|
"""<hexstring>
|
||||||
|
|
||||||
@ -174,9 +184,10 @@ class Filter(callbacks.Plugin):
|
|||||||
try:
|
try:
|
||||||
irc.reply(text.decode('hex_codec'))
|
irc.reply(text.decode('hex_codec'))
|
||||||
except TypeError:
|
except TypeError:
|
||||||
irc.error('Invalid input.')
|
irc.error(_('Invalid input.'))
|
||||||
unhexlify = wrap(unhexlify, ['text'])
|
unhexlify = wrap(unhexlify, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def rot13(self, irc, msg, args, text):
|
def rot13(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -187,6 +198,7 @@ class Filter(callbacks.Plugin):
|
|||||||
irc.reply(text.encode('rot13'))
|
irc.reply(text.encode('rot13'))
|
||||||
rot13 = wrap(rot13, ['text'])
|
rot13 = wrap(rot13, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def lithp(self, irc, msg, args, text):
|
def lithp(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -217,6 +229,7 @@ class Filter(callbacks.Plugin):
|
|||||||
(re.compile(r'[aA][tT]'), '@'),
|
(re.compile(r'[aA][tT]'), '@'),
|
||||||
(re.compile(r'[sS]\b'), 'z'),
|
(re.compile(r'[sS]\b'), 'z'),
|
||||||
(re.compile(r'x'), '><'),]
|
(re.compile(r'x'), '><'),]
|
||||||
|
@internationalizeDocstring
|
||||||
def leet(self, irc, msg, args, text):
|
def leet(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -236,6 +249,7 @@ class Filter(callbacks.Plugin):
|
|||||||
('D', '|)'), ('B', '|3'), ('I', ']['), ('Vv', '\\/'),
|
('D', '|)'), ('B', '|3'), ('I', ']['), ('Vv', '\\/'),
|
||||||
('wW', '\\/\\/'), ('d', 'c|'), ('b', '|>'),
|
('wW', '\\/\\/'), ('d', 'c|'), ('b', '|>'),
|
||||||
('c', '<'), ('h', '|n'),]
|
('c', '<'), ('h', '|n'),]
|
||||||
|
@internationalizeDocstring
|
||||||
def supa1337(self, irc, msg, args, text):
|
def supa1337(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -251,6 +265,7 @@ class Filter(callbacks.Plugin):
|
|||||||
|
|
||||||
_scrambleRe = re.compile(r'(?:\b|(?![a-zA-Z]))([a-zA-Z])([a-zA-Z]*)'
|
_scrambleRe = re.compile(r'(?:\b|(?![a-zA-Z]))([a-zA-Z])([a-zA-Z]*)'
|
||||||
r'([a-zA-Z])(?:\b|(?![a-zA-Z]))')
|
r'([a-zA-Z])(?:\b|(?![a-zA-Z]))')
|
||||||
|
@internationalizeDocstring
|
||||||
def scramble(self, irc, msg, args, text):
|
def scramble(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -315,6 +330,7 @@ class Filter(callbacks.Plugin):
|
|||||||
}
|
}
|
||||||
_revMorseCode = dict([(y, x) for (x, y) in _morseCode.items()])
|
_revMorseCode = dict([(y, x) for (x, y) in _morseCode.items()])
|
||||||
_unmorsere = re.compile('([.-]+)')
|
_unmorsere = re.compile('([.-]+)')
|
||||||
|
@internationalizeDocstring
|
||||||
def unmorse(self, irc, msg, args, text):
|
def unmorse(self, irc, msg, args, text):
|
||||||
"""<Morse code text>
|
"""<Morse code text>
|
||||||
|
|
||||||
@ -331,6 +347,7 @@ class Filter(callbacks.Plugin):
|
|||||||
irc.reply(text)
|
irc.reply(text)
|
||||||
unmorse = wrap(unmorse, ['text'])
|
unmorse = wrap(unmorse, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def morse(self, irc, msg, args, text):
|
def morse(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -342,6 +359,7 @@ class Filter(callbacks.Plugin):
|
|||||||
irc.reply(' '.join(L))
|
irc.reply(' '.join(L))
|
||||||
morse = wrap(morse, ['text'])
|
morse = wrap(morse, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def reverse(self, irc, msg, args, text):
|
def reverse(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -350,6 +368,7 @@ class Filter(callbacks.Plugin):
|
|||||||
irc.reply(text[::-1])
|
irc.reply(text[::-1])
|
||||||
reverse = wrap(reverse, ['text'])
|
reverse = wrap(reverse, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def _color(self, c, fg=None):
|
def _color(self, c, fg=None):
|
||||||
if c == ' ':
|
if c == ' ':
|
||||||
return c
|
return c
|
||||||
@ -357,6 +376,7 @@ class Filter(callbacks.Plugin):
|
|||||||
fg = str(random.randint(2, 15)).zfill(2)
|
fg = str(random.randint(2, 15)).zfill(2)
|
||||||
return '\x03%s%s' % (fg, c)
|
return '\x03%s%s' % (fg, c)
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def colorize(self, irc, msg, args, text):
|
def colorize(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -366,6 +386,7 @@ class Filter(callbacks.Plugin):
|
|||||||
irc.reply('%s%s' % (''.join(L), '\x03'))
|
irc.reply('%s%s' % (''.join(L), '\x03'))
|
||||||
colorize = wrap(colorize, ['text'])
|
colorize = wrap(colorize, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def rainbow(self, irc, msg, args, text):
|
def rainbow(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -376,6 +397,7 @@ class Filter(callbacks.Plugin):
|
|||||||
irc.reply(''.join(L) + '\x03')
|
irc.reply(''.join(L) + '\x03')
|
||||||
rainbow = wrap(rainbow, ['text'])
|
rainbow = wrap(rainbow, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def stripcolor(self, irc, msg, args, text):
|
def stripcolor(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -384,6 +406,7 @@ class Filter(callbacks.Plugin):
|
|||||||
irc.reply(ircutils.stripColor(text))
|
irc.reply(ircutils.stripColor(text))
|
||||||
stripcolor = wrap(stripcolor, ['text'])
|
stripcolor = wrap(stripcolor, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def aol(self, irc, msg, args, text):
|
def aol(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -410,6 +433,7 @@ class Filter(callbacks.Plugin):
|
|||||||
irc.reply(text)
|
irc.reply(text)
|
||||||
aol = wrap(aol, ['text'])
|
aol = wrap(aol, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def jeffk(self, irc, msg, args, text):
|
def jeffk(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -507,52 +531,56 @@ class Filter(callbacks.Plugin):
|
|||||||
# Keeping these separate so people can just replace the alphabets for
|
# Keeping these separate so people can just replace the alphabets for
|
||||||
# whatever their language of choice
|
# whatever their language of choice
|
||||||
_spellLetters = {
|
_spellLetters = {
|
||||||
'a': 'ay', 'b': 'bee', 'c': 'see', 'd': 'dee', 'e': 'ee', 'f': 'eff',
|
'a': _('ay'), 'b': _('bee'), 'c': _('see'), 'd': _('dee'),
|
||||||
'g': 'gee', 'h': 'aych', 'i': 'eye', 'j': 'jay', 'k': 'kay', 'l':
|
'e': _('ee'), 'f': _('eff'), 'g': _('gee'), 'h': _('aych'),
|
||||||
'ell', 'm': 'em', 'n': 'en', 'o': 'oh', 'p': 'pee', 'q': 'cue', 'r':
|
'i': _('eye'), 'j': _('jay'), 'k': _('kay'), 'l': _('ell'),
|
||||||
'arr', 's': 'ess', 't': 'tee', 'u': 'you', 'v': 'vee', 'w':
|
'm': _('em'), 'n': _('en'), 'o': _('oh'), 'p': _('pee'), 'q': _('cue'),
|
||||||
'double-you', 'x': 'ecks', 'y': 'why', 'z': 'zee'
|
'r': _('arr'), 's': _('ess'), 't': _('tee'), 'u': _('you'),
|
||||||
|
'v': _('vee'), 'w': _('double-you'), 'x': _('ecks'), 'y': _('why'),
|
||||||
|
'z': _('zee')
|
||||||
}
|
}
|
||||||
for (k, v) in _spellLetters.items():
|
for (k, v) in _spellLetters.items():
|
||||||
_spellLetters[k.upper()] = v
|
_spellLetters[k.upper()] = v
|
||||||
_spellPunctuation = {
|
_spellPunctuation = {
|
||||||
'!': 'exclamation point',
|
'!': _('exclamation point'),
|
||||||
'"': 'quote',
|
'"': _('quote'),
|
||||||
'#': 'pound',
|
'#': _('pound'),
|
||||||
'$': 'dollar sign',
|
'$': _('dollar sign'),
|
||||||
'%': 'percent',
|
'%': _('percent'),
|
||||||
'&': 'ampersand',
|
'&': _('ampersand'),
|
||||||
'\'': 'single quote',
|
'\'': _('single quote'),
|
||||||
'(': 'left paren',
|
'(': _('left paren'),
|
||||||
')': 'right paren',
|
')': _('right paren'),
|
||||||
'*': 'asterisk',
|
'*': _('asterisk'),
|
||||||
'+': 'plus',
|
'+': _('plus'),
|
||||||
',': 'comma',
|
',': _('comma'),
|
||||||
'-': 'minus',
|
'-': _('minus'),
|
||||||
'.': 'period',
|
'.': _('period'),
|
||||||
'/': 'slash',
|
'/': _('slash'),
|
||||||
':': 'colon',
|
':': _('colon'),
|
||||||
';': 'semicolon',
|
';': _('semicolon'),
|
||||||
'<': 'less than',
|
'<': _('less than'),
|
||||||
'=': 'equals',
|
'=': _('equals'),
|
||||||
'>': 'greater than',
|
'>': _('greater than'),
|
||||||
'?': 'question mark',
|
'?': _('question mark'),
|
||||||
'@': 'at',
|
'@': _('at'),
|
||||||
'[': 'left bracket',
|
'[': _('left bracket'),
|
||||||
'\\': 'backslash',
|
'\\': _('backslash'),
|
||||||
']': 'right bracket',
|
']': _('right bracket'),
|
||||||
'^': 'caret',
|
'^': _('caret'),
|
||||||
'_': 'underscore',
|
'_': _('underscore'),
|
||||||
'`': 'backtick',
|
'`': _('backtick'),
|
||||||
'{': 'left brace',
|
'{': _('left brace'),
|
||||||
'|': 'pipe',
|
'|': _('pipe'),
|
||||||
'}': 'right brace',
|
'}': _('right brace'),
|
||||||
'~': 'tilde'
|
'~': _('tilde')
|
||||||
}
|
}
|
||||||
_spellNumbers = {
|
_spellNumbers = {
|
||||||
'0': 'zero', '1': 'one', '2': 'two', '3': 'three', '4': 'four',
|
'0': _('zero'), '1': _('one'), '2': _('two'), '3': _('three'),
|
||||||
'5': 'five', '6': 'six', '7': 'seven', '8': 'eight', '9': 'nine'
|
'4': _('four'), '5': _('five'), '6': _('six'), '7': _('seven'),
|
||||||
|
'8': _('eight'), '9': _('nine')
|
||||||
}
|
}
|
||||||
|
@internationalizeDocstring
|
||||||
def spellit(self, irc, msg, args, text):
|
def spellit(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -582,6 +610,7 @@ class Filter(callbacks.Plugin):
|
|||||||
irc.reply(out.getvalue())
|
irc.reply(out.getvalue())
|
||||||
spellit = wrap(spellit, ['text'])
|
spellit = wrap(spellit, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def gnu(self, irc, msg, args, text):
|
def gnu(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -590,6 +619,7 @@ class Filter(callbacks.Plugin):
|
|||||||
irc.reply(' '.join(['GNU/' + s for s in text.split()]))
|
irc.reply(' '.join(['GNU/' + s for s in text.split()]))
|
||||||
gnu = wrap(gnu, ['text'])
|
gnu = wrap(gnu, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def shrink(self, irc, msg, args, text):
|
def shrink(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -608,6 +638,7 @@ class Filter(callbacks.Plugin):
|
|||||||
shrink = wrap(shrink, ['text'])
|
shrink = wrap(shrink, ['text'])
|
||||||
|
|
||||||
_azn_trans = string.maketrans('rlRL', 'lrLR')
|
_azn_trans = string.maketrans('rlRL', 'lrLR')
|
||||||
|
@internationalizeDocstring
|
||||||
def azn(self, irc, msg, args, text):
|
def azn(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -656,6 +687,7 @@ class Filter(callbacks.Plugin):
|
|||||||
'_': u'\u203e', 'o': u'o',
|
'_': u'\u203e', 'o': u'o',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def uniud(self, irc, msg, args, text):
|
def uniud(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
|
@ -29,6 +29,8 @@
|
|||||||
|
|
||||||
import supybot.conf as conf
|
import supybot.conf as conf
|
||||||
import supybot.registry as registry
|
import supybot.registry as registry
|
||||||
|
from supybot.i18n import PluginInternationalization, internationalizeDocstring
|
||||||
|
_ = PluginInternationalization('Format')
|
||||||
|
|
||||||
def configure(advanced):
|
def configure(advanced):
|
||||||
# This will be called by supybot to configure this module. advanced is
|
# This will be called by supybot to configure this module. advanced is
|
||||||
|
170
plugins/Format/messages.pot
Normal file
170
plugins/Format/messages.pot
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR ORGANIZATION
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"POT-Creation-Date: 2010-10-17 12:46+CEST\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=CHARSET\n"
|
||||||
|
"Content-Transfer-Encoding: ENCODING\n"
|
||||||
|
"Generated-By: pygettext.py 1.5\n"
|
||||||
|
|
||||||
|
|
||||||
|
#: plugin.py:43
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text> bolded.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:52
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text> in reverse-video.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:61
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text> underlined.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:70
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<foreground> [<background>] <text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text> with foreground color <foreground> and background color\n"
|
||||||
|
" <background> (if given)\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:80
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<separator> <string 1> [<string> ...]\n"
|
||||||
|
"\n"
|
||||||
|
" Joins all the arguments together with <separator>.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:89
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<chars to translate> <chars to replace those with> <text>\n"
|
||||||
|
"\n"
|
||||||
|
" Replaces <chars to translate> with <chars to replace those with> in\n"
|
||||||
|
" <text>. The first and second arguments must necessarily be the same\n"
|
||||||
|
" length.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:96
|
||||||
|
msgid "<chars to translate> must be the same length as <chars to replace those with>."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:103
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text> uppercased.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:112
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text> lowercased.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:121
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text> capitalized.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:130
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text> titlecased.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:139
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns the text surrounded by double quotes.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:148
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<string 1> <string 2>\n"
|
||||||
|
"\n"
|
||||||
|
" Concatenates two strings. Do keep in mind that this is *not* the same\n"
|
||||||
|
" thing as join \"\", since if <string 2> contains spaces, they won't be\n"
|
||||||
|
" removed by concat.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:159
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<size> <text>\n"
|
||||||
|
"\n"
|
||||||
|
" Cuts <text> down to <size> by chopping off the rightmost characters in\n"
|
||||||
|
" excess of <size>. If <size> is a negative number, it chops that many\n"
|
||||||
|
" characters off the end of <text>.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:170
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<number> <text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns the <number>th space-separated field of <text>. I.e., if text\n"
|
||||||
|
" is \"foo bar baz\" and <number> is 2, \"bar\" is returned.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:183
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<format string> [<arg> ...]\n"
|
||||||
|
"\n"
|
||||||
|
" Expands a Python-style format string using the remaining args. Just be\n"
|
||||||
|
" sure always to use %s, not %d or %f or whatever, because all the args\n"
|
||||||
|
" are strings.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:197
|
||||||
|
msgid "Not enough arguments for the format string."
|
||||||
|
msgstr ""
|
||||||
|
|
@ -34,8 +34,11 @@ import supybot.utils as utils
|
|||||||
from supybot.commands import *
|
from supybot.commands import *
|
||||||
import supybot.ircutils as ircutils
|
import supybot.ircutils as ircutils
|
||||||
import supybot.callbacks as callbacks
|
import supybot.callbacks as callbacks
|
||||||
|
from supybot.i18n import PluginInternationalization, internationalizeDocstring
|
||||||
|
_ = PluginInternationalization('Format')
|
||||||
|
|
||||||
class Format(callbacks.Plugin):
|
class Format(callbacks.Plugin):
|
||||||
|
@internationalizeDocstring
|
||||||
def bold(self, irc, msg, args, text):
|
def bold(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -44,6 +47,7 @@ class Format(callbacks.Plugin):
|
|||||||
irc.reply(ircutils.bold(text))
|
irc.reply(ircutils.bold(text))
|
||||||
bold = wrap(bold, ['text'])
|
bold = wrap(bold, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def reverse(self, irc, msg, args, text):
|
def reverse(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -52,6 +56,7 @@ class Format(callbacks.Plugin):
|
|||||||
irc.reply(ircutils.reverse(text))
|
irc.reply(ircutils.reverse(text))
|
||||||
reverse = wrap(reverse, ['text'])
|
reverse = wrap(reverse, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def underline(self, irc, msg, args, text):
|
def underline(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -60,6 +65,7 @@ class Format(callbacks.Plugin):
|
|||||||
irc.reply(ircutils.underline(text))
|
irc.reply(ircutils.underline(text))
|
||||||
underline = wrap(underline, ['text'])
|
underline = wrap(underline, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def color(self, irc, msg, args, fg, bg, text):
|
def color(self, irc, msg, args, fg, bg, text):
|
||||||
"""<foreground> [<background>] <text>
|
"""<foreground> [<background>] <text>
|
||||||
|
|
||||||
@ -69,6 +75,7 @@ class Format(callbacks.Plugin):
|
|||||||
irc.reply(ircutils.mircColor(text, fg=fg, bg=bg))
|
irc.reply(ircutils.mircColor(text, fg=fg, bg=bg))
|
||||||
color = wrap(color, ['color', optional('color'), 'text'])
|
color = wrap(color, ['color', optional('color'), 'text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def join(self, irc, msg, args, sep):
|
def join(self, irc, msg, args, sep):
|
||||||
"""<separator> <string 1> [<string> ...]
|
"""<separator> <string 1> [<string> ...]
|
||||||
|
|
||||||
@ -77,6 +84,7 @@ class Format(callbacks.Plugin):
|
|||||||
irc.reply(sep.join(args))
|
irc.reply(sep.join(args))
|
||||||
join = wrap(join, ['anything'], allowExtra=True)
|
join = wrap(join, ['anything'], allowExtra=True)
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def translate(self, irc, msg, args, bad, good, text):
|
def translate(self, irc, msg, args, bad, good, text):
|
||||||
"""<chars to translate> <chars to replace those with> <text>
|
"""<chars to translate> <chars to replace those with> <text>
|
||||||
|
|
||||||
@ -85,11 +93,12 @@ class Format(callbacks.Plugin):
|
|||||||
length.
|
length.
|
||||||
"""
|
"""
|
||||||
if len(bad) != len(good):
|
if len(bad) != len(good):
|
||||||
irc.error('<chars to translate> must be the same length as '
|
irc.error(_('<chars to translate> must be the same length as '
|
||||||
'<chars to replace those with>.', Raise=True)
|
'<chars to replace those with>.'), Raise=True)
|
||||||
irc.reply(text.translate(string.maketrans(bad, good)))
|
irc.reply(text.translate(string.maketrans(bad, good)))
|
||||||
translate = wrap(translate, ['something', 'something', 'text'])
|
translate = wrap(translate, ['something', 'something', 'text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def upper(self, irc, msg, args, text):
|
def upper(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -98,6 +107,7 @@ class Format(callbacks.Plugin):
|
|||||||
irc.reply(text.upper())
|
irc.reply(text.upper())
|
||||||
upper = wrap(upper, ['text'])
|
upper = wrap(upper, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def lower(self, irc, msg, args, text):
|
def lower(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -106,6 +116,7 @@ class Format(callbacks.Plugin):
|
|||||||
irc.reply(text.lower())
|
irc.reply(text.lower())
|
||||||
lower = wrap(lower, ['text'])
|
lower = wrap(lower, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def capitalize(self, irc, msg, args, text):
|
def capitalize(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -114,6 +125,7 @@ class Format(callbacks.Plugin):
|
|||||||
irc.reply(text.capitalize())
|
irc.reply(text.capitalize())
|
||||||
capitalize = wrap(capitalize, ['text'])
|
capitalize = wrap(capitalize, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def title(self, irc, msg, args, text):
|
def title(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -122,6 +134,7 @@ class Format(callbacks.Plugin):
|
|||||||
irc.reply(text.title())
|
irc.reply(text.title())
|
||||||
title = wrap(title, ['text'])
|
title = wrap(title, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def repr(self, irc, msg, args, text):
|
def repr(self, irc, msg, args, text):
|
||||||
"""<text>
|
"""<text>
|
||||||
|
|
||||||
@ -130,6 +143,7 @@ class Format(callbacks.Plugin):
|
|||||||
irc.reply(utils.str.dqrepr(text))
|
irc.reply(utils.str.dqrepr(text))
|
||||||
repr = wrap(repr, ['text'])
|
repr = wrap(repr, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def concat(self, irc, msg, args, first, second):
|
def concat(self, irc, msg, args, first, second):
|
||||||
"""<string 1> <string 2>
|
"""<string 1> <string 2>
|
||||||
|
|
||||||
@ -140,6 +154,7 @@ class Format(callbacks.Plugin):
|
|||||||
irc.reply(first+second)
|
irc.reply(first+second)
|
||||||
concat = wrap(concat, ['something', 'text'])
|
concat = wrap(concat, ['something', 'text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def cut(self, irc, msg, args, size, text):
|
def cut(self, irc, msg, args, size, text):
|
||||||
"""<size> <text>
|
"""<size> <text>
|
||||||
|
|
||||||
@ -150,6 +165,7 @@ class Format(callbacks.Plugin):
|
|||||||
irc.reply(text[:size])
|
irc.reply(text[:size])
|
||||||
cut = wrap(cut, ['int', 'text'])
|
cut = wrap(cut, ['int', 'text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def field(self, irc, msg, args, index, text):
|
def field(self, irc, msg, args, index, text):
|
||||||
"""<number> <text>
|
"""<number> <text>
|
||||||
|
|
||||||
@ -162,6 +178,7 @@ class Format(callbacks.Plugin):
|
|||||||
irc.errorInvalid('field')
|
irc.errorInvalid('field')
|
||||||
field = wrap(field, ['index', 'text'])
|
field = wrap(field, ['index', 'text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def format(self, irc, msg, args):
|
def format(self, irc, msg, args):
|
||||||
"""<format string> [<arg> ...]
|
"""<format string> [<arg> ...]
|
||||||
|
|
||||||
@ -177,7 +194,8 @@ class Format(callbacks.Plugin):
|
|||||||
irc.reply(s)
|
irc.reply(s)
|
||||||
except TypeError, e:
|
except TypeError, e:
|
||||||
self.log.debug(utils.exnToString(e))
|
self.log.debug(utils.exnToString(e))
|
||||||
irc.error('Not enough arguments for the format string.',Raise=True)
|
irc.error(_('Not enough arguments for the format string.'),
|
||||||
|
Raise=True)
|
||||||
|
|
||||||
|
|
||||||
Class = Format
|
Class = Format
|
||||||
|
@ -29,6 +29,8 @@
|
|||||||
|
|
||||||
import supybot.conf as conf
|
import supybot.conf as conf
|
||||||
import supybot.registry as registry
|
import supybot.registry as registry
|
||||||
|
from supybot.i18n import PluginInternationalization, internationalizeDocstring
|
||||||
|
_ = PluginInternationalization('Games')
|
||||||
|
|
||||||
def configure(advanced):
|
def configure(advanced):
|
||||||
# This will be called by supybot to configure this module. advanced is
|
# This will be called by supybot to configure this module. advanced is
|
||||||
|
128
plugins/Games/messages.pot
Normal file
128
plugins/Games/messages.pot
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR ORGANIZATION
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"POT-Creation-Date: 2010-10-17 13:16+CEST\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=CHARSET\n"
|
||||||
|
"Content-Transfer-Encoding: ENCODING\n"
|
||||||
|
"Generated-By: pygettext.py 1.5\n"
|
||||||
|
|
||||||
|
|
||||||
|
#: plugin.py:46
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"takes no arguments\n"
|
||||||
|
"\n"
|
||||||
|
" Flips a coin and returns the result.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:51
|
||||||
|
msgid "heads"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:53
|
||||||
|
msgid "tails"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:58
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<dice>d<sides>\n"
|
||||||
|
"\n"
|
||||||
|
" Rolls a die with <sides> number of sides <dice> times.\n"
|
||||||
|
" For example, 2d6 will roll 2 six-sided dice; 10d10 will roll 10\n"
|
||||||
|
" ten-sided dice.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:66
|
||||||
|
msgid "You can't roll more than 1000 dice."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:68
|
||||||
|
msgid "Dice can't have more than 100 sides."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:70
|
||||||
|
msgid "Dice can't have fewer than 3 sides."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:78
|
||||||
|
msgid "Dice must be of the form <dice>d<sides>"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:82
|
||||||
|
msgid "It is possible.|Yes!|Of course.|Naturally.|Obviously.|It shall be.|The outlook is good.|It is so.|One would be wise to think so.|The answer is certainly yes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:86
|
||||||
|
msgid "In your dreams.|I doubt it very much.|No chance.|The outlook is poor.|Unlikely.|About as likely as pigs flying.|You're kidding, right?|NO!|NO.|No.|The answer is a resounding no."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:90
|
||||||
|
msgid "Maybe...|No clue.|_I_ don't know.|The outlook is hazy, please ask again later.|What are you asking me for?|Come again?|You know the answer better than I.|The answer is def-- oooh! shiny thing!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:107
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"[<question>]\n"
|
||||||
|
"\n"
|
||||||
|
" Ask a question and the answer shall be provided.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:121
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"[spin]\n"
|
||||||
|
"\n"
|
||||||
|
" Fires the revolver. If the bullet was in the chamber, you're dead.\n"
|
||||||
|
" Tell me to spin the chambers and I will.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:128
|
||||||
|
msgid "*SPIN* Are you feeling lucky?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:137
|
||||||
|
msgid "*BANG* Hey, who put a blank in here?!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:139
|
||||||
|
msgid "reloads and spins the chambers."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:141
|
||||||
|
msgid "*click*"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:148
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"[<channel>]\n"
|
||||||
|
"\n"
|
||||||
|
" Returns the number of consecutive lines you've sent in <channel>\n"
|
||||||
|
" without being interrupted by someone else (i.e. how long your current\n"
|
||||||
|
" 'monologue' is). <channel> is only necessary if the message isn't sent\n"
|
||||||
|
" in the channel itself.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:167
|
||||||
|
msgid "Your current monologue is at least %n long."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:168
|
||||||
|
msgid "line"
|
||||||
|
msgstr ""
|
||||||
|
|
@ -36,20 +36,24 @@ from supybot.commands import *
|
|||||||
import supybot.ircmsgs as ircmsgs
|
import supybot.ircmsgs as ircmsgs
|
||||||
import supybot.ircutils as ircutils
|
import supybot.ircutils as ircutils
|
||||||
import supybot.callbacks as callbacks
|
import supybot.callbacks as callbacks
|
||||||
|
from supybot.i18n import PluginInternationalization, internationalizeDocstring
|
||||||
|
_ = PluginInternationalization('Games')
|
||||||
|
|
||||||
|
|
||||||
class Games(callbacks.Plugin):
|
class Games(callbacks.Plugin):
|
||||||
|
@internationalizeDocstring
|
||||||
def coin(self, irc, msg, args):
|
def coin(self, irc, msg, args):
|
||||||
"""takes no arguments
|
"""takes no arguments
|
||||||
|
|
||||||
Flips a coin and returns the result.
|
Flips a coin and returns the result.
|
||||||
"""
|
"""
|
||||||
if random.randrange(0, 2):
|
if random.randrange(0, 2):
|
||||||
irc.reply('heads')
|
irc.reply(_('heads'))
|
||||||
else:
|
else:
|
||||||
irc.reply('tails')
|
irc.reply(_('tails'))
|
||||||
coin = wrap(coin)
|
coin = wrap(coin)
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def dice(self, irc, msg, args, m):
|
def dice(self, irc, msg, args, m):
|
||||||
"""<dice>d<sides>
|
"""<dice>d<sides>
|
||||||
|
|
||||||
@ -59,11 +63,11 @@ class Games(callbacks.Plugin):
|
|||||||
"""
|
"""
|
||||||
(dice, sides) = utils.iter.imap(int, m.groups())
|
(dice, sides) = utils.iter.imap(int, m.groups())
|
||||||
if dice > 1000:
|
if dice > 1000:
|
||||||
irc.error('You can\'t roll more than 1000 dice.')
|
irc.error(_('You can\'t roll more than 1000 dice.'))
|
||||||
elif sides > 100:
|
elif sides > 100:
|
||||||
irc.error('Dice can\'t have more than 100 sides.')
|
irc.error(_('Dice can\'t have more than 100 sides.'))
|
||||||
elif sides < 3:
|
elif sides < 3:
|
||||||
irc.error('Dice can\'t have fewer than 3 sides.')
|
irc.error(_('Dice can\'t have fewer than 3 sides.'))
|
||||||
else:
|
else:
|
||||||
L = [0] * dice
|
L = [0] * dice
|
||||||
for i in xrange(dice):
|
for i in xrange(dice):
|
||||||
@ -71,36 +75,34 @@ class Games(callbacks.Plugin):
|
|||||||
irc.reply(format('%L', [str(x) for x in L]))
|
irc.reply(format('%L', [str(x) for x in L]))
|
||||||
_dicere = re.compile(r'^(\d+)d(\d+)$')
|
_dicere = re.compile(r'^(\d+)d(\d+)$')
|
||||||
dice = wrap(dice, [('matches', _dicere,
|
dice = wrap(dice, [('matches', _dicere,
|
||||||
'Dice must be of the form <dice>d<sides>')])
|
_('Dice must be of the form <dice>d<sides>'))])
|
||||||
|
|
||||||
# The list of words and algorithm are pulled straight the mozbot
|
# The list of words and algorithm are pulled straight the mozbot
|
||||||
# MagicEightBall.bm module: http://tinyurl.com/7ytg7
|
# MagicEightBall.bm module: http://tinyurl.com/7ytg7
|
||||||
_responses = {'positive': ['It is possible.', 'Yes!', 'Of course.',
|
_positive = _('It is possible.|Yes!|Of course.|Naturally.|Obviously.|'
|
||||||
'Naturally.', 'Obviously.', 'It shall be.',
|
'It shall be.|The outlook is good.|It is so.|'
|
||||||
'The outlook is good.', 'It is so.',
|
'One would be wise to think so.|'
|
||||||
'One would be wise to think so.',
|
'The answer is certainly yes.')
|
||||||
'The answer is certainly yes.'],
|
_negative = _('In your dreams.|I doubt it very much.|No chance.|'
|
||||||
'negative': ['In your dreams.', 'I doubt it very much.',
|
'The outlook is poor.|Unlikely.|'
|
||||||
'No chance.', 'The outlook is poor.',
|
'About as likely as pigs flying.|You\'re kidding, right?|'
|
||||||
'Unlikely.', 'About as likely as pigs flying.',
|
'NO!|NO.|No.|The answer is a resounding no.')
|
||||||
'You\'re kidding, right?', 'NO!', 'NO.', 'No.',
|
_unknown = _('Maybe...|No clue.|_I_ don\'t know.|'
|
||||||
'The answer is a resounding no.', ],
|
'The outlook is hazy, please ask again later.|'
|
||||||
'unknown' : ['Maybe...', 'No clue.', '_I_ don\'t know.',
|
'What are you asking me for?|Come again?|'
|
||||||
'The outlook is hazy, please ask again later.',
|
'You know the answer better than I.|'
|
||||||
'What are you asking me for?', 'Come again?',
|
'The answer is def-- oooh! shiny thing!')
|
||||||
'You know the answer better than I.',
|
|
||||||
'The answer is def-- oooh! shiny thing!'],
|
|
||||||
}
|
|
||||||
|
|
||||||
def _checkTheBall(self, questionLength):
|
def _checkTheBall(self, questionLength):
|
||||||
if questionLength % 3 == 0:
|
if questionLength % 3 == 0:
|
||||||
category = 'positive'
|
catalog = self._positive
|
||||||
elif questionLength % 3 == 1:
|
elif questionLength % 3 == 1:
|
||||||
category = 'negative'
|
catalog = self._negative
|
||||||
else:
|
else:
|
||||||
category = 'unknown'
|
catalog = self._unknown
|
||||||
return utils.iter.choice(self._responses[category])
|
return utils.iter.choice(catalog.split('|'))
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def eightball(self, irc, msg, args, text):
|
def eightball(self, irc, msg, args, text):
|
||||||
"""[<question>]
|
"""[<question>]
|
||||||
|
|
||||||
@ -114,6 +116,7 @@ class Games(callbacks.Plugin):
|
|||||||
|
|
||||||
_rouletteChamber = random.randrange(0, 6)
|
_rouletteChamber = random.randrange(0, 6)
|
||||||
_rouletteBullet = random.randrange(0, 6)
|
_rouletteBullet = random.randrange(0, 6)
|
||||||
|
@internationalizeDocstring
|
||||||
def roulette(self, irc, msg, args, spin):
|
def roulette(self, irc, msg, args, spin):
|
||||||
"""[spin]
|
"""[spin]
|
||||||
|
|
||||||
@ -122,7 +125,7 @@ class Games(callbacks.Plugin):
|
|||||||
"""
|
"""
|
||||||
if spin:
|
if spin:
|
||||||
self._rouletteBullet = random.randrange(0, 6)
|
self._rouletteBullet = random.randrange(0, 6)
|
||||||
irc.reply('*SPIN* Are you feeling lucky?', prefixNick=False)
|
irc.reply(_('*SPIN* Are you feeling lucky?'), prefixNick=False)
|
||||||
return
|
return
|
||||||
channel = msg.args[0]
|
channel = msg.args[0]
|
||||||
if self._rouletteChamber == self._rouletteBullet:
|
if self._rouletteChamber == self._rouletteBullet:
|
||||||
@ -131,15 +134,16 @@ class Games(callbacks.Plugin):
|
|||||||
if irc.nick in irc.state.channels[channel].ops:
|
if irc.nick in irc.state.channels[channel].ops:
|
||||||
irc.queueMsg(ircmsgs.kick(channel, msg.nick, 'BANG!'))
|
irc.queueMsg(ircmsgs.kick(channel, msg.nick, 'BANG!'))
|
||||||
else:
|
else:
|
||||||
irc.reply('*BANG* Hey, who put a blank in here?!',
|
irc.reply(_('*BANG* Hey, who put a blank in here?!'),
|
||||||
prefixNick=False)
|
prefixNick=False)
|
||||||
irc.reply('reloads and spins the chambers.', action=True)
|
irc.reply(_('reloads and spins the chambers.'), action=True)
|
||||||
else:
|
else:
|
||||||
irc.reply('*click*')
|
irc.reply(_('*click*'))
|
||||||
self._rouletteChamber += 1
|
self._rouletteChamber += 1
|
||||||
self._rouletteChamber %= 6
|
self._rouletteChamber %= 6
|
||||||
roulette = wrap(roulette, ['public', additional(('literal', 'spin'))])
|
roulette = wrap(roulette, ['public', additional(('literal', 'spin'))])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def monologue(self, irc, msg, args, channel):
|
def monologue(self, irc, msg, args, channel):
|
||||||
"""[<channel>]
|
"""[<channel>]
|
||||||
|
|
||||||
@ -160,8 +164,8 @@ class Games(callbacks.Plugin):
|
|||||||
i += 1
|
i += 1
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
irc.reply(format('Your current monologue is at least %n long.',
|
irc.reply(format(_('Your current monologue is at least %n long.'),
|
||||||
(i, 'line')))
|
(i, _('line'))))
|
||||||
monologue = wrap(monologue, ['channel'])
|
monologue = wrap(monologue, ['channel'])
|
||||||
|
|
||||||
Class = Games
|
Class = Games
|
||||||
|
@ -30,15 +30,17 @@
|
|||||||
|
|
||||||
import supybot.conf as conf
|
import supybot.conf as conf
|
||||||
import supybot.registry as registry
|
import supybot.registry as registry
|
||||||
|
from supybot.i18n import PluginInternationalization, internationalizeDocstring
|
||||||
|
_ = PluginInternationalization('Google')
|
||||||
|
|
||||||
def configure(advanced):
|
def configure(advanced):
|
||||||
from supybot.questions import output, yn
|
from supybot.questions import output, yn
|
||||||
conf.registerPlugin('Google', True)
|
conf.registerPlugin('Google', True)
|
||||||
output("""The Google plugin has the functionality to watch for URLs
|
output(_("""The Google plugin has the functionality to watch for URLs
|
||||||
that match a specific pattern. (We call this a snarfer)
|
that match a specific pattern. (We call this a snarfer)
|
||||||
When supybot sees such a URL, it will parse the web page
|
When supybot sees such a URL, it will parse the web page
|
||||||
for information and reply with the results.""")
|
for information and reply with the results."""))
|
||||||
if yn('Do you want the Google search snarfer enabled by default?'):
|
if yn(_('Do you want the Google search snarfer enabled by default?')):
|
||||||
conf.supybot.plugins.Google.searchSnarfer.setValue(True)
|
conf.supybot.plugins.Google.searchSnarfer.setValue(True)
|
||||||
|
|
||||||
class Language(registry.OnlySomeStrings):
|
class Language(registry.OnlySomeStrings):
|
||||||
@ -94,29 +96,29 @@ class SafeSearch(registry.OnlySomeStrings):
|
|||||||
|
|
||||||
Google = conf.registerPlugin('Google')
|
Google = conf.registerPlugin('Google')
|
||||||
conf.registerGlobalValue(Google, 'referer',
|
conf.registerGlobalValue(Google, 'referer',
|
||||||
registry.String('', """Determines the URL that will be sent to Google for
|
registry.String('', _("""Determines the URL that will be sent to Google for
|
||||||
the Referer field of the search requests. If this value is empty, a
|
the Referer field of the search requests. If this value is empty, a
|
||||||
Referer will be generated in the following format:
|
Referer will be generated in the following format:
|
||||||
http://$server/$botName"""))
|
http://$server/$botName""")))
|
||||||
conf.registerChannelValue(Google, 'searchSnarfer',
|
conf.registerChannelValue(Google, 'searchSnarfer',
|
||||||
registry.Boolean(False, """Determines whether the search snarfer is
|
registry.Boolean(False, _("""Determines whether the search snarfer is
|
||||||
enabled. If so, messages (even unaddressed ones) beginning with the word
|
enabled. If so, messages (even unaddressed ones) beginning with the word
|
||||||
'google' will result in the first URL Google returns being sent to the
|
'google' will result in the first URL Google returns being sent to the
|
||||||
channel."""))
|
channel.""")))
|
||||||
conf.registerChannelValue(Google, 'colorfulFilter',
|
conf.registerChannelValue(Google, 'colorfulFilter',
|
||||||
registry.Boolean(False, """Determines whether the word 'google' in the
|
registry.Boolean(False, _("""Determines whether the word 'google' in the
|
||||||
bot's output will be made colorful (like Google's logo)."""))
|
bot's output will be made colorful (like Google's logo).""")))
|
||||||
conf.registerChannelValue(Google, 'bold',
|
conf.registerChannelValue(Google, 'bold',
|
||||||
registry.Boolean(True, """Determines whether results are bolded."""))
|
registry.Boolean(True, _("""Determines whether results are bolded.""")))
|
||||||
conf.registerChannelValue(Google, 'maximumResults',
|
conf.registerChannelValue(Google, 'maximumResults',
|
||||||
NumSearchResults(8, """Determines the maximum number of results returned
|
NumSearchResults(8, _("""Determines the maximum number of results returned
|
||||||
from the google command."""))
|
from the google command.""")))
|
||||||
conf.registerChannelValue(Google, 'defaultLanguage',
|
conf.registerChannelValue(Google, 'defaultLanguage',
|
||||||
Language('lang_en', """Determines what default language is used in
|
Language('lang_'+ _('en'), _("""Determines what default language is used in
|
||||||
searches. If left empty, no specific language will be requested."""))
|
searches. If left empty, no specific language will be requested.""")))
|
||||||
conf.registerChannelValue(Google, 'searchFilter',
|
conf.registerChannelValue(Google, 'searchFilter',
|
||||||
SafeSearch('moderate', """Determines what level of search filtering to use
|
SafeSearch('moderate', _("""Determines what level of search filtering to use
|
||||||
by default. 'active' - most filtering, 'moderate' - default filtering,
|
by default. 'active' - most filtering, 'moderate' - default filtering,
|
||||||
'off' - no filtering"""))
|
'off' - no filtering""")))
|
||||||
|
|
||||||
# vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79:
|
# vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79:
|
||||||
|
206
plugins/Google/messages.pot
Normal file
206
plugins/Google/messages.pot
Normal file
@ -0,0 +1,206 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR ORGANIZATION
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"POT-Creation-Date: 2010-10-17 14:50+CEST\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=CHARSET\n"
|
||||||
|
"Content-Transfer-Encoding: ENCODING\n"
|
||||||
|
"Generated-By: pygettext.py 1.5\n"
|
||||||
|
|
||||||
|
|
||||||
|
#: config.py:39
|
||||||
|
msgid ""
|
||||||
|
"The Google plugin has the functionality to watch for URLs\n"
|
||||||
|
" that match a specific pattern. (We call this a snarfer)\n"
|
||||||
|
" When supybot sees such a URL, it will parse the web page\n"
|
||||||
|
" for information and reply with the results."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: config.py:43
|
||||||
|
msgid "Do you want the Google search snarfer enabled by default?"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: config.py:88
|
||||||
|
#, docstring
|
||||||
|
msgid "Value must be 1 <= n <= 8"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: config.py:99
|
||||||
|
msgid ""
|
||||||
|
"Determines the URL that will be sent to Google for\n"
|
||||||
|
" the Referer field of the search requests. If this value is empty, a\n"
|
||||||
|
" Referer will be generated in the following format:\n"
|
||||||
|
" http://$server/$botName"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: config.py:104
|
||||||
|
msgid ""
|
||||||
|
"Determines whether the search snarfer is\n"
|
||||||
|
" enabled. If so, messages (even unaddressed ones) beginning with the word\n"
|
||||||
|
" 'google' will result in the first URL Google returns being sent to the\n"
|
||||||
|
" channel."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: config.py:109
|
||||||
|
msgid ""
|
||||||
|
"Determines whether the word 'google' in the\n"
|
||||||
|
" bot's output will be made colorful (like Google's logo)."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: config.py:112
|
||||||
|
msgid "Determines whether results are bolded."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: config.py:114
|
||||||
|
msgid ""
|
||||||
|
"Determines the maximum number of results returned\n"
|
||||||
|
" from the google command."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: config.py:117
|
||||||
|
msgid ""
|
||||||
|
"Determines what default language is used in\n"
|
||||||
|
" searches. If left empty, no specific language will be requested."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: config.py:117
|
||||||
|
msgid "en"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: config.py:120
|
||||||
|
msgid ""
|
||||||
|
"Determines what level of search filtering to use\n"
|
||||||
|
" by default. 'active' - most filtering, 'moderate' - default filtering,\n"
|
||||||
|
" 'off' - no filtering"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:101
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"Perform a search using Google's AJAX API.\n"
|
||||||
|
" search(\"search phrase\", options={})\n"
|
||||||
|
"\n"
|
||||||
|
" Valid options are:\n"
|
||||||
|
" smallsearch - True/False (Default: False)\n"
|
||||||
|
" filter - {active,moderate,off} (Default: \"moderate\")\n"
|
||||||
|
" language - Restrict search to documents in the given language\n"
|
||||||
|
" (Default: \"lang_en\")\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:141 plugin.py:192
|
||||||
|
msgid "We broke The Google!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:161
|
||||||
|
msgid "No matches found."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:167
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<search>\n"
|
||||||
|
"\n"
|
||||||
|
" Does a google search, but only returns the first result.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:176
|
||||||
|
msgid "Google found nothing."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:181
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<search> [--{filter,language} <value>]\n"
|
||||||
|
"\n"
|
||||||
|
" Searches google.com for the given string. As many results as can fit\n"
|
||||||
|
" are included. --language accepts a language abbreviation; --filter\n"
|
||||||
|
" accepts a filtering level ('active', 'moderate', 'off').\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:204
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<url>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns a link to the cached version of <url> if it is available.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:215
|
||||||
|
msgid "Google seems to have no cache for that site."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:220
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<search string> <search string> [<search string> ...]\n"
|
||||||
|
"\n"
|
||||||
|
" Returns the results of each search, in order, from greatest number\n"
|
||||||
|
" of results to least.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:244
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<from-language> [to] <to-language> <text>\n"
|
||||||
|
"\n"
|
||||||
|
" Returns <text> translated from <from-language> into <to-language>.\n"
|
||||||
|
" Beware that translating to or from languages that use multi-byte\n"
|
||||||
|
" characters may result in some very odd results.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:263
|
||||||
|
msgid "from language"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:264 plugin.py:273
|
||||||
|
msgid "Valid languages are: %L"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:272
|
||||||
|
msgid "to language"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:289
|
||||||
|
#, docstring
|
||||||
|
msgid "^google\\s+(.*)$"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:311
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<expression>\n"
|
||||||
|
"\n"
|
||||||
|
" Uses Google's calculator to calculate the value of <expression>.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:325
|
||||||
|
msgid "Google's calculator didn't come up with anything."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:331
|
||||||
|
#, docstring
|
||||||
|
msgid ""
|
||||||
|
"<phone number>\n"
|
||||||
|
"\n"
|
||||||
|
" Looks <phone number> up on Google.\n"
|
||||||
|
" "
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: plugin.py:345
|
||||||
|
msgid "Google's phonebook didn't come up with anything."
|
||||||
|
msgstr ""
|
||||||
|
|
@ -41,6 +41,8 @@ from supybot.commands import *
|
|||||||
import supybot.ircmsgs as ircmsgs
|
import supybot.ircmsgs as ircmsgs
|
||||||
import supybot.ircutils as ircutils
|
import supybot.ircutils as ircutils
|
||||||
import supybot.callbacks as callbacks
|
import supybot.callbacks as callbacks
|
||||||
|
from supybot.i18n import PluginInternationalization, internationalizeDocstring
|
||||||
|
_ = PluginInternationalization('Google')
|
||||||
|
|
||||||
simplejson = None
|
simplejson = None
|
||||||
|
|
||||||
@ -94,6 +96,7 @@ class Google(callbacks.PluginRegexp):
|
|||||||
return msg
|
return msg
|
||||||
|
|
||||||
_gsearchUrl = 'http://ajax.googleapis.com/ajax/services/search/web'
|
_gsearchUrl = 'http://ajax.googleapis.com/ajax/services/search/web'
|
||||||
|
@internationalizeDocstring
|
||||||
def search(self, query, channel, options={}):
|
def search(self, query, channel, options={}):
|
||||||
"""Perform a search using Google's AJAX API.
|
"""Perform a search using Google's AJAX API.
|
||||||
search("search phrase", options={})
|
search("search phrase", options={})
|
||||||
@ -135,7 +138,7 @@ class Google(callbacks.PluginRegexp):
|
|||||||
json = simplejson.load(fd)
|
json = simplejson.load(fd)
|
||||||
fd.close()
|
fd.close()
|
||||||
if json['responseStatus'] != 200:
|
if json['responseStatus'] != 200:
|
||||||
raise callbacks.Error, 'We broke The Google!'
|
raise callbacks.Error, _('We broke The Google!')
|
||||||
return json
|
return json
|
||||||
|
|
||||||
def formatData(self, data, bold=True, max=0):
|
def formatData(self, data, bold=True, max=0):
|
||||||
@ -155,10 +158,11 @@ class Google(callbacks.PluginRegexp):
|
|||||||
else:
|
else:
|
||||||
results.append(url)
|
results.append(url)
|
||||||
if not results:
|
if not results:
|
||||||
return format('No matches found.')
|
return format(_('No matches found.'))
|
||||||
else:
|
else:
|
||||||
return format('; '.join(results))
|
return format('; '.join(results))
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def lucky(self, irc, msg, args, text):
|
def lucky(self, irc, msg, args, text):
|
||||||
"""<search>
|
"""<search>
|
||||||
|
|
||||||
@ -169,9 +173,10 @@ class Google(callbacks.PluginRegexp):
|
|||||||
url = data['responseData']['results'][0]['unescapedUrl']
|
url = data['responseData']['results'][0]['unescapedUrl']
|
||||||
irc.reply(url.encode('utf-8'))
|
irc.reply(url.encode('utf-8'))
|
||||||
else:
|
else:
|
||||||
irc.reply('Google found nothing.')
|
irc.reply(_('Google found nothing.'))
|
||||||
lucky = wrap(lucky, ['text'])
|
lucky = wrap(lucky, ['text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def google(self, irc, msg, args, optlist, text):
|
def google(self, irc, msg, args, optlist, text):
|
||||||
"""<search> [--{filter,language} <value>]
|
"""<search> [--{filter,language} <value>]
|
||||||
|
|
||||||
@ -184,7 +189,7 @@ class Google(callbacks.PluginRegexp):
|
|||||||
irc.errorInvalid('language')
|
irc.errorInvalid('language')
|
||||||
data = self.search(text, msg.args[0], dict(optlist))
|
data = self.search(text, msg.args[0], dict(optlist))
|
||||||
if data['responseStatus'] != 200:
|
if data['responseStatus'] != 200:
|
||||||
irc.reply('We broke The Google!')
|
irc.reply(_('We broke The Google!'))
|
||||||
return
|
return
|
||||||
bold = self.registryValue('bold', msg.args[0])
|
bold = self.registryValue('bold', msg.args[0])
|
||||||
max = self.registryValue('maximumResults', msg.args[0])
|
max = self.registryValue('maximumResults', msg.args[0])
|
||||||
@ -194,6 +199,7 @@ class Google(callbacks.PluginRegexp):
|
|||||||
'filter':''}),
|
'filter':''}),
|
||||||
'text'])
|
'text'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def cache(self, irc, msg, args, url):
|
def cache(self, irc, msg, args, url):
|
||||||
"""<url>
|
"""<url>
|
||||||
|
|
||||||
@ -206,9 +212,10 @@ class Google(callbacks.PluginRegexp):
|
|||||||
url = m['cacheUrl'].encode('utf-8')
|
url = m['cacheUrl'].encode('utf-8')
|
||||||
irc.reply(url)
|
irc.reply(url)
|
||||||
return
|
return
|
||||||
irc.error('Google seems to have no cache for that site.')
|
irc.error(_('Google seems to have no cache for that site.'))
|
||||||
cache = wrap(cache, ['url'])
|
cache = wrap(cache, ['url'])
|
||||||
|
|
||||||
|
@internationalizeDocstring
|
||||||
def fight(self, irc, msg, args):
|
def fight(self, irc, msg, args):
|
||||||
"""<search string> <search string> [<search string> ...]
|
"""<search string> <search string> [<search string> ...]
|
||||||
|
|
||||||
@ -232,6 +239,7 @@ class Google(callbacks.PluginRegexp):
|
|||||||
irc.reply(s)
|
irc.reply(s)
|
||||||
|
|
||||||
_gtranslateUrl='http://ajax.googleapis.com/ajax/services/language/translate'
|
_gtranslateUrl='http://ajax.googleapis.com/ajax/services/language/translate'
|
||||||
|
@internationalizeDocstring
|
||||||
def translate(self, irc, msg, args, fromLang, toLang, text):
|
def translate(self, irc, msg, args, fromLang, toLang, text):
|
||||||
"""<from-language> [to] <to-language> <text>
|
"""<from-language> [to] <to-language> <text>
|
||||||
|
|
||||||
@ -252,8 +260,8 @@ class Google(callbacks.PluginRegexp):
|
|||||||
fromLang = lang.transLangs[fromLang.capitalize()]
|
fromLang = lang.transLangs[fromLang.capitalize()]
|
||||||
elif lang.normalize('lang_'+fromLang)[5:] \
|
elif lang.normalize('lang_'+fromLang)[5:] \
|
||||||
not in lang.transLangs.values():
|
not in lang.transLangs.values():
|
||||||
irc.errorInvalid('from language', fromLang,
|
irc.errorInvalid(_('from language'), fromLang,
|
||||||
format('Valid languages are: %L',
|
format(_('Valid languages are: %L'),
|
||||||
lang.transLangs.keys()))
|
lang.transLangs.keys()))
|
||||||
else:
|
else:
|
||||||
fromLang = lang.normalize('lang_'+fromLang)[5:]
|
fromLang = lang.normalize('lang_'+fromLang)[5:]
|
||||||
@ -261,8 +269,8 @@ class Google(callbacks.PluginRegexp):
|
|||||||
toLang = lang.transLangs[toLang.capitalize()]
|
toLang = lang.transLangs[toLang.capitalize()]
|
||||||
elif lang.normalize('lang_'+toLang)[5:] \
|
elif lang.normalize('lang_'+toLang)[5:] \
|
||||||
not in lang.transLangs.values():
|
not in lang.transLangs.values():
|
||||||
irc.errorInvalid('to language', toLang,
|
irc.errorInvalid(_('to language'), toLang,
|
||||||
format('Valid languages are: %L',
|
format(_('Valid languages are: %L'),
|
||||||
lang.transLangs.keys()))
|
lang.transLangs.keys()))
|
||||||
else:
|
else:
|
||||||
toLang = lang.normalize('lang_'+toLang)[5:]
|
toLang = lang.normalize('lang_'+toLang)[5:]
|
||||||
@ -298,6 +306,7 @@ class Google(callbacks.PluginRegexp):
|
|||||||
_calcSupRe = re.compile(r'<sup>(.*?)</sup>', re.I)
|
_calcSupRe = re.compile(r'<sup>(.*?)</sup>', re.I)
|
||||||
_calcFontRe = re.compile(r'<font size=-2>(.*?)</font>')
|
_calcFontRe = re.compile(r'<font size=-2>(.*?)</font>')
|
||||||
_calcTimesRe = re.compile(r'&(?:times|#215);')
|
_calcTimesRe = re.compile(r'&(?:times|#215);')
|
||||||
|
@internationalizeDocstring
|
||||||
def calc(self, irc, msg, args, expr):
|
def calc(self, irc, msg, args, expr):
|
||||||
"""<expression>
|
"""<expression>
|
||||||
|
|
||||||
@ -313,10 +322,11 @@ class Google(callbacks.PluginRegexp):
|
|||||||
s = self._calcTimesRe.sub(r'*', s)
|
s = self._calcTimesRe.sub(r'*', s)
|
||||||
irc.reply(s)
|
irc.reply(s)
|
||||||
else:
|
else:
|
||||||
irc.reply('Google\'s calculator didn\'t come up with anything.')
|
irc.reply(_('Google\'s calculator didn\'t come up with anything.'))
|
||||||
calc = wrap(calc, ['text'])
|
calc = wrap(calc, ['text'])
|
||||||
|
|
||||||
_phoneRe = re.compile(r'Phonebook.*?<font size=-1>(.*?)<a href')
|
_phoneRe = re.compile(r'Phonebook.*?<font size=-1>(.*?)<a href')
|
||||||
|
@internationalizeDocstring
|
||||||
def phonebook(self, irc, msg, args, phonenumber):
|
def phonebook(self, irc, msg, args, phonenumber):
|
||||||
"""<phone number>
|
"""<phone number>
|
||||||
|
|
||||||
@ -332,7 +342,7 @@ class Google(callbacks.PluginRegexp):
|
|||||||
s = utils.web.htmlToText(s)
|
s = utils.web.htmlToText(s)
|
||||||
irc.reply(s)
|
irc.reply(s)
|
||||||
else:
|
else:
|
||||||
irc.reply('Google\'s phonebook didn\'t come up with anything.')
|
irc.reply(_('Google\'s phonebook didn\'t come up with anything.'))
|
||||||
phonebook = wrap(phonebook, ['text'])
|
phonebook = wrap(phonebook, ['text'])
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user