Merge remote-tracking branch 'progval/testing' into testing

This commit is contained in:
Mika Suomalainen 2011-08-15 18:56:10 +03:00
commit a091456c4d
8 changed files with 59 additions and 51 deletions

View File

@ -5,10 +5,11 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Limnoria Channel\n" "Project-Id-Version: Limnoria Channel\n"
"POT-Creation-Date: 2011-02-26 09:49+CET\n" "POT-Creation-Date: 2011-07-22 01:33+CEST\n"
"PO-Revision-Date: 2011-07-30 19:36+0100\n" "PO-Revision-Date: 2011-08-10 14:02+0100\n"
"Last-Translator: nyuszika7h <litemininyuszika@gmail.com>\n" "Last-Translator: nyuszika7h <litemininyuszika@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -397,7 +398,7 @@ msgid ""
"\n" "\n"
" If you have the #channel,op capability, this will effect a\n" " If you have the #channel,op capability, this will effect a\n"
" persistent ban from interacting with the bot on the given\n" " persistent ban from interacting with the bot on the given\n"
" <hostmask> (or the current hostmask associated with <nick>. Other\n" " <hostmask> (or the current hostmask associated with <nick>). Other\n"
" plugins may enforce this ban by actually banning users with\n" " plugins may enforce this ban by actually banning users with\n"
" matching hostmasks when they join. <expires> is an optional\n" " matching hostmasks when they join. <expires> is an optional\n"
" argument specifying when (in \"seconds from now\") the ban should\n" " argument specifying when (in \"seconds from now\") the ban should\n"
@ -515,6 +516,7 @@ msgstr ""
"[<csatorna>] <név|felhasználónév> <képesség> [<képesség> ...]\n" "[<csatorna>] <név|felhasználónév> <képesség> [<képesség> ...]\n"
"\n" "\n"
"Ha rendelkezel a #csatorna,op képességgel, ez <felhasználónév> felhasználónak (vagy <név> felhasználójának) a <képesség> képességet a csatornában. <csatorna> csak akkor szükséges, ha az üzenet nem a csatornában van elküldve." "Ha rendelkezel a #csatorna,op képességgel, ez <felhasználónév> felhasználónak (vagy <név> felhasználójának) a <képesség> képességet a csatornában. <csatorna> csak akkor szükséges, ha az üzenet nem a csatornában van elküldve."
#: plugin.py:634 #: plugin.py:634
msgid "" msgid ""
"[<channel>] <name|hostmask> <capability> [<capability> ...]\n" "[<channel>] <name|hostmask> <capability> [<capability> ...]\n"
@ -538,7 +540,7 @@ msgid ""
"[<channel>] {True|False}\n" "[<channel>] {True|False}\n"
"\n" "\n"
" If you have the #channel,op capability, this will set the default\n" " If you have the #channel,op capability, this will set the default\n"
" response to non-power-related (that is, not {op, halfop, voice}\n" " response to non-power-related (that is, not {op, halfop, voice})\n"
" capabilities to be the value you give. <channel> is only necessary\n" " capabilities to be the value you give. <channel> is only necessary\n"
" if the message isn't sent in the channel itself.\n" " if the message isn't sent in the channel itself.\n"
" " " "

View File

