diff --git a/plugins/Channel/locale/hu.po b/plugins/Channel/locale/hu.po index ab2e40400..106419968 100644 --- a/plugins/Channel/locale/hu.po +++ b/plugins/Channel/locale/hu.po @@ -5,10 +5,11 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria Channel\n" -"POT-Creation-Date: 2011-02-26 09:49+CET\n" -"PO-Revision-Date: 2011-07-30 19:36+0100\n" +"POT-Creation-Date: 2011-07-22 01:33+CEST\n" +"PO-Revision-Date: 2011-08-10 14:02+0100\n" "Last-Translator: nyuszika7h \n" "Language-Team: \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -397,7 +398,7 @@ msgid "" "\n" " If you have the #channel,op capability, this will effect a\n" " persistent ban from interacting with the bot on the given\n" -" (or the current hostmask associated with . Other\n" +" (or the current hostmask associated with ). Other\n" " plugins may enforce this ban by actually banning users with\n" " matching hostmasks when they join. is an optional\n" " argument specifying when (in \"seconds from now\") the ban should\n" @@ -515,6 +516,7 @@ msgstr "" "[] [ ...]\n" "\n" "Ha rendelkezel a #csatorna,op képességgel, ez felhasználónak (vagy felhasználójának) a képességet a csatornában. csak akkor szükséges, ha az üzenet nem a csatornában van elküldve." + #: plugin.py:634 msgid "" "[] [ ...]\n" @@ -538,7 +540,7 @@ msgid "" "[] {True|False}\n" "\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. is only necessary\n" " if the message isn't sent in the channel itself.\n" " " diff --git a/plugins/Misc/locale/hu.po b/plugins/Misc/locale/hu.po index c22d33b36..5d8a46e9e 100644 --- a/plugins/Misc/locale/hu.po +++ b/plugins/Misc/locale/hu.po @@ -5,25 +5,23 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria Misc\n" -"POT-Creation-Date: 2011-07-10 18:59+CEST\n" -"PO-Revision-Date: 2011-07-30 23:41+CEST\n" +"POT-Creation-Date: 2011-08-10 11:28+CEST\n" +"PO-Revision-Date: 2011-08-10 15:41+0100\n" "Last-Translator: nyuszika7h \n" "Language-Team: \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" - #: config.py:45 msgid "" "Determines whether the bot will list private\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" " are loaded." -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." - +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." #: config.py:50 msgid "" @@ -31,24 +29,21 @@ msgid "" " 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" " variable to the empty string, the timestamp will not be shown." -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." +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." #: config.py:57 msgid "" "Determines whether or not\n" " the timestamp will be included in the output of last when it is part of a\n" " nested command" -msgstr "" -"Meghatározza, hogy a last kimenete tartalmazza-e az időbélyegzőt, ha az egy beágyazott parancs része." +msgstr "Meghatározza, hogy a last kimenete tartalmazza-e az időbélyegzőt, ha az egy beágyazott parancs része." #: config.py:61 msgid "" "Determines whether or not the\n" " nick will be included in the output of last when it is part of a nested\n" " command" -msgstr "" -"Meghatározza, hogy a last kimenete tartalmazza-e a nevet, ha az egy beágyazott parancs része." +msgstr "Meghatározza, hogy a last kimenete tartalmazza-e a nevet, ha az egy beágyazott parancs része." #: plugin.py:81 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." #: plugin.py:119 -#, docstring msgid "" "[--private] []\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." #: plugin.py:164 -#, docstring msgid "" "\n" "\n" @@ -102,7 +95,6 @@ msgid "No appropriate commands were found." msgstr "Nem található megfelelő parancs." #: plugin.py:188 -#, docstring msgid "" "[] []\n" "\n" @@ -123,7 +115,6 @@ msgid "There is no command %q." msgstr "Nincs %q parancs." #: plugin.py:211 -#, docstring msgid "" "takes no arguments\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" #: plugin.py:239 -#, docstring msgid "" "takes no arguments\n" "\n" -" Returns a URL saying where to get Supybot.\n" +" Returns a URL saying where to get Limnoria.\n" " " msgstr "" -"paraméter nélküli" -"\n" -"Kiír egy linket, ami megmondja, honnan lehet a Supybot-ot megszerezni." +"paraméter nélküli\n" +"Kiír egy linket, ami megmondja, honnan lehet a Limnoria-t megszerezni." #: plugin.py:243 msgid "My source is at https://github.com/ProgVal/Limnoria" msgstr "A forrásom https://github.com/ProgVal/Limnoria -ban van." #: plugin.py:248 -#, docstring msgid "" "[]\n" "\n" @@ -206,7 +194,6 @@ msgid "That's all, there is no more." msgstr "Ez minden, nincs több." #: plugin.py:292 -#, docstring msgid "" "[--{from,in,on,with,without,regexp} ] [--nolimit]\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." #: plugin.py:401 -#, docstring msgid "" " \n" "\n" " Tells the whatever is. Use nested commands to your\n" " benefit here.\n" " " -msgstr "" -" " -"Megmondja -nek szöveget. Itt az előnyödre használhatod a beágyazott parancsokat." +msgstr " Megmondja -nek szöveget. Itt az előnyödre használhatod a beágyazott parancsokat." #: plugin.py:409 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" msgstr "%s szeretné, hogy megmondjam neked: %s" -#: plugin.py:430 -#, docstring +#: plugin.py:431 msgid "" "takes no arguments\n" "\n" @@ -266,6 +249,7 @@ msgstr "" "\n" "Ellenőrzi, hogy a bot él-e." -#: plugin.py:434 +#: plugin.py:435 msgid "pong" msgstr "pong" + diff --git a/plugins/Reply/locale/hu.po b/plugins/Reply/locale/hu.po index 26c014c1e..a14909622 100644 --- a/plugins/Reply/locale/hu.po +++ b/plugins/Reply/locale/hu.po @@ -5,28 +5,25 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria Reply\n" -"POT-Creation-Date: 2011-02-26 09:49+CET\n" -"PO-Revision-Date: 2011-07-30 21:49+0100\n" +"POT-Creation-Date: 2011-08-10 11:27+CEST\n" +"PO-Revision-Date: 2011-08-15 14:49+0200\n" "Last-Translator: nyuszika7h \n" "Language-Team: \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" - #: plugin.py:37 -#, docstring msgid "" "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" " can be easily abused.\n" " " -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." +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." #: plugin.py:43 -#, docstring msgid "" "\n" "\n" @@ -39,20 +36,15 @@ msgstr "" "Privát üzenetben válaszol -gel. Itt az előnyödre használhatpd a beágyazott parancsokat." #: plugin.py:53 -#, docstring msgid "" "\n" "\n" -" Replies with as an action. use nested commands to your benefit\n" +" Replies with as an action. Use nested commands to your benefit\n" " here.\n" " " -msgstr "" -"\n" -"\n" -"Egy tevékenységként válaszol -gel. Itt az előnyödre használhatod a beágyazott parancsokat." +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." #: plugin.py:66 -#, docstring msgid "" "\n" "\n" @@ -65,7 +57,6 @@ msgstr "" "Egy közleményben válaszol -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 -#, docstring msgid "" "\n" "\n" @@ -77,7 +68,6 @@ msgstr "" "Válaszol -gel. Ugyanaz, mint az álnév, 'echo $nick: $1'." #: plugin.py:85 -#, docstring msgid "" " [ ...]\n" "\n" @@ -88,3 +78,4 @@ msgstr "" " [ ...]\n" "\n" "Az összes paraméterével külön üzenetben válaszol, a supybot.reply.oneToOne konfigurációjától függően." + diff --git a/plugins/String/plugin.py b/plugins/String/plugin.py index 2aa58c222..72143f72e 100644 --- a/plugins/String/plugin.py +++ b/plugins/String/plugin.py @@ -33,12 +33,14 @@ import binascii import supybot.utils as utils from supybot.commands import * +import supybot.commands as commands import supybot.plugins as plugins import supybot.ircutils as ircutils import supybot.callbacks as callbacks from supybot.i18n import PluginInternationalization, internationalizeDocstring _ = PluginInternationalization('String') +import multiprocessing class String(callbacks.Plugin): @internationalizeDocstring diff --git a/src/callbacks.py b/src/callbacks.py index 3a2eb7fe0..7944981c5 100644 --- a/src/callbacks.py +++ b/src/callbacks.py @@ -988,6 +988,23 @@ class CommandThread(world.SupyThread): finally: 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): def normalize(self, s): diff --git a/src/commands.py b/src/commands.py index 4c26e29a6..82b5b2280 100644 --- a/src/commands.py +++ b/src/commands.py @@ -37,6 +37,8 @@ import types import getopt import inspect import threading +import multiprocessing #python2.6 or later! +import Queue import supybot.log as log import supybot.conf as conf diff --git a/src/version.py b/src/version.py index 8b46f4516..7f6f5aceb 100644 --- a/src/version.py +++ b/src/version.py @@ -1,3 +1,3 @@ """stick the various versioning attributes in here, so we only have to change 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)' diff --git a/src/world.py b/src/world.py index 23ec3789e..c69d37a7a 100644 --- a/src/world.py +++ b/src/world.py @@ -37,6 +37,7 @@ import sys import time import atexit import threading +import multiprocessing # python 2.6 and later! if sys.version_info >= (2, 5, 0): import re as sre @@ -67,6 +68,15 @@ class SupyThread(threading.Thread): super(SupyThread, self).__init__(*args, **kwargs) 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 ircs = [] # A list of all the IRCs.