@ -5,25 +5,23 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Limnoria Misc\n" "Project-Id-Version: Limnoria Misc\n"
"POT-Creation-Date: 2011-07-10 18:59+CEST\n" "POT-Creation-Date: 2011-08-10 11:28+CEST\n"
"PO-Revision-Date: 2011-07-30 23:41+CEST\n" "PO-Revision-Date: 2011-08-10 15:41+0100\n"
"Last-Translator: nyuszika7h <litemininyuszika@gmail.com>\n" "Last-Translator: nyuszika7h <litemininyuszika@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n" "Generated-By: pygettext.py 1.5\n"
#: config.py:45 #: config.py:45
msgid "" msgid ""
"Determines whether the bot will list private\n" "Determines whether the bot will list private\n"
" plugins with the list command if given the --private switch. If this is\n" " plugins with the list command if given the --private switch. If this is\n"
" disabled, non-owner users should be unable to see what private plugins\n" " disabled, non-owner users should be unable to see what private plugins\n"
" are loaded." " are loaded."
msgstr "" msgstr "Meghatározza, hogy a bot listázza-e a privát bővítményeket a list paranccsal, ha a --private kapcsoló meg van adva. Ha ez le van tiltva, a tulajdonoson kívül más felhasználók nem láthatják, hogy milyen privát bővítmények vannak betöltve."
"Meghatározza, hogy a bot listázza-e a privát bővítményeket a list paranccsal, ha a --private kapcsoló meg van adva. Ha ez le van tiltva, a tulajdonoson kívül más felhasználók nem láthatják, hogy milyen privát bővítmények vannak betöltve."
#: config.py:50 #: config.py:50
msgid "" msgid ""
@ -31,24 +29,21 @@ msgid ""
" timestamps in the Misc.last command. Refer to the Python documentation\n" " timestamps in the Misc.last command. Refer to the Python documentation\n"
" for the time module to see what formats are accepted. If you set this\n" " for the time module to see what formats are accepted. If you set this\n"
" variable to the empty string, the timestamp will not be shown." " variable to the empty string, the timestamp will not be shown."
msgstr "" msgstr "Meghatározza az időbélyegek formátumát a Misc.last parancsban. Hivatkozz a Python dokumentációra a time modulhoz, hogy lásd, milyen formátumok fogadhatók el. Ha üres karakterláncra állítód ezt a változót, az időbélyegző nem lesz megjelenítve."
"Meghatározza az időbélyegek formátumát a Misc.last parancsban. Hivatkozz a Python dokumentációra a time modulhoz, hogy lásd, milyen formátumok fogadhatók el. Ha üres karakterláncra állítód ezt a változót, az időbélyegző nem lesz megjelenítve."
#: config.py:57 #: config.py:57
msgid "" msgid ""
"Determines whether or not\n" "Determines whether or not\n"
" the timestamp will be included in the output of last when it is part of a\n" " the timestamp will be included in the output of last when it is part of a\n"
" nested command" " nested command"
msgstr "" msgstr "Meghatározza, hogy a last kimenete tartalmazza-e az időbélyegzőt, ha az egy beágyazott parancs része."
"Meghatározza, hogy a last kimenete tartalmazza-e az időbélyegzőt, ha az egy beágyazott parancs része."
#: config.py:61 #: config.py:61
msgid "" msgid ""
"Determines whether or not the\n" "Determines whether or not the\n"
" nick will be included in the output of last when it is part of a nested\n" " nick will be included in the output of last when it is part of a nested\n"
" command" " command"
msgstr "" msgstr "Meghatározza, hogy a last kimenete tartalmazza-e a nevet, ha az egy beágyazott parancs része."
"Meghatározza, hogy a last kimenete tartalmazza-e a nevet, ha az egy beágyazott parancs része."
#: plugin.py:81 #: plugin.py:81
msgid "You've given me %s invalid commands within the last minute; I'm now ignoring you for %s." msgid "You've given me %s invalid commands within the last minute; I'm now ignoring you for %s."
@ -59,7 +54,6 @@ msgid "The %q plugin is loaded, but there is no command named %q in it. Try \"l
msgstr "A %q bővítmény be van töltve, de nincs benne parancs %q névvel. Próbáld meg a \"list %s\"-t, hogy lásd a parancsokat a %q bővítményben." msgstr "A %q bővítmény be van töltve, de nincs benne parancs %q névvel. Próbáld meg a \"list %s\"-t, hogy lásd a parancsokat a %q bővítményben."
#: plugin.py:119 #: plugin.py:119
#, docstring
msgid "" msgid ""
"[--private] [<plugin>]\n" "[--private] [<plugin>]\n"
"\n" "\n"
@ -85,7 +79,6 @@ msgid "That plugin exists, but has no commands. This probably means that it has
msgstr "Ez a bővítmény létezik, de nincsenek parancsai. Ez valószínűleg azt jelenti, hogy van néhány konfigurációs változója, ami megváltoztatható, hogy módosítsd a viselkedését. Próbáld meg a \"config list supybot.plugins.%s\"-t, hogy lásd, milyen konfigurációs változói vannak." msgstr "Ez a bővítmény létezik, de nincsenek parancsai. Ez valószínűleg azt jelenti, hogy van néhány konfigurációs változója, ami megváltoztatható, hogy módosítsd a viselkedését. Próbáld meg a \"config list supybot.plugins.%s\"-t, hogy lásd, milyen konfigurációs változói vannak."
#: plugin.py:164 #: plugin.py:164
#, docstring
msgid "" msgid ""
"<string>\n" "<string>\n"
"\n" "\n"
@ -102,7 +95,6 @@ msgid "No appropriate commands were found."
msgstr "Nem található megfelelő parancs." msgstr "Nem található megfelelő parancs."
#: plugin.py:188 #: plugin.py:188
#, docstring
msgid "" msgid ""
"[<plugin>] [<command>]\n" "[<plugin>] [<command>]\n"
"\n" "\n"
@ -123,7 +115,6 @@ msgid "There is no command %q."
msgstr "Nincs %q parancs." msgstr "Nincs %q parancs."
#: plugin.py:211 #: plugin.py:211
#, docstring
msgid "" msgid ""
"takes no arguments\n" "takes no arguments\n"
"\n" "\n"
@ -151,23 +142,20 @@ msgid "The current (running) version of this Supybot is %s. %s"
msgstr "Az aktuális (futó) verziója ennek a Supybot-nak %s. %s" msgstr "Az aktuális (futó) verziója ennek a Supybot-nak %s. %s"
#: plugin.py:239 #: plugin.py:239
#, docstring
msgid "" msgid ""
"takes no arguments\n" "takes no arguments\n"
"\n" "\n"
" Returns a URL saying where to get Supybot.\n" " Returns a URL saying where to get Limnoria.\n"
" " " "
msgstr "" msgstr ""
"paraméter nélküli" "paraméter nélküli\n"
"\n" "Kiír egy linket, ami megmondja, honnan lehet a Limnoria-t megszerezni."
"Kiír egy linket, ami megmondja, honnan lehet a Supybot-ot megszerezni."
#: plugin.py:243 #: plugin.py:243
msgid "My source is at https://github.com/ProgVal/Limnoria" msgid "My source is at https://github.com/ProgVal/Limnoria"
msgstr "A forrásom https://github.com/ProgVal/Limnoria -ban van." msgstr "A forrásom https://github.com/ProgVal/Limnoria -ban van."
#: plugin.py:248 #: plugin.py:248
#, docstring
msgid "" msgid ""
"[<nick>]\n" "[<nick>]\n"
"\n" "\n"
@ -206,7 +194,6 @@ msgid "That's all, there is no more."
msgstr "Ez minden, nincs több." msgstr "Ez minden, nincs több."
#: plugin.py:292 #: plugin.py:292
#, docstring
msgid "" msgid ""
"[--{from,in,on,with,without,regexp} <value>] [--nolimit]\n" "[--{from,in,on,with,without,regexp} <value>] [--nolimit]\n"
"\n" "\n"
@ -227,16 +214,13 @@ msgid "I couldn't find a message matching that criteria in my history of %s mess
msgstr "Nem találtam a kritériumra illeszkedő üzenetet a(z) %s üzenetes előzményeimben." msgstr "Nem találtam a kritériumra illeszkedő üzenetet a(z) %s üzenetes előzményeimben."
#: plugin.py:401 #: plugin.py:401
#, docstring
msgid "" msgid ""
"<nick> <text>\n" "<nick> <text>\n"
"\n" "\n"
" Tells the <nick> whatever <text> is. Use nested commands to your\n" " Tells the <nick> whatever <text> is. Use nested commands to your\n"
" benefit here.\n" " benefit here.\n"
" " " "
msgstr "" msgstr "<név> <szöveg>Megmondja <név>-nek szöveget. Itt az előnyödre használhatod a beágyazott parancsokat."
"<név> <szöveg>"
"Megmondja <név>-nek szöveget. Itt az előnyödre használhatod a beágyazott parancsokat."
#: plugin.py:409 #: plugin.py:409
msgid "Dude, just give the command. No need for the tell." msgid "Dude, just give the command. No need for the tell."
@ -254,8 +238,7 @@ msgstr "Nem láttam %s-t, rád hagyom a mondást."
msgid "%s wants me to tell you: %s" msgid "%s wants me to tell you: %s"
msgstr "%s szeretné, hogy megmondjam neked: %s" msgstr "%s szeretné, hogy megmondjam neked: %s"
#: plugin.py:430 #: plugin.py:431
#, docstring
msgid "" msgid ""
"takes no arguments\n" "takes no arguments\n"
"\n" "\n"
@ -266,6 +249,7 @@ msgstr ""
"\n" "\n"
"Ellenőrzi, hogy a bot él-e." "Ellenőrzi, hogy a bot él-e."
#: plugin.py:434 #: plugin.py:435
msgid "pong" msgid "pong"
msgstr "pong" msgstr "pong"

View File

@ -5,28 +5,25 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Limnoria Reply\n" "Project-Id-Version: Limnoria Reply\n"
"POT-Creation-Date: 2011-02-26 09:49+CET\n" "POT-Creation-Date: 2011-08-10 11:27+CEST\n"
"PO-Revision-Date: 2011-07-30 21:49+0100\n" "PO-Revision-Date: 2011-08-15 14:49+0200\n"
"Last-Translator: nyuszika7h <litemininyuszika@gmail.com>\n" "Last-Translator: nyuszika7h <litemininyuszika@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n" "Generated-By: pygettext.py 1.5\n"
#: plugin.py:37 #: plugin.py:37
#, docstring
msgid "" msgid ""
"This plugin contains a few commands that construct various types of\n" "This plugin contains a few commands that construct various types of\n"
" replies. Some bot owners would be wise to not load this plugin because it\n" " replies. Some bot owners would be wise to not load this plugin because it\n"
" can be easily abused.\n" " can be easily abused.\n"
" " " "
msgstr "" msgstr "Ez a bővítmény néhány parancsot tartalmaz, amelyek különféle típusú válaszokat gyárt. Néhány bot tulajdonos bölcs lenne nem betölteni ezt a bővítményt, mert könnyen vissza lehet élni vele."
"Ez a bővítmény néhány parancsot tartalmaz, amelyek különféle típusú válaszokat gyárt. Néhány bot tulajdonos bölcs lenne nem betölteni ezt a bővítményt, mert könnyen vissza lehet élni vele."
#: plugin.py:43 #: plugin.py:43
#, docstring
msgid "" msgid ""
"<text>\n" "<text>\n"
"\n" "\n"
@ -39,20 +36,15 @@ msgstr ""
"Privát üzenetben válaszol <szöveg>-gel. Itt az előnyödre használhatpd a beágyazott parancsokat." "Privát üzenetben válaszol <szöveg>-gel. Itt az előnyödre használhatpd a beágyazott parancsokat."
#: plugin.py:53 #: plugin.py:53
#, docstring
msgid "" msgid ""
"<text>\n" "<text>\n"
"\n" "\n"
" Replies with <text> as an action. use nested commands to your benefit\n" " Replies with <text> as an action. Use nested commands to your benefit\n"
" here.\n" " here.\n"
" " " "
msgstr "" msgstr "Ez a bővítmény néhány parancsot tartalmaz, amelyek különféle típusú válaszokat gyárt. Néhány bot tulajdonos bölcs lenne nem betölteni ezt a bővítményt, mert könnyen vissza lehet élni vele."
"<szöveg>\n"
"\n"
"Egy tevékenységként válaszol <szöveg>-gel. Itt az előnyödre használhatod a beágyazott parancsokat."
#: plugin.py:66 #: plugin.py:66
#, docstring
msgid "" msgid ""
"<text>\n" "<text>\n"
"\n" "\n"
@ -65,7 +57,6 @@ msgstr ""
"Egy közleményben válaszol <szöveg>-gel. Itt az előnyödre használhatod a beágyazott parancsokat. Ha egy privát közleményt szeretnál, ágyazd be a private parancsot." "Egy közleményben válaszol <szöveg>-gel. Itt az előnyödre használhatod a beágyazott parancsokat. Ha egy privát közleményt szeretnál, ágyazd be a private parancsot."
#: plugin.py:76 #: plugin.py:76
#, docstring
msgid "" msgid ""
"<text>\n" "<text>\n"
"\n" "\n"
@ -77,7 +68,6 @@ msgstr ""
"Válaszol <szöveg>-gel. Ugyanaz, mint az álnév, 'echo $nick: $1'." "Válaszol <szöveg>-gel. Ugyanaz, mint az álnév, 'echo $nick: $1'."
#: plugin.py:85 #: plugin.py:85
#, docstring
msgid "" msgid ""
"<str> [<str> ...]\n" "<str> [<str> ...]\n"
"\n" "\n"
@ -88,3 +78,4 @@ msgstr ""
"<karakterlánc> [<karakterlánc> ...]\n" "<karakterlánc> [<karakterlánc> ...]\n"
"\n" "\n"
"Az összes <karakterlánc> paraméterével külön üzenetben válaszol, a supybot.reply.oneToOne konfigurációjától függően." "Az összes <karakterlánc> paraméterével külön üzenetben válaszol, a supybot.reply.oneToOne konfigurációjától függően."

View File

@ -33,12 +33,14 @@ import binascii
import supybot.utils as utils import supybot.utils as utils
from supybot.commands import * from supybot.commands import *
import supybot.commands as commands
import supybot.plugins as plugins import supybot.plugins as plugins
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 from supybot.i18n import PluginInternationalization, internationalizeDocstring
_ = PluginInternationalization('String') _ = PluginInternationalization('String')
import multiprocessing
class String(callbacks.Plugin): class String(callbacks.Plugin):
@internationalizeDocstring @internationalizeDocstring

View File

@ -988,6 +988,23 @@ class CommandThread(world.SupyThread):
finally: finally:
self.cb.threaded = self.originalThreaded self.cb.threaded = self.originalThreaded
class CommandProcess(world.SupyProcess):
"""Just does some extra logging and error-recovery for commands that need
to run in processes.
"""
def __init__(self, target=None, args=(), kwargs={}):
self.command = args[0]
self.cb = target.im_self
procName = 'Process #%s (for %s.%s)' % (world.processesSpawned,
self.cb.name(),
self.command)
log.debug('Spawning process %s (args: %r)', procName, args)
self.__parent = super(CommandProcess, self)
self.__parent.__init__(target=target, name=procName,
args=args, kwargs=kwargs)
def run(self):
self.__parent.run()
class CanonicalString(registry.NormalizedString): class CanonicalString(registry.NormalizedString):
def normalize(self, s): def normalize(self, s):

View File

@ -37,6 +37,8 @@ import types
import getopt import getopt
import inspect import inspect
import threading import threading
import multiprocessing #python2.6 or later!
import Queue
import supybot.log as log import supybot.log as log
import supybot.conf as conf import supybot.conf as conf

View File

@ -1,3 +1,3 @@
"""stick the various versioning attributes in here, so we only have to change """stick the various versioning attributes in here, so we only have to change
them once.""" them once."""
version = '0.83.4.1+limnoria (2011-08-13T01:59:18+0200)' version = '0.83.4.1+limnoria (2011-08-15T17:24:33+0200)'

View File

@ -37,6 +37,7 @@ import sys
import time import time
import atexit import atexit
import threading import threading
import multiprocessing # python 2.6 and later!
if sys.version_info >= (2, 5, 0): if sys.version_info >= (2, 5, 0):
import re as sre import re as sre
@ -67,6 +68,15 @@ class SupyThread(threading.Thread):
super(SupyThread, self).__init__(*args, **kwargs) super(SupyThread, self).__init__(*args, **kwargs)
log.debug('Spawning thread %q.', self.getName()) log.debug('Spawning thread %q.', self.getName())
processesSpawned = 1 # Starts at one for the initial process.
class SupyProcess(multiprocessing.Process):
def __init__(self, *args, **kwargs):
global processesSpawned
processesSpawned += 1
super(SupyProcess, self).__init__(*args, **kwargs)
log.debug('Spawning process %q.', self.name)
commandsProcessed = 0 commandsProcessed = 0
ircs = [] # A list of all the IRCs. ircs = [] # A list of all the IRCs.