diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 97d73356f..ee9bb0db2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,8 +15,12 @@ jobs: strategy: matrix: include: - - python-version: "3.13.0-alpha.6" - with-opt-deps: false # https://github.com/pyca/cryptography/issues/10806 + - python-version: "3.14.0-alpha.1" + with-opt-deps: true + runs-on: ubuntu-22.04 + + - python-version: "3.13.0" + with-opt-deps: true runs-on: ubuntu-22.04 - python-version: "3.12.0" @@ -33,6 +37,9 @@ jobs: - python-version: "3.10" with-opt-deps: false runs-on: ubuntu-22.04 + - python-version: "pypy-3.10" + with-opt-deps: false + runs-on: ubuntu-22.04 - python-version: "3.9" with-opt-deps: true @@ -41,27 +48,6 @@ jobs: with-opt-deps: true runs-on: ubuntu-22.04 - - python-version: "3.8" - with-opt-deps: true - runs-on: ubuntu-22.04 - - - python-version: "3.7" - with-opt-deps: true - runs-on: ubuntu-22.04 - - python-version: "3.7" - with-opt-deps: false - runs-on: ubuntu-22.04 - - python-version: "pypy-3.7" - with-opt-deps: false - runs-on: ubuntu-22.04 - - - python-version: "3.6" - with-opt-deps: false - runs-on: ubuntu-20.04 - - python-version: "pypy-3.6" - with-opt-deps: false - runs-on: ubuntu-20.04 - steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} @@ -81,7 +67,7 @@ jobs: - name: Install run: | - LIMNORIA_WARN_OLD_PYTHON=0 python3 setup.py install + LIMNORIA_WARN_OLD_PYTHON=0 pip install . - name: Test with unittest run: | diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index 3b26666c8..000000000 --- a/ChangeLog +++ /dev/null @@ -1,2022 +0,0 @@ -2009-05-25 James Vega - - * Version 0.83.4.1! - - * Fixed a bug in Factoids where the help could not be retrieved for - any command. - - * Fixed a bug where Plugin.list wouldn't list any aliases/RSS feeds - from the Alias/RSS plugins. - - * Updated Google to ensure the third-party json module (different API - than simplejson) isn't loaded. Based on a patch from Ricky Zhou. - - * Updated Channel.nicks so it doesn't reply with nicks from secret - channels outside of that channel. - - * Updated Channel.{op,halfop,voice,deop,dehalfop,devoice} commands so - they respect the server's "max mode changes per message" setting. - - * Updated utils.str.nItems to accept long as well as int. Thanks to - Ricky Zhou for the patch. - -2009-05-18 James Vega - - * Version 0.83.4! - - * Fixed a bug where we were attempting to tag a non-existent IrcMsg. - - * Fixed a bug where the Web plugin was not catching the correct - exception. - - * Fixed a bug where the Protector plugin was attempting to use a - non-existent variable. - - * Added verbiage to supybot.log.level indicating that it doesn't - control the logging level for stdout and pointing out the correct - config variable. - - * Added a new rank command to the ChannelStats plugin. - - * Added a new remove command to the Later plugin. - - * Added new azn and uniud commands to the Filter plugin. - - * Fixed a bug in the Socket driver that could cause it to continually - attempt to reconnect to a server which is unavailable. - - * Fixed a bug in supybot-wizard that would cause it to abort if the user - chose to use SSL. - - * Fixed the haveOp context to call getChannel if it wasn't already - called. - - * Fixed a bug in supybot-test where the entire test run would end if one - plugin couldn't be loaded. - - * Updated the httpUrl context to prepend 'http://' if that would result - in a valid HTTP URL. A noticeable benefit is that users can now call - "@title slashdot.org" instead of requiring the user to call - "@title http://slashdot.org". - - * Fixed Supybot to be compatible with Python 2.6 - - * Added a note to Owner.defaultplugin's help to point out - supybot.commands.defaultPlugin.importantPlugins, which affects which - plugins have priorities over ambiguous command names. - - * Rewrote the Google plugin to use the new AJAX API since Google - hasn't been giving out new keys for the SOAP API. - - * Added a new translate command to the Google plugin. - - * Fixed a copy/paste error in the help for User.capabilities. - - * Updated Web.title to give a more appropriate message if the URL - definitely has no title. - - * Fixed irc.reply so prefixNick is not used when action=True. - - * Implemented the command flood prevention, controlled by - supybot.abuse.flood.command.*, thanks to a patch from nebajoth. - - * Added utils/crypt.py to provide a uniform interface to the Python - crypt functionality regardless of the Python version being used. - - * Fixed the urlRe and httpUrlRe regexes in utils/web.py to be more - correct about what they match. They now match according to RFCs 1034 - and 1738. - - * Updated getSyntax to allow the syntax string to be specified, - similar to getHelp. - - * Updated getCommandHelp to respect supybot.reply.showSimpleSyntax. - - * Updated Factoids.getCommandHelp to respect - supybot.reply.showSimpleSyntax. - - * Fixed a bug where getCommandMethod would return methods that weren't - actually commands. This was exposed by adding a die Alias. - - * Removed supybot.plugins.Channel.banmask in favor of a general config - variable, supybot.protocols.irc.banmask. - - * Updated AutoMode to respect supybot.protocols.irc.banmask when - banning. - - * Updated Channel.ignore.add and Channel.ban.add to respect - supybot.protocols.irc.banmask. - - * Fixed Channel.kban so that it will fall back to an exact hostmask - instead of refusing to ban the user when the banmask would also match - the bot's hostmask. - - * Added the ability to disable ChannelLogger's logging on a - per-channel basis. - - * Fixed Config so it will respond with an error when the set, get, or - default commands are called on config groups that don't have values. - - * Added a new config variable, supybot.plugins.AutoMode.owner, which - can be used to prevent AutoMode behavior from applying to the owner(s) - (since the owner has all capabilities). - - * Fixed the regex parsing in utils/str.py to correctly handle multiple - backslashes before the search/replace separator. - - * Renamed supybot.plugins.Google.safeSearch to - supybot.plugins.Google.searchFilter since the behavior and valid - values changed as part of the switch to the AJAX API. - - * Updated RSS.announce to have list, add, and remove sub-commands - instead of the old option-parsing interface. - - * Added a new config variable, - supybot.plugins.ShrinkUrl.shrinkSnarfer.showDomain, which controls - whether the shrinkSnarfer displays the domain of the original URL - along with the shrunken URL. - - * Updated the default value for - supybot.plugins.ChannelLogger.filenameTimestamp so it sorts - chronologically. - - * Updated Misc.last to prevent users from retrieving messages from - channels they aren't in or from private channels when they're in - another channel. - - * Fixed supybot.directories.plugins so the directory Supybot is - installed to is not included. This change makes the config file work - across Python upgrades without user-intervention. - - * Updated Config.config to show both the global and channel-specific - value (if it exists) of the variable. - - * Fixed Google.calc to work around a change in Google's HTML. This - change should be more resilient to future HTML changes. - - * Fixed a bug where User.set.password could not be used if your - current hostmask wasn't recognized. - - * Fixed a bug in Limiter where the limit could be set to fewer than - the current number of users in the channel. - - * Updated String to give a more useful message when decoding a base64 - string fails. - - * Updated User.hostmask.add to require it be called in private since a - password may be given as part of the command. - - * Updated BadWords to only strip the formatting of messages which have - a bad word in them. - - * Fixed a bug in the supybot script where it would continue to run - even if it was unable to create the pidFile. This could cause - multiple instances of supybot to run simultaneously if using - supybot-botchk were being used to keep supybot running. - - * Updated plugins.DB to return a fake database check when generating - documentation. This allows the user to generate docs without having - the required database plugins installed. - - * Updated supybot-plugin-doc to be able to generate reStructuredText. - - * Removed the Insult plugin. - - * Added the Dunno plugin, which can be taught responses to use in - place of the normal invalid command response. - - * Added the Success plugin, which can be taught responses to use in - place of the normal operation succeeded response. - - * Updated the data file for Math's convert command. - -2007-10-22 James Vega - - * Version 0.83.3! - - * Added the BadWords plugin from supybot-plugins and updated the - plugin to allow kicking of people who use defined BadWords. - - * Added support for different log levels on stdout vs the log file. - - * Fixed a bug where the bot always reacted to invalid command floods - even if supybot.abuse.flood.command.invalid indicated not to. - (Closes: #1716878) - - * Fixed a bug where the RSS plugin would lower-case URLs, thus making - them impossible to retrieve. (Closes: #1666786) - - * Fixed ircmsgs.prettyPrint to handle unrecognized commands. - (Closes: #1630963) - - * Fixed a bug in the Services plugin where the bot would continuously - send Ghost commands. - - * Fixed Google.calc to handle a change in Google's HTML. - - * Fixed a bug where Plugin.list was listing functions which weren't - valid commands. - - * Fixed RSS's handling of encodings to eliminate some ascii conversion - errors. - - * Updated the rssparser using plugins with the renamed and newer - feedparser 4.1 in order to properly handle Bugzilla RSS feeds. - - * Updated PLUGIN_TUTORIAL to specify that the user needs to import - Python's random module. - - * Updated the Web plugin so it uses HTMLParser over sgmllib's parser - since sgmllib's enters an infinite loop on invalid input. - - * Updated getHelp() so callers can pass in the help string. This is - used in the Factoids plugin to dynamically generate a help string - based on a config value. - - * Updated questions.py so bolding is handled better. User input, - default values, and defined choices are no longer bolded. - - * Updated String.len to use wrap(). This greatly simplifies the - command and introduces better argument handling. - - * Updated a few uses of sre to use re if the bot is running under - Python 2.5. - - * Fixed test cases for mircColor and sorted (thanks dcraven). - - * Updated assertAction's error message to give useful information - about what went wrong. - -2006-07-23 James Vega - - * Version 0.83.2! (A long overdue bugfix release) - - * Added ADVANCED_PLUGIN_CONFIG, ADVANCED_PLUGIN_TESTING, CAPABILITIES, - USING_UTILS, USING_WRAP, STYLE, and PLUGIN_TUTORIAL docs. - - * Updated the Services plugin such that it will not spam GHOST - commands faster than once every 60 seconds (or as set by - supybot.plugins.Services.ghostDelay). - - * Updated the Seen plugin so that performing @seen with a leading - wildcard will not result in duplicate nicks in the response. - - * Updated RSS to handle the feed's advertised character encoding in - more of its commands. - - * Updated "Channel.ban list" to show how long until the ban expires. - - * Fixed the bug where addressed karma adjustments would cause the bot - to crash. - - * Fixed Alias.lock and Alias.unlock to work properly now that the - alias functions are no longer attributes of the Alias plugin. - - * Fixed a Windows-specific NameError in log.py. - - * Fixed Config.help to actually perform the string substitution of the - given config name. - - * Replace Twisted with Socket as the default network driver. - - * Added an --ssl option to Network.connect. - - * Added a question about SSL network connections in supybot-wizard. - - * Added recognition of UnrealIRCd's protected users and channelowners - as ops. - - * Updated URL.last to perform a case-insensitive search. - - * Updated the Author class so it performs the email munging. This - prevents munging occurring for punctuation in a person's name. - - * Updated ircutils' color handling to specify a default foreground - color of white if only a background color is specified. - - * Updated registry.StringWithSpaceOnRight to accept the empty string. - - * Updated registry.StringSurroundedBySpaces to be a single space if - given an empty string. - - * Updated utils.str.format to recognize digits before the '.' in %f - formatting. - - * Stop explicitly setting a umask. Instead we'll just obey the user's - umask. - -2005-09-01 James Vega - - * Version 0.83.1! - - * Fixed a bug in Owner where plugins would not be automatically loaded - unless the bot was connected to more than one network. - -2005-08-30 James Vega - - * Version 0.83.0! - - * Updated the Services plugin to realize it is identified when - NickServ says that the bot is already identified. - - * Updated Network.whois so that +s channels are only returned when in - that channel. - - * Updated RSS.info to retrieve the proper information from - rssparser's results. - - * Updated the RSS plugin to encode the headlines in the proper - charset, if the feed specifies an encoding. - - * Fixed a bug in Todo.todo when negative priorities are used. - - * Fixed a bug in Web where the entire title was not correctly parsed - from the web page. - - * Fixed a bug in Web where the title was correctly parsed, but a later - parsing problem caused the command to not reply with the title. - - * Fixed a bug in Misc.last where the last message in a channel was - skipped when the command was not called in that channel. - - * Fixed a bug in Channel.ban remove and Channel.ignore remove when - there were no bans or ignores. - - * Fixed a bug in User.hostmask list when there are no registered - hostmasks. - - * Changed the prefixName keyword argument to prefixNick. - - * Updated the socket handling to properly detect when an IPV6 - connection should be made. - - * Updated irclib to handle IRCds (like IRCNet) which send a - MAXLIST-style value for the MAXBAN 005 key. - - * Updated the plugin loading to happen during __init__ instead of when - receiving the 001 message. This allows the bot to connect to networks - that require a CTCP response on connect. - - * Updated the SIGHUP handler to reload the ignoresdb. - - * Fixed a bug in ircutils.isNick so that it no longer allows nicks to - start with a hyphen. - - * Fixed a bug in the first spec which would cause an error to be - raised if the first converter failed. - - -2005-05-30 James Vega - - * Version 0.83.0rc3! - - * Updated Topic such that it can undo the first topic change performed - in a channel. - - * Removed -O and -OO options for scripts/supybot. - - * Removed password hashing options for scripts/supybot-adduser. - - * Fixed a bug where RSS.remove wasn't removing the feed from - conf.supybot.plugins.RSS.feeds. - - * Fixed a bug in Topic.set where setting the first topic would change - the entire topic. - - * Fixed an AttributeError in the Ctcp plugin. - - * Fixed a problem where Supybot would attempt to connect to a network - it was already connected to. - - * Fixed a problem where a command with the same name as its plugin had - to be invoked as "plugin command". - - * Fixed an exception when irc.reply was called with a non-string - argument. - - * Fixed an ImportError in Twisted driver when OpenSSL wasn't - available. - - * Updated Socket driver to fix some longstanding issues. - - * Added supybot.drivers.maxReconnectWait, which determines the maximum - amount of time the bot will wait before attempting to reconnect to an - IRC server. - - * Added utils.python.Synchronized metaclass to ensure synchronized - access to class methods. - - * Moved utils.changeFunctionName to utils.python.changeFunctionName. - - -2005-05-12 James Vega - - * Version 0.83.0rc2! - - * Added News, Unix, and Insult plugins which were missing in the - previous RC. - - * Updated Misc.list to show the full configuration variable name when - the plugin has no commands. - - * Fixed an HtmlParseError exception in Web's title command and - titleSnarfer. - - * Fixed an ImportError exception when calling Todo.todo with no - arguments. - - * Fixed a bug where Channel.{enable,disable} would throw an exception - if only a command names was specified. - - * Added utils.str.ordinal (patch from genjamin AT gmail DOT com). - - -2005-05-02 James Vega - - * Version 0.83.0rc1! - - * Added supybot-botchk script. This script can be run from a - cron job to make sure your Supybot restarts when the computer it - runs on is rebooted, and can make sure the bot restarts if it - ever crashes (which it shouldn't). It also allows restarting the - bot without shelling out to the box it runs on; if you quit the - bot, it'll automatically restart. - - * Added supybot-plugin-doc script, which generates documentation for a - plugin. - - * Added SSL server support for the Twisted driver. - - * Added Web plugin, which contains most of the commands that were - in the (formerly included) Http plugin. - - * Added Reply plugin, which contains several commands that were - in the Misc and Utilities plugins. - - * Added Games plugin, which contains several commands that were - in the (formerly included) Fun plugin. - - * Added String plugin, which contains several commands that were - also in the formerly included Fun plugin. - - * Added Topic.fit, which adds a new topic to the end of the - channel topic, removing topics at the beginning as necessary to - squeeze the new topic in. - - * Added Seen.any, which reports the last time a person was seen - at all, rather than just the last time a person said something in - a PRIVMSG. - - * Added Web.fetch, which replies with the text of the given URL. - This might be useful in combination with Utilities.re command, - for pseudo-parsing URLs within aliases. - - * Added Note.next to retrieve the next unread note (patch from Sune - Foldager. Come back, Sune!). - - * Updated User.capabilities always to respond in private (for - owner users) and to prevent non-owner-users from retrieving other - user's capabilities. - - * Updated Relay.{join,part} so they require the admin capability. - - * Updated Plugin.contributors to pull author/contributor information - from the plugin in addition to the authors already hard-coded in - Supybot. - - * Added conf.supybot.protocols.irc.queuing.rateLimit.join to throttle - how fast Supybot joins channels. - - * Added conf.supybot.plugins.Herald.requireCapability, which specifies - the capability a user needs to affect another user's herald. - - * Added conf.supybot.plugins.ShrinkUrl.bold, which specifies whether - the plugin should use bold in its responses. - - * Renamed conf.supybot.plugins.Herald.throttleTime to - conf.supybot.plugins.Herald.throttle. - - * Renamed conf.supybot.plugins.Herald.throttleTimeAfterPart to - conf.supybot.plugins.Herald.throttle.afterPart. - - * Renamed the general log file (misc.log) to messages.log. - - * Renamed Google.metagoogle to Google.meta. - - * Renamed conf.supybot.protocols.irc.queueDuplicateMessages to - conf.supybot.protocols.irc.queuing.duplicates. - - * Updated Alias.add so that alias names can coincide with plugin names. - - * Added netsplit throttling to Herald. Now if only we could do - that to Relay... - - * Changed Todo's db format to a single flatfile db per user. - - * Fixed a bug where the nickInChannel converter would add the channel - to the args list. - - * Fixed some exceptions in RSS. - - * Fixed a problem with RSS not properly escaping feed names. - - * Fixed supybot.utils.str parsing of regular expression separators - other than / (patch from gcbirzan). - - * Fixed Owner.enable so that commands can actually be re-enabled. - - * Fixed Bug #1190350, incorrect extraction of a website's title. - - * Added various functions to supybot.utils.file (touch, writeLine, - readLines, chunks). - - * Renamed the 'regexps' attribute in callbacks.PluginRegexp - (formerly callbacks.PrivmsgCommandAndRegexp) to unaddressedRegexps - to callbacks.PluginRegexp so as to complement addressedRegexps. - - * Removed the extra argument to utils.str.pluralize which specified - whether or not to pluralize the string. - - * Changed the order of the arguments to utils.str.nItems. - - -2005-01-16 James Vega - - * Version 0.80.0! - - * Updated Babelfish to include Dutch, Greek, Russian, and traditional - Chinese as supported languages. - - * Updated RSS.rss to obey supybot.reply.oneToOne. - - * Updated registry.py to specify which registry value has an improper - docstring. - - * Fixed a bug in Ebay.auction, the "Current bid" regexp needed to be - updated. - -2005-01-12 James Vega - - * Version 0.80.0rc3! - - * Updated the Geekquote snarfer to snarf qdb.us' links. - - * Fixed a bug in Infobot, mis-typed registry value. - - * Fixed Network.connect to actually use the supplied password. - - * Fixed supybot.databases.plugins.channelSpecific.getChannelLink() - to return the proper channel link instead of returning the given - channel. - - -2005-01-11 James Vega - - * Version 0.80.0rc2! - - * Implemented Observer.remove, which disables and removes the observer - from all channels. - - * Added supybot.databases.channelSpecific.link.allow to determine - whether a channel allows other channels to link to its database. - - * Added supybot.plugins.BadWords.stripFormatting, which determines - whether the bot will strip any formatting before filtering bad words. - - * Added supybot.plugins.Markov.ignoreBotCommands, which determines - whether the Markov plugin will learn commands given to the bot. - - * Added a Network.driver command, which reports the current driver - being used. - - * Added an Infobot.update command, which allows the user to import an - existing Infobot factpack. - - * Added a Topic.replace command, which replaces the given topic with a - new topic. - - * Added a Note.search command, which allows the user to search for - notes they have sent or received. - - * Added supybot.databases.channelSpecific.getChannelLink(), which - returns a channel based on how channels link to each other. - - * Added supybot.plugins.Channel.banmask which specifies the default - method of generating Channel.kban's banmask. - - * Renamed supybot.databases.plugins.channelSpecific.channel to - supybot.databases.plugins.channelSpecific.link. - - * Updated RSS.announce such that it adds the arguments to the current - list of announced feeds instead of overwriting the current list. - - * Update the Google groupsSnarfer to work with Google's beta groups - website. - - * Updated Network.disconnect to announce that the disconnection - attempt has started. - - * Updated Debian.bug to handle website changes. - - * Updated Observer.{add,remove} to require the Admin capability. - - * Updated Infobot so that it actually works reasonably well; removed - the deprecation. - - * Updated Sourceforge to handle changes in the website. - - * Updated UrbanDict to handle changes in the website. - - * Updated plugins.getChannel and plugins.makeChannelFilename to - properly handle the new channelSpecific database setup. - - * Fixed a bug with ShrinkUrl.ln; the url needed to be urlquoted before - being passed off to ln-s.net. - - * Fixed some database conversion bugs in fundbConvert.py. - - * Fixed a bug in socketDrivers where reconnection attempts would - always occur immediately, thus continually blocking the bot. - - * Fixed an exception in registry.OnlySomeString's error method; - the parent method doesn't accept an argument. - - * Fixed a bug in RSS where announcing the same feed in multiple - channels would cause improper displaying of the new feeds. - - -2004-12-22 Jeremy Fincher - - * Version 0.80.0pre6! - - * Added a Topic.separator command, which replaces the current - separator with a new separator, changing the topic to reflect the - change. - - * Changed the supybot.user configuration variable so that if it - isn't configured, the user will stay up-to-date with the current - version of the bot. To take advantage of this, set your - supybot.user configuration variable to "" - - * Removed the supybot.databases.users.hash configuration - variable, so all bots hash by default. - - * Fixed a bug with AutoMode's auto-banning feature; a variable - was misspelled. - - * Fixed a bug with ChannelValues picking up children that aren't - channels. - - * Fixed Misc.apropos not to be case-sensitive. - - * Fixed bug in User.register; it works now. - - -2004-12-20 Jeremy Fincher - - * Version 0.80.0pre5! - - * Added a "shuffle" command to the Utilities plugin, which - shuffles its arguments. Useful in combination with - Utilities.last, which returns the last argument it's given, in - combination with Utilities.apply, in order to pick a random - string (think aliases). - - * Added supybot.plugins.Relay.noticeNonPrivmsgs, for making the - relay plugin use NOTICEs rather than PRIVMSGs to relay - non-PRIVMSG messages to a channel. This often affects tab - coloring in IRC clients and thus makes it so that relay messages - color the tabs like the actual messages would have. - - * Numerous bug fixes. Many, many bugs fixed. Oodles and oodles - of bugs have been fixed. Myriad bugs fixed. Get the idea? :) - - -2004-12-17 James Vega - - * Version 0.80.0pre4! - - * supybot.databases.plugins.channelSpecific.channel is now a - channelValue so that individual channels can decide to link their - databases. - - * Deprecated asyncoreDrivers. Use twistedDrivers or socketDrivers - instead. - - * Moved {eval,exec} from Owner.py to Debug.py in the sandbox. - - * Numerous bug fixes. - - -2004-09-30 Jeremy Fincher - - * Version 0.80.0pre3! - - * Deprecated FunDB, added two new plugins, Lart and Praise, to - handle the same features individually for larts and praises. - There is a script in tools/ that will convert from a FunDB to a - lart or praise database. - - * Deprecated the Infobot plugin, in expectation of a rewrite. - - * Deprecated the Quotes plugin, since we don't know anyone who - seriously uses it. Let us know if you do use it, because it may - be removed in a future version. - - * Added Karma.{dump,load} for dumping and subsequently loading - the Karma database. - - * Changed the News database implementation to a flatfile - database. - - * Removed the tinyurl shrinking code from the URL plugin and put - it in the ShrinkUrl plugin, and added the ability to use ln-s.net - as different URL shrinker as well. - - * Added an outFilter to the ShrinkUrl plugin that will shrink any - outgoing URL that is longer than the minimum length. - - * Added a Freenode plugin as proof-of-concept; the bot can now - use CAPAB IDENTIFY-MSG to ignore users that aren't identified. - - * Added the ability for the Seen plugin to match nicks with - wildcards. - - * Added a showLinks configuration option to the RSS plugin to - show links during announcements (and another such variable for - non-announcements). - - * Added the spellit, hebrew, and shrink filters to the Filter - plugin. - - * Added the ability to log to separate directories to - ChannelLogger. - - * Added the option to Lookup.add to add lookups that don't reply - with the key. - - * Added "at" and "until" commands to the Time plugin; they're not - perfect, and they don't parse nearly enough times, but they're - somewhat tolerable for now. - - * Added a Sourceforge.stats command. - - * Added single-letter commands to the Words plugin when a hangman - game is active. - - * Added supybot.plugins.Services.disabledNetworks, to disable the - Services plugin specific networks. - - * Added supybot.protocols.irc.vhost, for binding to a vhost - before connecting. - - * Added supybot.reply.format.time.elapsed.short, offering now a - "short" formatting for elapsed times. - - * Added supybot.commands.quotes, for configuring which quotes can - be used to quote arguments to commands. - - * Added supybot.databases.plugins.channelSpecific.channel, - specifying the "default channel" for non-channel-specific - databases to use. - - * Moved the supybot.humanTimestampFormat configuration variable - to supybot.reply.format.time. - - * Added a configuration variable determining the maximum length - of replies internally, so they can't suck up as much CPU as they - would otherwise. - - * Added a configuration variable determining the maximum nesting - depth allowed, so exceedingly nested commands will be stopped - before they're executed. - - * Added configuration variables concerning the formats used by - the central and plugin logging facilities. - - * Added a configuration variable determining the quote characters - used by the bot to quote literal strings. - - * Added support for line-wrapping the registry configuration - file. - - * Moved supybot.reply.{brackets,pipeSyntax} to - supybot.commands.nested. - - * Fixed a longstanding bug with the bot "forgetting" - channel-specific configuration variables if they weren't - exercised during the duration of the bot's uptime. - - * Fixed renames so they're finally persistent. - - * Fixed a bug having to do with Note and unsent notes. - - * Fixed several bugs in the interaction of Infobot with other - plugins. - - * Added commands.wrap, the new method for wrapping commands and - handling type validation errors consistently throughout the bot. - - * Upgraded many of the outside projects we include to their - newest versions. - - -2004-09-17 James Vega - - * Version 0.80.0pre2! - - * Added supybot.plugins.Google.colorfulSnarfer, which determines - whether the word 'google' in the bot's output will be made colorful - (like Google's logo). - - * Added the Time plugin, to hold all of our Time related commands. - - * Added max() and min() to Math.calc. - - * Added Unix.pid, which allows the Owner to retrieve the pid of the - bot's process. - - * Added supybot.plugins.Sourceforge.enableSpecificTrackerCommands, - which enables the rfe, bug, and patch commands. - - * Added Topic.topic, which returns the current topic of the channel. - - * Updated conf.Databases to use a more sane database ordering and - include anydbm. - - * Updated various plugins to use our new-style database abstraction. - Plugin databases using this new-style will be named Plugin.dbtype.db. - -2004-09-12 Jeremy Fincher - - * Version 0.80.0pre1! - - * Added the facility to supporting several different database - implementations in a plugin, allowing the user to specify which - databases are supported as well as in what order of preference. - - * Added the Insult plugin, for colorful, creative insults. - - * Added the UrbanDict plugin, for defining words based on - UrbanDictionary.com. - - * Added the Observer plugin, for watching a channel for regexps - and running commands when the bot sees such regexps. - - * Moved Http.geekquote to a new Geekquote plugin, added a command - for using qdb.us, and added a snarfer. - - * Added a SuperIgnore plugin, a good example of an inFilter and a - way to completely, totally ignore people. - - * Changed the name of the Network plugin to Internet. - - * Added a new Network plugin, and moved some commands from Owner, - Misc, and Relay to it. - - * Added CTCP flood protection. - - * Added a supybot.plugins.Karma.allowUnaddressedKarma - configuration variable, for allowing karma increments/decrements - similar to Infobot. - - * Added supybot.reply.whenAddressedBy.nicks, to allow users to - specify a list of nicks to which the bot will respond as if they - were its own nick. - - * Added the ability to support multiple-word karma - increments/decrements. - - * Changed Owner.rename to be handled persistently; now renames - work across restarts of the bot or reloads of a plugin. - - * Changed Misc.last to include a timestamp for when the message - was sent. - - * Added the Channel.alert command, to send all currently - connected ops on a channel a message. - - * Changed the MoobotFactoids plugin to allow commands to be - nested in factoids definitions and searches. - - * Removed the futurama command in favor of adding a - futurama.supyfact file to supybot-data. - - * Improved the Http.kernel command, showing more kernel types. - - * Added a new contributors command and a way of storing - contributors and their contributions in a plugin. - - * Changed the name of Anonymous.action to Anonymous.do, to be - more consistent with "say" and other bots (MozBot, iirc). - - * Added the ability for channel bans and ignores and global - ignores to have expiration times. - - * Added invalid command flood protection. - - * Changed RSS' headlines output to bold the separators in order - to make it easier to distinguish the headlines. - - * Added a --no-network option to supybot-wizard. - - * Added several attributes to IrcMsg objects as they pass through - the bot; currently we tag them with receivedAt, receivedBy, and - receivedOn. - - * Added RichReplyMethods.errorInvalid, a nice helper method for - sending errors about invalid values. - - * Changed the --nonetwork and --noplugins options to test/test.py - to --no-network and --no-plugins. - - * Changed plugins.makeChannelFilename, swapping the order of the - channel and filename arguments and making the channel optional. - - * Changed the first argument to callbacks.Privmsg.callCommand to - be a name rather than a method, for greater justice. - - * Added a new mechanism for ordering plugins (subclasses of - callbacks.Privmsg) which is much more flexible than a simple - priority system. - - -2004-09-06 James Vega - - * Version 0.79.9999! - - * Added stripFormatting option to ChannelLogger plugin, which - determines whether non-printable formatting characters are logged. - - * Added Sourceforge.patches command to complement the current bugs - and rfes commands. - - * Added abs() to Math.calc. - - * Improved the interface for Config.list. Now groups and values - are listed, with groups being denoted by a leading @. - - * Improved Config.config such that the user can specify the entire - config variable name (conf.supybot....). - - * Fixed a bug where ChannelLogger wouldn't log ignored nicks. - - * Fixed an incorrect path in INSTALL. - - * Fixed some missing imports in Unix's configure method. - - * Fixed a bug where an owner could publically retrieve a private - configuration variable. - - * Fixed an exception when trying to remove non-existent Heralds. - - * Fixed an exception in RSS.getHeadlines. - - * Fixed a couple bugs in Poll, when retrieving the Poll id. - - * Fixed a problem with trying to use socket.inet_pton under - Windows; Python doesn't build their Win32 port with IPV6 support, - so we have to brute-force IPV6 detection. - - * Fixed a few bugs with how Infobot handled the SQLite db. - - * Fixed others/convertcore.py so that liter-based units are - properly capitalized (L not l) and use 1000 as the conversion rate - for MB, KB, etc. since MiB, KiB, etc. are also known units. - - * Fixed a bug where Infobot would confirm an unaddressed factoid - definition. - - * Fixed a problem where Google.stats didn't keep track of all - searches. - - -2004-08-31 Jeremy Fincher - - * Version 0.79.999! - - * Added the ability to send long fortunes line-by-line rather - than all in one (or several) messages; it will do this if - supybot.reply.oneToOne is set to False. - - * Added many configuration variables to the Unix plugin, allowing - configurable commands and options to those commands. - - * Changed the output of Config.list to show groups with a - preceding @, rather than use the --groups option. - - * Changed the Google.stats (formerly Google.info) command to be - persistent, using the registry to record old values for the - number of searches made and the number of seconds Google has - spent searching for the bot. - - * Added module __revision__ logging to our exception logs, for - more information in bug reports. - - * Fixed a bug with asyncoreDrivers' handling of reconnects; it - would not reconnect when commanded to if it had reconnected - before. - - * Fixed several bugs where the bot was testing nicks for - equivalence without first normalizing them, leading to some false - negatives. - - * Fixed a bug with the handling of - supybot.reply.withNoticeWhenPrivate so all private messages - really are replied to with a notice. - - * Fixed Http.geekquote to match the current bash.org layout. - Also, made sure all ids are valid ids before requesting a quote - (apparently bash.org is returning a certain quote for all invalid - ids). - - * Fixed a bad regular expression in the Ebay plugin which could - cause the bot to suck up 100% CPU for a signficant (perhaps - practically infinite) amount of time. - - * Fixed a bug where the bot would sometimes reconnect to a - network after being told to disconnect. - - * Fixed an uncaught exception in Owner.connect when the user - forgets the network name - - -2004-08-30 Jeremy Fincher - - * Version 0.79.99! We're getting asymptotically closer to - 0.80.0! - - * Added Anonymous.action, to anonymously perform actions in a - specified channel. - - * Added a Karma.clear, so channel ops can clear the karma for a - given name. - - * Added a Topic.redo, to redo the last undo. - - * Added supybot.protocols.irc.umodes, to allow the bot to set - user modes upon connecting to a network. - - * Fixed numerous bugs involved with disconnecting, reconnecting, - and using multiple networks. - - * Fixed a bug that would prevent the bot from quitting except via - multiple Ctrl-Cs. - - * Fixed some mis-interaction between the Karma plugin and the - Infobot plugin. - - * Fixed RSS's announcements. - - * Fixed bug in Later whereby no more than one message could be - queued for a nick. - - * Fixed Services.configure, as well as several bugs in Services - which sometimes prevented the bot from identifying. - - * Fixed bugs in the Poll module that caused the list and poll - commands not to work. - - * Fixed the ebay snarfer. - - * Fixed exception raised by some CTCP messages when the URL - plugin was loaded. - - * Fixed Debian.version. - - * Fixed Amazon's use of unicode. - - -2004-08-27 Jeremy Fincher - - * Version 0.79.9! - - * Added Infobot, a plugin to emulate Infobot. - - * Added Anonymous, a plugin for anonymously saying things to a - channel. - - * Added Tail, a plugin which will tail logfiles and send the - new lines to a configurable list of targets. - - * Added NickCapture, a plugin which tries to recapture a nick - that's being used by someone else, both by watching for QUITs - with that nick and by checking via ISON for that nick. - - * Changed the behavior of "seen" with the --user switch instead to - be a separated command, Seen.user. - - * Changed the behavior of "seen" with no arguments instead to be - a separate command, Seen.last. - - * Moved the connect and disconnect commands from the Relay plugin - to the Owner plugin, so a Supybot can be on multiple networks - without ever loading the Relay plugin. - - * Added relay bot detection to the Relay plugin. Now, rather - than get involved in a loop with another relay bot, a Supybot - will (if it has ops) rain down its wrath upon the offender. - - * Added supybot.plugins.Quotes.requireRegistration, which - determines whether a user need be registered to add Quotes to - the Quotes database. - - * Added supybot.plugins.RSS.showLinks, which determines whether - the bot will show links to the RSS headlines along with the - normally displayed titles. - - * Removed supybot.reply.withPrivateNotice and split it into two - separate configuration variables, supybot.reply.withNotice and - supybot.reply.inPrivate. - - * Added supybot.log.stdout.wrap, to allow optional (defaulting to - True) wrapping of stdout logs. - - * Added supybot.databases.plugins.channelSpecific, a value that - determines whether the database used for channel-based plugins - will be a channel-specific database or a global database. This - value, ironically enough, is channel-specific -- channels can - each individually decide to be "part of the Borg" or to "be their - own channel." The default, of course, is for databases to be - channel-specific. - - * Changed the way channel databases are handled; instead of - generating #channel- files, instead we create a subdirectory - of the data directory named #channel, and then stick all the files - in there. It's a much cleaner way to do things, in our opinion. - - * Added several configuration variables to the Status plugin to - determine how verbose the cpu command is. These are, of course, - channel-specific. - - * Added a configuration variable to the Dunno plugin, - supybot.plugins.Dunno.prefixNick, which determines whether the - bot will prefix the nick of the user giving an invalid command to - its "dunno" response. Formerly, it never would; the default for - this variable, however, is True, because that's how the rest of - Supybot works. - - * Added Owner.rename, a command for renaming commands in other - plugins. - - * Added Config.channel, for getting/setting channel configuration - variables. - - * Fixed the problem with channels with dots or colons in them - raising exceptions whenever the registry was accessed. - - * Changed Fun.eightball to provide a similar answer for a question - asked multiple times. - - * Changed Fun.roulette to use a 6-barrel revolver. - - * Changed Bugzilla to use the registry, rather than a custom - flatfile database format. - - * Added the KeepAlive plugin, to send useless keepalive messages - to someone every some period. It's mostly just because we - noticed that MozBot had one, and we couldn't allow ourselves to - be outdone. - - * Changed the URL plugin to use flatfiles rather than SQLite - database. Also reduced the functionality of the last command by - removing some options that no one ever really used, and removed - the random command (who uses that anyway?) - - * Changed the Words plugin not to use SQLite. We lose the - anagram command, but crossword and hangman become much easier to - use, since all the user has to do is put a words file in - data/words. - - * Changed the Relay plugin to rely only on the registry, allowing - it to start and join all networks and channels with no user/owner - interaction at all. Also, removed the Relay.say and - Relay.reconnect commands, since both can be accomplished easily - using the Relay.command command in combination with - Owner.reconnect and Anonymous.say commands. - - * Added supybot.reply.withNoticeWhenPrivate, to make the bot - reply with a notice when it privately messages a user -- this - generally means that the user's client won't open a query window, - which may be nice. Do note that users can override this setting - via the user registry variable of the same name. - - * Added supybot.nick.alternates, which allows a list of alternate - nicks to try, in order, if the primary nick (supybot.nick) is - taken. Also added a nick-perturbation function that will change - supybot.nick if there are no alternates or if they're all taken - as well. As a result, removed supybot.nickmods. - - * Changed ChannelLogger to log channels to logs/ChannelLogger, - rather than simply logs. - - * Added the ChannelRelay plugin, to relay messages between two - channels. This might be useful for people who want to forward - CVS update messages from one channel (such as #commits) to - another. - - * Added Channel.mode, to set modes in the channel, Channel.limit, - to set the channel limit, Channel.moderate and - Channel.unmoderate, to set +m and -m, respectively, and - Channel.key to set or unset the channel keyword. - - * Added a new plugin, Format, which offers several commands for - formatting strings on IRC. Moved several commands from to it - from the Utilities plugin. - - * Improved the functionality of RSS.announce. Calling it with - no arguments now lists the currently announced feeds. Removing - feeds is done by specifying the --remove option. - - * Added a reconnect command to the Owner plugin. - - * Added aol and rainbow filters to the Filter plugin. - - * Added Nickometer plugin, a translation of Infobot's Nickometer. - - * Added multiple recipient support for notes. - - * Added BadWords.list, to list the bad words currently being - censored by the bot. - - * Changed Misc.help to allow plugins to specify their own help, - and added help for several of the more confusing plugins. - - * Added Dunno.stats, to return the number of dunnos in the - database. - - * Added the Currency plugin, to perform currency conversions. - - * Added conf.supybot.plugins.Karma.allowSelfRating, which - determines whether users are allowed to adjust the karma of their - current nick. - - * Added --nolimit option to Misc.last, which causes it to return - all matches that are in the history. - - * Added conf.supybot.plugins.Herald.defaultHerald, which provides - a default herald to use for unregistered users. Herald.default - was also added as a friendly interface to managing the - defaultHerald. - - * Added Weather.wunder, which uses wunderground.com to report the - current weather status. - - * Changed supybot.defaultCapabilities to be a space-separated - list rather than a comma-separated list. Also added a check to - make sure -owner was in supybot.defaultCapabilities, and to - require a command-line option to allow it not to be present. - - * Added Sourceforge.fight, which returns the list of specified - projects and their bug/rfe count in sorted order, least to most. - - * Added Utilities.reply for replying to a person with text. Like - echo, but it prepends the nick like the bot normally does. - - * Changed Utilities.success to accept an optional argument - for text to be appended to the success message. - - * Changed User.{addhostmask,removehostmask,register,unregister} - to allow owner users to do what they will with their users. You - can now add hostmasks, remove hostmasks, register users, and - unregister users willy-nilly. - - * Changed and moved several configuration variables. - supybot.{throttleTime,maxHistoryLength,pingServer,pingInterval} - all moved to supybot.protocols.irc; supybot.httpPeekSize moved to - supybot.protocols.http; supybot.threadAllCommands moved to - supybot.debug.threadAllCommands, and probably a few others I - forgot to mention. - - * Added Http.zipinfo, which returns a veritable plethora of - information about the supplied zip code. - - * Added a configuration variable for every plugin, "public", that - determines whether the plugin is considered public (i.e., whether - it will show up in the list command when the list command isn't - given the --private option). - - * Added Misc.author, a command for finding out which author - claims a particular plugin. - - * Added Topic configuration supybot.plugins.Topic.format template - string allowing full customization of the Topic items. - - * Added Topic.lock and Topic.unlock, for locking and unlocking - the topic (setting +t or -t, respectively) - - * Added Topic.restore, for restoring the topic to the last-sent - topic. Useful for when people change your carefully crafted - topic by means other than the bot. - - * Changed supybot.brackets so you can now provide the empty - string, which means you cannot do nesting of commands. - - * Added Utilities.last, which replies with the last string - given to it. This is useful for sequencing commands and then - replying with the output of the last commnad. - - * Updated RSS.info to accept a feed name as well as a url. - - * Added a signal handler for SIGTERM, so you folks killing your - bots uncleanly won't have as many bugs :) - - * Added a signal handler for SIGHUP that reloads the bot's - various configuration files. - - * Added a new configuration variable, supybot.pidFile, which - determines what file the bot should write its PID to. The - default is not to write the PID file at all. - - * Added a comma argument to utils.commaAndify, which specifies the - character to use in place of the comma. - - -2004-04-16 Jeremy Fincher - - * Version 0.77.2! - - * Fixed numerous bugs, high and low, big and small and - in-between. Definitely worthy of a release. - - * Added supybot.plugins.ChannelLogger.includeNetworkName, so the - logs aren't strangified when relaying between channels. - - * Added a --capability option to User.list, to allow people to - list all the users possessing a certain capability. The main - reason this was added is so jemfinch can tell who owns which - Supybots on #supybot :) - - * Added Utilities.success, mostly for making aliases such that - they can respond with success if no errors were encountered in - any nested commands. - - * Changed the name of the new filter, colorstrip, to be - stripcolor. Better now than after it was highly established :) - - * Added configuration variables - supybot.plugins.Services.NickServ.password (which replaces the - old supybot.plugins.Services.password) for specifying the - NickServ password, as well as - supybot.plugins.Services.ChanServ.{op,halfop,voice}, which - determine what the bot should request of ChanServ when it - identifies or joins a channel. These latter variables are, of - course, channel variables. - - * Added configuration variable - supybot.plugins.Babelfish.languages (which replaces the old - supybot.plugins.Babelfish.disabledLanguages) for specifying - which languages will be translated/spoken. - - * Fixed bug #863601, plugin BadWords fails on color codes. - - * Replaced Sourceforge.{rfe,bug} with Sourceforge.tracker, which - can query any tracker type (not just RFEs and bugs) and responds - with more information, a la trackerSnarfer. - - * Added supybot.log.individualPluginLogfiles, which determines - whether plugin logs will be logged to their individual logfiles - in addition to the misc.log logfile. - - * Added supybot.plugins.WordStats.ignoreQueries, which, when - true, makes the bot ignore queries (and not increment its word - statistics). - - * Added the LogToIrc plugin, for sending logs to an IRC - channel or nick. Useful for traceback notification and whatnot. - - * Changed supybot.log.timestampFormat to specially handle the - empty string -- if it's set to the empty string, it will log - times in seconds-since-epoch format. - - * Added supybot.plugins.Weather.convert, which determines whether - or not Weather.{weather,cnn,ham} will convert temperature to the - configured temperatureUnit. - - * Changed User.setpassword not to require the to - be correct if the requesting user has the owner capability (and - isn't the owner themself). - - * Added ircutils.strip{Bold,Reverse,Underline,Formatting}, which - will remove the specified formatting or all forms of formatting - in the case of stripFormatting. - - -2004-04-09 Jeremy Fincher - - * Version 0.77.1! - - * Added supybot.reply.errorWithNotice to make the bot give its - error messages in a notice. - - * Added Filter.colorstrip, an outfilter that strips all color - codes from messages. - - * Added supybot.plugins.BadWords.{replaceMethod, nastyChars, - simpleReplacement, requireWordBoundaries}; see the associated - help strings to find out what they do. - - * Added supybot.plugins.Babelfish.disabledLanguages, to disable - certain languages from being translated/spoken. - - * Added supybot.reply.maximumMores, to give users the ability to - set the maximum number of "more" chunks replies will generate. - - * Added supybot.reply.truncate, to turn off the normal chunking - of replies that later can be retrieved with the more command. - Setting this variable to On means that no chunks will ever be - created. - - * Added supybot.plugins.Enforcer.takeRevengeOnOps, which makes - the bot even take revenge on #channel,ops who try to violate the - channel configuration. Of course, such people can change the - channel configuration to their bidding, but it's a decent - protection against errant botscripts or something. - - * Added supybot.plugins.Channels.alwaysRejoin, to make the bot - always rejoin when it's kicked. - - * Added supybot.databases.users.hash, allowing those running bots - to specify the default hashed/unhashed state of user passwords in - the config file. - - * Added Debian.bug, which retrieve bug info from Debian's BTS. - - * Changed Relay.names to Relay.nicks, to be consistent with - Channel.nicks. - - * Added supybot.brackets, a configuration variable for specifying - which set of matching brackets to use for nested commands. Valid - values are [] (the default), {}, <>, and (). - - * Added a configuration variable to ChannelLogger, timestamp, - which determines whether the bot will timestamp its logfiles. - This is a channel-specific variable, of course. - - * Updated ChannelLogger not to log messages starting with - [nolog], in order to allow private information to remain private. - - * Added a configuration variable to ChannelLogger, - flushImmediately, to cause all channel logs to be flushed every - time they're modified, for those people who like to read the logs - through tail -f or something similar. - - * Updated WordStats to allow removing of tracked words. - - * Updated Seen.seen to accept no arguments and return the last - message spoken by anyone. - - * Updated the Herald plugin to use the standard substitute until - we get it updated to use commands as heralds instead of plain - strings. - - * Updated echo to use the standard substitute on its reply. - - * Updated Network.whois so that it can now retrieve - information on all domains. - - * Updated the Weather plugin to be retrieve weather from either - hamweather.net or cnn.com. Also added - supybot.plugins.Weather.{command,temperatureUnit} so that you can - specify which command (Weather.cnn or Weather.ham) to use when - Weather.weather is called and in which unit (C, F, K) to report - the weather. - - * Updated standard replies (such as supybot.replies.success, etc.) - to use the standard substitute (such as $nick, $who, $channel, - etc.) in their text. - - * Fixed snarfers to respect lobotomies. - - * Fixed Admin.join not to add the channel to the supybot.channels - registry entry if joining the channel wasn't successful. - -2004-02-20 Jeremy Fincher - - * Version 0.77.0! - - * Changed the format of the user and channel databases to - something much more readable and user-editable. Be sure, if - you're upgrading, to run tools/ircdbConvert.py on your user and - channel databases *BEFORE* installing the new version. - - * Updated almost every document we have, and added a - GETTING_STARTED document. Yay! - - * Added several new options for Channel.kban: --exact, --nick, - --user, --host, for more flexibility in determining what the - banmask is. - - * Added a Scheduler plugin for scheduling events to occur at - specific times. - - * Added a Herald plugin for announcing to the channel the arrival - of certain users. - - * Changed the reply method of the irc object given to plugins not - to require a msg object. - - * Added inter-factoid references for MoobotFactoids. Simply - define a factoid as "see " (and nothing else) and it - will automatically go pick up the value for that factoid and - display it in its place. Sort of a "symlink" for MoobotFactoids. - - * Added the ability to reply to factoids without the "whatis" in - the Factoids plugin. Now, you can use "@foo" instead of "@whatis - foo". - - * Added --{from,to} and --sent options to Note.sent. - - * Changed Note.get to simply be "note". Instead of "note get - 145", you should use "note 145". - - * Changed channel capabilities to use a comma to separate the - channel from the capability instead of a period. This is because - channels can include periods (but not commas) and since we now - allow "plugin.command" capabilities, there's no way to know - whether a given dot is separating the channel from the capability - or the plugin from the command. - - * Removed Admin.setprefixchar, since it's unneeded with the new - configuration. - - * Removed Status.bestuptime, since it was buggy and no one felt - like maintaining it. - - * Added Http.cyborg, a fun little command for getting cyborg - abbreviations for names. - - * Added Sourceforge.totalbugs and Sourceforge.totalrfes - - * Removed Owner.{set,unset} since they matter not. - - * Made the smileys and frowns configurable in ChannelDB. - - * Added a vast array of new configurables -- check out the various - config commands in Configurable plugins to see. - - * Added better error reporting for Admin.join, explaining to the - user if the bot can't join the channel. - - * Added a title-snarfer to the URL plugin. - - * Added Relay.command, a command for sending commands to the bot - on a different network. - - * Added Bugzilla.search, a new command for searching a bugzilla - installation - - * Added an INVITE handler in Admin, allowing users with the admin - capability to INVITE the bot to a channel. There's also a config - variable, alwaysJoinOnInvite, that will cause the bot to join - a channel whenever someone invites it to a channel, not just users - with the admin capability. - - * Added conf.requireChannelCommandsToBeSentInChannel for requiring - all channel-related commands to be sent in the channel. - - * Added conf.followIdentificationThroughNickChanges for having the - bot update user's identified hostmask when they change nicks. - - * Added conf.replyWhenNotAddressed, a configuration variable for - having the bot always attempt to parse a message as a command. - - * Added conf.replyWhenAddressedByNick, a configuration variable - for having the bot *not* respond when addressed by its nick. - - * Added conf.replyWithNickPrefix, a configuration variable for - having the bot not prefix the nick of the person giving a command - to the reply. - - * Changed all "zegrep" stuff to "zgrep -e" stuff, since zegrep is - on fewer platforms than zgrep. - -2003-12-12 Jeremy Fincher - - * Version 0.76.1! The birthday release! - - * Fixed a bug in irclib.py that could cause the bot to loop, - connecting and disconnecting from the server because it didn't - think the server responded to its PING. - - * Fixed a bug in the Services implementation that could cause - the bot to continually loop, connecting and disconnecting from the - server. - - * Fixed Misc.help to follow the same default plugin rules that the - rest of the bot follows. - - * Added better error reporting to Admin.join, so the various error - conditions that might make the bot incapable of joining a channel - will be reported. - - * Updated RootWarner to be configurable, offering each channel the - ability to define whether or not people who IRC as root will be - warned, what that warning will be, and whether or not they should - be kicked. - - * Added a configurable 'topic-sync' to the Relay plugin to - determine whether the topics of the two channels should be kept - synchronized. - - * Added Lookup.search for searching the various loaded lookups. - - * Added Topic.reorder, a new command for reordering the topics in a - specific manner. - - * Added Topic.list, a new command for listing the topics in a - channel (mostly in order to help out with Topic.reorder :)) - - * Added Http.extension, a new command to retrieve file extension - information from filext.com. - - * Updated Todo.remove to allow removing multiple taskids - - * Updated Relay.whois to include a user's away status and identified - state, if the server supports it. - - * Added utils.sorted, which does what list.sorted will do when 2.4 - is released. - - * Added ircutils.isCtcp, for determining whether or not a message - is a CTCP message. - -2003-12-6 Jeremy Fincher - - * Version 0.76.0! - - * Added a "trusted" capability that defaults to off (-trusted) and - is required for Utilities.re (with which it's possible to DoS the - bot) and for the new Math.icalc (with which it is trivially - possible to DoS the bot). - - * Added Math.icalc, a new command for doing integer arithmetic. - It requires the "trusted" capability. - - * Added the Fun.ping command, because MozBot has it. - - * Added Note.unsend command, to allow users to "unsend" notes - they've sent but whose recipient has not yet read. - - * Added Channel.{deop,devoice,dehalfop,kick}. - - * Added Http.size and Http.doctype and Http.headers to retrieve - various meta-information on URLs. - - * Added a ranking to ChannelDB.wordstats. - - * Added Karma.most for determining various "mosts" in the Karma - database. - - * Added User.list command to list registered users. - - * Added 'roulette' command to Fun plugin. - - * Added a Channel.lobotomies command to list the channels in which - the bot is lobotomized. - - * Added a swap function to Math.rpn. - - * Changed the name of User.changeusername to User.changename. - - * Changed the logging infrastructure significantly; each plugin - now has its own logger (and thus logfile), in addition to being - logged in the main logfile. - - * Fixed bug in which the bot wouldn't rejoin channels after a - reconnect. Thank the Lord for tcpkill :) - - * Fixed Http.freshmeat for projects with a space in their names. - - * Changed RSS so RSS feed commands may be added while the bot is - running, and so added RSS feed commands are in the RSS plugin. - - * Changed Lookup so added lookups are added in the Lookup plugin - itself so there's no dependency on Alias, and so loaded lookups - can be seen via 'list Lookup'. - - * Fixed bug #850931 as well as several other minor bugs in - Utilities.re. - - * Fixed bug #851254, Factoids.whatis didn't work on numeric keys. - - * Added the ability to turn on/off the showing of ids in FunDB - excuse/insult/praise/lart. - - * Added the to= keyword argument to the various reply functions to - you can specify a target to send the message to. - - * Changed socketDrivers to allow more time (10x more, to be exact) - for connecting to the network than for the normal read. - - * Fixed a bug in Http.weather that would cause an ugly error - message for a command like "weather hell". - - * Added the number of strings to the Fun.object output. - - * Fixed bug in RSS.configure; no aliases could be added. - - * Changed Alias.freeze to Alias.lock. - - * Fixed sorting in Status' uptime database. - - * Updated the Gameknot tests for expired games, and updated the - Gameknot plugin to handle such links in its snarfer. - - * Added a 'server' attribute to Irc objects to unify the way to - access such information. - - * Added revision command for finding out the revision of the files - in a running bot; also added __revision__ strings so CVS would be - happy to keep such information for us :) - - * Fixed bug #848475 -- bad error message from regexp-expecting - commands. - - * Stopped listing the plugin dispatcher command in the list of - commands for that plugin. - - * Fixed bug in Gameknot.gkstats when retrieving the stats for - users who haven't yet played a game. - - * Added a numUsers() method to ircdb.UsersDB (ircdb.users). - -2003-11-18 Jeremy Fincher - - * Changed commands so that plugins no longer have to make sure - that their commands are unique within the bot. Ambiguous commands - will reply with an error message and instruct the user to - disambiguate the command by prefixing with the appropriate plugin - name.. Many commands that formerly contained the plugin name (or a - portion thereof) have had it removed, and many plugins have had - their names changed so prefixing a command with the plugin name is - less bulky. Rather than list each individual example, you can - read the plugin documentation posted at ***TODO*** - - * Renamed numerous plugins: OwnerCommands became Owner, - AdminCommands became Admin, ChannelCommands became Channel, - MiscCommands became Misc, UserCommands became User, URLSnarfer - became URL, Notes became Note, FunCommands became Fun, IMDB became - Movies, and Aliases became Alias. - - * Made aliases persistent across reloads/bot restarts. You should - probably change your botscripts not to add the aliases onStart, but - (assuming those aliases don't change) it should still work fine. - - * Added the ability for users to specify that their passwords - should be hashed on disk. - - * Added MoobotFactoids plugin for moobot-style factoids (which are - meant to mimic blootbot-style factoids). People used to - traditional IRC bot factoids plugins will probably find this - plugin more to their taste than Factoids. - - * Added Ebay plugin for snarfing eBay URLs as well as getting info on - certain auctions. - - * Added monitoring of occurrences of certain words on a per-user - basis, adding two new commands to ChannelDB (addword and - wordstats). - - * Added Bugzilla module for accessing various data in Bugzilla - pages. - - * Added QuoteGrabs module which allows people to grab interesting - quotes from other people and store them in the bot for later retrieval - (also optionally have the bot randomly snarf quotes). - - * Added a "change" command to change factoid values in the Factoids - plugin. - - * Added Dunno plugin as an optional replacement for the boring 'no - such command' response. - - * Changed FundB to allow accessing excuses, larts, and praises by - id. - - * Added substitutions for 'me' and 'my' in insult/praise/lart. - - * Added 'change' and 'old' commands for News. - - * Added ASPN Python Cookbook URL snarfer. - - * Moved karma out of ChannelDB and into its own Karma plugin. - - * Moved uptime-related commands to from FunDB to the Status plugin. - - * Renamed the Network.internic command to whois, since we can now fix - ambiguity by prefixing the plugin name. - - * Removed the "googlesite" function. - - * Removed "dictserver" command in favor of using the Configurable - framework with the Dict plugin instead. - - * Removed TwistedCommands plugin to the sandbox; the one command - it provided (dict) is now better provided in the Dict plugin. - - * Removed the Moobot plugin (the commands were moved to the Fun - plugin or dropped entirely). - - * Removed all example strings from plugins. To be replaced with an - automated process later. - - * Converted several plugins to the new Configurable plugin type - Plugins modified include Bugzilla, ChannelDB, Dict, Ebay, - Enforcer, Gameknot, Google, Python, Relay, and URL (formerly - URLSnarfer). - - * Changed ChannelDB database to use integer user ids instead of text - usernames. - - * Changed Http.geekquote to use multiline geekquotes (and removed - the option to do so, since it's now the default). - - * Added a --id switch to geekquote to pick a specific geekquote. - - * Changed most commands in News to require the 'news' capability. - - * Changed Relay.names output to show (and sort by) status in the - channel. - - * Removed 'relaycolor' command in favor of Configurable framework. - - * Added total memory usage to 'cpustats' output for several *nix - platforms. - - * Removed the total percentage of CPU time from 'cpustats'. Not - only was it inaccurate, but we needed the room for memory stats. - - * Changed Topic.shuffle to ensure that the topic is actually - shuffled. - - * Changed all commands which take an index (various Topic and - Factoids commands) to index from 1 instead of 0. - - * Fixed several bugs in Unix.spell whereby the bot could be - frozen. - - * Changed the name of the "bug" command in the AdminCommands - plugin to "reportbug" instead. - - * Added QUIT stat-keeping to ChannelDB. - - * Removed the OwnerCommands.say command; it wasn't useful enough, - and is so easily written that anyone can have it back if they want - it. - - * Changed OwnerCommands.load (and reload) to be case-insensitive, - so "load funcommands" works just as well as "load FunCommands". - - * Changed the keyword parameter "needed" to privmsgs.getArgs to be - "required" instead. It just sounds better, works with "optional" - better, and we won't get an opportunity later to change it. - - * Updated IrcObjectProxy.reply to allow a "notice" boolean keyword - to determine whether or not to reply via a notice. - - * Added privmsgs.urlSnarfer, a wrapper around snarfer methods that - handles both the threading and the limiting of replies so loops - between two snarfing bots can't happen. - - * Added structures.PersistentDictionary for dictionaries that - should be saved to a file in repr()ed form. - - * Added structures.TwoWayDictionary for dictionaries that should - map keys to values and vice versa. - - * Added a curry function to fix.py for doing currying (if you - don't know what it is, don't worry about it :)) - - * Added utils.depluralize to do the opposite of utils.pluralize. - - * Added utils.safeEval for safe evaluation of Python data - structures (lists, dictionaries, tuples, numbers, strings, etc., - but no operations on them). - - * Added utils.saltHash for handling the hashing of passwords with - a salt. - - * Added plugins.standardSubstitute to do standard substitutions - for things like $who, $nick, $channel, etc. - - * Added plugins.Configurable, a plugin mixin that allows easy - specification and persistence of configurable data on a global and - per-channel basis. - - * Fixed plugins.ChannelDBHandler (and added plugins.DBHandler) to - be threadsafe, so threaded plugins could still use a database, and - non-threaded database-using plugins could still receive the - results of a threaded command. - - * Removed ircutils.privmsgPayload and ircutils.shrinkList, both of - which existed prior to the addition of more, and aren't needed - anymore. - - -2003-10-12 Jeremy Fincher - - * Version 0.73.1! - - * Fixed a bug in Math.{calc,rpn} where certain functions - ("degrees" in particular) that didn't like complex arguments would - fail on numbers on which they shouldn't. - - * Added an optional "key" argument to ChannelCommands.cycle. - - * Fixed bolding in supybot-wizard.py. - - * Fixed handling of the secure flag by ircdb.IrcUser.setAuth; - previously it didn't prevent someone with an unmatched hostmask - from identifying. - - * Fixed imports in the DCC plugin. - - * Fixed a bug where the bot would not reply to nick-addressed - messages on a channel if its nick wasn't entirely lowercased. - - * Fixed the Relay plugin to relay topic changes; an oversight not - caught earlier because supybot has for a long time managed our - topics. - - * Fixed a bug in the Services plugin where the bot would ghost - itself if its nick didn't match in case the nick given. - - * Added the ability for PrivmsgCommandAndRegexp to have regexps - that are called *after* callbacks.addressed has been called on the - message -- see ChannelDB.{increase,decrease}Karma for an example. - - * Fixed bug in supybot-wizard.py where plugins without configure - functions would raise an uncaught exception. - - * Fixed debincoming to work since the removal of baseplugin; it - was missing an import. - - * Fixed MiscCommands.doPrivmsg to send an IrcObjectProxyRegexp to - the replyWhenNotCommand function. - - * Fixed debversion to display the correct output when no matching - packages were found. - - * Fixed ChannelDB to import conf; karma didn't work otherwise. - - * Fixed a bug in the Enforcer plugin that would cause the bot to - ban everyone from the channel whenever ChanServ deopped someone. - - * Changed the "whois" command in the Network plugin to "internic" - instead. - -2003-10-05 Jeremy Fincher - - * Version 0.73.0! - - * Added the News plugin, news handling for channels. - - * Changed the initial character of anti capabilities to '-' - instead of '!'. '!' can be the initial character in a channel - name, and so any command using getChannel and accepting a - capability as its first argument (several in ChannelCommands) will - have difficulties (the channel then *must* be specified since - getChannel will consider !capability to be a channel name). Note - that this means you'll need to either remove and re-create or edit - your config files to change ! to - in capabilities. - - * Removed the "cvsup" command; it's been useless since we had a - global install, and can only serve to confuse. - - * Added a "private" command to MiscCommands to allow users to - specify that a response should be made in private. - - * Added a "secure" flag to user database records that *requires* - that one of the user's hostmasks match if the user is to be - recognized. This flag may be set with the "setsecure" command. - - * Added a convert command to the Math plugin. More conversions - are necessary, if anyone's interested in doing it. The available - units are available via the "units" command. - - * Fixed the pydoc command to allow access to standard Python - modules that are shared libraries rather than pure Python code. - - * Added a "Python" plugin and moved FunCommands.{pydoc,zen} to - it. - - * Fixed the supybot- scripts to use optparse so they now - accept many command line options (but most importantly, the --help - option :)) - - * Added a debincoming command to the Debian plugin; it searches - the available packages at http://incoming.debian.org/ - - * Moved the "bug" command from MiscCommands to AdminCommands in - order to prevent possible abuse. - - * Changed ChannelDB.seen to default to using nicks; a --user - option can be passed to use the old behavior. Note that this - means you'll have to update your ChannelDB database; use this - SQL statement to do so: - CREATE TABLE nick_seen ( - name TEXT UNIQUE ON CONFLICT REPLACE, - last_seen TIMESTAMP, - last_msg TEXT - ); diff --git a/RELNOTES b/RELNOTES deleted file mode 100644 index fd4647142..000000000 --- a/RELNOTES +++ /dev/null @@ -1,435 +0,0 @@ -Version 0.83.5 - -The minimum supported Python version has been bumped to 2.6. - -utils.str.perlVariableSubstitute is deprecated in favor of using Python's -string.Template directly. perlVariableSubstitute will be removed in a future -release. - -Factoids' config variable supybot.plugins.Factoids.factoidPrefix has been -replaced by supybot.plugins.Factoids.format, which allows the user to -determine exactly how replies to Factoid queries are formatted. - -supybot-botchk no longer runs supybot inside an instance of /bin/sh. - - -Version 0.83.4.1 - -Simple bug-fix release for a couple changes that were introduced last minute -before the previous release. - -No incompatibilities. - - -Version 0.83.4 - -This release contains fixes for Python2.6 compability as well as a re-written -Google plugin which uses the AJAX API. The re-written plugin gained a -translate command and no longer needs an API key. - -ChannelLogger has a new config variable, supybot.plugins.ChannelLogger.enable, -which can be used on a per-channel basis to determine whether that channel is -logged. - -The RSS announce command has been restructured into the commands "announce -list", "announce remove", and "announce add" in order to simplify the -command's use. - -The supybot.directories.plugins config variable now determines its global -directory dynamically instead of adding the directory to the value. This -means values like '/usr/lib/python2.5/site-packages/supybot/plugins' can be -removed from the variable. This should help ease transitioning a Supybot -config from one Python release to another. - -Incompatibilities: -supybot.plugins.Google.safeSearch has been renamed to -supybot.plugins.Google.searchFilter - -supybot.plugins.Channel.banmask has been removed in favor of a new -supybot.protocols.irc.banmask config variable. This general config variable -is used by the various commands which would need to know what style of banmask -to use. - -Version 0.83.3 - -Overdue bug fix and Python2.5-compatible release. No significant changes to -worry about from the user perspective. - - -Version 0.83.2 - -Mainly bug fix release. The most noticeable change being a value of -'default' for supybot.drivers.module will use Socket instead of Twisted. - - -Version 0.83.1 - -No incompatibilities, just fixing an important bug with plugin loading. - - -Version 0.83.0 - -This far overdue release contains mostly bug-fixes. - -Incompatibilities: -Changed the prefixName keyword argument (which appears in various places -in callbacks.py and the reply-related irc methods) to prefixNick. - - -Version 0.83.0rc3 - -This release candidate contains mostly bug-fixes. - -Incompatibilities: -utils.changeFunctionName was moved to utils.python.changeFunctionName - - -Version 0.83.0rc2 - -This release candidate contains a few bug-fixes and some plugins we -forgot in the last RC. Otherwise, everything is compatible. - - -Version 0.83.0rc1 - -There have been some fairly significant changes since our last release. -This means that you should uninstall your previous version before -installing this version. - -First, plugins are now a directory of files rather than a single file. -This makes it much easier for an individual plugin to supply any -3rd-party modules it may depend on and resolves some bugs we had with -reloading plugins. supybot-plugin-create (nee supybot-newplugin) has -been updated to reflect this. A side effect of using a directory-based -plugin is that @load/@reload are now case-sensitive. "@load foo" is not -the same as "@load Foo". - -As part of the conversion to the new plugin format, some plugins were -broken up into more focused plugins. Also, not all of the plugins that -we used to ship are part of this release. Some we moved to the -supybot-plugins package and some others (which would be candidates for -supybot-plugins) have yet to be converted to the new format. - -Second, we've updated the scripts that ship with Supybot. As noted in -the previous section, supybot-newplugin is now named -supybot-plugin-create. We've also added the following scripts: - -supybot-botchk - Handy script for starting the bot and keeping it - running. Ideal for having cron automatically start the - bot. -supybot-plugin-doc - Generates documentation for the specified - plugin(s). Currently, the documentation is - generated using Structured TeXt so that it can - easily be uploaded to our website. -supybot-plugin-package - The beginning of a script to make a plugin - package which can be uploaded to our website - for general consumption. -supybot-test - Runs a plugin's test suite. - -Third, we've broken supybot.utils into focused sub-modules. There's no -longer a supybot.fix module and we now have the following modules: - -supybot.utils.file - utilities for dealing with files (e.g. the old - supybot.utils.transactionalFile is now - supybot.utils.file.AtomicFile) -supybot.utils.iter - utilities for dealing with iterables (all, any, - partition, groupBy, choice, etc) -supybot.utils.gen - general purpose utilities which are imported into - the supybot.utils namespace -supybot.utils.net - utilities for dealing with the network -supybot.utils.python - utilities for dealing with Python -supybot.utils.seq - utilities for dealing with sequences -supybot.utils.str - utilities for dealing with strings (including our - new format() function) -supybot.utils.structures - general purpose structures used in Supybot -supybot.utils.web - utilities for dealing with the web (used to be - supybot.webutils) - -Fourth, we've added source-nested plugins (using the class -callbacks.Commands). This allows you to group similar commands -together. Some examples are: - -Channel.{ban add,ban list,ban remove} -User.{hostmask add,hostmask list,hostmask remove} - -Fifth, we've removed the privmsgs module. All of the functionality -that was offered in that module is now available by using commands.wrap. -Use of this is documented at: -http://supybot.com/documentation/help/tutorial/wrap - -Sixth, we've renamed some plugin-related API changes. Some classes had -their names changed. The old names are still available for -backwards-compatibility. - -callbacks.Privmsg -> callbacks.Plugin -callbacks.PrivmsgCommandAndRegexp -> callbacks.PluginRegexp -callbacks.IrcObjectProxy -> callbacks.NestedCommandsIrcProxy - -callbacks.PrivmsgRegexp was removed since its functionality is covered -by setting using PluginRegexp. - -Also, the prototype for a plugin's __init__ method changed: - -def __init__(self): -> def __init__(self, irc): - -Remember to pass the irc object on when you call the parent class's -__init__ method. - - -Version 0.80.0 - -We *finally* hit 0.80.0! This release is completely compatible with -the last release candidate. - -An update to Babelfish may cause an error message to be displayed in -the console when the bot is first run. The error message should be -gone when the bot is restarted. - -We also have a new community website at http://www.supybot.com/ where -our users can submit their own plugins, view/download other people's -plugins and discuss all things Supybot-related. - - -Version 0.80.0rc3 - -Another bugfix release. This one was pretty important as it actually -makes supybot.database.plugins.channelSpecific work properly. - - -Version 0.80.0rc2 - -supybot.databases.plugins.channelSpecific.channel was renamed to -supybot.databases.plugins.channelSpecific.link. - -supybot.databases.plugins.channelSpecific.link.allow was added, which -determines whether a channel will allow other channels to link to its -database. - -Infobot is no longer deprecated and the following changes were made to -its config variables: -supybot.plugins.Infobot.answerUnaddressedQuestions was renamed to -supybot.plugins.Infobot.unaddressed.answerQuestions. -supybot.plugins.Infobot.snarfUnaddressedDefinitions was renamed to -supybot.plugins.Infobot.unaddressed.snarfDefinitions. -supybot.plugins.Infobot.unaddressed.replyExistingFactoid was added to -determine whether the bot will reply when someone attempts to create a -duplicate factoid. - - -Version 0.80.0pre6 - -Another bugfix release. No incompatibilities known. The only -registry change is that supybot.databases.users.hash has been -removed. - - -Version 0.80.0pre5 - -Completely bugfix release. No incompatibilies known. - - -Version 0.80.0pre4 - -Mainly a bug fix release. This will likely be the last release before -0.80.0final, but we're gonna let it stew for a couple weeks to attempt -to catch any lingering bugs. - -ansycoreDrivers is now deprecated in favor of socketDrivers or -twistedDrivers. - -supybot.databases.plugins.channelSpecific.channel is now a channelValue -so that you can link specific channels together (instead of all channels -being linked together). - -For those of you that use eval and/or exec, they have been removed from -the Owner plugin and are now in sandbox/Debug.py (which you'll have to -grab from CVS). - - -Version 0.80.0pre3 - -The database format for the Note plugin has changed to a flatfile -format; use tools/noteConvert.py to convert it to the new format. - -Ditto that for the URL database. - -FunDB is deprecated and will be removed at the next major release; -use tools/fundbConvert.py to convert your old FunDB databases to Lart -and Praise databases. - -If you had turned off supybot.databases.plugins.channelSpecific, your -non-channel-specific database files had gone directly into your data/ -directory. We had some problems with poor interactions between that -configuration variable and channel capabilities, though, so we -changed the implementation so that non-channel-specific databases are -considered databases of a single (configurable) channel (defaulting -to "#"). This will also help others who are converting from -channel-specific to non-channel-specific databases, but for you -who've already made the switch, you'll need to move your database -files again, from data/ to data/# (or whatever channel you might -change that variable to). - -supybot.channels doesn't exist anymore; now the only list of channels -to join is per-network, in supybot.networks..channels. - -We weren't serializing supybot.replies.* properly in older versions. -Now we are, but the old, improperly serialized versions won't work -properly. Remove from your configuration file all variables -beginning with "supybot.replies" before you start the bot. - -The URL database has been changed again, but it will use a different -filename so you shouldn't run into conflicts, just a newly-empty -database. - -We upgraded the SOAP stuff in others; you may do well to do a -setup.py install --clean this time around. - - -Version 0.80.0pre2 - -Many more bugs have been fixed. A few more plugins have been updated -to use our new-style database abstraction. If it seems like your -databases are suddenly empty, look for a new database file named -Plugin.dbtype.db. We've also added a few more configuration variables. - - -Version 0.80.0pre1 - -Tons of bugs fixed, many features and plugins added. Everything -should be entirely compatible; many more configuration variables have -been added. - - -Version 0.79.9999 - -Some more bugs fixed, added a few features and a couple configuration -variabless. This should hopefully be the last release before 0.80.0, -which will finally bring us to pure Beta status. - - -Version 0.79.999 - -Some bugs fixed, but the ones that were fixed were pretty big. This -is, of course, completely compatible with the last release. - - -Version 0.79.99 - -Many bugs fixed, thanks to the users who reported them. We're -getting asymptotically closer to 0.80.0 -- maybe this'll be the last -one, maybe we'll have to release an 0.79.999 -- either way, we're -getting close :) Check out the ChangeLog for the fixes and a few new -features. - - -Version 0.79.9 - -We've changed so much stuff in this release that we've given up on -users upgrading their configuration files for the new release. So -do a clean install (python2.3 setup.py install --clean), run the -wizard again, and kick some butt. - -(It's rumored that you can save most of your old configuration by -appending your new configuration at the end of your old configuration -and running supybot with that new configuration file. This, of -course, comes with no warranty or guarantee of utility -- try it if -you want, but backup your original configuration file!) - - -Version 0.77.2 - -This is a drop-in replacement for 0.77.1, with two exceptions. The -configuration variable formerly known as -"supybot.plugins.Services.password" is now known as -"supybot.plugins.Services.NickServ.password", due to the fact that -there might be different passwords for NickServ and ChanServ (and -ChanServ passwords are per-channel, whereas NickServ passwords are -global). If you're using the Services plugin, you'll need to make -this change in order to continue identifying with services. The -configuration variable formerly known as -"supybot.plugins.Babelfish.disabledLanguages" is now known as -"supybot.plugins.Babelfish.languages". The configuration variable now -accepts the languages that *will* be translated as opposed to ones -that are *not* translated. - -Tests and the developer sandbox are not longer delivered with our -release tarballs. If you're a developer and you want these, you -should either check out CVS or download one of our weekly CVS -snapshots, available at http://supybot.sourceforge.net/snapshots/ . - - -Version 0.77.1 - -This is a drop-in replacement for 0.77.0 -- no incompatibilities, to -out knowledge. Simply install over your old installation and restart -your bot :) - - -Version 0.77.0 - -Setup.py will automatically remove your old installations for you, no -need to worry about that yourself. - -Configuration has been *entirely* redone. Read the new -GETTING_STARTED document to see how to work with configuration -variables now. Your old botscripts from earlier versions *will not* -work with the new configuration method. We'd appreciate it if you'd -rerun the wizard in order for us to find any bugs that remain in it -before we officially declare ourselves Beta. Note also that because -of the new configuration method, the interface for plugins' configure -function has changed: there are no longer any onStart or afterConnect -arguments, so all configuration should be performed via the registry. - -Channel capabilities have been changed; rather than being -#channel.capability, they're now #channel,capability. It's a bit -uglier, we know, but dots can be valid in channel names, and we -needed the dot for handling plugin.command capabilities. -tools/ircdbConvert.py should update this for you. - -The on-disk format of the user/channel databases has changed to be far -more readable. A conversion utility is included, as mentioned before: -tools/ircdbConvert.py. Run this with no arguments to see the -directions for using it. - -Uh, we were just kidding about the upgrade script in 0.76.0 :) It'll -be a little while longer. We do have several little upgrade scripts, -though. - - -Version 0.76.1 - -Almost entirely bugfixes, just some minor (and some less minor) bugs -that need to get in before we really start hacking on the next -version. Should be *entirely* compatible with 0.76.0. - - -Version 0.76.0 - -Major bugfix release. A great number of bugs fixed. This is the last -release without an upgrade script. - -The only hiccup in the upgrade from 0.75.0 should be that you'll need -to update your botscript to reflect the removal of the debug module. -We'd rather you use supybot-wizard to generate a new botscript, of -course, but if you insist on modifying your existing botscript, take a -look at - -to see what you need to do. - - -Version 0.75.0 - -Don't forget to reinstall (i.e., run "python setup.py install" as -root). Sometimes it even does good to remove the old installation; -$PYTHON/site-packages/supybot can be removed with no problems -whatsoever. - -You will need to re-run supybot-wizard and generate a new botscript. - -The Infobot plugin has been removed from this release; it's not ready -for prime time. If you're interested in getting it running (i.e., you -want full Infobot compatibility and aren't satisfied with either -MoobotFactoids or Factoids) then swing over to #supybot and we can -discuss the tests. We simply don't know enough about Infobot to make -sure our Infobot plugin is an exact replica, and need someone's help -with making the changes necessary for that. diff --git a/plugins/Admin/README.rst b/plugins/Admin/README.rst index d1f9cffec..193f54993 100644 --- a/plugins/Admin/README.rst +++ b/plugins/Admin/README.rst @@ -23,52 +23,52 @@ Commands .. _command-admin-acmd: -acmd [ ...] +``acmd [ ...]`` Perform (with associated s on all channels on current network. .. _command-admin-capability.add: -capability add +``capability add `` Gives the user specified by (or the user to whom currently maps) the specified capability .. _command-admin-capability.remove: -capability remove +``capability remove `` Takes from the user specified by (or the user to whom currently maps) the specified capability .. _command-admin-channels: -channels takes no arguments +``channels takes no arguments`` Returns the channels the bot is on. .. _command-admin-clearq: -clearq takes no arguments +``clearq takes no arguments`` Clears the current send queue for this network. .. _command-admin-ignore.add: -ignore add [] +``ignore add []`` This will set a persistent ignore on or the hostmask currently associated with . is an optional argument specifying when (in "seconds from now") the ignore will expire; if it isn't given, the ignore will never automatically expire. .. _command-admin-ignore.list: -ignore list takes no arguments +``ignore list takes no arguments`` Lists the hostmasks that the bot is ignoring. .. _command-admin-ignore.remove: -ignore remove +``ignore remove `` This will remove the persistent ignore on or the hostmask currently associated with . .. _command-admin-join: -join [] +``join []`` Tell the bot to join the given channel. If is given, it is used when attempting to join the channel. .. _command-admin-nick: -nick [] [] +``nick [] []`` Changes the bot's nick to . If no nick is given, returns the bot's current nick. .. _conf-Admin: diff --git a/plugins/Admin/messages.pot b/plugins/Admin/messages.pot index f8b09cfad..f1326f9a7 100644 --- a/plugins/Admin/messages.pot +++ b/plugins/Admin/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Aka/README.rst b/plugins/Aka/README.rst index 6a7d29083..68e301ba7 100644 --- a/plugins/Aka/README.rst +++ b/plugins/Aka/README.rst @@ -77,47 +77,47 @@ Commands .. _command-aka-add: -add [--channel <#channel>] +``add [--channel <#channel>] `` Defines an alias that executes . The should be in the standard "command argument [nestedcommand argument]" arguments to the alias; they'll be filled with the first, second, etc. arguments. $1, $2, etc. can be used for required arguments. @1, @2, etc. can be used for optional arguments. $* simply means "all arguments that have not replaced $1, $2, etc.", ie. it will also include optional arguments. .. _command-aka-remove: -remove [--channel <#channel>] +``remove [--channel <#channel>] `` Removes the given alias, if unlocked. .. _command-aka-lock: -lock [--channel <#channel>] +``lock [--channel <#channel>] `` Locks an alias so that no one else can change it. .. _command-aka-unlock: -unlock [--channel <#channel>] +``unlock [--channel <#channel>] `` Unlocks an alias so that people can define new aliases over it. .. _command-aka-importaliasdatabase: -importaliasdatabase takes no arguments +``importaliasdatabase takes no arguments`` Imports the Alias database into Aka's, and clean the former. .. _command-aka-show: -show [--channel <#channel>] +``show [--channel <#channel>] `` This command shows the content of an Aka. .. _command-aka-list: -list [--channel <#channel>] [--keys] [--unlocked|--locked] +``list [--channel <#channel>] [--keys] [--unlocked|--locked]`` Lists all Akas defined for . If is not specified, lists all global Akas. If --keys is given, lists only the Aka names and not their commands. .. _command-aka-set: -set [--channel <#channel>] +``set [--channel <#channel>] `` Overwrites an existing alias to execute instead. The should be in the standard "command argument [nestedcommand argument]" arguments to the alias; they'll be filled with the first, second, etc. arguments. $1, $2, etc. can be used for required arguments. @1, @2, etc. can be used for optional arguments. $* simply means "all arguments that have not replaced $1, $2, etc.", ie. it will also include optional arguments. .. _command-aka-search: -search [--channel <#channel>] +``search [--channel <#channel>] `` Searches Akas defined for . If is not specified, searches all global Akas. .. _conf-Aka: diff --git a/plugins/Aka/locales/fi.po b/plugins/Aka/locales/fi.po index 9df0eb539..ecdef4fdc 100644 --- a/plugins/Aka/locales/fi.po +++ b/plugins/Aka/locales/fi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Aka plugin for Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-12-20 13:57+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -32,12 +32,12 @@ msgid "" " browsable through the HTTP server." msgstr "" -#: plugin.py:141 plugin.py:274 plugin.py:732 +#: plugin.py:141 plugin.py:274 plugin.py:728 msgid "This Aka already exists." msgstr "Tämä Aka on jo olemassa." #: plugin.py:170 plugin.py:182 plugin.py:196 plugin.py:301 plugin.py:318 -#: plugin.py:335 plugin.py:912 +#: plugin.py:335 plugin.py:908 msgid "This Aka does not exist." msgstr "Tätä Akaa ei ole olemassa." @@ -90,10 +90,10 @@ msgid "" " Trout\n" " ^^^^^\n" "\n" -" Add an aka, trout, which expects a word as an argument::\n" +" Add an aka, ``trout``, which expects a word as an argument::\n" "\n" -" @aka add trout \"reply action slaps $1 with a large trout" -"\"\n" +" @aka add trout \"reply action slaps $1 with a large " +"trout\"\n" " jamessan: The operation succeeded.\n" " @trout me\n" " * bot slaps me with a large trout\n" @@ -101,46 +101,38 @@ msgid "" " This ``trout`` aka requires the plugin ``Reply`` to be loaded since it\n" " provides the ``action`` command.\n" "\n" -" LastFM\n" -" ^^^^^^\n" +" Random percentage\n" +" ^^^^^^^^^^^^^^^^^\n" "\n" -" Add an aka, ``lastfm``, which expects a last.fm username and replies " -"with\n" -" their most recently played item::\n" +" Add an aka, ``randpercent``, which returns a random percentage value::\n" "\n" -" @aka add lastfm \"rss [format concat http://ws.audioscrobbler." -"com/1.0/user/ [format concat [web urlquote $1] /recenttracks.rss]]\"\n" +" @aka add randpercent \"squish [dice 1d100]%\"\n" "\n" -" This ``lastfm`` aka requires the following plugins to be loaded: " -"``RSS``,\n" -" ``Format`` and ``Web``.\n" +" This requires the ``Filter`` and ``Games`` plugins to be loaded.\n" "\n" -" ``RSS`` provides ``rss``, ``Format`` provides ``concat`` and ``Web`` " -"provides\n" -" ``urlquote``.\n" -"\n" -" Note that if the nested commands being aliased hadn't been quoted, then\n" -" those commands would have been run immediately, and ``@lastfm`` would " -"always\n" -" reply with the same information, the result of those commands.\n" +" Note that nested commands in an alias should be quoted, or they will " +"only\n" +" run once when you create the alias, and not each time the alias is\n" +" called. (In this case, not quoting the nested command would mean that\n" +" ``@randpercent`` always responds with the same value!)\n" " " msgstr "" -#: plugin.py:699 +#: plugin.py:695 msgid "You've attempted more nesting than is currently allowed on this bot." msgstr "" "Olet yrittänyt sisällyttää enemmän komentoja, kuin tässä botti sallii juuri " "nyt." -#: plugin.py:703 +#: plugin.py:699 msgid " at least" msgstr "ainakin" -#: plugin.py:712 +#: plugin.py:708 msgid "Locked by %s at %s" msgstr "Lukinnut %s aikaan %s" -#: plugin.py:717 +#: plugin.py:713 #, fuzzy msgid "" "\n" @@ -151,11 +143,11 @@ msgstr "" "\n" "Alias komennolle %q.%s" -#: plugin.py:718 plugin.py:722 +#: plugin.py:714 plugin.py:718 msgid "argument" msgstr "parametri" -#: plugin.py:721 +#: plugin.py:717 #, fuzzy msgid "" "\n" @@ -166,24 +158,24 @@ msgstr "" "\n" "Alias komennolle %q.%s" -#: plugin.py:729 +#: plugin.py:725 msgid "You can't overwrite commands in this plugin." msgstr "Et voi ylikirjoittaa tämän lisä-osan komentoja." -#: plugin.py:734 +#: plugin.py:730 msgid "This Aka has too many spaces in its name." msgstr "Tämän Akan nimessä on liian monta välilyöntiä." -#: plugin.py:739 +#: plugin.py:735 msgid "Can't mix $* and optional args (@1, etc.)" msgstr "" "$*:ä ja vapaaehtoisia parametrejä (@1, jne.) ei voida sekoittaa keskenään" -#: plugin.py:746 +#: plugin.py:742 msgid "This Aka is locked." msgstr "Tämä Aka on lukittu." -#: plugin.py:750 +#: plugin.py:746 #, fuzzy msgid "" "[--channel <#channel>] \n" @@ -214,12 +206,12 @@ msgstr "" "parametrit.\n" " " -#: plugin.py:764 plugin.py:796 plugin.py:827 plugin.py:859 plugin.py:882 -#: plugin.py:905 plugin.py:951 plugin.py:994 +#: plugin.py:760 plugin.py:792 plugin.py:823 plugin.py:855 plugin.py:878 +#: plugin.py:901 plugin.py:947 plugin.py:990 msgid "%r is not a valid channel." msgstr "%r ei ole kelvollinen kanava." -#: plugin.py:782 +#: plugin.py:778 #, fuzzy msgid "" "[--channel <#channel>] \n" @@ -249,7 +241,7 @@ msgstr "" "$2 jne.\", esimerkiksi. se sisällyttää\n" " myös kaikki vapaaehtoiset parametrit." -#: plugin.py:819 +#: plugin.py:815 msgid "" "[--channel <#channel>] \n" "\n" @@ -261,7 +253,7 @@ msgstr "" " Poistaa annetun aliaksen, ellei se ole lukittu.\n" " " -#: plugin.py:841 +#: plugin.py:837 msgid "" "Check if the user has any of the required capabilities to manage\n" " the regexp database." @@ -269,7 +261,7 @@ msgstr "" "Tarkistaa onko käyttäjällä vaadittu valtuus säännöllisten lausekkeiden\n" " tietokannan hallintaan." -#: plugin.py:851 +#: plugin.py:847 msgid "" "[--channel <#channel>] \n" "\n" @@ -281,7 +273,7 @@ msgstr "" " Lukitsee aliaksen estäen muita muokkaamasta sitä.\n" " " -#: plugin.py:874 +#: plugin.py:870 msgid "" "[--channel <#channel>] \n" "\n" @@ -293,7 +285,7 @@ msgstr "" " Avaa aliaksen, jotta kaikki voivat määrittää uusia aliaksia sen päälle.\n" " " -#: plugin.py:897 +#: plugin.py:893 msgid "" "[--channel <#channel>] \n" "\n" @@ -304,7 +296,7 @@ msgstr "" "\n" " Tämä komento näyttää Akan sisällön." -#: plugin.py:917 +#: plugin.py:913 msgid "" "takes no arguments\n" "\n" @@ -314,15 +306,15 @@ msgstr "" "\n" " Tuo Aliaksen tietokannan Akaan ja tyhjentää aiemman." -#: plugin.py:922 +#: plugin.py:918 msgid "Alias plugin is not loaded." msgstr "Alias lisä-osa ei ole ladattu." -#: plugin.py:933 +#: plugin.py:929 msgid "Error occured when importing the %n: %L" msgstr "Virhe komennon %n tuomisessa: %L" -#: plugin.py:941 +#: plugin.py:937 msgid "" "[--channel <#channel>] [--keys] [--unlocked|--locked]\n" "\n" @@ -332,15 +324,15 @@ msgid "" " and not their commands." msgstr "" -#: plugin.py:960 +#: plugin.py:956 msgid "--locked and --unlocked are incompatible options." msgstr "" -#: plugin.py:980 +#: plugin.py:976 msgid "No Akas found." msgstr "" -#: plugin.py:985 +#: plugin.py:981 msgid "" "[--channel <#channel>] \n" "\n" @@ -348,7 +340,7 @@ msgid "" " searches all global Akas." msgstr "" -#: plugin.py:1004 +#: plugin.py:1000 msgid "No matching Akas were found." msgstr "" diff --git a/plugins/Aka/locales/ru.po b/plugins/Aka/locales/ru.po new file mode 100644 index 000000000..d8d4ea84a --- /dev/null +++ b/plugins/Aka/locales/ru.po @@ -0,0 +1,404 @@ +# Aka plugin for Limnoria +# Copyright (C) 2024 Limnoria +# ssdaniel24 , 2024. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" +"PO-Revision-Date: 2024-06-12 21:50+0300\n" +"Last-Translator: ssdaniel24 \n" +"Language-Team: \n" +"Language: ru\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" +"X-Generator: Poedit 3.4.2\n" + +#: config.py:55 +msgid "" +"The maximum number of words allowed in a\n" +" command name. Setting this to an high value may slow down your bot\n" +" on long commands." +msgstr "" +"Максимальное количество слов, которые могут быть в имени команды.\n" +"Выставление большого значения может замедлить работу вашего бота на длинных " +"командах." + +#: config.py:61 +msgid "" +"Determines whether the Akas will be\n" +" browsable through the HTTP server." +msgstr "Определяет, где псевдонимы могут быть просмотрены через HTTP-сервер." + +#: plugin.py:141 plugin.py:274 plugin.py:728 +msgid "This Aka already exists." +msgstr "Этот псевдоним уже существует." + +#: plugin.py:170 plugin.py:182 plugin.py:196 plugin.py:301 plugin.py:318 +#: plugin.py:335 plugin.py:908 +msgid "This Aka does not exist." +msgstr "Этот псевдоним не существует." + +#: plugin.py:303 +msgid "This Aka is already locked." +msgstr "Этот псевдоним уже заблокирован." + +#: plugin.py:320 +msgid "This Aka is already unlocked." +msgstr "Этот псевдоним уже разблокирован." + +#: plugin.py:465 +msgid "By %s at %s" +msgstr "%s %s" + +#: plugin.py:501 +#, fuzzy +msgid "" +"\n" +" This plugin allows users to define aliases to commands and combinations\n" +" of commands (via nesting).\n" +"\n" +" Importing from Alias\n" +" ^^^^^^^^^^^^^^^^^^^^\n" +"\n" +" Add an aka, Alias, which eases the transitioning to Aka from Alias.\n" +"\n" +" First we will load Alias and Aka::\n" +"\n" +" @load Alias\n" +" jamessan: The operation succeeded.\n" +" @load Aka\n" +" jamessan: The operation succeeded.\n" +"\n" +" Then we import the Alias database to Aka in case it exists and unload\n" +" Alias::\n" +"\n" +" @importaliasdatabase\n" +" jamessan: The operation succeeded.\n" +" @unload Alias\n" +" jamessan: The operation succeeded.\n" +"\n" +" And now we will finally add the Aka ``alias`` itself::\n" +"\n" +" @aka add \"alias\" \"aka $1 $*\"\n" +" jamessan: The operation succeeded.\n" +"\n" +" Now you can use Aka as you used Alias before.\n" +"\n" +" Trout\n" +" ^^^^^\n" +"\n" +" Add an aka, ``trout``, which expects a word as an argument::\n" +"\n" +" @aka add trout \"reply action slaps $1 with a large " +"trout\"\n" +" jamessan: The operation succeeded.\n" +" @trout me\n" +" * bot slaps me with a large trout\n" +"\n" +" This ``trout`` aka requires the plugin ``Reply`` to be loaded since it\n" +" provides the ``action`` command.\n" +"\n" +" Random percentage\n" +" ^^^^^^^^^^^^^^^^^\n" +"\n" +" Add an aka, ``randpercent``, which returns a random percentage value::\n" +"\n" +" @aka add randpercent \"squish [dice 1d100]%\"\n" +"\n" +" This requires the ``Filter`` and ``Games`` plugins to be loaded.\n" +"\n" +" Note that nested commands in an alias should be quoted, or they will " +"only\n" +" run once when you create the alias, and not each time the alias is\n" +" called. (In this case, not quoting the nested command would mean that\n" +" ``@randpercent`` always responds with the same value!)\n" +" " +msgstr "" +"\n" +"Этот плагин позволяет пользователям создавать собственные псевдонимы к " +"командам и комбинациями команд (вложенные команды).\n" +"\n" +"Импорт из Alias\n" +"^^^^^^^^^^^^^^^\n" +"\n" +"Переходим к использованию плагина Aka от плагина Alias.\n" +"\n" +"Во-первых, загрузим Alias и Aka:\n" +"\n" +" @load Alias\n" +" jamessan: The operation succeeded.\n" +" @load Aka\n" +" jamessan: The operation succeeded.\n" +"\n" +"После этого импортируем базу данных плагина Alias в Aka, если та существует, " +"и отключим плагин Alias::\n" +"\n" +" @importaliasdatabase\n" +" jamessan: The operation succeeded.\n" +" @unload Alias\n" +" jamessan: The operation succeeded.\n" +"\n" +"И наконец добавим псевдоним команды из плагина Alias, чтобы оставить " +"обратную совместимость:\n" +"\n" +" @aka add \"alias\" \"aka $1 $*\"\n" +" jamessan: The operation succeeded.\n" +"\n" +"Теперь вы можете использовать плагин Aka как вы использовали до этого плагин " +"Alias.\n" +"\n" +"Дать леща\n" +"^^^^^^^^^\n" +"\n" +"Добавляем псевдоним (чтобы дать кому-то леща), который принимает одно слово " +"как аргумент::\n" +"\n" +" @aka add trout \"reply action с размаху даёт леща $1\"\n" +" jamessan: The operation succeeded.\n" +" @trout мне\n" +"* bot с размаху даёт леща мне\n" +"\n" +"LastFM\n" +"^^^^^^\n" +"\n" +"Добавляем псевдоним - ``lastfm``, принимает аргументом имя пользователя и " +"отвечает с последней песней, которая у него играла.\n" +"\n" +"@aka add lastfm \"rss [format concat http://ws.audioscrobbler.com/1.0/user/ " +"[format concat [web urlquote $1] /recenttracks.rss]]\"\n" +"\n" +"Этот псевдоним ``lastfm`` требует для работы следующие плагины: ``RSS``, " +"``Format`` и ``Web``.\n" +"\n" +"``RSS`` предоставляет ``rss``, ``Format`` предоставляет ``concat`` и ``Web`` " +"предоставляет ``urlquote``.\n" +"\n" +"Обратите внимание, что если бы вложенные команды не были бы обозначены " +"кавычками, то они были бы запущены немедленно, и псевдоним ``@lastfm`` " +"показывал бы всегда одну и ту же информацию - результат выполнения этих " +"команд." + +#: plugin.py:695 +msgid "You've attempted more nesting than is currently allowed on this bot." +msgstr "Вы попробовали больше вложений, чем сейчас это разрешено в боте." + +#: plugin.py:699 +msgid " at least" +msgstr " хотя бы" + +#: plugin.py:708 +msgid "Locked by %s at %s" +msgstr "Заблокировано %s %s" + +#: plugin.py:713 +msgid "" +"\n" +"\n" +"Alias for %q.%s" +msgstr "" +"<глобальный псевдоним, %s %n>\n" +"\n" +"Псевдоним для %q.%s" + +#: plugin.py:714 plugin.py:718 +msgid "argument" +msgstr "аргумент" + +#: plugin.py:717 +msgid "" +"\n" +"\n" +"Alias for %q.%s" +msgstr "" +"<псевдоним %s,%s %n>\n" +"\n" +"Псевдоним для %q.%s" + +#: plugin.py:725 +msgid "You can't overwrite commands in this plugin." +msgstr "Вы не можете перезаписывать команды в этом плагине." + +#: plugin.py:730 +msgid "This Aka has too many spaces in its name." +msgstr "Этот псевдоним содержит слишком много пробелов в имени." + +#: plugin.py:735 +msgid "Can't mix $* and optional args (@1, etc.)" +msgstr "Нельзя перемешивать $* и необязательные аргументы (@1 и др.)" + +#: plugin.py:742 +msgid "This Aka is locked." +msgstr "Этот псевдоним заблокирован." + +#: plugin.py:746 +msgid "" +"[--channel <#channel>] \n" +"\n" +" Defines an alias that executes . The \n" +" should be in the standard \"command argument [nestedcommand " +"argument]\"\n" +" arguments to the alias; they'll be filled with the first, second, " +"etc.\n" +" arguments. $1, $2, etc. can be used for required arguments. @1, " +"@2,\n" +" etc. can be used for optional arguments. $* simply means \"all\n" +" arguments that have not replaced $1, $2, etc.\", ie. it will also\n" +" include optional arguments.\n" +" " +msgstr "" +"[--channel <#канал>] <название> <команда>\n" +"\n" +"Определяет псевдоним c <названием>, который запускает <команду>. <команда> " +"должна быть вида: \"<команда> <аргумент> [<вложенная команда> <аргумент>] " +"<аргументы к псевдониму>\". Аргументы к псевдониму по порядку: $1, $2 и тд. " +"используются для обязательных аргументов; @1, @2 и т.д. используются для " +"необязательных аргументов; $* означает \"все аргументы, которые не были " +"заменены с помощью $1, $2 и т.д.\", это включает в себя и необязательные " +"аргументы тоже." + +#: plugin.py:760 plugin.py:792 plugin.py:823 plugin.py:855 plugin.py:878 +#: plugin.py:901 plugin.py:947 plugin.py:990 +msgid "%r is not a valid channel." +msgstr "%r не является допустимым каналом." + +#: plugin.py:778 +msgid "" +"[--channel <#channel>] \n" +"\n" +" Overwrites an existing alias to execute instead. " +"The\n" +" should be in the standard \"command argument " +"[nestedcommand\n" +" argument]\" arguments to the alias; they'll be filled with the " +"first,\n" +" second, etc. arguments. $1, $2, etc. can be used for required\n" +" arguments. @1, @2, etc. can be used for optional arguments. $* " +"simply\n" +" means \"all arguments that have not replaced $1, $2, etc.\", ie. it " +"will\n" +" also include optional arguments.\n" +" " +msgstr "" +"[--channel <#канал>] <название> <команда>\n" +"\n" +"Перезаписывает существующий псевдоним с <названием>, чтобы он запускал " +"вместо предыдущей данную <команду>. <команда> должна быть вида: \"<команда> " +"<аргумент> [<вложенная команда> <аргумент>] <аргументы к псевдониму>\". " +"Аргументы к псевдониму по порядку: $1, $2 и тд. используются для " +"обязательных аргументов; @1, @2 и т.д. используются для необязательных " +"аргументов; $* означает \"все аргументы, которые не были заменены с помощью " +"$1, $2 и т.д.\", это включает в себя и необязательные аргументы тоже." + +#: plugin.py:815 +msgid "" +"[--channel <#channel>] \n" +"\n" +" Removes the given alias, if unlocked.\n" +" " +msgstr "" +"[--channel <#канал>] <название>\n" +"\n" +"Удаляет данный псевдоним, если тот не заблокирован." + +#: plugin.py:837 +msgid "" +"Check if the user has any of the required capabilities to manage\n" +" the regexp database." +msgstr "" +"Проверяет, есть ли у пользователя необходимые привилегии для управления " +"базой данных регулярных выражений." + +#: plugin.py:847 +msgid "" +"[--channel <#channel>] \n" +"\n" +" Locks an alias so that no one else can change it.\n" +" " +msgstr "" +"[--channel <#канал>] <псевдоним>\n" +"\n" +"Блокирует данный псевдоним, чтобы никто не мог его изменить." + +#: plugin.py:870 +msgid "" +"[--channel <#channel>] \n" +"\n" +" Unlocks an alias so that people can define new aliases over it.\n" +" " +msgstr "" +"[--channel <#канал>] <псевдоним>\n" +"\n" +"Разблокирует данный псевдоним, чтобы люди могли определять новые псевдонимы " +"поверх этого." + +#: plugin.py:893 +msgid "" +"[--channel <#channel>] \n" +"\n" +" This command shows the content of an Aka.\n" +" " +msgstr "" +"[--channel <#канал>] <псевдоним>\n" +"\n" +"Эта команда показывает содержание данного псевдонима." + +#: plugin.py:913 +msgid "" +"takes no arguments\n" +"\n" +" Imports the Alias database into Aka's, and clean the former." +msgstr "" +"не принимает аргументов\n" +"\n" +"Импортирует базу данных Alias в Aka, и очищает первую." + +#: plugin.py:918 +msgid "Alias plugin is not loaded." +msgstr "Плагин Alias не загружен." + +#: plugin.py:929 +msgid "Error occured when importing the %n: %L" +msgstr "Произошла ошибка при импорте %n: %L" + +#: plugin.py:937 +msgid "" +"[--channel <#channel>] [--keys] [--unlocked|--locked]\n" +"\n" +" Lists all Akas defined for . If is not " +"specified,\n" +" lists all global Akas. If --keys is given, lists only the Aka names\n" +" and not their commands." +msgstr "" +"[--channel <#канал>] [--keys] [--unlocked|--locked]\n" +"\n" +"Показывает все псевдонимы, определённые для данного <канала>. Если <канал> " +"не дан в аргументах, то показывает все глобальные псевдонимы. Если дан --" +"keys, то показывает только названия псевдонимов без соответствующих им " +"команд." + +#: plugin.py:956 +msgid "--locked and --unlocked are incompatible options." +msgstr "--locked и --unlocked – несовместимые параметры." + +#: plugin.py:976 +msgid "No Akas found." +msgstr "Не найдено ни одного псевдонима." + +#: plugin.py:981 +msgid "" +"[--channel <#channel>] \n" +"\n" +" Searches Akas defined for . If is not specified,\n" +" searches all global Akas." +msgstr "" +"[--channel <#канал>] <запрос>\n" +"\n" +"Производит поиск среди псевдонимов, определённых в данном <канале>, по " +"данному <запросу>. Если <канал> не дан в аргументах, то поиск производится " +"по всем глобальным псевдонимам." + +#: plugin.py:1000 +msgid "No matching Akas were found." +msgstr "Не найдено ни одного совпадающего псевдонима." diff --git a/plugins/Aka/messages.pot b/plugins/Aka/messages.pot index 8dd6692f7..1b680f951 100644 --- a/plugins/Aka/messages.pot +++ b/plugins/Aka/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -28,12 +28,12 @@ msgid "" " browsable through the HTTP server." msgstr "" -#: plugin.py:141 plugin.py:274 plugin.py:732 +#: plugin.py:141 plugin.py:274 plugin.py:728 msgid "This Aka already exists." msgstr "" #: plugin.py:170 plugin.py:182 plugin.py:196 plugin.py:301 plugin.py:318 -#: plugin.py:335 plugin.py:912 +#: plugin.py:335 plugin.py:908 msgid "This Aka does not exist." msgstr "" @@ -86,7 +86,7 @@ msgid "" " Trout\n" " ^^^^^\n" "\n" -" Add an aka, trout, which expects a word as an argument::\n" +" Add an aka, ``trout``, which expects a word as an argument::\n" "\n" " @aka add trout \"reply action slaps $1 with a large trout\"\n" " jamessan: The operation succeeded.\n" @@ -96,73 +96,69 @@ msgid "" " This ``trout`` aka requires the plugin ``Reply`` to be loaded since it\n" " provides the ``action`` command.\n" "\n" -" LastFM\n" -" ^^^^^^\n" +" Random percentage\n" +" ^^^^^^^^^^^^^^^^^\n" "\n" -" Add an aka, ``lastfm``, which expects a last.fm username and replies with\n" -" their most recently played item::\n" +" Add an aka, ``randpercent``, which returns a random percentage value::\n" "\n" -" @aka add lastfm \"rss [format concat http://ws.audioscrobbler.com/1.0/user/ [format concat [web urlquote $1] /recenttracks.rss]]\"\n" +" @aka add randpercent \"squish [dice 1d100]%\"\n" "\n" -" This ``lastfm`` aka requires the following plugins to be loaded: ``RSS``,\n" -" ``Format`` and ``Web``.\n" +" This requires the ``Filter`` and ``Games`` plugins to be loaded.\n" "\n" -" ``RSS`` provides ``rss``, ``Format`` provides ``concat`` and ``Web`` provides\n" -" ``urlquote``.\n" -"\n" -" Note that if the nested commands being aliased hadn't been quoted, then\n" -" those commands would have been run immediately, and ``@lastfm`` would always\n" -" reply with the same information, the result of those commands.\n" +" Note that nested commands in an alias should be quoted, or they will only\n" +" run once when you create the alias, and not each time the alias is\n" +" called. (In this case, not quoting the nested command would mean that\n" +" ``@randpercent`` always responds with the same value!)\n" " " msgstr "" -#: plugin.py:699 +#: plugin.py:695 msgid "You've attempted more nesting than is currently allowed on this bot." msgstr "" -#: plugin.py:703 +#: plugin.py:699 msgid " at least" msgstr "" -#: plugin.py:712 +#: plugin.py:708 msgid "Locked by %s at %s" msgstr "" -#: plugin.py:717 +#: plugin.py:713 msgid "" "\n" "\n" "Alias for %q.%s" msgstr "" -#: plugin.py:718 plugin.py:722 +#: plugin.py:714 plugin.py:718 msgid "argument" msgstr "" -#: plugin.py:721 +#: plugin.py:717 msgid "" "\n" "\n" "Alias for %q.%s" msgstr "" -#: plugin.py:729 +#: plugin.py:725 msgid "You can't overwrite commands in this plugin." msgstr "" -#: plugin.py:734 +#: plugin.py:730 msgid "This Aka has too many spaces in its name." msgstr "" -#: plugin.py:739 +#: plugin.py:735 msgid "Can't mix $* and optional args (@1, etc.)" msgstr "" -#: plugin.py:746 +#: plugin.py:742 msgid "This Aka is locked." msgstr "" -#: plugin.py:750 +#: plugin.py:746 #, docstring msgid "" "[--channel <#channel>] \n" @@ -177,12 +173,12 @@ msgid "" " " msgstr "" -#: plugin.py:764 plugin.py:796 plugin.py:827 plugin.py:859 plugin.py:882 -#: plugin.py:905 plugin.py:951 plugin.py:994 +#: plugin.py:760 plugin.py:792 plugin.py:823 plugin.py:855 plugin.py:878 +#: plugin.py:901 plugin.py:947 plugin.py:990 msgid "%r is not a valid channel." msgstr "" -#: plugin.py:782 +#: plugin.py:778 #, docstring msgid "" "[--channel <#channel>] \n" @@ -197,7 +193,7 @@ msgid "" " " msgstr "" -#: plugin.py:819 +#: plugin.py:815 #, docstring msgid "" "[--channel <#channel>] \n" @@ -206,14 +202,14 @@ msgid "" " " msgstr "" -#: plugin.py:841 +#: plugin.py:837 #, docstring msgid "" "Check if the user has any of the required capabilities to manage\n" " the regexp database." msgstr "" -#: plugin.py:851 +#: plugin.py:847 #, docstring msgid "" "[--channel <#channel>] \n" @@ -222,7 +218,7 @@ msgid "" " " msgstr "" -#: plugin.py:874 +#: plugin.py:870 #, docstring msgid "" "[--channel <#channel>] \n" @@ -231,7 +227,7 @@ msgid "" " " msgstr "" -#: plugin.py:897 +#: plugin.py:893 #, docstring msgid "" "[--channel <#channel>] \n" @@ -240,7 +236,7 @@ msgid "" " " msgstr "" -#: plugin.py:917 +#: plugin.py:913 #, docstring msgid "" "takes no arguments\n" @@ -248,15 +244,15 @@ msgid "" " Imports the Alias database into Aka's, and clean the former." msgstr "" -#: plugin.py:922 +#: plugin.py:918 msgid "Alias plugin is not loaded." msgstr "" -#: plugin.py:933 +#: plugin.py:929 msgid "Error occured when importing the %n: %L" msgstr "" -#: plugin.py:941 +#: plugin.py:937 #, docstring msgid "" "[--channel <#channel>] [--keys] [--unlocked|--locked]\n" @@ -266,15 +262,15 @@ msgid "" " and not their commands." msgstr "" -#: plugin.py:960 +#: plugin.py:956 msgid "--locked and --unlocked are incompatible options." msgstr "" -#: plugin.py:980 +#: plugin.py:976 msgid "No Akas found." msgstr "" -#: plugin.py:985 +#: plugin.py:981 #, docstring msgid "" "[--channel <#channel>] \n" @@ -283,7 +279,7 @@ msgid "" " searches all global Akas." msgstr "" -#: plugin.py:1004 +#: plugin.py:1000 msgid "No matching Akas were found." msgstr "" diff --git a/plugins/Alias/README.rst b/plugins/Alias/README.rst index bb4fc4576..65a494cf6 100644 --- a/plugins/Alias/README.rst +++ b/plugins/Alias/README.rst @@ -43,27 +43,27 @@ Commands .. _command-alias-add: -add +``add `` Defines an alias that executes . The should be in the standard "command argument [nestedcommand argument]" arguments to the alias; they'll be filled with the first, second, etc. arguments. $1, $2, etc. can be used for required arguments. @1, @2, etc. can be used for optional arguments. $* simply means "all remaining arguments," and cannot be combined with optional arguments. .. _command-alias-list: -list [--locked|--unlocked] +``list [--locked|--unlocked]`` Lists alias names of a particular type, defaults to all aliases if no --locked or --unlocked option is given. .. _command-alias-lock: -lock +``lock `` Locks an alias so that no one else can change it. .. _command-alias-remove: -remove +``remove `` Removes the given alias, if unlocked. .. _command-alias-unlock: -unlock +``unlock `` Unlocks an alias so that people can define new aliases over it. .. _conf-Alias: diff --git a/plugins/Alias/locales/de.po b/plugins/Alias/locales/de.po index e6e009925..96eca3461 100644 --- a/plugins/Alias/locales/de.po +++ b/plugins/Alias/locales/de.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Supybot\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-04-27 15:36+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: German \n" @@ -66,28 +66,29 @@ msgid "" "using\n" " the 'importaliasdatabase' command.\n" "\n" -" To add an alias, `trout`, which expects a word as an argument::\n" +" To add an alias, ``trout``, which expects a word as an argument::\n" "\n" " @alias add trout \"action slaps $1 with a large trout\"\n" " jamessan: The operation succeeded.\n" " @trout me\n" " * bot slaps me with a large trout\n" "\n" -" To add an alias, `lastfm`, which expects a last.fm user and replies " -"with\n" -" their recently played items::\n" +" Add an alias, ``randpercent``, which returns a random percentage " +"value::\n" "\n" -" @alias add lastfm \"rss [format concat http://ws.audioscrobbler." -"com/1.0/user/ [format concat [urlquote $1] /recenttracks.rss]]\"\n" +" @alias add randpercent \"squish [dice 1d100]%\"\n" "\n" -" Note that if the nested commands being aliased hadn't been quoted, then\n" -" those commands would have been run immediately, and `@lastfm` would " -"always\n" -" reply with the same information, the result of those commands.\n" +" This requires the ``Filter`` and ``Games`` plugins to be loaded.\n" +"\n" +" Note that nested commands in an alias should be quoted, or they will " +"only\n" +" run once when you create the alias, and not each time the alias is\n" +" called. (In this case, not quoting the nested command would mean that\n" +" ``@randpercent`` always responds with the same value!)\n" " " msgstr "" -#: plugin.py:357 +#: plugin.py:359 msgid "" "\n" "\n" @@ -98,11 +99,11 @@ msgstr "" "\n" "Versperrt ein Alias, sodass er nicht verändert werden kann." -#: plugin.py:365 plugin.py:378 +#: plugin.py:367 plugin.py:380 msgid "There is no such alias." msgstr "Es gibt keinen Alias mit diesem Namen." -#: plugin.py:370 +#: plugin.py:372 msgid "" "\n" "\n" @@ -113,11 +114,11 @@ msgstr "" "\n" "Entsperrt den Alias, sodass andere Personen ihn verändern können." -#: plugin.py:386 +#: plugin.py:388 msgid "That name isn't valid. Try %q instead." msgstr "Dieser Name ist nicht zulässig. Probiere anstatt %q." -#: plugin.py:426 +#: plugin.py:428 #, fuzzy msgid "" " \n" @@ -140,7 +141,7 @@ msgstr "" "Standardform \"Befehl Argument [verschachtelter Befehl Argument\" angegeben " "werden." -#: plugin.py:449 +#: plugin.py:451 msgid "" "\n" "\n" @@ -151,7 +152,7 @@ msgstr "" "\n" "Entfernt den gegeben Alias, falls er nicht gesperrt ist." -#: plugin.py:463 +#: plugin.py:465 msgid "" "[--locked|--unlocked]\n" "\n" @@ -161,15 +162,15 @@ msgid "" " " msgstr "" -#: plugin.py:470 +#: plugin.py:472 msgid "Cannot specify --locked and --unlocked simultaneously" msgstr "" -#: plugin.py:486 +#: plugin.py:488 msgid "There are no aliases of that type." msgstr "" -#: plugin.py:488 +#: plugin.py:490 #, fuzzy msgid "There are no aliases." msgstr "Es gibt keinen Alias mit diesem Namen." diff --git a/plugins/Alias/locales/fi.po b/plugins/Alias/locales/fi.po index 44c5c8fe9..7b5536a21 100644 --- a/plugins/Alias/locales/fi.po +++ b/plugins/Alias/locales/fi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Supybot Alias plugin\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-12-20 13:47+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: suomi <>\n" @@ -73,28 +73,29 @@ msgid "" "using\n" " the 'importaliasdatabase' command.\n" "\n" -" To add an alias, `trout`, which expects a word as an argument::\n" +" To add an alias, ``trout``, which expects a word as an argument::\n" "\n" " @alias add trout \"action slaps $1 with a large trout\"\n" " jamessan: The operation succeeded.\n" " @trout me\n" " * bot slaps me with a large trout\n" "\n" -" To add an alias, `lastfm`, which expects a last.fm user and replies " -"with\n" -" their recently played items::\n" +" Add an alias, ``randpercent``, which returns a random percentage " +"value::\n" "\n" -" @alias add lastfm \"rss [format concat http://ws.audioscrobbler." -"com/1.0/user/ [format concat [urlquote $1] /recenttracks.rss]]\"\n" +" @alias add randpercent \"squish [dice 1d100]%\"\n" "\n" -" Note that if the nested commands being aliased hadn't been quoted, then\n" -" those commands would have been run immediately, and `@lastfm` would " -"always\n" -" reply with the same information, the result of those commands.\n" +" This requires the ``Filter`` and ``Games`` plugins to be loaded.\n" +"\n" +" Note that nested commands in an alias should be quoted, or they will " +"only\n" +" run once when you create the alias, and not each time the alias is\n" +" called. (In this case, not quoting the nested command would mean that\n" +" ``@randpercent`` always responds with the same value!)\n" " " msgstr "" -#: plugin.py:357 +#: plugin.py:359 msgid "" "\n" "\n" @@ -106,11 +107,11 @@ msgstr "" " Lukitsee aliaksen, niin ettei kukaan muu voi muuttaa sitä.\n" " " -#: plugin.py:365 plugin.py:378 +#: plugin.py:367 plugin.py:380 msgid "There is no such alias." msgstr "Tuollaista aliasta ei ole." -#: plugin.py:370 +#: plugin.py:372 msgid "" "\n" "\n" @@ -123,11 +124,11 @@ msgstr "" "aliaksia sen päälle.\n" " " -#: plugin.py:386 +#: plugin.py:388 msgid "That name isn't valid. Try %q instead." msgstr "Tuo nimi ei ole kelvollinen. Yritä sen sijaan %q:ta." -#: plugin.py:426 +#: plugin.py:428 msgid "" " \n" "\n" @@ -156,7 +157,7 @@ msgstr "" "parametrejä.\n" " " -#: plugin.py:449 +#: plugin.py:451 msgid "" "\n" "\n" @@ -168,7 +169,7 @@ msgstr "" " Poistaa annetun aliaksen jos se ei ole lukittu.\n" " " -#: plugin.py:463 +#: plugin.py:465 msgid "" "[--locked|--unlocked]\n" "\n" @@ -178,15 +179,15 @@ msgid "" " " msgstr "" -#: plugin.py:470 +#: plugin.py:472 msgid "Cannot specify --locked and --unlocked simultaneously" msgstr "" -#: plugin.py:486 +#: plugin.py:488 msgid "There are no aliases of that type." msgstr "" -#: plugin.py:488 +#: plugin.py:490 #, fuzzy msgid "There are no aliases." msgstr "Tuollaista aliasta ei ole." diff --git a/plugins/Alias/locales/fr.po b/plugins/Alias/locales/fr.po index 2dde2dd82..1b73552dc 100644 --- a/plugins/Alias/locales/fr.po +++ b/plugins/Alias/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Limnoria \n" @@ -65,28 +65,29 @@ msgid "" "using\n" " the 'importaliasdatabase' command.\n" "\n" -" To add an alias, `trout`, which expects a word as an argument::\n" +" To add an alias, ``trout``, which expects a word as an argument::\n" "\n" " @alias add trout \"action slaps $1 with a large trout\"\n" " jamessan: The operation succeeded.\n" " @trout me\n" " * bot slaps me with a large trout\n" "\n" -" To add an alias, `lastfm`, which expects a last.fm user and replies " -"with\n" -" their recently played items::\n" +" Add an alias, ``randpercent``, which returns a random percentage " +"value::\n" "\n" -" @alias add lastfm \"rss [format concat http://ws.audioscrobbler." -"com/1.0/user/ [format concat [urlquote $1] /recenttracks.rss]]\"\n" +" @alias add randpercent \"squish [dice 1d100]%\"\n" "\n" -" Note that if the nested commands being aliased hadn't been quoted, then\n" -" those commands would have been run immediately, and `@lastfm` would " -"always\n" -" reply with the same information, the result of those commands.\n" +" This requires the ``Filter`` and ``Games`` plugins to be loaded.\n" +"\n" +" Note that nested commands in an alias should be quoted, or they will " +"only\n" +" run once when you create the alias, and not each time the alias is\n" +" called. (In this case, not quoting the nested command would mean that\n" +" ``@randpercent`` always responds with the same value!)\n" " " msgstr "" -#: plugin.py:357 +#: plugin.py:359 msgid "" "\n" "\n" @@ -97,11 +98,11 @@ msgstr "" "\n" "Vérouille un alias pour que personne d'autre ne puisse le changer." -#: plugin.py:365 plugin.py:378 +#: plugin.py:367 plugin.py:380 msgid "There is no such alias." msgstr "Cet alias n'existe pas." -#: plugin.py:370 +#: plugin.py:372 msgid "" "\n" "\n" @@ -112,11 +113,11 @@ msgstr "" "\n" "Déverrouille un alias de façon à ce que des gens puissent le redéfinir." -#: plugin.py:386 +#: plugin.py:388 msgid "That name isn't valid. Try %q instead." msgstr "Ce nom n'est pas valide. Essayez plutôt %q." -#: plugin.py:426 +#: plugin.py:428 msgid "" " \n" "\n" @@ -142,7 +143,7 @@ msgstr "" "simplement *tous* les arguments restants, et ne peut être combiné avec des " "arguments optionnels." -#: plugin.py:449 +#: plugin.py:451 msgid "" "\n" "\n" @@ -153,7 +154,7 @@ msgstr "" "\n" "Supprime l'alias donné, si il n'est pas verrouillé." -#: plugin.py:463 +#: plugin.py:465 msgid "" "[--locked|--unlocked]\n" "\n" @@ -163,15 +164,15 @@ msgid "" " " msgstr "" -#: plugin.py:470 +#: plugin.py:472 msgid "Cannot specify --locked and --unlocked simultaneously" msgstr "" -#: plugin.py:486 +#: plugin.py:488 msgid "There are no aliases of that type." msgstr "" -#: plugin.py:488 +#: plugin.py:490 #, fuzzy msgid "There are no aliases." msgstr "Cet alias n'existe pas." diff --git a/plugins/Alias/locales/hu.po b/plugins/Alias/locales/hu.po index 05ac11a00..d13e59b95 100644 --- a/plugins/Alias/locales/hu.po +++ b/plugins/Alias/locales/hu.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria Alias\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-04-27 15:12+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -70,28 +70,29 @@ msgid "" "using\n" " the 'importaliasdatabase' command.\n" "\n" -" To add an alias, `trout`, which expects a word as an argument::\n" +" To add an alias, ``trout``, which expects a word as an argument::\n" "\n" " @alias add trout \"action slaps $1 with a large trout\"\n" " jamessan: The operation succeeded.\n" " @trout me\n" " * bot slaps me with a large trout\n" "\n" -" To add an alias, `lastfm`, which expects a last.fm user and replies " -"with\n" -" their recently played items::\n" +" Add an alias, ``randpercent``, which returns a random percentage " +"value::\n" "\n" -" @alias add lastfm \"rss [format concat http://ws.audioscrobbler." -"com/1.0/user/ [format concat [urlquote $1] /recenttracks.rss]]\"\n" +" @alias add randpercent \"squish [dice 1d100]%\"\n" "\n" -" Note that if the nested commands being aliased hadn't been quoted, then\n" -" those commands would have been run immediately, and `@lastfm` would " -"always\n" -" reply with the same information, the result of those commands.\n" +" This requires the ``Filter`` and ``Games`` plugins to be loaded.\n" +"\n" +" Note that nested commands in an alias should be quoted, or they will " +"only\n" +" run once when you create the alias, and not each time the alias is\n" +" called. (In this case, not quoting the nested command would mean that\n" +" ``@randpercent`` always responds with the same value!)\n" " " msgstr "" -#: plugin.py:357 +#: plugin.py:359 msgid "" "\n" "\n" @@ -102,11 +103,11 @@ msgstr "" "\n" "Lezár egy álnevet, hogy senki más ne változtathassa meg." -#: plugin.py:365 plugin.py:378 +#: plugin.py:367 plugin.py:380 msgid "There is no such alias." msgstr "Nincs ilyen álnév." -#: plugin.py:370 +#: plugin.py:372 msgid "" "\n" "\n" @@ -117,11 +118,11 @@ msgstr "" "\n" "Feloldja egy álnév lezárását, hogy az emberek új álnevekkel írhassák felül." -#: plugin.py:386 +#: plugin.py:388 msgid "That name isn't valid. Try %q instead." msgstr "Az a név nem érvényes. Próbáld meg %q-t inkább." -#: plugin.py:426 +#: plugin.py:428 msgid "" " \n" "\n" @@ -147,7 +148,7 @@ msgstr "" "jelenti, \"az összes hátralévő paraméter,\" és nem kombinálható választható " "paraméterekkel." -#: plugin.py:449 +#: plugin.py:451 msgid "" "\n" "\n" @@ -158,7 +159,7 @@ msgstr "" "\n" "Eltávolítja a megadott álnevet, ha nincs lezárva." -#: plugin.py:463 +#: plugin.py:465 msgid "" "[--locked|--unlocked]\n" "\n" @@ -168,15 +169,15 @@ msgid "" " " msgstr "" -#: plugin.py:470 +#: plugin.py:472 msgid "Cannot specify --locked and --unlocked simultaneously" msgstr "" -#: plugin.py:486 +#: plugin.py:488 msgid "There are no aliases of that type." msgstr "" -#: plugin.py:488 +#: plugin.py:490 #, fuzzy msgid "There are no aliases." msgstr "Nincs ilyen álnév." diff --git a/plugins/Alias/locales/it.po b/plugins/Alias/locales/it.po index 328911fef..75ed4c968 100644 --- a/plugins/Alias/locales/it.po +++ b/plugins/Alias/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2011-06-07 08:23+0200\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -65,28 +65,29 @@ msgid "" "using\n" " the 'importaliasdatabase' command.\n" "\n" -" To add an alias, `trout`, which expects a word as an argument::\n" +" To add an alias, ``trout``, which expects a word as an argument::\n" "\n" " @alias add trout \"action slaps $1 with a large trout\"\n" " jamessan: The operation succeeded.\n" " @trout me\n" " * bot slaps me with a large trout\n" "\n" -" To add an alias, `lastfm`, which expects a last.fm user and replies " -"with\n" -" their recently played items::\n" +" Add an alias, ``randpercent``, which returns a random percentage " +"value::\n" "\n" -" @alias add lastfm \"rss [format concat http://ws.audioscrobbler." -"com/1.0/user/ [format concat [urlquote $1] /recenttracks.rss]]\"\n" +" @alias add randpercent \"squish [dice 1d100]%\"\n" "\n" -" Note that if the nested commands being aliased hadn't been quoted, then\n" -" those commands would have been run immediately, and `@lastfm` would " -"always\n" -" reply with the same information, the result of those commands.\n" +" This requires the ``Filter`` and ``Games`` plugins to be loaded.\n" +"\n" +" Note that nested commands in an alias should be quoted, or they will " +"only\n" +" run once when you create the alias, and not each time the alias is\n" +" called. (In this case, not quoting the nested command would mean that\n" +" ``@randpercent`` always responds with the same value!)\n" " " msgstr "" -#: plugin.py:357 +#: plugin.py:359 msgid "" "\n" "\n" @@ -98,11 +99,11 @@ msgstr "" " Blocca un alias affinché nessun altro possa modificarlo.\n" " " -#: plugin.py:365 plugin.py:378 +#: plugin.py:367 plugin.py:380 msgid "There is no such alias." msgstr "Non c'è nessun alias." -#: plugin.py:370 +#: plugin.py:372 msgid "" "\n" "\n" @@ -114,11 +115,11 @@ msgstr "" " Sblocca un alias affinché chiunque possa ridefinirne di nuovi.\n" " " -#: plugin.py:386 +#: plugin.py:388 msgid "That name isn't valid. Try %q instead." msgstr "Nome non valido. Prova %q invece." -#: plugin.py:426 +#: plugin.py:428 msgid "" " \n" "\n" @@ -147,7 +148,7 @@ msgstr "" " rimanenti\" e non può essere combinato con quelli opzionali.\n" " " -#: plugin.py:449 +#: plugin.py:451 msgid "" "\n" "\n" @@ -159,7 +160,7 @@ msgstr "" " Rimuove l'alias specificato, se questo non è bloccato.\n" " " -#: plugin.py:463 +#: plugin.py:465 msgid "" "[--locked|--unlocked]\n" "\n" @@ -169,15 +170,15 @@ msgid "" " " msgstr "" -#: plugin.py:470 +#: plugin.py:472 msgid "Cannot specify --locked and --unlocked simultaneously" msgstr "" -#: plugin.py:486 +#: plugin.py:488 msgid "There are no aliases of that type." msgstr "" -#: plugin.py:488 +#: plugin.py:490 #, fuzzy msgid "There are no aliases." msgstr "Non c'è nessun alias." diff --git a/plugins/Alias/messages.pot b/plugins/Alias/messages.pot index 1f412ada6..7cfabc3c3 100644 --- a/plugins/Alias/messages.pot +++ b/plugins/Alias/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -61,25 +61,27 @@ msgid "" " built-in Aka plugin instead (you can migrate your existing aliases using\n" " the 'importaliasdatabase' command.\n" "\n" -" To add an alias, `trout`, which expects a word as an argument::\n" +" To add an alias, ``trout``, which expects a word as an argument::\n" "\n" " @alias add trout \"action slaps $1 with a large trout\"\n" " jamessan: The operation succeeded.\n" " @trout me\n" " * bot slaps me with a large trout\n" "\n" -" To add an alias, `lastfm`, which expects a last.fm user and replies with\n" -" their recently played items::\n" +" Add an alias, ``randpercent``, which returns a random percentage value::\n" "\n" -" @alias add lastfm \"rss [format concat http://ws.audioscrobbler.com/1.0/user/ [format concat [urlquote $1] /recenttracks.rss]]\"\n" +" @alias add randpercent \"squish [dice 1d100]%\"\n" "\n" -" Note that if the nested commands being aliased hadn't been quoted, then\n" -" those commands would have been run immediately, and `@lastfm` would always\n" -" reply with the same information, the result of those commands.\n" +" This requires the ``Filter`` and ``Games`` plugins to be loaded.\n" +"\n" +" Note that nested commands in an alias should be quoted, or they will only\n" +" run once when you create the alias, and not each time the alias is\n" +" called. (In this case, not quoting the nested command would mean that\n" +" ``@randpercent`` always responds with the same value!)\n" " " msgstr "" -#: plugin.py:357 +#: plugin.py:359 #, docstring msgid "" "\n" @@ -88,11 +90,11 @@ msgid "" " " msgstr "" -#: plugin.py:365 plugin.py:378 +#: plugin.py:367 plugin.py:380 msgid "There is no such alias." msgstr "" -#: plugin.py:370 +#: plugin.py:372 #, docstring msgid "" "\n" @@ -101,11 +103,11 @@ msgid "" " " msgstr "" -#: plugin.py:386 +#: plugin.py:388 msgid "That name isn't valid. Try %q instead." msgstr "" -#: plugin.py:426 +#: plugin.py:428 #, docstring msgid "" " \n" @@ -119,7 +121,7 @@ msgid "" " " msgstr "" -#: plugin.py:449 +#: plugin.py:451 #, docstring msgid "" "\n" @@ -128,7 +130,7 @@ msgid "" " " msgstr "" -#: plugin.py:463 +#: plugin.py:465 #, docstring msgid "" "[--locked|--unlocked]\n" @@ -138,15 +140,15 @@ msgid "" " " msgstr "" -#: plugin.py:470 +#: plugin.py:472 msgid "Cannot specify --locked and --unlocked simultaneously" msgstr "" -#: plugin.py:486 +#: plugin.py:488 msgid "There are no aliases of that type." msgstr "" -#: plugin.py:488 +#: plugin.py:490 msgid "There are no aliases." msgstr "" diff --git a/plugins/Anonymous/README.rst b/plugins/Anonymous/README.rst index c291ea2d3..6ce4dcbd3 100644 --- a/plugins/Anonymous/README.rst +++ b/plugins/Anonymous/README.rst @@ -53,22 +53,22 @@ Commands .. _command-anonymous-do: -do +``do `` Performs in . .. _command-anonymous-react: -react +``react `` Sends the to 's last message. is typically a smiley or an emoji. This may not be supported on the current network, as this command depends on IRCv3 features. This is also not supported if supybot.protocols.irc.experimentalExtensions disabled (don't enable it unless you know what you are doing). .. _command-anonymous-say: -say +``say `` Sends to . .. _command-anonymous-tell: -tell +``tell `` Sends to . Can only be used if supybot.plugins.Anonymous.allowPrivateTarget is True. .. _conf-Anonymous: diff --git a/plugins/Anonymous/locales/ru.po b/plugins/Anonymous/locales/ru.po new file mode 100644 index 000000000..b7a2cd579 --- /dev/null +++ b/plugins/Anonymous/locales/ru.po @@ -0,0 +1,250 @@ +# Anonymous plugin for Limnoria +# Copyright (C) 2024 Limnoria +# ssdaniel24 , 2024. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"PO-Revision-Date: 2024-06-12 22:04+0300\n" +"Last-Translator: ssdaniel24 \n" +"Language-Team: \n" +"Language: ru\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" +"X-Generator: Poedit 3.4.2\n" + +#: config.py:50 +msgid "" +"Determines whether\n" +" the bot should require people trying to use this plugin to be in the\n" +" channel they wish to anonymously send to." +msgstr "" +"Определяет, должен ли бот требовать, чтобы люди, использующие этот плагин, " +"находились в канале, куда они хотят написать анонимно." + +#: config.py:54 +msgid "" +"Determines whether the bot should require\n" +" people trying to use this plugin to be registered." +msgstr "" +"Определяет, должен ли бот требовать регистрации у людей, которые " +"используют этот плагин." + +#: config.py:57 +msgid "" +"Determines what capability (if any) the bot should\n" +" require people trying to use this plugin to have." +msgstr "" +"Определяет какие привилегии (если таковые имеются) должен проверять бот у " +"людей, которые используют этот плагин." + +#: config.py:60 +msgid "" +"Determines whether the bot will allow the\n" +" \"tell\" command to be used. If true, the bot will allow the \"tell\"\n" +" command to send private messages to other users." +msgstr "" +"Определяет разрешение на использование команды \"tell\". Если значение " +"установлено в true, то бот позволит использовать команду \"tell\" для " +"отправки личных сообщений другим пользователям." + +#: plugin.py:45 +msgid "" +"\n" +" This plugin allows users to act through the bot anonymously. The " +"'do'\n" +" command has the bot perform an anonymous action in a given channel, " +"and\n" +" the 'say' command allows other people to speak through the bot. " +"Since\n" +" this can be fairly well abused, you might want to set\n" +" supybot.plugins.Anonymous.requireCapability so only users with that\n" +" capability can use this plugin. For extra security, you can require " +"that\n" +" the user be *in* the channel they are trying to address anonymously " +"with\n" +" supybot.plugins.Anonymous.requirePresenceInChannel, or you can " +"require\n" +" that the user be registered by setting\n" +" supybot.plugins.Anonymous.requireRegistration.\n" +"\n" +" Example: Proving that you are the owner\n" +" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" +"\n" +" When you ask for cloak/vhost for your bot, the network operators will\n" +" often ask you to prove that you own the bot. You can do this for " +"example\n" +" with the following method::\n" +"\n" +" @load Anonymous\n" +" @config plugins.anonymous.requirecapability owner\n" +" @config plugins.anonymous.allowprivatetarget True\n" +" @anonymous say Hi, my owner is :)\n" +"\n" +" This\n" +" * Loads the plugin.\n" +" * Makes the plugin require that you are the owner\n" +"\n" +" * If anyone could send private messages as the bot, they could also\n" +" access network services.\n" +"\n" +" * Allows sending private messages\n" +" * Sends message ``Hi, my owner is :)`` to ``operator " +"nick``.\n" +"\n" +" * Note that you won't see the messages that are sent to the bot.\n" +"\n" +" " +msgstr "" +"\n" +"Этот плагин позволяет пользователям анонимно взаимодействовать через бота. " +"Команда 'do' позволяет выполнить некоторое анонимное действие через бота в " +"данном канале, и команда 'say' позволяет другим пользователям общаться " +"через бота. Этим плагином можно легко злоупотреблять, поэтому возможно вы " +"захотите настройку supybot.plugins.Anonymous.requireCapability, чтобы " +"только пользователи с данной привилегией могли могли использовать этот " +"плагин. Для повышенной безопасности, вы можете требовать, чтобы " +"пользователь был в канале, где они хотят взаимодействовать через бота " +"анонимно, с помощью настроки supybot.plugins.Anonymous." +"requirePresenceInChannel. Или вы можете требовать, чтобы пользователь был " +"зарегистрирован с помощью настройки supybot.plugins.Anonymous." +"requireRegistration.\n" +"\n" +"Пример: доказательство того, что вы являетесь владельцем\n" +"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" +"\n" +"Когда вы просите cloak или vhost для своего бота, операторы сети часто " +"могут просить вас доказать, что являетесь владельцем бота. Для примера вы " +"можете сделать это так:\n" +"\n" +"@load Anonymous\n" +"@config plugins.anonymous.requirecapability owner\n" +"@config plugins.anonymous.allowprivatetarget True\n" +"@anonymous say <ник оператора>: Привет, мой хозяин это <ваш ник> :)\n" +"\n" +"Комбинация команд выше\n" +"* Загружает плагин.\n" +"* Выставляет в настройках плагина, чтобы бот требовал привилегии " +"владельца.\n" +"\n" +" * Если кто-нибудь может посылать сообщения от имени бота, то они в том " +"числе могут запрашивать сервисы сети.\n" +"\n" +"* Разрешает отправку личных сообщений.\n" +"* Отправляет сообщение ``Привет, мой хозяин это <ваш ник> :)`` в адрес " +"``<ника оператора>``.\n" +"\n" +" Примечание: вы не сможете получать сообщения, которые отправлены боту." + +#: plugin.py:98 +msgid "You must be in %s to %q in there." +msgstr "Вы должны быть в %s, чтобы %q там." + +#: plugin.py:102 +msgid "I'm lobotomized in %s." +msgstr "Мне сделали лоботомию в %s." + +#: plugin.py:105 +msgid "" +"That channel has set its capabilities so as to disallow the use of this " +"plugin." +msgstr "Этот канал настроен на запрет использования этого плагина." + +#: plugin.py:108 +msgid "" +"This command is disabled (supybot.plugins.Anonymous.allowPrivateTarget is " +"False)." +msgstr "" +"Эта команда отключена (настройка supybot.plugins.Anonymous." +"allowPrivateTarget установлена в False)." + +#: plugin.py:112 +msgid "" +" \n" +"\n" +" Sends to .\n" +" " +msgstr "" +"<канал> <текст>\n" +"\n" +"Отправляет <текст> в <канал>." + +#: plugin.py:124 +msgid "" +" \n" +"\n" +" Sends to . Can only be used if\n" +" supybot.plugins.Anonymous.allowPrivateTarget is True.\n" +" " +msgstr "" +"<ник> <текст>\n" +"\n" +"Отправляет <текст> в адрес <ника>. Команда может быть использована, только " +"если настройка supybot.plugins.Anonymous.allowPrivateTarget установлена в " +"True." + +#: plugin.py:137 +msgid "" +" \n" +"\n" +" Performs in .\n" +" " +msgstr "" +"<канал> <действие>\n" +"\n" +"Выполняет <действие> в <канале>." + +#: plugin.py:148 +msgid "" +" \n" +"\n" +" Sends the to 's last message.\n" +" is typically a smiley or an emoji.\n" +"\n" +" This may not be supported on the current network, as this\n" +" command depends on IRCv3 features.\n" +" This is also not supported if\n" +" supybot.protocols.irc.experimentalExtensions disabled\n" +" (don't enable it unless you know what you are doing).\n" +" " +msgstr "" +"<канал> <реакция> <ник>\n" +"\n" +"Отправляет <реакцию> в ответ на последнее сообщение <ника>. <реакция> это " +"обычно смайлик или эмодзи.\n" +"\n" +"Текущая сеть может не поддерживать эту команду, так как команда зависит от " +"возможностей IRCv3. Она также не поддерживается, если в плагине отключена " +"настройка supybot.protocols.irc.experimentalExtensions (не переключайте, " +"если вы не знаете, что вы делаете)." + +#: plugin.py:162 +msgid "" +"Unable to react, supybot.protocols.irc.experimentalExtensions is disabled." +msgstr "" +"Не удаётся отправить реакцию, настройка supybot.protocols.irc." +"experimentalExtensions отключена." + +#: plugin.py:167 +msgid "Unable to react, the network does not support message-tags." +msgstr "" +"Не удаётся отправить реакцию, данная сеть не поддерживает message-tags." + +#: plugin.py:172 +msgid "" +"Unable to react, the network does not allow draft/reply and/or draft/react." +msgstr "" +"Не удаётся отправить реакцию, данная сеть не позволяет использовать" +"draft/reply или draft/react." + +#: plugin.py:181 +msgid "I couldn't find a message from %s in my history of %s messages." +msgstr "Не могу найти сообщение от %s в моей истории сообщений (%s)." + +#: plugin.py:189 +msgid "Unable to react, %s's last message does not have a message id." +msgstr "" +"Не удаётся отправить реакцию, последнее сообщение %s не имеет id сообщения." diff --git a/plugins/Anonymous/messages.pot b/plugins/Anonymous/messages.pot index a7f18168a..697b6f4ab 100644 --- a/plugins/Anonymous/messages.pot +++ b/plugins/Anonymous/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/AutoMode/messages.pot b/plugins/AutoMode/messages.pot index d67371eea..83901cdc6 100644 --- a/plugins/AutoMode/messages.pot +++ b/plugins/AutoMode/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/AutoMode/plugin.py b/plugins/AutoMode/plugin.py index 738aae428..f11ed3238 100644 --- a/plugins/AutoMode/plugin.py +++ b/plugins/AutoMode/plugin.py @@ -163,8 +163,9 @@ class AutoMode(callbacks.Plugin): # We're not in the channel anymore. pass schedule.addEvent(unban, time.time()+period) - banmask =conf.supybot.protocols.irc.banmask.makeBanmask(msg.prefix) - irc.queueMsg(ircmsgs.ban(channel, banmask)) + banmasks = conf.supybot.protocols.irc.banmask.makeExtBanmasks( + msg.prefix, channel=channel, network=irc.network) + irc.queueMsg(ircmsgs.bans(channel, banmasks)) irc.queueMsg(ircmsgs.kick(channel, msg.nick)) try: diff --git a/plugins/Autocomplete/messages.pot b/plugins/Autocomplete/messages.pot index 19ba44347..d41ed7004 100644 --- a/plugins/Autocomplete/messages.pot +++ b/plugins/Autocomplete/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/BadWords/README.rst b/plugins/BadWords/README.rst index e6636d078..c1b701fb8 100644 --- a/plugins/BadWords/README.rst +++ b/plugins/BadWords/README.rst @@ -25,17 +25,17 @@ Commands .. _command-badwords-add: -add [ ...] +``add [ ...]`` Adds all s to the list of words being censored. .. _command-badwords-list: -list takes no arguments +``list takes no arguments`` Returns the list of words being censored. .. _command-badwords-remove: -remove [ ...] +``remove [ ...]`` Removes s from the list of words being censored. .. _conf-BadWords: diff --git a/plugins/BadWords/locales/fi.po b/plugins/BadWords/locales/fi.po index 111e3cf25..15ebf968d 100644 --- a/plugins/BadWords/locales/fi.po +++ b/plugins/BadWords/locales/fi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Supybot BadWords\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -122,6 +122,15 @@ msgstr "" " tekstin värittämistä tai korostamista tekevien lisäosien kanssa." #: config.py:117 +#, fuzzy +msgid "" +"Determines whether the bot will filter its own\n" +" messages." +msgstr "" +"Määrittää potkiiko botti ihmiset\n" +" varoituksella jos he käyttävät pahoja sanoja." + +#: config.py:120 msgid "" "Determines whether the bot will kick people with\n" " a warning when they use bad words." @@ -129,7 +138,7 @@ msgstr "" "Määrittää potkiiko botti ihmiset\n" " varoituksella jos he käyttävät pahoja sanoja." -#: config.py:120 +#: config.py:123 msgid "" "You have been kicked for using a word\n" " prohibited in the presence of this bot. Please use more appropriate\n" @@ -139,7 +148,7 @@ msgstr "" " käytöstä tämän botin läsnäollessa. Ole hyvä ja käytä asianmukaisempaa\n" " kieltä tulevaisuudessa." -#: config.py:122 +#: config.py:125 msgid "" "Determines the kick message used by the\n" " bot when kicking users for saying bad words." @@ -158,7 +167,7 @@ msgstr "" "botilla\n" " on opit." -#: plugin.py:127 +#: plugin.py:128 msgid "" "takes no arguments\n" "\n" @@ -170,11 +179,11 @@ msgstr "" " Palauttaa listan sanoista, joita sensuroidaan.\n" " " -#: plugin.py:137 +#: plugin.py:138 msgid "I'm not currently censoring any bad words." msgstr "En ole sensuroimassa yhtään pahaa sanaa juuri nyt." -#: plugin.py:142 +#: plugin.py:143 msgid "" " [ ...]\n" "\n" @@ -186,7 +195,7 @@ msgstr "" " Lisää kaikki (t) sensuroitaviin sanoihin.\n" " " -#: plugin.py:162 +#: plugin.py:163 msgid "" " [ ...]\n" "\n" diff --git a/plugins/BadWords/locales/fr.po b/plugins/BadWords/locales/fr.po index 23bebe95e..f3232ea07 100644 --- a/plugins/BadWords/locales/fr.po +++ b/plugins/BadWords/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: Valentin Lorentz \n" "Language-Team: Limnoria \n" @@ -108,6 +108,15 @@ msgstr "" "toute couleur ou formattage des autres plugins" #: config.py:117 +#, fuzzy +msgid "" +"Determines whether the bot will filter its own\n" +" messages." +msgstr "" +"Détermine si le bot kickera les gens avec un avertissement lorsqu'ils " +"utilisent des gros mots." + +#: config.py:120 msgid "" "Determines whether the bot will kick people with\n" " a warning when they use bad words." @@ -115,7 +124,7 @@ msgstr "" "Détermine si le bot kickera les gens avec un avertissement lorsqu'ils " "utilisent des gros mots." -#: config.py:120 +#: config.py:123 msgid "" "You have been kicked for using a word\n" " prohibited in the presence of this bot. Please use more appropriate\n" @@ -124,7 +133,7 @@ msgstr "" "Vous avez été kické(e) parce que vous avez utilisé un mot interdit en la " "présence de ce bot. Veuillez utiliser un langage plus approprié par le futur." -#: config.py:122 +#: config.py:125 msgid "" "Determines the kick message used by the\n" " bot when kicking users for saying bad words." @@ -139,7 +148,7 @@ msgid "" " has op." msgstr "" -#: plugin.py:127 +#: plugin.py:128 msgid "" "takes no arguments\n" "\n" @@ -150,11 +159,11 @@ msgstr "" "\n" "Retourne une liste de mots qui sont censurés." -#: plugin.py:137 +#: plugin.py:138 msgid "I'm not currently censoring any bad words." msgstr "Je ne censure actuellement aucun mot." -#: plugin.py:142 +#: plugin.py:143 msgid "" " [ ...]\n" "\n" @@ -165,7 +174,7 @@ msgstr "" "\n" "Ajoute tous les mots à la liste des mots que le bot ne doit pas dire." -#: plugin.py:162 +#: plugin.py:163 msgid "" " [ ...]\n" "\n" diff --git a/plugins/BadWords/locales/it.po b/plugins/BadWords/locales/it.po index 904fccb5a..23d95ba63 100644 --- a/plugins/BadWords/locales/it.po +++ b/plugins/BadWords/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2011-06-28 23:29+0200\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -79,8 +79,8 @@ msgid "" " length of the bad word); this string is configurable via\n" " supybot.plugins.BadWords.simpleReplacement." msgstr "" -"Determina come verranno sostituite le parole volgari. \"nastyCharacters" -"\" (predefinito)\n" +"Determina come verranno sostituite le parole volgari. " +"\"nastyCharacters\" (predefinito)\n" " rimpiazzerà la parola con lo stesso numero di \"brutti caratteri\" (come " "quelli usati\n" " nei fumetti; configurabile da supybot.plugins.BadWords.nastyChars). " @@ -117,6 +117,15 @@ msgstr "" " con altri plugin che colorano o rendono il testo grassetto." #: config.py:117 +#, fuzzy +msgid "" +"Determines whether the bot will filter its own\n" +" messages." +msgstr "" +"Determina se il bot caccerà (kick) gli utenti con un avvertimento quando " +"usano volgarità." + +#: config.py:120 msgid "" "Determines whether the bot will kick people with\n" " a warning when they use bad words." @@ -124,7 +133,7 @@ msgstr "" "Determina se il bot caccerà (kick) gli utenti con un avvertimento quando " "usano volgarità." -#: config.py:120 +#: config.py:123 msgid "" "You have been kicked for using a word\n" " prohibited in the presence of this bot. Please use more appropriate\n" @@ -133,7 +142,7 @@ msgstr "" "Sei stato/a cacciato/a per aver usato parole proibite in presenza del bot.\n" " In futuro utilizza un linguaggio più appropriato." -#: config.py:122 +#: config.py:125 msgid "" "Determines the kick message used by the\n" " bot when kicking users for saying bad words." @@ -151,7 +160,7 @@ msgstr "" " Se il bot ha lo stato di operatore, può essere anche utilizzato\n" " per cacciare (kick) utenti che scrivono queste parole." -#: plugin.py:127 +#: plugin.py:128 msgid "" "takes no arguments\n" "\n" @@ -163,11 +172,11 @@ msgstr "" " Riporta l'elenco delle parole censurate.\n" " " -#: plugin.py:137 +#: plugin.py:138 msgid "I'm not currently censoring any bad words." msgstr "Al momento non ho alcuna parola censurata." -#: plugin.py:142 +#: plugin.py:143 msgid "" " [ ...]\n" "\n" @@ -179,7 +188,7 @@ msgstr "" " Aggiunge all'elenco di quelle da censurare.\n" " " -#: plugin.py:162 +#: plugin.py:163 msgid "" " [ ...]\n" "\n" diff --git a/plugins/BadWords/messages.pot b/plugins/BadWords/messages.pot index b67ae4adc..ecc67ccab 100644 --- a/plugins/BadWords/messages.pot +++ b/plugins/BadWords/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -112,7 +112,7 @@ msgid "" " has op." msgstr "" -#: plugin.py:127 +#: plugin.py:128 #, docstring msgid "" "takes no arguments\n" @@ -121,11 +121,11 @@ msgid "" " " msgstr "" -#: plugin.py:137 +#: plugin.py:138 msgid "I'm not currently censoring any bad words." msgstr "" -#: plugin.py:142 +#: plugin.py:143 #, docstring msgid "" " [ ...]\n" @@ -134,7 +134,7 @@ msgid "" " " msgstr "" -#: plugin.py:162 +#: plugin.py:163 #, docstring msgid "" " [ ...]\n" diff --git a/plugins/Channel/README.rst b/plugins/Channel/README.rst index ba49124b6..fe34fe0e1 100644 --- a/plugins/Channel/README.rst +++ b/plugins/Channel/README.rst @@ -23,197 +23,197 @@ Commands .. _command-channel-alert: -alert [] +``alert [] `` Sends to all the users in who have the ,op capability. .. _command-channel-ban.add: -ban add [] [] +``ban add [] []`` If you have the #channel,op capability, this will effect a persistent ban from interacting with the bot on the given (or the current hostmask associated with ). Other plugins may enforce this ban by actually banning users with matching hostmasks when they join. is an optional argument specifying when (in "seconds from now") the ban should expire; if none is given, the ban will never automatically expire. is only necessary if the message isn't sent in the channel itself. .. _command-channel-ban.hostmask: -ban hostmask [] +``ban hostmask [] `` Bans the from the . .. _command-channel-ban.list: -ban list [] [] +``ban list [] []`` If you have the #channel,op capability, this will show you the current persistent bans on the that match the given mask, if any (returns all of them otherwise). Note that you can use * as a wildcard on masks and \* to match actual * in masks .. _command-channel-ban.remove: -ban remove [] +``ban remove [] `` If you have the #channel,op capability, this will remove the persistent ban on . is only necessary if the message isn't sent in the channel itself. .. _command-channel-capability.add: -capability add [] [ ...] +``capability add [] [ ...]`` If you have the #channel,op capability, this will give the (or the user to whom maps) the capability in the channel. is only necessary if the message isn't sent in the channel itself. .. _command-channel-capability.list: -capability list [] +``capability list []`` Returns the capabilities present on the . is only necessary if the message isn't sent in the channel itself. .. _command-channel-capability.remove: -capability remove [] [ ...] +``capability remove [] [ ...]`` If you have the #channel,op capability, this will take from the user currently identified as (or the user to whom maps) the capability in the channel. is only necessary if the message isn't sent in the channel itself. .. _command-channel-capability.set: -capability set [] [ ...] +``capability set [] [ ...]`` If you have the #channel,op capability, this will add the channel capability for all users in the channel. is only necessary if the message isn't sent in the channel itself. .. _command-channel-capability.setdefault: -capability setdefault [] {True|False} +``capability setdefault [] {True|False}`` If you have the #channel,op capability, this will set the default response to non-power-related (that is, not {op, halfop, voice}) capabilities to be the value you give. is only necessary if the message isn't sent in the channel itself. .. _command-channel-capability.unset: -capability unset [] [ ...] +``capability unset [] [ ...]`` If you have the #channel,op capability, this will unset the channel capability so each user's specific capability or the channel default capability will take precedence. is only necessary if the message isn't sent in the channel itself. .. _command-channel-cycle: -cycle [] [] +``cycle [] []`` If you have the #channel,op capability, this will cause the bot to "cycle", or PART and then JOIN the channel. is only necessary if the message isn't sent in the channel itself. If is not specified, the default part message specified in supybot.plugins.Channel.partMsg will be used. No part message will be used if neither a cycle reason nor a default part message is given. .. _command-channel-dehalfop: -dehalfop [] [ ...] +``dehalfop [] [ ...]`` If you have the #channel,op capability, this will remove half-operator privileges from all the nicks given. If no nicks are given, removes half-operator privileges from the person sending the message. .. _command-channel-deop: -deop [] [ ...] +``deop [] [ ...]`` If you have the #channel,op capability, this will remove operator privileges from all the nicks given. If no nicks are given, removes operator privileges from the person sending the message. .. _command-channel-devoice: -devoice [] [ ...] +``devoice [] [ ...]`` If you have the #channel,op capability, this will remove voice from all the nicks given. If no nicks are given, removes voice from the person sending the message. .. _command-channel-disable: -disable [] [] [] +``disable [] [] []`` If you have the #channel,op capability, this will disable the in . If is provided, will be disabled only for that plugin. If only is provided, all commands in the given plugin will be disabled. is only necessary if the message isn't sent in the channel itself. .. _command-channel-enable: -enable [] [] [] +``enable [] [] []`` If you have the #channel,op capability, this will enable the in if it has been disabled. If is provided, will be enabled only for that plugin. If only is provided, all commands in the given plugin will be enabled. is only necessary if the message isn't sent in the channel itself. .. _command-channel-halfop: -halfop [] [ ...] +``halfop [] [ ...]`` If you have the #channel,halfop capability, this will give all the s you provide halfops. If you don't provide any s, this will give you halfops. is only necessary if the message isn't sent in the channel itself. .. _command-channel-iban: -iban [] [--{exact,nick,user,host}] [] - If you have the #channel,op capability, this will ban for as many seconds as you specify, otherwise (if you specify 0 seconds or don't specify a number of seconds) it will ban the person indefinitely. --exact can be used to specify an exact hostmask. You can combine the --nick, --user, and --host options as you choose. is only necessary if the message isn't sent in the channel itself. +``iban [] [--{exact,nick,user,host}] []`` + If you have the #channel,op capability, this will ban for as many seconds as you specify, otherwise (if you specify 0 seconds or don't specify a number of seconds) it will ban the person indefinitely. --exact can be used to specify an exact hostmask. You can combine the --nick, --user, and --host options as you choose. If --account is provided and the user is logged in and the network supports account bans, this will ban the user's account instead. is only necessary if the message isn't sent in the channel itself. .. _command-channel-ignore.add: -ignore add [] [] +``ignore add [] []`` If you have the #channel,op capability, this will set a persistent ignore on or the hostmask currently associated with . is an optional argument specifying when (in "seconds from now") the ignore will expire; if it isn't given, the ignore will never automatically expire. is only necessary if the message isn't sent in the channel itself. .. _command-channel-ignore.list: -ignore list [] +``ignore list []`` Lists the hostmasks that the bot is ignoring on the given channel. is only necessary if the message isn't sent in the channel itself. .. _command-channel-ignore.remove: -ignore remove [] +``ignore remove [] `` If you have the #channel,op capability, this will remove the persistent ignore on in the channel. is only necessary if the message isn't sent in the channel itself. .. _command-channel-invite: -invite [] +``invite [] `` If you have the #channel,op capability, this will invite to join . is only necessary if the message isn't sent in the channel itself. .. _command-channel-kban: -kban [] [--{exact,nick,user,host,account}] [] [] - If you have the #channel,op capability, this will kickban for as many seconds as you specify, or else (if you specify 0 seconds or don't specify a number of seconds) it will ban the person indefinitely. --exact bans only the exact hostmask; --nick bans just the nick; --user bans just the user, and --host bans just the host You can combine the --nick, --user, and --host options as you choose. is only necessary if the message isn't sent in the channel itself. +``kban [] [--{exact,nick,user,host,account}] [] []`` + If you have the #channel,op capability, this will kickban for as many seconds as you specify, or else (if you specify 0 seconds or don't specify a number of seconds) it will ban the person indefinitely. --exact bans only the exact hostmask; --nick bans just the nick; --user bans just the user, and --host bans just the host You can combine the --nick, --user, and --host options as you choose. If --account is provided and the user is logged in and the network supports account bans, this will ban the user's account instead. is only necessary if the message isn't sent in the channel itself. .. _command-channel-key: -key [] [] +``key [] []`` Sets the keyword in to . If is not given, removes the keyword requirement to join . is only necessary if the message isn't sent in the channel itself. .. _command-channel-kick: -kick [] [, , ...] [] +``kick [] [, , ...] []`` Kicks (s) from for . If isn't given, uses the nick of the person making the command as the reason. is only necessary if the message isn't sent in the channel itself. .. _command-channel-limit: -limit [] [] +``limit [] []`` Sets the channel limit to . If is 0, or isn't given, removes the channel limit. is only necessary if the message isn't sent in the channel itself. .. _command-channel-listbans: -listbans [] +``listbans []`` List all bans on the channel. If is not given, it defaults to the current channel. .. _command-channel-lobotomy.add: -lobotomy add [] +``lobotomy add []`` If you have the #channel,op capability, this will "lobotomize" the bot, making it silent and unanswering to all requests made in the channel. is only necessary if the message isn't sent in the channel itself. .. _command-channel-lobotomy.list: -lobotomy list takes no arguments +``lobotomy list takes no arguments`` Returns the channels in which this bot is lobotomized. .. _command-channel-lobotomy.remove: -lobotomy remove [] +``lobotomy remove []`` If you have the #channel,op capability, this will unlobotomize the bot, making it respond to requests made in the channel again. is only necessary if the message isn't sent in the channel itself. .. _command-channel-mode: -mode [] [ ...] +``mode [] [ ...]`` Sets the mode in to , sending the arguments given. is only necessary if the message isn't sent in the channel itself. .. _command-channel-moderate: -moderate [] +``moderate []`` Sets +m on , making it so only ops and voiced users can send messages to the channel. is only necessary if the message isn't sent in the channel itself. .. _command-channel-nicks: -nicks [] [--count] +``nicks [] [--count]`` Returns the nicks in . is only necessary if the message isn't sent in the channel itself. Returns only the number of nicks if --count option is provided. .. _command-channel-op: -op [] [ ...] +``op [] [ ...]`` If you have the #channel,op capability, this will give all the s you provide ops. If you don't provide any s, this will op you. is only necessary if the message isn't sent in the channel itself. .. _command-channel-part: -part [] [] +``part [] []`` Tells the bot to part the list of channels you give it. is only necessary if you want the bot to part a channel other than the current channel. If is specified, use it as the part message. Otherwise, the default part message specified in supybot.plugins.Channel.partMsg will be used. No part message will be used if no default is configured. .. _command-channel-unban: -unban [] [] +``unban [] []`` Unbans on . If is not given, unbans any hostmask currently banned on that matches your current hostmask. Especially useful for unbanning yourself when you get unexpectedly (or accidentally) banned from the channel. is only necessary if the message isn't sent in the channel itself. .. _command-channel-unmoderate: -unmoderate [] +``unmoderate []`` Sets -m on , making it so everyone can send messages to the channel. is only necessary if the message isn't sent in the channel itself. .. _command-channel-voice: -voice [] [ ...] +``voice [] [ ...]`` If you have the #channel,voice capability, this will voice all the s you provide. If you don't provide any s, this will voice you. is only necessary if the message isn't sent in the channel itself. .. _conf-Channel: diff --git a/plugins/Channel/locales/de.po b/plugins/Channel/locales/de.po index b3e1b32a8..204c05a86 100644 --- a/plugins/Channel/locales/de.po +++ b/plugins/Channel/locales/de.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: sdf\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-04-27 15:33+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -352,8 +352,10 @@ msgid "kick someone" msgstr "jemanden kicken" #: plugin.py:316 +#, fuzzy msgid "" -"[] [--{exact,nick,user,host}] [] []\n" +"[] [--{exact,nick,user,host,account}] [] " +"[]\n" "\n" " If you have the #channel,op capability, this will kickban " "for\n" @@ -362,13 +364,13 @@ msgid "" " don't specify a number of seconds) it will ban the person " "indefinitely.\n" " --exact bans only the exact hostmask; --nick bans just the nick;\n" -" --user bans just the user, and --host bans just the host. You can\n" -" combine these options as you choose. is a reason to give " -"for\n" -" the kick.\n" -" is only necessary if the message isn't sent in the " -"channel\n" -" itself.\n" +" --user bans just the user, and --host bans just the host\n" +" You can combine the --nick, --user, and --host options as you " +"choose.\n" +" If --account is provided and the user is logged in and the network\n" +" supports account bans, this will ban the user's account instead.\n" +" is only necessary if the message isn't sent in the channel " +"itself.\n" " " msgstr "" "[] [--{exact,nick,user,host}] [] []\n" @@ -382,11 +384,11 @@ msgstr "" "den Kick. ist nur notwendig, wenn die Nachricht nicht im Kanal " "selbst gesendet wurde." -#: plugin.py:333 +#: plugin.py:334 msgid "kick or ban someone" msgstr "jemanden kicken oder bannen" -#: plugin.py:341 +#: plugin.py:342 #, fuzzy msgid "" "[] [--{exact,nick,user,host}] []\n" @@ -396,11 +398,13 @@ msgid "" "or\n" " don't specify a number of seconds) it will ban the person " "indefinitely.\n" -" --exact can be used to specify an exact hostmask. You can combine " -"the\n" -" exact, nick, user, and host options as you choose. is " -"only\n" -" necessary if the message isn't sent in the channel itself.\n" +" --exact can be used to specify an exact hostmask.\n" +" You can combine the --nick, --user, and --host options as you " +"choose.\n" +" If --account is provided and the user is logged in and the network\n" +" supports account bans, this will ban the user's account instead.\n" +" is only necessary if the message isn't sent in the channel " +"itself.\n" " " msgstr "" "[] [--{exact,nick,user,host}] [] []\n" @@ -414,28 +418,28 @@ msgstr "" "den Kick. ist nur notwendig, wenn die Nachricht nicht im Kanal " "selbst gesendet wurde." -#: plugin.py:355 plugin.py:581 +#: plugin.py:359 plugin.py:610 #, fuzzy msgid "ban someone" msgstr "jemanden entbannen" -#: plugin.py:375 +#: plugin.py:382 msgid "I haven't seen %s." msgstr "Ich habe % nicht gesehen." -#: plugin.py:385 +#: plugin.py:394 msgid "I cowardly refuse to kickban myself." msgstr "Ich bin zu feige um mich selbst zu kicken und zu bannen." -#: plugin.py:394 +#: plugin.py:397 plugin.py:409 plugin.py:418 msgid "I cowardly refuse to ban myself." msgstr "Ich bin zu feige um mich selbst zu bannen." -#: plugin.py:422 +#: plugin.py:451 msgid "%s has %s too, you can't ban them." msgstr "%s hat auch %s, du kannst ihn/sie/es nicht bannen." -#: plugin.py:433 +#: plugin.py:462 #, fuzzy msgid "" "[] []\n" @@ -457,19 +461,19 @@ msgstr "" "entbannen, falls du versehentlich im Kanal gebannt wurdest. ist nur " "notwendig, wenn die Nachricht nicht im Kanal selbst gesendet wurde." -#: plugin.py:453 +#: plugin.py:482 msgid "All bans on %s matching %s have been removed." msgstr "Alle Bans von %s die auf %s zutreffen wurden entfernt." -#: plugin.py:457 +#: plugin.py:486 msgid "No bans matching %s were found on %s." msgstr "Keine passenden Bans %s wurden in %s gefunden." -#: plugin.py:460 +#: plugin.py:489 msgid "unban someone" msgstr "jemanden entbannen" -#: plugin.py:467 +#: plugin.py:496 msgid "" "[]\n" "\n" @@ -477,11 +481,11 @@ msgid "" " If is not given, it defaults to the current channel." msgstr "" -#: plugin.py:471 +#: plugin.py:500 msgid "No bans." msgstr "" -#: plugin.py:476 +#: plugin.py:505 msgid "" "[] \n" "\n" @@ -496,19 +500,19 @@ msgstr "" " zu betreten. ist nur notwendig, wenn die Nachricht nicht im " "Kanal selbst gesendet wurde." -#: plugin.py:485 +#: plugin.py:514 msgid "invite someone" msgstr "jemanden einladen" -#: plugin.py:504 +#: plugin.py:533 msgid "%s is already in %s." msgstr "%s ist schon in %s." -#: plugin.py:511 +#: plugin.py:540 msgid "There is no %s on this network." msgstr "%s nicht auf diesem Netzwerk." -#: plugin.py:523 +#: plugin.py:552 msgid "" "[]\n" "\n" @@ -528,7 +532,7 @@ msgstr "" "im Kanal getätigt werden. ist nur notwendig, wenn die Nachricht " "nicht im Kanal selbst gesendet wurde." -#: plugin.py:538 +#: plugin.py:567 msgid "" "[]\n" "\n" @@ -547,7 +551,7 @@ msgstr "" "Kanal. ist nur notwendig, wenn die Nachricht nicht im Kanal selbst " "gesendet wurde." -#: plugin.py:553 +#: plugin.py:582 msgid "" "takes no arguments\n" "\n" @@ -558,16 +562,16 @@ msgstr "" "\n" "Gibt die Kanäle aus in denen der Bot hirnamputiert ist." -#: plugin.py:568 +#: plugin.py:597 msgid "I'm currently lobotomized in %L." msgstr "Ich bin momentan hirnamputiert in %L." -#: plugin.py:571 +#: plugin.py:600 msgid "I'm not currently lobotomized in any channels that you're in." msgstr "" "Momentan bin ich nicht hirnamputiert in allen Kanälen in denen du bist." -#: plugin.py:585 +#: plugin.py:614 msgid "" "[] []\n" "\n" @@ -595,7 +599,7 @@ msgstr "" "falls nicht angegeben wird der Ban niemals automatisch ablaufen. ist " "nur notwendig, wenn die Nachricht nicht im Kanal selbst gesendet wurde." -#: plugin.py:605 +#: plugin.py:639 msgid "" "[] \n" "\n" @@ -611,11 +615,11 @@ msgstr "" " aufgehoben. ist nur notwendig, wenn die Nachricht nicht " "im Kanal selbst gesendet wurde." -#: plugin.py:617 +#: plugin.py:651 msgid "There are no persistent bans for that hostmask." msgstr "Es gibt keine beständigen Bans für diese Hostmaske." -#: plugin.py:622 +#: plugin.py:656 #, fuzzy msgid "" "[] []\n" @@ -633,19 +637,19 @@ msgstr "" " aufgehoben. ist nur notwendig, wenn die Nachricht nicht " "im Kanal selbst gesendet wurde." -#: plugin.py:640 +#: plugin.py:674 msgid "%q (expires %t)" msgstr "%q (läuft ab:%t)" -#: plugin.py:643 +#: plugin.py:677 msgid "%q (never expires)" msgstr "%q(läuft niemals ab)" -#: plugin.py:647 +#: plugin.py:681 msgid "There are no persistent bans on %s." msgstr "Es gibt keine beständigen Bans für %s." -#: plugin.py:654 +#: plugin.py:688 msgid "" "[] []\n" "\n" @@ -669,7 +673,7 @@ msgstr "" "Ignorierung niemals automatisch ablaufen. ist nur notwendig, wenn " "die Nachricht nicht im Kanal selbst gesendet wurde." -#: plugin.py:672 +#: plugin.py:706 #, fuzzy msgid "" "[] \n" @@ -686,11 +690,11 @@ msgstr "" "von im Kanal entfernen. ist nur notwendig, wenn die " "Nachricht nicht im Kanal selbst gesendet wurde." -#: plugin.py:684 +#: plugin.py:718 msgid "There are no ignores for that hostmask." msgstr "Es gibt keine Ignorierungen für diese Hostmaske." -#: plugin.py:689 +#: plugin.py:723 msgid "" "[]\n" "\n" @@ -705,11 +709,11 @@ msgstr "" "Listet die Hostmasken auf, die der Bot im gegeben Kanal ignoriert. " "ist nur notwendig, wenn die Nachricht nicht im Kanal selbst gesendet wurde." -#: plugin.py:698 +#: plugin.py:732 msgid "I'm not currently ignoring any hostmasks in %q" msgstr "Momentan ignoriere ich keine Hostmasken in %s." -#: plugin.py:709 +#: plugin.py:743 #, fuzzy msgid "" "[] [ ...]\n" @@ -727,7 +731,7 @@ msgstr "" " ist nur notwendig, wenn die Nachricht nicht im Kanal selbst gesendet " "wurde." -#: plugin.py:725 +#: plugin.py:759 msgid "" "[] [ ...]\n" "\n" @@ -746,11 +750,11 @@ msgstr "" "auf des Benutzers auf den die zutrifft). ist nur " "notwendig, wenn die Nachricht nicht im Kanal selbst gesendet wurde." -#: plugin.py:744 +#: plugin.py:778 msgid "That user didn't have the %L %s." msgstr "Der Nutzer hatte nicht %L %s." -#: plugin.py:753 +#: plugin.py:787 msgid "" "[] {True|False}\n" "\n" @@ -770,7 +774,7 @@ msgstr "" "angegeben Antwort setzen. ist nur notwendig, wenn die Nachricht " "nicht im Kanal selbst gesendet wurde." -#: plugin.py:771 +#: plugin.py:805 msgid "" "[] [ ...]\n" "\n" @@ -787,7 +791,7 @@ msgstr "" " für alle Benutzer hinzugefügt. ist nur notwendig, wenn " "die Nachricht nicht im Kanal selbst gesendet wurde." -#: plugin.py:786 +#: plugin.py:820 msgid "" "[] [ ...]\n" "\n" @@ -807,15 +811,15 @@ msgstr "" "vorrang haben. ist nur notwendig, wenn die Nachricht nicht im Kanal " "selbst gesendet wurde." -#: plugin.py:802 +#: plugin.py:836 msgid "capability" msgstr "Fähigkeit" -#: plugin.py:805 +#: plugin.py:839 msgid "I do not know about the %L %s." msgstr "Ich weiß nichts von %L %s." -#: plugin.py:812 +#: plugin.py:846 msgid "" "[]\n" "\n" @@ -828,7 +832,7 @@ msgstr "" "Gibt die Fähigkeiten zurück, die es im gibt. ist nur " "notwendig, falls die Nachricht nicht im Kanal selbt gegeben wurde." -#: plugin.py:824 +#: plugin.py:858 msgid "" "[] [] []\n" "\n" @@ -849,15 +853,15 @@ msgstr "" "angegeben wurde, werden alle Befehle des Plugins deaktiviert. ist " "nur notwendig, wenn die Nachricht nicht im Kanal selbst gesendet wurde." -#: plugin.py:840 plugin.py:879 +#: plugin.py:874 plugin.py:913 msgid "The %s plugin does not have a command called %s." msgstr "%s Plugin hat keinen Befehl %s." -#: plugin.py:847 plugin.py:886 +#: plugin.py:881 plugin.py:920 msgid "No plugin or command named %s could be found." msgstr "Kein Plugin oder Befehl mit dem Namen %s konnte gefunden werden." -#: plugin.py:863 +#: plugin.py:897 msgid "" "[] [] []\n" "\n" @@ -879,11 +883,11 @@ msgstr "" "wurde, werden alle Befehle des Plugins aktiviert. ist nur notwendig, " "wenn die Nachricht nicht im Kanal selbst gesendet wurde." -#: plugin.py:900 +#: plugin.py:934 msgid "%s was not disabled." msgstr "%s wurde nicht abgeschaltet." -#: plugin.py:909 +#: plugin.py:943 msgid "" "[] [--count]\n" "\n" @@ -899,11 +903,11 @@ msgstr "" "Nachricht nicht im Kanal selbst gesendet wurde. Gibt nur die Anzahl der " "Nicks an, falls die --count Option angegeben wurde." -#: plugin.py:931 +#: plugin.py:965 msgid "You don't have access to that information." msgstr "Ich habe keinen Zugriff auf diese Informationen." -#: plugin.py:946 +#: plugin.py:980 msgid "" "Internal message for notifying all the #channel,ops in a channel of\n" " a given situation." @@ -911,15 +915,15 @@ msgstr "" "Interne Nachricht die alle #channel,ops eines Kanals über eine Situation " "informiert." -#: plugin.py:949 +#: plugin.py:983 msgid "Alert to all %s ops: %s" msgstr "Alarm an alle %s Operatoren: %s" -#: plugin.py:951 +#: plugin.py:985 msgid " (from %s)" msgstr "(von %s)" -#: plugin.py:963 +#: plugin.py:997 msgid "" "[] \n" "\n" @@ -932,7 +936,7 @@ msgstr "" "\n" "Sendet , die die ,op Fähigkeit haben." -#: plugin.py:973 +#: plugin.py:1007 msgid "" "[] []\n" "\n" @@ -947,11 +951,15 @@ msgid "" " " msgstr "" -#: plugin.py:994 +#: plugin.py:1028 #, fuzzy msgid "I'm not in %s." msgstr "Ich habe % nicht gesehen." +#: plugin.py:1032 +msgid "%s removed from configured join list." +msgstr "" + #~ msgid "" #~ "I cowardly refuse to devoice myself. If you really want me devoiced, " #~ "tell me to op you and then devoice me yourself." diff --git a/plugins/Channel/locales/fi.po b/plugins/Channel/locales/fi.po index 48373839e..ed346b65b 100644 --- a/plugins/Channel/locales/fi.po +++ b/plugins/Channel/locales/fi.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: Supybot Channel\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-12-20 12:14+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: suomi <>\n" @@ -384,8 +384,10 @@ msgid "kick someone" msgstr "potki joku" #: plugin.py:316 +#, fuzzy msgid "" -"[] [--{exact,nick,user,host}] [] []\n" +"[] [--{exact,nick,user,host,account}] [] " +"[]\n" "\n" " If you have the #channel,op capability, this will kickban " "for\n" @@ -394,13 +396,13 @@ msgid "" " don't specify a number of seconds) it will ban the person " "indefinitely.\n" " --exact bans only the exact hostmask; --nick bans just the nick;\n" -" --user bans just the user, and --host bans just the host. You can\n" -" combine these options as you choose. is a reason to give " -"for\n" -" the kick.\n" -" is only necessary if the message isn't sent in the " -"channel\n" -" itself.\n" +" --user bans just the user, and --host bans just the host\n" +" You can combine the --nick, --user, and --host options as you " +"choose.\n" +" If --account is provided and the user is logged in and the network\n" +" supports account bans, this will ban the user's account instead.\n" +" is only necessary if the message isn't sent in the channel " +"itself.\n" " " msgstr "" "[] [--{exact,nick,user,host}] [] []\n" @@ -422,11 +424,12 @@ msgstr "" " itsellään.\n" " " -#: plugin.py:333 +#: plugin.py:334 msgid "kick or ban someone" msgstr "potki tai anna jollekulle porttikielto" -#: plugin.py:341 +#: plugin.py:342 +#, fuzzy msgid "" "[] [--{exact,nick,user,host}] []\n" "\n" @@ -435,11 +438,13 @@ msgid "" "or\n" " don't specify a number of seconds) it will ban the person " "indefinitely.\n" -" --exact can be used to specify an exact hostmask. You can combine " -"the\n" -" exact, nick, user, and host options as you choose. is " -"only\n" -" necessary if the message isn't sent in the channel itself.\n" +" --exact can be used to specify an exact hostmask.\n" +" You can combine the --nick, --user, and --host options as you " +"choose.\n" +" If --account is provided and the user is logged in and the network\n" +" supports account bans, this will ban the user's account instead.\n" +" is only necessary if the message isn't sent in the channel " +"itself.\n" " " msgstr "" "[] [--{exact,nick,user,host}] []\n" @@ -457,30 +462,30 @@ msgstr "" "lähetetä \n" " kanavalla itsellään." -#: plugin.py:355 plugin.py:581 +#: plugin.py:359 plugin.py:610 msgid "ban someone" msgstr "anna jollekulle porttikielto" -#: plugin.py:375 +#: plugin.py:382 msgid "I haven't seen %s." msgstr "Minä en ole nähnyt käyttäjää %s." -#: plugin.py:385 +#: plugin.py:394 msgid "I cowardly refuse to kickban myself." msgstr "" "Minä pelkurimaisesti kieltäydyn potkimasta itseäni ja antamasta itselleni " "porttikieltoa." -#: plugin.py:394 +#: plugin.py:397 plugin.py:409 plugin.py:418 msgid "I cowardly refuse to ban myself." msgstr "Minä pelkurimaisesti kieltäydyn antamasta itselleni porttikieltoa." -#: plugin.py:422 +#: plugin.py:451 msgid "%s has %s too, you can't ban them." msgstr "" "Käyttäjälltä %s on myös valtuus %s, et voi antaa hänelle/sille porttikieltoa." -#: plugin.py:433 +#: plugin.py:462 #, fuzzy msgid "" "[] []\n" @@ -506,21 +511,21 @@ msgstr "" " vaadittu vain jos viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:453 +#: plugin.py:482 msgid "All bans on %s matching %s have been removed." msgstr "" "Kaikki porttikiellot, jotka täsmäävät kanavalla %s käyttäjään %s on " "poistettu." -#: plugin.py:457 +#: plugin.py:486 msgid "No bans matching %s were found on %s." msgstr "Banneja, jotka täsmäävät käyttäjään %s ei löydetty kanavalla %s." -#: plugin.py:460 +#: plugin.py:489 msgid "unban someone" msgstr "poista joltakulta porttikielto" -#: plugin.py:467 +#: plugin.py:496 msgid "" "[]\n" "\n" @@ -532,11 +537,11 @@ msgstr "" " Luettelee kaikki kanavan porttikiellot.\n" " Jos ei ole annettu, se on oletuksena nykyinen kanava." -#: plugin.py:471 +#: plugin.py:500 msgid "No bans." msgstr "Ei porttikieltoja." -#: plugin.py:476 +#: plugin.py:505 msgid "" "[] \n" "\n" @@ -552,19 +557,19 @@ msgstr "" " ei lähetetä kanavalla itsessään.\n" " " -#: plugin.py:485 +#: plugin.py:514 msgid "invite someone" msgstr "kutsu joku" -#: plugin.py:504 +#: plugin.py:533 msgid "%s is already in %s." msgstr "%s on jo kanavalla %s" -#: plugin.py:511 +#: plugin.py:540 msgid "There is no %s on this network." msgstr "Käyttäjä %s ei ole tässä verkossa." -#: plugin.py:523 +#: plugin.py:552 msgid "" "[]\n" "\n" @@ -587,7 +592,7 @@ msgstr "" " kanavalla itsellään.\n" " " -#: plugin.py:538 +#: plugin.py:567 msgid "" "[]\n" "\n" @@ -608,7 +613,7 @@ msgstr "" "itsellään.\n" " " -#: plugin.py:553 +#: plugin.py:582 msgid "" "takes no arguments\n" "\n" @@ -620,15 +625,15 @@ msgstr "" " Palauttaa kanavat, joilla botti on lobotomoitu.\n" " " -#: plugin.py:568 +#: plugin.py:597 msgid "I'm currently lobotomized in %L." msgstr "Minut on tällä hetkellä lobotomoity seuraavilla kanavilla: %L." -#: plugin.py:571 +#: plugin.py:600 msgid "I'm not currently lobotomized in any channels that you're in." msgstr "En tällä hetkellä ole lobotomoitu millään kanavalla, jolla sinä olet." -#: plugin.py:585 +#: plugin.py:614 msgid "" "[] []\n" "\n" @@ -665,7 +670,7 @@ msgstr "" " kanavalla itsellään.\n" " " -#: plugin.py:605 +#: plugin.py:639 msgid "" "[] \n" "\n" @@ -683,11 +688,11 @@ msgstr "" " viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:617 +#: plugin.py:651 msgid "There are no persistent bans for that hostmask." msgstr "Tuolla hostmaskilla ei ole pysyvää porttikieltoa." -#: plugin.py:622 +#: plugin.py:656 #, fuzzy msgid "" "[] []\n" @@ -707,19 +712,19 @@ msgstr "" " viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:640 +#: plugin.py:674 msgid "%q (expires %t)" msgstr "%q (venhentuu %t)" -#: plugin.py:643 +#: plugin.py:677 msgid "%q (never expires)" msgstr "%q (ei vanhene ikinä)" -#: plugin.py:647 +#: plugin.py:681 msgid "There are no persistent bans on %s." msgstr "Kanavalla %s ei ole pysyviä porttikieltoja." -#: plugin.py:654 +#: plugin.py:688 msgid "" "[] []\n" "\n" @@ -748,7 +753,7 @@ msgstr "" " kanavalla itsellään.\n" " " -#: plugin.py:672 +#: plugin.py:706 #, fuzzy msgid "" "[] \n" @@ -767,11 +772,11 @@ msgstr "" " viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:684 +#: plugin.py:718 msgid "There are no ignores for that hostmask." msgstr "Tuolla hostmaskilla ei ole pysyviä huomiotta jättämisiä." -#: plugin.py:689 +#: plugin.py:723 msgid "" "[]\n" "\n" @@ -789,11 +794,11 @@ msgstr "" " kanavalla itsellään.\n" " " -#: plugin.py:698 +#: plugin.py:732 msgid "I'm not currently ignoring any hostmasks in %q" msgstr "En tällä hetkellä jätä mitään hostmaskia huomiotta kanavalla %q." -#: plugin.py:709 +#: plugin.py:743 msgid "" "[] [ ...]\n" "\n" @@ -812,7 +817,7 @@ msgstr "" " vaadittu vain jos viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:725 +#: plugin.py:759 msgid "" "[] [ ...]\n" "\n" @@ -833,11 +838,11 @@ msgstr "" " vaadittu vain jos viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:744 +#: plugin.py:778 msgid "That user didn't have the %L %s." msgstr "Tuolla käyttäjällä ei ollut valtuutta %L kanavalla %s." -#: plugin.py:753 +#: plugin.py:787 msgid "" "[] {True|False}\n" "\n" @@ -858,7 +863,7 @@ msgstr "" " jos viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:771 +#: plugin.py:805 msgid "" "[] [ ...]\n" "\n" @@ -876,7 +881,7 @@ msgstr "" " vaadittu vain jos viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:786 +#: plugin.py:820 msgid "" "[] [ ...]\n" "\n" @@ -897,15 +902,15 @@ msgstr "" " vain jos viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:802 +#: plugin.py:836 msgid "capability" msgstr "valtuus" -#: plugin.py:805 +#: plugin.py:839 msgid "I do not know about the %L %s." msgstr "En tiedä valtuudesta %L kanavalla %s." -#: plugin.py:812 +#: plugin.py:846 msgid "" "[]\n" "\n" @@ -920,7 +925,7 @@ msgstr "" " vaadittu vain, jos viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:824 +#: plugin.py:858 msgid "" "[] [] []\n" "\n" @@ -945,15 +950,15 @@ msgstr "" " viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:840 plugin.py:879 +#: plugin.py:874 plugin.py:913 msgid "The %s plugin does not have a command called %s." msgstr "%s lisäosassa ei ole komentoa %s." -#: plugin.py:847 plugin.py:886 +#: plugin.py:881 plugin.py:920 msgid "No plugin or command named %s could be found." msgstr "Lisäosaa tai komentoa nimeltä %s ei löytynyt." -#: plugin.py:863 +#: plugin.py:897 msgid "" "[] [] []\n" "\n" @@ -979,11 +984,11 @@ msgstr "" " on vaadittu vain jos viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:900 +#: plugin.py:934 msgid "%s was not disabled." msgstr "%s ei ollut poistettu käytöstä." -#: plugin.py:909 +#: plugin.py:943 msgid "" "[] [--count]\n" "\n" @@ -1000,11 +1005,11 @@ msgstr "" " viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:931 +#: plugin.py:965 msgid "You don't have access to that information." msgstr "Sinulla ei ole pääsyoikeutta tuohon tietoon." -#: plugin.py:946 +#: plugin.py:980 msgid "" "Internal message for notifying all the #channel,ops in a channel of\n" " a given situation." @@ -1013,15 +1018,15 @@ msgstr "" "valtuus kanavalla,\n" " annetusta tilanteesta." -#: plugin.py:949 +#: plugin.py:983 msgid "Alert to all %s ops: %s" msgstr "Hälytys kaikille kanavan %s operaattoreille: %s" -#: plugin.py:951 +#: plugin.py:985 msgid " (from %s)" msgstr "(lähettänyt %s)" -#: plugin.py:963 +#: plugin.py:997 msgid "" "[] \n" "\n" @@ -1037,7 +1042,7 @@ msgstr "" " valtuus.\n" " " -#: plugin.py:973 +#: plugin.py:1007 msgid "" "[] []\n" "\n" @@ -1052,11 +1057,15 @@ msgid "" " " msgstr "" -#: plugin.py:994 +#: plugin.py:1028 #, fuzzy msgid "I'm not in %s." msgstr "Minä en ole nähnyt käyttäjää %s." +#: plugin.py:1032 +msgid "%s removed from configured join list." +msgstr "" + #~ msgid "" #~ "I cowardly refuse to devoice myself. If you really want me devoiced, " #~ "tell me to op you and then devoice me yourself." diff --git a/plugins/Channel/locales/fr.po b/plugins/Channel/locales/fr.po index 02bee0305..47d571e0a 100644 --- a/plugins/Channel/locales/fr.po +++ b/plugins/Channel/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: Valentin Lorentz \n" "Language-Team: Limnoria \n" @@ -348,8 +348,10 @@ msgid "kick someone" msgstr "kicker quelqu'un" #: plugin.py:316 +#, fuzzy msgid "" -"[] [--{exact,nick,user,host}] [] []\n" +"[] [--{exact,nick,user,host,account}] [] " +"[]\n" "\n" " If you have the #channel,op capability, this will kickban " "for\n" @@ -358,13 +360,13 @@ msgid "" " don't specify a number of seconds) it will ban the person " "indefinitely.\n" " --exact bans only the exact hostmask; --nick bans just the nick;\n" -" --user bans just the user, and --host bans just the host. You can\n" -" combine these options as you choose. is a reason to give " -"for\n" -" the kick.\n" -" is only necessary if the message isn't sent in the " -"channel\n" -" itself.\n" +" --user bans just the user, and --host bans just the host\n" +" You can combine the --nick, --user, and --host options as you " +"choose.\n" +" If --account is provided and the user is logged in and the network\n" +" supports account bans, this will ban the user's account instead.\n" +" is only necessary if the message isn't sent in the channel " +"itself.\n" " " msgstr "" "[] [--{exact,nick,user,host}] [] []\n" @@ -377,11 +379,11 @@ msgstr "" " est une raison que vous donnez pour le kick. n'est " "nécessaire que si le message n'est pas envoyé sur le canal lui-même." -#: plugin.py:333 +#: plugin.py:334 msgid "kick or ban someone" msgstr "kicker ou bannir quelqu'un" -#: plugin.py:341 +#: plugin.py:342 #, fuzzy msgid "" "[] [--{exact,nick,user,host}] []\n" @@ -391,11 +393,13 @@ msgid "" "or\n" " don't specify a number of seconds) it will ban the person " "indefinitely.\n" -" --exact can be used to specify an exact hostmask. You can combine " -"the\n" -" exact, nick, user, and host options as you choose. is " -"only\n" -" necessary if the message isn't sent in the channel itself.\n" +" --exact can be used to specify an exact hostmask.\n" +" You can combine the --nick, --user, and --host options as you " +"choose.\n" +" If --account is provided and the user is logged in and the network\n" +" supports account bans, this will ban the user's account instead.\n" +" is only necessary if the message isn't sent in the channel " +"itself.\n" " " msgstr "" "[] [--{exact,nick,user,host}] []\n" @@ -408,27 +412,27 @@ msgstr "" "raison que vous donnez pour le kick. n'est nécessaire que si le " "message n'est pas envoyé sur le canal lui-même." -#: plugin.py:355 plugin.py:581 +#: plugin.py:359 plugin.py:610 msgid "ban someone" msgstr "bannir quelqu'un" -#: plugin.py:375 +#: plugin.py:382 msgid "I haven't seen %s." msgstr "Je n'ai jamais vu %s." -#: plugin.py:385 +#: plugin.py:394 msgid "I cowardly refuse to kickban myself." msgstr "Je suis trop couard pour me kickbannir moi-même." -#: plugin.py:394 +#: plugin.py:397 plugin.py:409 plugin.py:418 msgid "I cowardly refuse to ban myself." msgstr "Je suis trop couard pour me bannir moi-même." -#: plugin.py:422 +#: plugin.py:451 msgid "%s has %s too, you can't ban them." msgstr "%s est aussi %s, je ne peux le/la bannir." -#: plugin.py:433 +#: plugin.py:462 msgid "" "[] []\n" "\n" @@ -449,19 +453,19 @@ msgstr "" "manière inatendue ou accidentelle d'un canal. n'est nécessaire que " "si le message n'est pas envoyé sur le canal lui-même." -#: plugin.py:453 +#: plugin.py:482 msgid "All bans on %s matching %s have been removed." msgstr "Tous les bannissements sur %s correspondant à %s ont été supprimés." -#: plugin.py:457 +#: plugin.py:486 msgid "No bans matching %s were found on %s." msgstr "Aucun bannissement correspondant à %s n'a été trouvé sur %s." -#: plugin.py:460 +#: plugin.py:489 msgid "unban someone" msgstr "débannir quelqu'un" -#: plugin.py:467 +#: plugin.py:496 msgid "" "[]\n" "\n" @@ -471,11 +475,11 @@ msgstr "" "[]Liste tous les bannissements du salon. Si n'est pas donné, " "il correspond au canal actuel." -#: plugin.py:471 +#: plugin.py:500 msgid "No bans." msgstr "Pas de bannissement." -#: plugin.py:476 +#: plugin.py:505 msgid "" "[] \n" "\n" @@ -490,19 +494,19 @@ msgstr "" ". n'est nécessaire que si le message n'est pas envoyé sur le " "canal lui-même." -#: plugin.py:485 +#: plugin.py:514 msgid "invite someone" msgstr "inviter quelqu'un" -#: plugin.py:504 +#: plugin.py:533 msgid "%s is already in %s." msgstr "%s est déjà sur %s." -#: plugin.py:511 +#: plugin.py:540 msgid "There is no %s on this network." msgstr "Il n'y a aucun %s sur ce réseau." -#: plugin.py:523 +#: plugin.py:552 msgid "" "[]\n" "\n" @@ -522,7 +526,7 @@ msgstr "" "canal. n'est nécessaire que si le message n'est pas envoyé sur le " "canal lui-même." -#: plugin.py:538 +#: plugin.py:567 msgid "" "[]\n" "\n" @@ -541,7 +545,7 @@ msgstr "" "sur le canal. n'est nécessaire que si le message n'est pas envoyé " "sur le canal lui-même." -#: plugin.py:553 +#: plugin.py:582 msgid "" "takes no arguments\n" "\n" @@ -552,15 +556,15 @@ msgstr "" "\n" "Retourne les canaux sur lesquels le bot est lobotomisé." -#: plugin.py:568 +#: plugin.py:597 msgid "I'm currently lobotomized in %L." msgstr "Je suis actuellement lobotomisé sur %L." -#: plugin.py:571 +#: plugin.py:600 msgid "I'm not currently lobotomized in any channels that you're in." msgstr "Je ne suis actuellement lobotomisé sur aucun canal où vous êtes." -#: plugin.py:585 +#: plugin.py:614 msgid "" "[] []\n" "\n" @@ -586,7 +590,7 @@ msgstr "" "masque d'hôte lorsqu'ils entrent. est un argument option, " "correspondant à la durée, en secondes, que doit avoir le bannissement." -#: plugin.py:605 +#: plugin.py:639 msgid "" "[] \n" "\n" @@ -602,11 +606,11 @@ msgstr "" "persistant sur le . n'est nécessaire que si le " "message n'est pas envoyé sur le canal lui-même." -#: plugin.py:617 +#: plugin.py:651 msgid "There are no persistent bans for that hostmask." msgstr "Il n'y a pas de bannissement persistant pour ce masque d'hôte." -#: plugin.py:622 +#: plugin.py:656 #, fuzzy msgid "" "[] []\n" @@ -624,19 +628,19 @@ msgstr "" "persistant sur le . n'est nécessaire que si le " "message n'est pas envoyé sur le canal lui-même." -#: plugin.py:640 +#: plugin.py:674 msgid "%q (expires %t)" msgstr "%q (expire dans %t)" -#: plugin.py:643 +#: plugin.py:677 msgid "%q (never expires)" msgstr "%q (n'expire jamais)" -#: plugin.py:647 +#: plugin.py:681 msgid "There are no persistent bans on %s." msgstr "Il n'y a pas de bannissement persistant sur %s." -#: plugin.py:654 +#: plugin.py:688 msgid "" "[] []\n" "\n" @@ -660,7 +664,7 @@ msgstr "" "n'expirera jamais. n'est nécessaire que si le message n'est pas " "envoyé sur le canal lui-même." -#: plugin.py:672 +#: plugin.py:706 #, fuzzy msgid "" "[] \n" @@ -677,11 +681,11 @@ msgstr "" "persistant du sur le canal. n'est nécessaire que si " "le message n'est pas envoyé sur le canal lui-même." -#: plugin.py:684 +#: plugin.py:718 msgid "There are no ignores for that hostmask." msgstr "Il n'y a pas d'ignorance pour ce masque d'hôte." -#: plugin.py:689 +#: plugin.py:723 msgid "" "[]\n" "\n" @@ -696,11 +700,11 @@ msgstr "" "Liste les masques d'hôte que le bot ignore sur le canal donné. n'est " "nécessaire que si le message n'est pas envoyé sur le canal lui-même." -#: plugin.py:698 +#: plugin.py:732 msgid "I'm not currently ignoring any hostmasks in %q" msgstr "Je n'ignore actuellement aucun masque d'hôte sur %q." -#: plugin.py:709 +#: plugin.py:743 msgid "" "[] [ ...]\n" "\n" @@ -716,7 +720,7 @@ msgstr "" "ayant actuellement le ) la sur le canal. n'est " "nécessaire que si le message n'est pas envoyé sur le canal lui-même." -#: plugin.py:725 +#: plugin.py:759 msgid "" "[] [ ...]\n" "\n" @@ -735,11 +739,11 @@ msgstr "" "op. n'est nécessaire que si le message n'est pas envoyé sur le canal " "lui-même." -#: plugin.py:744 +#: plugin.py:778 msgid "That user didn't have the %L %s." msgstr "Cet utilisateur n'a pas les %L %s." -#: plugin.py:753 +#: plugin.py:787 msgid "" "[] {True|False}\n" "\n" @@ -759,7 +763,7 @@ msgstr "" " n'est nécessaire que si le message n'est pas envoyé sur " "le canal lui-même." -#: plugin.py:771 +#: plugin.py:805 msgid "" "[] [ ...]\n" "\n" @@ -776,7 +780,7 @@ msgstr "" "tous les utilisateurs du canal. n'est nécessaire que si le message " "n'est pas envoyé sur le canal lui-même." -#: plugin.py:786 +#: plugin.py:820 msgid "" "[] [ ...]\n" "\n" @@ -795,15 +799,15 @@ msgstr "" "utilisateurs du canal aient la de canal. n'est nécessaire " "que si le message n'est pas envoyé sur le canal lui-même." -#: plugin.py:802 +#: plugin.py:836 msgid "capability" msgstr "capacité" -#: plugin.py:805 +#: plugin.py:839 msgid "I do not know about the %L %s." msgstr "Je ne sais rien à propos des %L %s." -#: plugin.py:812 +#: plugin.py:846 msgid "" "[]\n" "\n" @@ -816,7 +820,7 @@ msgstr "" "Retourne les capacité présentes sur le . n'est nécessaire que " "si le message n'est pas envoyé sur le canal lui-même." -#: plugin.py:824 +#: plugin.py:858 msgid "" "[] [] []\n" "\n" @@ -836,15 +840,15 @@ msgstr "" "désactivées. n'est nécessaire que si le message n'est pas envoyé sur " "le canal lui-même." -#: plugin.py:840 plugin.py:879 +#: plugin.py:874 plugin.py:913 msgid "The %s plugin does not have a command called %s." msgstr "Le plugin %s n'a pas de commande appelée %s." -#: plugin.py:847 plugin.py:886 +#: plugin.py:881 plugin.py:920 msgid "No plugin or command named %s could be found." msgstr "Aucun plugin ou commande appelé %s n'a pû être trouvé." -#: plugin.py:863 +#: plugin.py:897 msgid "" "[] [] []\n" "\n" @@ -865,11 +869,11 @@ msgstr "" "la commande de ce plugin sera activée. n'est nécessaire " "n'est pas envoyé sur le canal lui-même." -#: plugin.py:900 +#: plugin.py:934 msgid "%s was not disabled." msgstr "%s n'était pas désactivé." -#: plugin.py:909 +#: plugin.py:943 msgid "" "[] [--count]\n" "\n" @@ -885,11 +889,11 @@ msgstr "" "n'est pas envoyé sur le canal lui-même. Ne retourne que le nombre de nicks " "si --count est donné." -#: plugin.py:931 +#: plugin.py:965 msgid "You don't have access to that information." msgstr "Vous n'avez pas accès à cette information" -#: plugin.py:946 +#: plugin.py:980 msgid "" "Internal message for notifying all the #channel,ops in a channel of\n" " a given situation." @@ -897,15 +901,15 @@ msgstr "" "Message interne pour notifier tous les #canal,ops sur un canal d'une " "situation donnée." -#: plugin.py:949 +#: plugin.py:983 msgid "Alert to all %s ops: %s" msgstr "Alerte à tous les ops de %s : %s" -#: plugin.py:951 +#: plugin.py:985 msgid " (from %s)" msgstr "(de %s)" -#: plugin.py:963 +#: plugin.py:997 msgid "" "[] \n" "\n" @@ -919,7 +923,7 @@ msgstr "" "Envoie le à tous les utilisateurs sur qui ont la capacité " "#canal,op." -#: plugin.py:973 +#: plugin.py:1007 msgid "" "[] []\n" "\n" @@ -934,11 +938,15 @@ msgid "" " " msgstr "" -#: plugin.py:994 +#: plugin.py:1028 #, fuzzy msgid "I'm not in %s." msgstr "Je n'ai jamais vu %s." +#: plugin.py:1032 +msgid "%s removed from configured join list." +msgstr "" + #~ msgid "" #~ "I cowardly refuse to devoice myself. If you really want me devoiced, " #~ "tell me to op you and then devoice me yourself." diff --git a/plugins/Channel/locales/hu.po b/plugins/Channel/locales/hu.po index 3a03926aa..61df4e44f 100644 --- a/plugins/Channel/locales/hu.po +++ b/plugins/Channel/locales/hu.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria Channel\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-04-27 14:49+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -354,8 +354,10 @@ msgid "kick someone" msgstr "kirúgni valakit" #: plugin.py:316 +#, fuzzy msgid "" -"[] [--{exact,nick,user,host}] [] []\n" +"[] [--{exact,nick,user,host,account}] [] " +"[]\n" "\n" " If you have the #channel,op capability, this will kickban " "for\n" @@ -364,13 +366,13 @@ msgid "" " don't specify a number of seconds) it will ban the person " "indefinitely.\n" " --exact bans only the exact hostmask; --nick bans just the nick;\n" -" --user bans just the user, and --host bans just the host. You can\n" -" combine these options as you choose. is a reason to give " -"for\n" -" the kick.\n" -" is only necessary if the message isn't sent in the " -"channel\n" -" itself.\n" +" --user bans just the user, and --host bans just the host\n" +" You can combine the --nick, --user, and --host options as you " +"choose.\n" +" If --account is provided and the user is logged in and the network\n" +" supports account bans, this will ban the user's account instead.\n" +" is only necessary if the message isn't sent in the channel " +"itself.\n" " " msgstr "" "[] [--{exact,nick,user,host}] [] []\n" @@ -382,11 +384,11 @@ msgstr "" "tiltja ki, és --host csak a hosztot tiltja ki. Kombinálhatod az opciókat " "ahogy szeretnéd. egy ok a kirúgáshoz." -#: plugin.py:333 +#: plugin.py:334 msgid "kick or ban someone" msgstr "kirúgni vagy kitiltani valakit" -#: plugin.py:341 +#: plugin.py:342 #, fuzzy msgid "" "[] [--{exact,nick,user,host}] []\n" @@ -396,11 +398,13 @@ msgid "" "or\n" " don't specify a number of seconds) it will ban the person " "indefinitely.\n" -" --exact can be used to specify an exact hostmask. You can combine " -"the\n" -" exact, nick, user, and host options as you choose. is " -"only\n" -" necessary if the message isn't sent in the channel itself.\n" +" --exact can be used to specify an exact hostmask.\n" +" You can combine the --nick, --user, and --host options as you " +"choose.\n" +" If --account is provided and the user is logged in and the network\n" +" supports account bans, this will ban the user's account instead.\n" +" is only necessary if the message isn't sent in the channel " +"itself.\n" " " msgstr "" "[] [--{exact,nick,user,host}] [] []\n" @@ -412,28 +416,28 @@ msgstr "" "tiltja ki, és --host csak a hosztot tiltja ki. Kombinálhatod az opciókat " "ahogy szeretnéd. egy ok a kirúgáshoz." -#: plugin.py:355 plugin.py:581 +#: plugin.py:359 plugin.py:610 #, fuzzy msgid "ban someone" msgstr "eltávolítani a tiltást valakiről" -#: plugin.py:375 +#: plugin.py:382 msgid "I haven't seen %s." msgstr "Nem láttam %s-t." -#: plugin.py:385 +#: plugin.py:394 msgid "I cowardly refuse to kickban myself." msgstr "Gyáván megtagadom, hogy kirúgjam és kitiltsam magam." -#: plugin.py:394 +#: plugin.py:397 plugin.py:409 plugin.py:418 msgid "I cowardly refuse to ban myself." msgstr "Gyáván megtagadom, hogy kitiltsam magam." -#: plugin.py:422 +#: plugin.py:451 msgid "%s has %s too, you can't ban them." msgstr "%s-nek is van %s, nem tilthatod ki őt." -#: plugin.py:433 +#: plugin.py:462 #, fuzzy msgid "" "[] []\n" @@ -455,19 +459,19 @@ msgstr "" "véletlenül) ki lettél tiltva a csatornáról. csak akkor szükséges, " "ha az üzenet nem a csatornában van elküldve." -#: plugin.py:453 +#: plugin.py:482 msgid "All bans on %s matching %s have been removed." msgstr "Minden tiltás %s-ban, ami illeszkedik %s-ra el lett távolítva." -#: plugin.py:457 +#: plugin.py:486 msgid "No bans matching %s were found on %s." msgstr "Nem található %s-ra illeszkedő tiltás %s-ban." -#: plugin.py:460 +#: plugin.py:489 msgid "unban someone" msgstr "eltávolítani a tiltást valakiről" -#: plugin.py:467 +#: plugin.py:496 msgid "" "[]\n" "\n" @@ -475,11 +479,11 @@ msgid "" " If is not given, it defaults to the current channel." msgstr "" -#: plugin.py:471 +#: plugin.py:500 msgid "No bans." msgstr "" -#: plugin.py:476 +#: plugin.py:505 msgid "" "[] \n" "\n" @@ -493,19 +497,19 @@ msgstr "" "Ha rendelkezel a #csatorna,op képességgel, meghívja -et -ra. " " csak akkor szükséges, ha az üzenet nem a csatornában van elküldve." -#: plugin.py:485 +#: plugin.py:514 msgid "invite someone" msgstr "meghívni valakit" -#: plugin.py:504 +#: plugin.py:533 msgid "%s is already in %s." msgstr "%s már %s-ban van." -#: plugin.py:511 +#: plugin.py:540 msgid "There is no %s on this network." msgstr "Nincs %s ezen a hálózaton." -#: plugin.py:523 +#: plugin.py:552 msgid "" "[]\n" "\n" @@ -524,7 +528,7 @@ msgstr "" "némáva teszi azt és nem fog válaszolni a csatornában végrehajtott kérésekre. " " csak akkor szükséges, ha az üzenet nem a csatornában van elküldve." -#: plugin.py:538 +#: plugin.py:567 msgid "" "[]\n" "\n" @@ -542,7 +546,7 @@ msgstr "" "így az újra válaszol a csatornában vérgehajtott kérésekre. csak " "akkor szükséges, ha az üzenet nem a csatornában van elküldve." -#: plugin.py:553 +#: plugin.py:582 msgid "" "takes no arguments\n" "\n" @@ -553,15 +557,15 @@ msgstr "" "\n" "Kiírja a csatornákat, ahol a bot némítva van." -#: plugin.py:568 +#: plugin.py:597 msgid "I'm currently lobotomized in %L." msgstr "Jelenleg némítva vagyok %L-ban." -#: plugin.py:571 +#: plugin.py:600 msgid "I'm not currently lobotomized in any channels that you're in." msgstr "Jelenleg nem vagyok némítva egy csatornában sem, ahol vagy." -#: plugin.py:585 +#: plugin.py:614 msgid "" "[] []\n" "\n" @@ -590,7 +594,7 @@ msgstr "" "lejárni. csak akkor szükséges, ha az üzenet nem a csaotnában van " "elküldve." -#: plugin.py:605 +#: plugin.py:639 msgid "" "[] \n" "\n" @@ -606,11 +610,11 @@ msgstr "" "ról. csak akkor szükséges, ha az üzenet nem a csatornában van " "elküldve." -#: plugin.py:617 +#: plugin.py:651 msgid "There are no persistent bans for that hostmask." msgstr "Nincsenek tiltások erre a hosztra." -#: plugin.py:622 +#: plugin.py:656 #, fuzzy msgid "" "[] []\n" @@ -628,19 +632,19 @@ msgstr "" "ról. csak akkor szükséges, ha az üzenet nem a csatornában van " "elküldve." -#: plugin.py:640 +#: plugin.py:674 msgid "%q (expires %t)" msgstr "%q (lejár %t)" -#: plugin.py:643 +#: plugin.py:677 msgid "%q (never expires)" msgstr "%q (soha nem jár le)" -#: plugin.py:647 +#: plugin.py:681 msgid "There are no persistent bans on %s." msgstr "Nincsenek tiltások %s-on." -#: plugin.py:654 +#: plugin.py:688 msgid "" "[] []\n" "\n" @@ -663,7 +667,7 @@ msgstr "" "mellőzés soha nem fog automatikusan lejárni. csak akkor " "szükséges, ha az üzenet nem a csatornában van elküldve." -#: plugin.py:672 +#: plugin.py:706 #, fuzzy msgid "" "[] \n" @@ -680,11 +684,11 @@ msgstr "" "-ról a csatornában. csak akkor szükséges, ha az üzenet nem " "a csatornában van elküldve." -#: plugin.py:684 +#: plugin.py:718 msgid "There are no ignores for that hostmask." msgstr "Nincsenek mellőzések erre a hosztra." -#: plugin.py:689 +#: plugin.py:723 msgid "" "[]\n" "\n" @@ -699,11 +703,11 @@ msgstr "" "Kiírja a hosztokat, amelyeket a bot mellőz a megadott csatornában. " " csak akkor szükséges, ha az üzenet nem a csatornában van elküldve." -#: plugin.py:698 +#: plugin.py:732 msgid "I'm not currently ignoring any hostmasks in %q" msgstr "Nem mellőzők egy hosztot sem %q-ban." -#: plugin.py:709 +#: plugin.py:743 #, fuzzy msgid "" "[] [ ...]\n" @@ -721,7 +725,7 @@ msgstr "" "csatornában. csak akkor szükséges, ha az üzenet nem a csatornában " "van elküldve." -#: plugin.py:725 +#: plugin.py:759 msgid "" "[] [ ...]\n" "\n" @@ -740,11 +744,11 @@ msgstr "" "illeszkedik) a képességet a csatornában. csak akkor " "szükséges, ha az üzenet nem a csatornában van elküldve." -#: plugin.py:744 +#: plugin.py:778 msgid "That user didn't have the %L %s." msgstr "A felhasználónak nem volt a(z) %L %s." -#: plugin.py:753 +#: plugin.py:787 msgid "" "[] {True|False}\n" "\n" @@ -764,7 +768,7 @@ msgstr "" "megadott értékre állítja. csak akkor szükséges, ha az üzenet nem " "a csatornában van elküldve." -#: plugin.py:771 +#: plugin.py:805 msgid "" "[] [ ...]\n" "\n" @@ -781,7 +785,7 @@ msgstr "" "csatorna képességeihez. csak akkor szükséges, ha az üzenet nem, a " "csatornában van elküldve." -#: plugin.py:786 +#: plugin.py:820 msgid "" "[] [ ...]\n" "\n" @@ -801,15 +805,15 @@ msgstr "" "alapértelmezett képességei lesznek előnyben. csak akkor " "szükséges, ha az üzenet nem a csatornában van elküldve." -#: plugin.py:802 +#: plugin.py:836 msgid "capability" msgstr "képesség" -#: plugin.py:805 +#: plugin.py:839 msgid "I do not know about the %L %s." msgstr "Nem tudok a %L %s-ról." -#: plugin.py:812 +#: plugin.py:846 msgid "" "[]\n" "\n" @@ -822,7 +826,7 @@ msgstr "" "Kiírja képességeit. csak akkor szükséges, ha az üzenet " "nem a csatornában van elküldve." -#: plugin.py:824 +#: plugin.py:858 msgid "" "[] [] []\n" "\n" @@ -843,15 +847,15 @@ msgstr "" "le lesz tiltva a megadott bővítményben. csak akkor szükséges, ha " "az üzenet nem a csatornában van elküldve." -#: plugin.py:840 plugin.py:879 +#: plugin.py:874 plugin.py:913 msgid "The %s plugin does not have a command called %s." msgstr "A %s bővítménynek nincs %s nevű parancsa." -#: plugin.py:847 plugin.py:886 +#: plugin.py:881 plugin.py:920 msgid "No plugin or command named %s could be found." msgstr "Nem található bővítmény vagy parancs %s néven." -#: plugin.py:863 +#: plugin.py:897 msgid "" "[] [] []\n" "\n" @@ -871,11 +875,11 @@ msgstr "" "-ban ha le lett tiltva. Ha meg van adva, " "csak a megadott bővítményben lesz engedélyezve." -#: plugin.py:900 +#: plugin.py:934 msgid "%s was not disabled." msgstr "%s nem volt letiltva." -#: plugin.py:909 +#: plugin.py:943 msgid "" "[] [--count]\n" "\n" @@ -891,25 +895,25 @@ msgstr "" "üzenet nem a csatornában van elküldve. Ha a --count opció meg van adva, csak " "a nevek számát írja ki." -#: plugin.py:931 +#: plugin.py:965 msgid "You don't have access to that information." msgstr "Nincs hozzáférésed ehhez az információhoz." -#: plugin.py:946 +#: plugin.py:980 msgid "" "Internal message for notifying all the #channel,ops in a channel of\n" " a given situation." msgstr "Belső üzenet #csatorna,op-ok értesítésére egy adott szituációban." -#: plugin.py:949 +#: plugin.py:983 msgid "Alert to all %s ops: %s" msgstr "Riasztás minden %s operátornak: %s" -#: plugin.py:951 +#: plugin.py:985 msgid " (from %s)" msgstr "(%s-tól)" -#: plugin.py:963 +#: plugin.py:997 msgid "" "[] \n" "\n" @@ -925,7 +929,7 @@ msgstr "" "operátor státuszt. csak akkor szükséges, ha az üzenet nem a " "csatornában van elküldve." -#: plugin.py:973 +#: plugin.py:1007 msgid "" "[] []\n" "\n" @@ -940,11 +944,15 @@ msgid "" " " msgstr "" -#: plugin.py:994 +#: plugin.py:1028 #, fuzzy msgid "I'm not in %s." msgstr "Nem láttam %s-t." +#: plugin.py:1032 +msgid "%s removed from configured join list." +msgstr "" + #~ msgid "" #~ "I cowardly refuse to devoice myself. If you really want me devoiced, " #~ "tell me to op you and then devoice me yourself." diff --git a/plugins/Channel/locales/it.po b/plugins/Channel/locales/it.po index 4de83bffe..3defe47a4 100644 --- a/plugins/Channel/locales/it.po +++ b/plugins/Channel/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-06-09 09:33+0200\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -377,8 +377,10 @@ msgid "kick someone" msgstr "cacciare (kick) qualcuno" #: plugin.py:316 +#, fuzzy msgid "" -"[] [--{exact,nick,user,host}] [] []\n" +"[] [--{exact,nick,user,host,account}] [] " +"[]\n" "\n" " If you have the #channel,op capability, this will kickban " "for\n" @@ -387,13 +389,13 @@ msgid "" " don't specify a number of seconds) it will ban the person " "indefinitely.\n" " --exact bans only the exact hostmask; --nick bans just the nick;\n" -" --user bans just the user, and --host bans just the host. You can\n" -" combine these options as you choose. is a reason to give " -"for\n" -" the kick.\n" -" is only necessary if the message isn't sent in the " -"channel\n" -" itself.\n" +" --user bans just the user, and --host bans just the host\n" +" You can combine the --nick, --user, and --host options as you " +"choose.\n" +" If --account is provided and the user is logged in and the network\n" +" supports account bans, this will ban the user's account instead.\n" +" is only necessary if the message isn't sent in the channel " +"itself.\n" " " msgstr "" "[] [--{exact,nick,user,host}] [] []\n" @@ -411,11 +413,11 @@ msgstr "" " se il messaggio non viene inviato nel canale stesso.\n" " " -#: plugin.py:333 +#: plugin.py:334 msgid "kick or ban someone" msgstr "cacciare (kick) o bannare qualcuno" -#: plugin.py:341 +#: plugin.py:342 #, fuzzy msgid "" "[] [--{exact,nick,user,host}] []\n" @@ -425,11 +427,13 @@ msgid "" "or\n" " don't specify a number of seconds) it will ban the person " "indefinitely.\n" -" --exact can be used to specify an exact hostmask. You can combine " -"the\n" -" exact, nick, user, and host options as you choose. is " -"only\n" -" necessary if the message isn't sent in the channel itself.\n" +" --exact can be used to specify an exact hostmask.\n" +" You can combine the --nick, --user, and --host options as you " +"choose.\n" +" If --account is provided and the user is logged in and the network\n" +" supports account bans, this will ban the user's account instead.\n" +" is only necessary if the message isn't sent in the channel " +"itself.\n" " " msgstr "" "[] [--{exact,nick,user,host}] [] []\n" @@ -447,28 +451,28 @@ msgstr "" " se il messaggio non viene inviato nel canale stesso.\n" " " -#: plugin.py:355 plugin.py:581 +#: plugin.py:359 plugin.py:610 #, fuzzy msgid "ban someone" msgstr "rimuovere il ban a qualcuno" -#: plugin.py:375 +#: plugin.py:382 msgid "I haven't seen %s." msgstr "Non ho mai visto %s." -#: plugin.py:385 +#: plugin.py:394 msgid "I cowardly refuse to kickban myself." msgstr "Codardamente mi rifiuto di espellere (kickban) me stesso." -#: plugin.py:394 +#: plugin.py:397 plugin.py:409 plugin.py:418 msgid "I cowardly refuse to ban myself." msgstr "Codardamente mi rifiuto di bannare stesso." -#: plugin.py:422 +#: plugin.py:451 msgid "%s has %s too, you can't ban them." msgstr "anche %s ha %s, non puoi bannarlo/a." -#: plugin.py:433 +#: plugin.py:462 #, fuzzy msgid "" "[] []\n" @@ -495,19 +499,19 @@ msgstr "" " messaggio non viene inviato nel canale stesso.\n" " " -#: plugin.py:453 +#: plugin.py:482 msgid "All bans on %s matching %s have been removed." msgstr "Tutti i ban su %s che corrisopndono a %s sono stati rimossi." -#: plugin.py:457 +#: plugin.py:486 msgid "No bans matching %s were found on %s." msgstr "Non è stato trovato alcun ban corrispondente a %s su %s." -#: plugin.py:460 +#: plugin.py:489 msgid "unban someone" msgstr "rimuovere il ban a qualcuno" -#: plugin.py:467 +#: plugin.py:496 msgid "" "[]\n" "\n" @@ -515,11 +519,11 @@ msgid "" " If is not given, it defaults to the current channel." msgstr "" -#: plugin.py:471 +#: plugin.py:500 msgid "No bans." msgstr "" -#: plugin.py:476 +#: plugin.py:505 msgid "" "[] \n" "\n" @@ -536,19 +540,19 @@ msgstr "" "canale stesso.\n" " " -#: plugin.py:485 +#: plugin.py:514 msgid "invite someone" msgstr "invitare qualcuno" -#: plugin.py:504 +#: plugin.py:533 msgid "%s is already in %s." msgstr "%s è già in %s." -#: plugin.py:511 +#: plugin.py:540 msgid "There is no %s on this network." msgstr "Non c'è nessun %s su questa rete." -#: plugin.py:523 +#: plugin.py:552 msgid "" "[]\n" "\n" @@ -571,7 +575,7 @@ msgstr "" "canale stesso.\n" " " -#: plugin.py:538 +#: plugin.py:567 msgid "" "[]\n" "\n" @@ -593,7 +597,7 @@ msgstr "" "canale stesso.\n" " " -#: plugin.py:553 +#: plugin.py:582 msgid "" "takes no arguments\n" "\n" @@ -605,15 +609,15 @@ msgstr "" " Riporta l'elenco dei canali nei quali il bot è lobotomizzato.\n" " " -#: plugin.py:568 +#: plugin.py:597 msgid "I'm currently lobotomized in %L." msgstr "Sono attualmente lobotomizzato in %L." -#: plugin.py:571 +#: plugin.py:600 msgid "I'm not currently lobotomized in any channels that you're in." msgstr "Al momento non sono lobotomizzato in nessun canale in cui sei." -#: plugin.py:585 +#: plugin.py:614 msgid "" "[] []\n" "\n" @@ -647,7 +651,7 @@ msgstr "" "canale stesso.\n" " " -#: plugin.py:605 +#: plugin.py:639 msgid "" "[] \n" "\n" @@ -665,11 +669,11 @@ msgstr "" "canale stesso.\n" " " -#: plugin.py:617 +#: plugin.py:651 msgid "There are no persistent bans for that hostmask." msgstr "Non ci sono ban permanenti per questa hostmask." -#: plugin.py:622 +#: plugin.py:656 #, fuzzy msgid "" "[] []\n" @@ -689,19 +693,19 @@ msgstr "" "canale stesso.\n" " " -#: plugin.py:640 +#: plugin.py:674 msgid "%q (expires %t)" msgstr "%q (scade il %t)" -#: plugin.py:643 +#: plugin.py:677 msgid "%q (never expires)" msgstr "%q (non scade)" -#: plugin.py:647 +#: plugin.py:681 msgid "There are no persistent bans on %s." msgstr "Non ci sono ban permanenti su %s." -#: plugin.py:654 +#: plugin.py:688 msgid "" "[] []\n" "\n" @@ -729,7 +733,7 @@ msgstr "" " se il messaggio non viene inviato nel canale stesso.\n" " " -#: plugin.py:672 +#: plugin.py:706 #, fuzzy msgid "" "[] \n" @@ -748,11 +752,11 @@ msgstr "" "canale stesso.\n" " " -#: plugin.py:684 +#: plugin.py:718 msgid "There are no ignores for that hostmask." msgstr "Non ci sono ignore per questa hostmask." -#: plugin.py:689 +#: plugin.py:723 msgid "" "[]\n" "\n" @@ -769,11 +773,11 @@ msgstr "" "stesso.\n" " " -#: plugin.py:698 +#: plugin.py:732 msgid "I'm not currently ignoring any hostmasks in %q" msgstr "Al momento non sto ignorando nessuna hostmasks in %q" -#: plugin.py:709 +#: plugin.py:743 msgid "" "[] [ ...]\n" "\n" @@ -792,7 +796,7 @@ msgstr "" "stesso.\n" " " -#: plugin.py:725 +#: plugin.py:759 msgid "" "[] [ ...]\n" "\n" @@ -814,11 +818,11 @@ msgstr "" "canale stesso.\n" " " -#: plugin.py:744 +#: plugin.py:778 msgid "That user didn't have the %L %s." msgstr "Questo utente non ha la %L %s." -#: plugin.py:753 +#: plugin.py:787 msgid "" "[] {True|False}\n" "\n" @@ -841,7 +845,7 @@ msgstr "" "stesso.\n" " " -#: plugin.py:771 +#: plugin.py:805 msgid "" "[] [ ...]\n" "\n" @@ -861,7 +865,7 @@ msgstr "" " solo se il messaggio non viene inviato nel canale stesso.\n" " " -#: plugin.py:786 +#: plugin.py:820 msgid "" "[] [ ...]\n" "\n" @@ -885,15 +889,15 @@ msgstr "" " solo se il messaggio non viene inviato nel canale stesso.\n" " " -#: plugin.py:802 +#: plugin.py:836 msgid "capability" msgstr "capacità" -#: plugin.py:805 +#: plugin.py:839 msgid "I do not know about the %L %s." msgstr "Non so nulla a proposito di %L %s." -#: plugin.py:812 +#: plugin.py:846 msgid "" "[]\n" "\n" @@ -907,7 +911,7 @@ msgstr "" " solo se il messaggio non viene inviato nel canale stesso.\n" " " -#: plugin.py:824 +#: plugin.py:858 msgid "" "[] [] []\n" "\n" @@ -932,15 +936,15 @@ msgstr "" "canale stesso.\n" " " -#: plugin.py:840 plugin.py:879 +#: plugin.py:874 plugin.py:913 msgid "The %s plugin does not have a command called %s." msgstr "Il plugin %s non ha un comando chiamato %s." -#: plugin.py:847 plugin.py:886 +#: plugin.py:881 plugin.py:920 msgid "No plugin or command named %s could be found." msgstr "Non è stato trovato nessun plugin o comando chiamato %s." -#: plugin.py:863 +#: plugin.py:897 msgid "" "[] [] []\n" "\n" @@ -967,11 +971,11 @@ msgstr "" " inviato nel canale stesso.\n" " " -#: plugin.py:900 +#: plugin.py:934 msgid "%s was not disabled." msgstr "%s non è stato disabilitato." -#: plugin.py:909 +#: plugin.py:943 msgid "" "[] [--count]\n" "\n" @@ -989,11 +993,11 @@ msgstr "" " l'opzione --count, mostra solo il numero dei nick.\n" " " -#: plugin.py:931 +#: plugin.py:965 msgid "You don't have access to that information." msgstr "Non hai accesso a questa informazione." -#: plugin.py:946 +#: plugin.py:980 msgid "" "Internal message for notifying all the #channel,ops in a channel of\n" " a given situation." @@ -1001,15 +1005,15 @@ msgstr "" "Messaggio interno per notificare una data situazione a tutti gli operatori " "(#canale,op) in un canale." -#: plugin.py:949 +#: plugin.py:983 msgid "Alert to all %s ops: %s" msgstr "Avviso a tutti gli op di %s: %s" -#: plugin.py:951 +#: plugin.py:985 msgid " (from %s)" msgstr " (da %s)" -#: plugin.py:963 +#: plugin.py:997 msgid "" "[] \n" "\n" @@ -1024,7 +1028,7 @@ msgstr "" ",op.\n" " " -#: plugin.py:973 +#: plugin.py:1007 msgid "" "[] []\n" "\n" @@ -1039,11 +1043,15 @@ msgid "" " " msgstr "" -#: plugin.py:994 +#: plugin.py:1028 #, fuzzy msgid "I'm not in %s." msgstr "Non ho mai visto %s." +#: plugin.py:1032 +msgid "%s removed from configured join list." +msgstr "" + #~ msgid "" #~ "I cowardly refuse to devoice myself. If you really want me devoiced, " #~ "tell me to op you and then devoice me yourself." diff --git a/plugins/Channel/messages.pot b/plugins/Channel/messages.pot index 560f5b8b9..7b0556047 100644 --- a/plugins/Channel/messages.pot +++ b/plugins/Channel/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -265,25 +265,25 @@ msgstr "" #: plugin.py:316 #, docstring msgid "" -"[] [--{exact,nick,user,host}] [] []\n" +"[] [--{exact,nick,user,host,account}] [] []\n" "\n" " If you have the #channel,op capability, this will kickban for\n" " as many seconds as you specify, or else (if you specify 0 seconds or\n" " don't specify a number of seconds) it will ban the person indefinitely.\n" " --exact bans only the exact hostmask; --nick bans just the nick;\n" -" --user bans just the user, and --host bans just the host. You can\n" -" combine these options as you choose. is a reason to give for\n" -" the kick.\n" -" is only necessary if the message isn't sent in the channel\n" -" itself.\n" +" --user bans just the user, and --host bans just the host\n" +" You can combine the --nick, --user, and --host options as you choose.\n" +" If --account is provided and the user is logged in and the network\n" +" supports account bans, this will ban the user's account instead.\n" +" is only necessary if the message isn't sent in the channel itself.\n" " " msgstr "" -#: plugin.py:333 +#: plugin.py:334 msgid "kick or ban someone" msgstr "" -#: plugin.py:341 +#: plugin.py:342 #, docstring msgid "" "[] [--{exact,nick,user,host}] []\n" @@ -291,33 +291,35 @@ msgid "" " If you have the #channel,op capability, this will ban for\n" " as many seconds as you specify, otherwise (if you specify 0 seconds or\n" " don't specify a number of seconds) it will ban the person indefinitely.\n" -" --exact can be used to specify an exact hostmask. You can combine the\n" -" exact, nick, user, and host options as you choose. is only\n" -" necessary if the message isn't sent in the channel itself.\n" +" --exact can be used to specify an exact hostmask.\n" +" You can combine the --nick, --user, and --host options as you choose.\n" +" If --account is provided and the user is logged in and the network\n" +" supports account bans, this will ban the user's account instead.\n" +" is only necessary if the message isn't sent in the channel itself.\n" " " msgstr "" -#: plugin.py:355 plugin.py:581 +#: plugin.py:359 plugin.py:610 msgid "ban someone" msgstr "" -#: plugin.py:375 +#: plugin.py:382 msgid "I haven't seen %s." msgstr "" -#: plugin.py:385 +#: plugin.py:394 msgid "I cowardly refuse to kickban myself." msgstr "" -#: plugin.py:394 +#: plugin.py:397 plugin.py:409 plugin.py:418 msgid "I cowardly refuse to ban myself." msgstr "" -#: plugin.py:422 +#: plugin.py:451 msgid "%s has %s too, you can't ban them." msgstr "" -#: plugin.py:433 +#: plugin.py:462 #, docstring msgid "" "[] []\n" @@ -330,19 +332,19 @@ msgid "" " " msgstr "" -#: plugin.py:453 +#: plugin.py:482 msgid "All bans on %s matching %s have been removed." msgstr "" -#: plugin.py:457 +#: plugin.py:486 msgid "No bans matching %s were found on %s." msgstr "" -#: plugin.py:460 +#: plugin.py:489 msgid "unban someone" msgstr "" -#: plugin.py:467 +#: plugin.py:496 #, docstring msgid "" "[]\n" @@ -351,11 +353,11 @@ msgid "" " If is not given, it defaults to the current channel." msgstr "" -#: plugin.py:471 +#: plugin.py:500 msgid "No bans." msgstr "" -#: plugin.py:476 +#: plugin.py:505 #, docstring msgid "" "[] \n" @@ -366,19 +368,19 @@ msgid "" " " msgstr "" -#: plugin.py:485 +#: plugin.py:514 msgid "invite someone" msgstr "" -#: plugin.py:504 +#: plugin.py:533 msgid "%s is already in %s." msgstr "" -#: plugin.py:511 +#: plugin.py:540 msgid "There is no %s on this network." msgstr "" -#: plugin.py:523 +#: plugin.py:552 #, docstring msgid "" "[]\n" @@ -390,7 +392,7 @@ msgid "" " " msgstr "" -#: plugin.py:538 +#: plugin.py:567 #, docstring msgid "" "[]\n" @@ -402,7 +404,7 @@ msgid "" " " msgstr "" -#: plugin.py:553 +#: plugin.py:582 #, docstring msgid "" "takes no arguments\n" @@ -411,15 +413,15 @@ msgid "" " " msgstr "" -#: plugin.py:568 +#: plugin.py:597 msgid "I'm currently lobotomized in %L." msgstr "" -#: plugin.py:571 +#: plugin.py:600 msgid "I'm not currently lobotomized in any channels that you're in." msgstr "" -#: plugin.py:585 +#: plugin.py:614 #, docstring msgid "" "[] []\n" @@ -436,7 +438,7 @@ msgid "" " " msgstr "" -#: plugin.py:605 +#: plugin.py:639 #, docstring msgid "" "[] \n" @@ -447,11 +449,11 @@ msgid "" " " msgstr "" -#: plugin.py:617 +#: plugin.py:651 msgid "There are no persistent bans for that hostmask." msgstr "" -#: plugin.py:622 +#: plugin.py:656 #, docstring msgid "" "[] []\n" @@ -464,19 +466,19 @@ msgid "" " " msgstr "" -#: plugin.py:640 +#: plugin.py:674 msgid "%q (expires %t)" msgstr "" -#: plugin.py:643 +#: plugin.py:677 msgid "%q (never expires)" msgstr "" -#: plugin.py:647 +#: plugin.py:681 msgid "There are no persistent bans on %s." msgstr "" -#: plugin.py:654 +#: plugin.py:688 #, docstring msgid "" "[] []\n" @@ -491,7 +493,7 @@ msgid "" " " msgstr "" -#: plugin.py:672 +#: plugin.py:706 #, docstring msgid "" "[] \n" @@ -502,11 +504,11 @@ msgid "" " " msgstr "" -#: plugin.py:684 +#: plugin.py:718 msgid "There are no ignores for that hostmask." msgstr "" -#: plugin.py:689 +#: plugin.py:723 #, docstring msgid "" "[]\n" @@ -517,11 +519,11 @@ msgid "" " " msgstr "" -#: plugin.py:698 +#: plugin.py:732 msgid "I'm not currently ignoring any hostmasks in %q" msgstr "" -#: plugin.py:709 +#: plugin.py:743 #, docstring msgid "" "[] [ ...]\n" @@ -533,7 +535,7 @@ msgid "" " " msgstr "" -#: plugin.py:725 +#: plugin.py:759 #, docstring msgid "" "[] [ ...]\n" @@ -545,11 +547,11 @@ msgid "" " " msgstr "" -#: plugin.py:744 +#: plugin.py:778 msgid "That user didn't have the %L %s." msgstr "" -#: plugin.py:753 +#: plugin.py:787 #, docstring msgid "" "[] {True|False}\n" @@ -561,7 +563,7 @@ msgid "" " " msgstr "" -#: plugin.py:771 +#: plugin.py:805 #, docstring msgid "" "[] [ ...]\n" @@ -572,7 +574,7 @@ msgid "" " " msgstr "" -#: plugin.py:786 +#: plugin.py:820 #, docstring msgid "" "[] [ ...]\n" @@ -584,15 +586,15 @@ msgid "" " " msgstr "" -#: plugin.py:802 +#: plugin.py:836 msgid "capability" msgstr "" -#: plugin.py:805 +#: plugin.py:839 msgid "I do not know about the %L %s." msgstr "" -#: plugin.py:812 +#: plugin.py:846 #, docstring msgid "" "[]\n" @@ -602,7 +604,7 @@ msgid "" " " msgstr "" -#: plugin.py:824 +#: plugin.py:858 #, docstring msgid "" "[] [] []\n" @@ -615,15 +617,15 @@ msgid "" " " msgstr "" -#: plugin.py:840 plugin.py:879 +#: plugin.py:874 plugin.py:913 msgid "The %s plugin does not have a command called %s." msgstr "" -#: plugin.py:847 plugin.py:886 +#: plugin.py:881 plugin.py:920 msgid "No plugin or command named %s could be found." msgstr "" -#: plugin.py:863 +#: plugin.py:897 #, docstring msgid "" "[] [] []\n" @@ -636,11 +638,11 @@ msgid "" " " msgstr "" -#: plugin.py:900 +#: plugin.py:934 msgid "%s was not disabled." msgstr "" -#: plugin.py:909 +#: plugin.py:943 #, docstring msgid "" "[] [--count]\n" @@ -651,26 +653,26 @@ msgid "" " " msgstr "" -#: plugin.py:931 +#: plugin.py:965 msgid "You don't have access to that information." msgstr "" -#: plugin.py:946 +#: plugin.py:980 #, docstring msgid "" "Internal message for notifying all the #channel,ops in a channel of\n" " a given situation." msgstr "" -#: plugin.py:949 +#: plugin.py:983 msgid "Alert to all %s ops: %s" msgstr "" -#: plugin.py:951 +#: plugin.py:985 msgid " (from %s)" msgstr "" -#: plugin.py:963 +#: plugin.py:997 #, docstring msgid "" "[] \n" @@ -680,7 +682,7 @@ msgid "" " " msgstr "" -#: plugin.py:973 +#: plugin.py:1007 #, docstring msgid "" "[] []\n" @@ -694,7 +696,11 @@ msgid "" " " msgstr "" -#: plugin.py:994 +#: plugin.py:1028 msgid "I'm not in %s." msgstr "" +#: plugin.py:1032 +msgid "%s removed from configured join list." +msgstr "" + diff --git a/plugins/Channel/plugin.py b/plugins/Channel/plugin.py index 1f3f97fed..3589e8bd5 100644 --- a/plugins/Channel/plugin.py +++ b/plugins/Channel/plugin.py @@ -321,13 +321,16 @@ class Channel(callbacks.Plugin): --exact bans only the exact hostmask; --nick bans just the nick; --user bans just the user, and --host bans just the host You can combine the --nick, --user, and --host options as you choose. + If --account is provided and the user is logged in and the network + supports account bans, this will ban the user's account instead. is only necessary if the message isn't sent in the channel itself. """ self._ban(irc, msg, args, channel, optlist, bannedNick, expiry, reason, True) kban = wrap(kban, ['op', - getopts({'exact':'', 'nick':'', 'user':'', 'host':''}), + getopts({'exact':'', 'nick':'', 'user':'', 'host':'', + 'account': ''}), ('haveHalfop+', _('kick or ban someone')), 'nickInChannel', optional('expiry', 0), @@ -343,13 +346,16 @@ class Channel(callbacks.Plugin): don't specify a number of seconds) it will ban the person indefinitely. --exact can be used to specify an exact hostmask. You can combine the --nick, --user, and --host options as you choose. + If --account is provided and the user is logged in and the network + supports account bans, this will ban the user's account instead. is only necessary if the message isn't sent in the channel itself. """ self._ban(irc, msg, args, channel, optlist, bannedNick, expiry, None, False) iban = wrap(iban, ['op', - getopts({'exact':'', 'nick':'', 'user':'', 'host':''}), + getopts({'exact':'', 'nick':'', 'user':'', 'host':'', + 'account': ''}), ('haveHalfop+', _('ban someone')), first('nick', 'hostmask'), optional('expiry', 0)]) @@ -362,18 +368,22 @@ class Channel(callbacks.Plugin): try: bannedHostmask = irc.state.nickToHostmask(target) banmaskstyle = conf.supybot.protocols.irc.banmask - banmask = banmaskstyle.makeBanmask(bannedHostmask, [o[0] for o in optlist]) + banmasks = banmaskstyle.makeExtBanmasks( + bannedHostmask, [o[0] for o in optlist], + channel=channel, network=irc.network) except KeyError: if not conf.supybot.protocols.irc.strictRfc() and \ target.startswith('$'): # Select the last part, or the whole target: bannedNick = target.split(':')[-1] - banmask = bannedHostmask = target + bannedHostmask = target + banmasks = [bannedHostmask] else: irc.error(format(_('I haven\'t seen %s.'), bannedNick), Raise=True) else: bannedNick = ircutils.nickFromHostmask(target) - banmask = bannedHostmask = target + bannedHostmask = target + banmasks = [bannedHostmask] if not irc.isNick(bannedNick): self.log.warning('%q tried to kban a non nick: %q', msg.prefix, bannedNick) @@ -389,30 +399,47 @@ class Channel(callbacks.Plugin): if not reason: reason = msg.nick capability = ircdb.makeChannelCapability(channel, 'op') + # Check (again) that they're not trying to make us kickban ourself. - if ircutils.hostmaskPatternEqual(banmask, irc.prefix): - if ircutils.hostmaskPatternEqual(bannedHostmask, irc.prefix): + self_account_extban = ircutils.accountExtban(irc, irc.nick) + for banmask in banmasks: + if ircutils.hostmaskPatternEqual(banmask, irc.prefix): + if ircutils.hostmaskPatternEqual(bannedHostmask, irc.prefix): + self.log.warning('%q tried to make me kban myself.',msg.prefix) + irc.error(_('I cowardly refuse to ban myself.')) + return + else: + self.log.warning('Using exact hostmask since banmask would ' + 'ban myself.') + banmasks = [bannedHostmask] + elif self_account_extban is not None \ + and banmask.lower() == self_account_extban.lower(): self.log.warning('%q tried to make me kban myself.',msg.prefix) irc.error(_('I cowardly refuse to ban myself.')) return - else: - self.log.warning('Using exact hostmask since banmask would ' - 'ban myself.') - banmask = bannedHostmask + + # Now, let's actually get to it. Check to make sure they have # #channel,op and the bannee doesn't have #channel,op; or that the # bannee and the banner are both the same person. def doBan(): if irc.state.channels[channel].isOp(bannedNick): irc.queueMsg(ircmsgs.deop(channel, bannedNick)) - irc.queueMsg(ircmsgs.ban(channel, banmask)) + irc.queueMsg(ircmsgs.bans(channel, banmasks)) if kick: irc.queueMsg(ircmsgs.kick(channel, bannedNick, reason)) if expiry > 0: def f(): - if channel in irc.state.channels and \ - banmask in irc.state.channels[channel].bans: - irc.queueMsg(ircmsgs.unban(channel, banmask)) + if channel not in irc.state.channels: + return + remaining_banmasks = [ + banmask + for banmask in banmasks + if banmask in irc.state.channels[channel].bans + ] + if remaining_banmasks: + irc.queueMsg(ircmsgs.unbans( + channel, remaining_banmasks)) schedule.addEvent(f, expiry) if bannedNick == msg.nick: doBan() @@ -583,7 +610,7 @@ class Channel(callbacks.Plugin): hostmask = wrap(hostmask, ['op', ('haveHalfop+', _('ban someone')), 'text']) @internationalizeDocstring - def add(self, irc, msg, args, channel, banmask, expires): + def add(self, irc, msg, args, channel, banmasks, expires): """[] [] If you have the #channel,op capability, this will effect a @@ -597,10 +624,15 @@ class Channel(callbacks.Plugin): channel itself. """ c = ircdb.channels.getChannel(channel) - c.addBan(banmask, expires) + if isinstance(banmasks, str): + banmasks = [banmasks] + for banmask in banmasks: + c.addBan(banmask, expires) ircdb.channels.setChannel(channel, c) irc.replySuccess() - add = wrap(add, ['op', first('hostmask', 'banmask'), additional('expiry', 0)]) + add = wrap(add, ['op', + first('hostmask', 'extbanmasks'), + additional('expiry', 0)]) @internationalizeDocstring def remove(self, irc, msg, args, channel, banmask): diff --git a/plugins/Channel/test.py b/plugins/Channel/test.py index 4295ef081..bcfc52786 100644 --- a/plugins/Channel/test.py +++ b/plugins/Channel/test.py @@ -161,9 +161,13 @@ class ChannelTestCase(ChannelPluginTestCase): self.assertTrue(m.command == 'MODE' and m.args == (self.channel, '+v', 'bar')) - def assertKban(self, query, hostmask, **kwargs): + def assertKban(self, query, *hostmasks, **kwargs): m = self.getMsg(query, **kwargs) - self.assertEqual(m, ircmsgs.ban(self.channel, hostmask)) + self.assertEqual(m.command, "MODE", m) + self.assertEqual(m.args[0], self.channel, m) + self.assertEqual(m.args[1], "+" + "b" * len(hostmasks), m) + self.assertCountEqual(m.args[2:], hostmasks, m) + m = self.getMsg(' ') self.assertEqual(m.command, 'KICK') def assertBan(self, query, hostmask, **kwargs): @@ -185,6 +189,30 @@ class ChannelTestCase(ChannelPluginTestCase): self.assertBan('iban $a:nyuszika7h', '$a:nyuszika7h') self.assertNotError('unban $a:nyuszika7h') + def testWontIbanItself(self): + self.irc.state.supported['ACCOUNTEXTBAN'] = 'a,account' + self.irc.state.supported['EXTBAN'] = '~,abc' + + self.irc.feedMsg(ircmsgs.join(self.channel, + prefix='foobar!user@host.domain.tld')) + self.irc.feedMsg(ircmsgs.op(self.channel, self.irc.nick)) + + # not authenticated, falls back to hostname and notices the match + self.assertError('iban --account ' + self.nick) + + self.irc.feedMsg(ircmsgs.IrcMsg(prefix=self.prefix, command='ACCOUNT', + args=['botaccount'])) + + # notices the matching account + self.assertError('iban --account ' + self.nick) + + self.irc.feedMsg(ircmsgs.IrcMsg(prefix='othernick!otheruser@otherhost', + command='ACCOUNT', + args=['botaccount'])) + + # ditto + self.assertError('iban --account othernick') + def testKban(self): self.irc.prefix = 'something!else@somehwere.else' self.irc.nick = 'something' @@ -219,11 +247,108 @@ class ChannelTestCase(ChannelPluginTestCase): self.assertRegexp('kban adlkfajsdlfkjsd', 'adlkfajsdlfkjsd is not in') + def testAccountKbanNoAccount(self): + self.irc.prefix = 'something!else@somehwere.else' + self.irc.nick = 'something' + self.irc.state.supported['ACCOUNTEXTBAN'] = 'a,account' + self.irc.state.supported['EXTBAN'] = '~,abc' + def join(): + self.irc.feedMsg(ircmsgs.join( + self.channel, prefix='foobar!user@host.domain.tld')) + join() + self.irc.feedMsg(ircmsgs.op(self.channel, self.irc.nick)) + self.assertKban('kban --account --exact foobar', + 'foobar!user@host.domain.tld') + join() + self.assertKban('kban --account foobar', + '*!*@host.domain.tld') + join() + with conf.supybot.protocols.irc.banmask.context(['user', 'host']): + # falls back from --account to config + self.assertKban('kban --account foobar', + '*!user@host.domain.tld') + join() + with conf.supybot.protocols.irc.banmask.context(['account']): + # falls back from --account to config, then to only the host + self.assertKban('kban --account foobar', + '*!*@host.domain.tld') + join() + self.assertKban('kban --account --host foobar', + '*!*@host.domain.tld') + + def testAccountKbanLoggedOut(self): + self.irc.prefix = 'something!else@somehwere.else' + self.irc.nick = 'something' + self.irc.state.supported['ACCOUNTEXTBAN'] = 'a,account' + self.irc.state.supported['EXTBAN'] = '~,abc' + self.irc.feedMsg(ircmsgs.IrcMsg( + prefix='foobar!user@host.domain.tld', + command='ACCOUNT', args=['*'])) + def join(): + self.irc.feedMsg(ircmsgs.join( + self.channel, prefix='foobar!user@host.domain.tld')) + join() + self.irc.feedMsg(ircmsgs.op(self.channel, self.irc.nick)) + self.assertKban('kban --account --exact foobar', + 'foobar!user@host.domain.tld') + join() + self.assertKban('kban --account foobar', + '*!*@host.domain.tld') + join() + with conf.supybot.protocols.irc.banmask.context(['user', 'host']): + # falls back from --account to config + self.assertKban('kban --account foobar', + '*!user@host.domain.tld') + join() + with conf.supybot.protocols.irc.banmask.context(['account']): + # falls back from --account to config, then to only the host + self.assertKban('kban --account foobar', + '*!*@host.domain.tld') + join() + self.assertKban('kban --account --host foobar', + '*!*@host.domain.tld') + + def testAccountKbanLoggedIn(self): + self.irc.prefix = 'something!else@somehwere.else' + self.irc.nick = 'something' + self.irc.state.supported['ACCOUNTEXTBAN'] = 'a,account' + self.irc.state.supported['EXTBAN'] = '~,abc' + self.irc.feedMsg(ircmsgs.IrcMsg( + prefix='foobar!user@host.domain.tld', + command='ACCOUNT', args=['account1'])) + def join(): + self.irc.feedMsg(ircmsgs.join( + self.channel, prefix='foobar!user@host.domain.tld')) + join() + self.irc.feedMsg(ircmsgs.op(self.channel, self.irc.nick)) + + + for style in (['exact'], ['account', 'exact']): + with conf.supybot.protocols.irc.banmask.context(style): + self.assertKban('kban --account --exact foobar', + '~a:account1', 'foobar!user@host.domain.tld') + join() + self.assertKban('kban --account foobar', + '~a:account1') + join() + self.assertKban('kban --account --host foobar', + '~a:account1', '*!*@host.domain.tld') + join() + + with conf.supybot.protocols.irc.banmask.context(['account', 'exact']): + self.assertKban('kban foobar', + '~a:account1', 'foobar!user@host.domain.tld') + join() + + with conf.supybot.protocols.irc.banmask.context(['account', 'host']): + self.assertKban('kban foobar', + '~a:account1', '*!*@host.domain.tld') + join() + def testBan(self): with conf.supybot.protocols.irc.banmask.context(['exact']): self.assertNotError('ban add foo!bar@baz') self.assertNotError('ban remove foo!bar@baz') - orig = conf.supybot.protocols.irc.strictRfc() with conf.supybot.protocols.irc.strictRfc.context(True): # something wonky is going on here. irc.error (src/Channel.py|449) # is being called but the assert is failing @@ -249,7 +374,6 @@ class ChannelTestCase(ChannelPluginTestCase): '"foobar!*@baz" (never expires)') def testIgnore(self): - orig = conf.supybot.protocols.irc.banmask() def ignore(given, expect=None): if expect is None: expect = given @@ -257,8 +381,9 @@ class ChannelTestCase(ChannelPluginTestCase): self.assertResponse('channel ignore list', "'%s'" % expect) self.assertNotError('channel ignore remove %s' % expect) self.assertRegexp('channel ignore list', 'not currently') - ignore('foo!bar@baz', '*!*@baz') - ignore('foo!*@*') + with conf.supybot.protocols.irc.banmask.context(['host']): + ignore('foo!bar@baz', '*!*@baz') + ignore('foo!*@*') with conf.supybot.protocols.irc.banmask.context(['exact']): ignore('foo!bar@baz') ignore('foo!*@*') diff --git a/plugins/ChannelLogger/messages.pot b/plugins/ChannelLogger/messages.pot index 4ec2e6e74..23d3d145c 100644 --- a/plugins/ChannelLogger/messages.pot +++ b/plugins/ChannelLogger/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/ChannelStats/README.rst b/plugins/ChannelStats/README.rst index dff660af2..c5ff87927 100644 --- a/plugins/ChannelStats/README.rst +++ b/plugins/ChannelStats/README.rst @@ -23,17 +23,17 @@ Commands .. _command-channelstats-channelstats: -channelstats [] +``channelstats []`` Returns the statistics for . is only necessary if the message isn't sent on the channel itself. .. _command-channelstats-rank: -rank [] +``rank [] `` Returns the ranking of users according to the given stat expression. Valid variables in the stat expression include 'msgs', 'chars', 'words', 'smileys', 'frowns', 'actions', 'joins', 'parts', 'quits', 'kicks', 'kicked', 'topics', and 'modes'. Any simple mathematical expression involving those variables is permitted. .. _command-channelstats-stats: -stats [] [] +``stats [] []`` Returns the statistics for on . is only necessary if the message isn't sent on the channel itself. If isn't given, it defaults to the user sending the command. .. _conf-ChannelStats: diff --git a/plugins/ChannelStats/config.py b/plugins/ChannelStats/config.py index de1959032..ccea66284 100644 --- a/plugins/ChannelStats/config.py +++ b/plugins/ChannelStats/config.py @@ -45,6 +45,10 @@ def configure(advanced): conf.registerPlugin('ChannelStats', True) class Smileys(registry.Value): + def __init__(self, *args, **kwargs): + self.s = '' + super().__init__(*args, **kwargs) + def set(self, s): L = s.split() self.setValue(L) diff --git a/plugins/ChannelStats/messages.pot b/plugins/ChannelStats/messages.pot index 1cdab5869..9f2d8402e 100644 --- a/plugins/ChannelStats/messages.pot +++ b/plugins/ChannelStats/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Conditional/README.rst b/plugins/Conditional/README.rst index 469e03ab1..9a234af42 100644 --- a/plugins/Conditional/README.rst +++ b/plugins/Conditional/README.rst @@ -26,92 +26,92 @@ Commands .. _command-conditional-cand: -cand [ ... ] +``cand [ ... ]`` Returns true if all conditions supplied evaluate to true. .. _command-conditional-ceq: -ceq +``ceq `` Does a string comparison on and . Returns true if they are equal. .. _command-conditional-cerror: -cerror +``cerror `` Runs and returns true if it raises an error; false otherwise. .. _command-conditional-cif: -cif +``cif `` Runs if evaluates to true, runs if it evaluates to false. Use other logical operators defined in this plugin and command nesting to your advantage here. .. _command-conditional-cor: -cor [ ... ] +``cor [ ... ]`` Returns true if any one of conditions supplied evaluates to true. .. _command-conditional-cxor: -cxor [ ... ] +``cxor [ ... ]`` Returns true if only one of conditions supplied evaluates to true. .. _command-conditional-ge: -ge +``ge `` Does a string comparison on and . Returns true if is greater than or equal to . .. _command-conditional-gt: -gt +``gt `` Does a string comparison on and . Returns true if is greater than . .. _command-conditional-le: -le +``le `` Does a string comparison on and . Returns true if is less than or equal to . .. _command-conditional-lt: -lt +``lt `` Does a string comparison on and . Returns true if is less than . .. _command-conditional-match: -match [--case-insensitive] +``match [--case-insensitive] `` Determines if is a substring of . Returns true if is contained in . Will only match case if --case-insensitive is not given. .. _command-conditional-nceq: -nceq +``nceq `` Does a numeric comparison on and . Returns true if they are equal. .. _command-conditional-ne: -ne +``ne `` Does a string comparison on and . Returns true if they are not equal. .. _command-conditional-nge: -nge +``nge `` Does a numeric comparison on and . Returns true if is greater than or equal to . .. _command-conditional-ngt: -ngt +``ngt `` Does a numeric comparison on and . Returns true if is greater than . .. _command-conditional-nle: -nle +``nle `` Does a numeric comparison on and . Returns true if is less than or equal to . .. _command-conditional-nlt: -nlt +``nlt `` Does a numeric comparison on and . Returns true if is less than . .. _command-conditional-nne: -nne +``nne `` Does a numeric comparison on and . Returns true if they are not equal. .. _conf-Conditional: diff --git a/plugins/Conditional/messages.pot b/plugins/Conditional/messages.pot index 7048ade84..ba62bd5c5 100644 --- a/plugins/Conditional/messages.pot +++ b/plugins/Conditional/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Config/README.rst b/plugins/Config/README.rst index 3cf295fc9..4b0d6987b 100644 --- a/plugins/Config/README.rst +++ b/plugins/Config/README.rst @@ -21,72 +21,72 @@ Commands .. _command-config-channel: -channel [] [] [] +``channel [] [] []`` If is given, sets the channel configuration variable for to for on the . Otherwise, returns the current channel configuration value of . is only necessary if the message isn't sent in the channel itself. More than one channel may be given at once by separating them with commas. defaults to the current network. .. _command-config-config: -config [] +``config []`` If is given, sets the value of to . Otherwise, returns the current value of . You may omit the leading "supybot." in the name if you so choose. .. _command-config-default: -default +``default `` Returns the default value of the configuration variable . .. _command-config-export: -export +``export `` Exports the public variables of your configuration to . If you want to show someone your configuration file, but you don't want that person to be able to see things like passwords, etc., this command will export a "sanitized" configuration file suitable for showing publicly. .. _command-config-help: -help +``help `` Returns the description of the configuration variable . .. _command-config-list: -list +``list `` Returns the configuration variables available under the given configuration . If a variable has values under it, it is preceded by an '@' sign. If a variable is channel-specific, that is, it can be separately configured for each channel using the 'channel' command in this plugin, it is preceded by an '#' sign. And if a variable is a network-specific, it is preceded by a ':' sign. .. _command-config-network: -network [] [] +``network [] []`` If is given, sets the network configuration variable for to for . Otherwise, returns the current network configuration value of . defaults to the current network. .. _command-config-reload: -reload takes no arguments +``reload takes no arguments`` Reloads the various configuration files (user database, channel database, registry, etc.). .. _command-config-reset.channel: -reset channel [] [] +``reset channel [] [] `` Resets the channel-specific value of variable , so that it will match the network-specific value (or the global one if the latter isn't set). and default to the current network and channel. .. _command-config-reset.network: -reset network [] [] +``reset network [] [] `` Resets the network-specific value of variable , so that it will match the global. defaults to the current network and channel. .. _command-config-search: -search +``search `` Searches for in the current configuration variables. .. _command-config-searchhelp: -searchhelp +``searchhelp `` Searches for in the help of current configuration variables. .. _command-config-searchvalues: -searchvalues +``searchvalues `` Searches for in the values of current configuration variables. .. _command-config-setdefault: -setdefault +``setdefault `` Resets the configuration variable to its default value. Use commands 'reset channel' and 'reset network' instead to make a channel- or network- specific value inherit from the global one. .. _conf-Config: diff --git a/plugins/Config/messages.pot b/plugins/Config/messages.pot index 7bd71c336..68d6e85f5 100644 --- a/plugins/Config/messages.pot +++ b/plugins/Config/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Ctcp/README.rst b/plugins/Ctcp/README.rst index eaa87075f..a19540e6b 100644 --- a/plugins/Ctcp/README.rst +++ b/plugins/Ctcp/README.rst @@ -25,7 +25,7 @@ Commands .. _command-ctcp-version: -version [] [--nicks] +``version [] [--nicks]`` Sends a CTCP VERSION to , returning the various version strings returned. It waits for 10 seconds before returning the versions received at that point. If --nicks is given, nicks are associated with the version strings; otherwise, only the version strings are given. .. _conf-Ctcp: diff --git a/plugins/Ctcp/messages.pot b/plugins/Ctcp/messages.pot index de924cb10..f925c2372 100644 --- a/plugins/Ctcp/messages.pot +++ b/plugins/Ctcp/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/DDG/README.rst b/plugins/DDG/README.rst index fc57c7e7f..f62c10848 100644 --- a/plugins/DDG/README.rst +++ b/plugins/DDG/README.rst @@ -25,7 +25,7 @@ Commands .. _command-ddg-search: -search +``search `` Searches for on DuckDuckGo's web search. .. _conf-DDG: diff --git a/plugins/DDG/messages.pot b/plugins/DDG/messages.pot index 606b79fd7..ced8aac21 100644 --- a/plugins/DDG/messages.pot +++ b/plugins/DDG/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/DDG/test.py b/plugins/DDG/test.py index a3b96a407..b5f7961ae 100644 --- a/plugins/DDG/test.py +++ b/plugins/DDG/test.py @@ -39,7 +39,7 @@ class DDGTestCase(PluginTestCase): def testSearch(self): self.assertRegexp( - r'ddg search wikipedia', 'Wikipedia.*? - .*?https?\:\/\/') + 'ddg search wikipedia', r'Wikipedia.*? - .*?https?\:\/\/') self.assertRegexp( 'ddg search en.wikipedia.org', 'Wikipedia, the free encyclopedia\x02 - ' diff --git a/plugins/Debug/README.rst b/plugins/Debug/README.rst index 1df5f3931..12c3cc1de 100644 --- a/plugins/Debug/README.rst +++ b/plugins/Debug/README.rst @@ -23,52 +23,52 @@ Commands .. _command-debug-channeldb: -channeldb [] +``channeldb []`` Returns the result of the channeldb converter. .. _command-debug-collect: -collect [] +``collect []`` Does gc collections, returning the number of objects collected each time. defaults to 1. .. _command-debug-environ: -environ takes no arguments +``environ takes no arguments`` Returns the environment of the supybot process. .. _command-debug-eval: -eval +``eval `` Evaluates (which should be a Python expression) and returns its value. If an exception is raised, reports the exception (and logs the traceback to the bot's logfile). .. _command-debug-exec: -exec +``exec `` Execs . Returns success if it didn't raise any exceptions. .. _command-debug-exn: -exn +``exn `` Raises the exception matching . .. _command-debug-sendquote: -sendquote +``sendquote `` Sends (not queues) the raw IRC message given. .. _command-debug-settrace: -settrace [] +``settrace []`` Starts tracing function calls to . If is not given, sys.stdout is used. This causes much output. .. _command-debug-simpleeval: -simpleeval +``simpleeval `` Evaluates the given expression. .. _command-debug-unsettrace: -unsettrace takes no arguments +``unsettrace takes no arguments`` Stops tracing function calls on stdout. .. _conf-Debug: diff --git a/plugins/Debug/messages.pot b/plugins/Debug/messages.pot index dbde0ca73..e2b56aae3 100644 --- a/plugins/Debug/messages.pot +++ b/plugins/Debug/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -15,19 +15,27 @@ msgstr "" "Generated-By: pygettext.py 1.5\n" -#: plugin.py:50 +#: plugin.py:31 +#, docstring +msgid "" +"\n" +"This is for debugging purposes only and you shouldn't load this it unless\n" +"a Supybot developer requests you to debug some issue.\n" +msgstr "" + +#: plugin.py:48 #, docstring msgid "Pseudo-module" msgstr "" -#: plugin.py:77 +#: plugin.py:75 #, docstring msgid "" "This plugin provides debugging abilities for Supybot. It\n" " should not be loaded with a default installation." msgstr "" -#: plugin.py:98 +#: plugin.py:96 #, docstring msgid "" "\n" @@ -38,7 +46,7 @@ msgid "" " " msgstr "" -#: plugin.py:117 +#: plugin.py:115 #, docstring msgid "" "\n" @@ -47,7 +55,7 @@ msgid "" " " msgstr "" -#: plugin.py:127 +#: plugin.py:125 #, docstring msgid "" "\n" @@ -56,7 +64,7 @@ msgid "" " " msgstr "" -#: plugin.py:139 +#: plugin.py:137 #, docstring msgid "" "\n" @@ -65,7 +73,7 @@ msgid "" " " msgstr "" -#: plugin.py:152 +#: plugin.py:150 #, docstring msgid "" "\n" @@ -74,7 +82,7 @@ msgid "" " " msgstr "" -#: plugin.py:161 +#: plugin.py:159 #, docstring msgid "" "[]\n" @@ -84,7 +92,7 @@ msgid "" " " msgstr "" -#: plugin.py:176 +#: plugin.py:174 #, docstring msgid "" "takes no arguments\n" @@ -93,7 +101,7 @@ msgid "" " " msgstr "" -#: plugin.py:186 +#: plugin.py:184 #, docstring msgid "" "[]\n" @@ -102,7 +110,7 @@ msgid "" " " msgstr "" -#: plugin.py:194 +#: plugin.py:192 #, docstring msgid "" "[]\n" @@ -112,7 +120,7 @@ msgid "" " " msgstr "" -#: plugin.py:207 +#: plugin.py:205 #, docstring msgid "" "takes no arguments\n" diff --git a/plugins/Dict/README.rst b/plugins/Dict/README.rst index b0c72e6a2..2d01e6c3b 100644 --- a/plugins/Dict/README.rst +++ b/plugins/Dict/README.rst @@ -26,22 +26,22 @@ Commands .. _command-dict-dict: -dict [] +``dict [] `` Looks up the definition of on the dictd server specified by the supybot.plugins.Dict.server config variable. .. _command-dict-dictionaries: -dictionaries takes no arguments +``dictionaries takes no arguments`` Returns the dictionaries valid for the dict command. .. _command-dict-random: -random takes no arguments +``random takes no arguments`` Returns a random valid dictionary. .. _command-dict-synonym: -synonym [ ...] +``synonym [ ...]`` Gets a random synonym from the Moby Thesaurus (moby-thesaurus) database. If given many words, gets a random synonym for each of them. Quote phrases to have them treated as one lookup word. .. _conf-Dict: diff --git a/plugins/Dict/messages.pot b/plugins/Dict/messages.pot index 14504b1c8..fd1c8cdfc 100644 --- a/plugins/Dict/messages.pot +++ b/plugins/Dict/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Dunno/README.rst b/plugins/Dunno/README.rst index 3030b1718..364209938 100644 --- a/plugins/Dunno/README.rst +++ b/plugins/Dunno/README.rst @@ -29,32 +29,32 @@ Commands .. _command-dunno-add: -add [] +``add [] `` Adds to the dunno database for . is only necessary if the message isn't sent in the channel itself. .. _command-dunno-change: -change [] +``change [] `` Changes the dunno with id according to the regular expression . is only necessary if the message isn't sent in the channel itself. .. _command-dunno-get: -get [] +``get [] `` Gets the dunno with id from the dunno database for . is only necessary if the message isn't sent in the channel itself. .. _command-dunno-remove: -remove [] +``remove [] `` Removes the dunno with id from the dunno database for . is only necessary if the message isn't sent in the channel itself. .. _command-dunno-search: -search [] [--{regexp,by} ] [] +``search [] [--{regexp,by} ] []`` Searches for dunnos matching the criteria given. .. _command-dunno-stats: -stats [] +``stats []`` Returns the number of dunnos in the database for . is only necessary if the message isn't sent in the channel itself. .. _conf-Dunno: diff --git a/plugins/Dunno/messages.pot b/plugins/Dunno/messages.pot index 5b1367fac..d5979c42d 100644 --- a/plugins/Dunno/messages.pot +++ b/plugins/Dunno/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Factoids/README.rst b/plugins/Factoids/README.rst index dfff8f6b4..24ef81f04 100644 --- a/plugins/Factoids/README.rst +++ b/plugins/Factoids/README.rst @@ -21,57 +21,57 @@ Commands .. _command-factoids-alias: -alias [] [] +``alias [] []`` Adds a new key for factoid associated with . is only necessary if there's more than one factoid associated with . The same action can be accomplished by using the 'learn' function with a new key but an existing (verbatim) factoid content. .. _command-factoids-change: -change [] +``change [] `` Changes the factoid # associated with according to . .. _command-factoids-forget: -forget [] [|*] +``forget [] [|*]`` Removes a key-fact relationship for key from the factoids database. If there is more than one such relationship for this key, a number is necessary to determine which one should be removed. A * can be used to remove all relationships for . If as a result, the key (factoid) remains without any relationships to a factoid (key), it shall be removed from the database. is only necessary if the message isn't sent in the channel itself. .. _command-factoids-info: -info [] +``info [] `` Gives information about the factoid(s) associated with . is only necessary if the message isn't sent in the channel itself. .. _command-factoids-learn: -learn [] is +``learn [] is `` Associates with . is only necessary if the message isn't sent on the channel itself. The word 'is' is necessary to separate the key from the value. It can be changed to another word via the learnSeparator registry value. .. _command-factoids-lock: -lock [] +``lock [] `` Locks the factoid(s) associated with so that they cannot be removed or added to. is only necessary if the message isn't sent in the channel itself. .. _command-factoids-random: -random [] +``random []`` Returns random factoids from the database for . is only necessary if the message isn't sent in the channel itself. .. _command-factoids-rank: -rank [] [--plain] [--alpha] [] +``rank [] [--plain] [--alpha] []`` Returns a list of top-ranked factoid keys, sorted by usage count (rank). If is not provided, the default number of factoid keys returned is set by the rankListLength registry value. If --plain option is given, rank numbers and usage counts are not included in output. If --alpha option is given in addition to --plain, keys are sorted alphabetically, instead of by rank. is only necessary if the message isn't sent in the channel itself. .. _command-factoids-search: -search [] [--values] [--regexp ] [--author ] [ ...] +``search [] [--values] [--regexp ] [--author ] [ ...]`` Searches the keyspace for keys matching . If --regexp is given, its associated value is taken as a regexp and matched against the keys. If --values is given, search the value space instead of the keyspace. .. _command-factoids-unlock: -unlock [] +``unlock [] `` Unlocks the factoid(s) associated with so that they can be removed or added to. is only necessary if the message isn't sent in the channel itself. .. _command-factoids-whatis: -whatis [] [--raw] [] +``whatis [] [--raw] []`` Looks up the value of in the factoid database. If given a number, will return only that exact factoid. If '--raw' option is given, no variable substitution will take place on the factoid. is only necessary if the message isn't sent in the channel itself. .. _conf-Factoids: diff --git a/plugins/Factoids/locales/fi.po b/plugins/Factoids/locales/fi.po index 75bb99250..b59e98353 100644 --- a/plugins/Factoids/locales/fi.po +++ b/plugins/Factoids/locales/fi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Factoids plugin for Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-12-20 14:33+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: Finnish <>\n" @@ -448,11 +448,11 @@ msgstr "" " sijaan.\n" " " -#: plugin.py:854 plugin.py:864 +#: plugin.py:858 plugin.py:868 msgid "No keys matched that query." msgstr "Yksikään avain ei täsmännyt hakuun." -#: plugin.py:860 plugin.py:870 +#: plugin.py:864 plugin.py:911 msgid "More than 100 keys matched that query; please narrow your query." msgstr "Yli 100 avainta täsmäsi tuohon hakuun; ole hyvä ja kavenna hakuasi." diff --git a/plugins/Factoids/locales/fr.po b/plugins/Factoids/locales/fr.po index e0c25c11d..8a0acb27c 100644 --- a/plugins/Factoids/locales/fr.po +++ b/plugins/Factoids/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Limnoria \n" @@ -410,11 +410,11 @@ msgstr "" "est donné, recherche parmi les valeurs, plutôt que parmi les clefs. " "n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même." -#: plugin.py:854 plugin.py:864 +#: plugin.py:858 plugin.py:868 msgid "No keys matched that query." msgstr "Aucune clef ne correspond à cette requête." -#: plugin.py:860 plugin.py:870 +#: plugin.py:864 plugin.py:911 msgid "More than 100 keys matched that query; please narrow your query." msgstr "" "Plus de 100 clefs correspondent à votre requête ; veuillez la préciser." diff --git a/plugins/Factoids/locales/it.po b/plugins/Factoids/locales/it.po index 5a333b861..e704932e6 100644 --- a/plugins/Factoids/locales/it.po +++ b/plugins/Factoids/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2011-07-18 13:05+0200\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -213,8 +213,8 @@ msgstr "" " è necessario solo se c'è più di un factoid associato a " ".\n" "\n" -" La stessa cosa può essere ottenuta utilizzando la funzione \"learn" -"\"\n" +" La stessa cosa può essere ottenuta utilizzando la funzione " +"\"learn\"\n" " con una nuova chiave su un factoid esistente.\n" " " @@ -446,11 +446,11 @@ msgstr "" " specificato, cerca i valori piuttosto che le chiavi.\n" " " -#: plugin.py:854 plugin.py:864 +#: plugin.py:858 plugin.py:868 msgid "No keys matched that query." msgstr "Nessuna chiave corrisponde a questa richiesta." -#: plugin.py:860 plugin.py:870 +#: plugin.py:864 plugin.py:911 msgid "More than 100 keys matched that query; please narrow your query." msgstr "" "A questa richiesta corrispondono più di 100 chiavi, restringi la ricerca." diff --git a/plugins/Factoids/messages.pot b/plugins/Factoids/messages.pot index 7a7f8b9bf..abcba504f 100644 --- a/plugins/Factoids/messages.pot +++ b/plugins/Factoids/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -307,11 +307,11 @@ msgid "" " " msgstr "" -#: plugin.py:854 plugin.py:864 +#: plugin.py:858 plugin.py:868 msgid "No keys matched that query." msgstr "" -#: plugin.py:860 plugin.py:870 +#: plugin.py:864 plugin.py:911 msgid "More than 100 keys matched that query; please narrow your query." msgstr "" diff --git a/plugins/Factoids/plugin.py b/plugins/Factoids/plugin.py index cfa20d49b..0f9ea018e 100644 --- a/plugins/Factoids/plugin.py +++ b/plugins/Factoids/plugin.py @@ -815,6 +815,7 @@ class Factoids(callbacks.Plugin, plugins.ChannelDBHandler): join_factoids = False formats = [] criteria = [] + join_criteria = [] target = 'keys.key' predicateName = 'p' db = self.getDb(channel) @@ -836,20 +837,23 @@ class Factoids(callbacks.Plugin, plugins.ChannelDBHandler): criteria.append('TARGET LIKE ?') formats.append(self._sqlTrans(glob)) - if join_factoids: + def _join_factoids(): if 'factoids' not in tables: tables.append('factoids') tables.append('relations') - criteria.append( + join_criteria.append( 'factoids.id=relations.fact_id AND keys.id=relations.key_id' ) + if join_factoids: + _join_factoids() cursor = db.cursor() - sql = """SELECT keys.key FROM %s WHERE %s""" % \ - (', '.join(tables), ' AND '.join(criteria)) + sql = """SELECT DISTINCT keys.key FROM %s WHERE %s""" % \ + (', '.join(tables), ' AND '.join(criteria + join_criteria)) sql = sql + " ORDER BY keys.key" sql = sql.replace('TARGET', target) cursor.execute(sql, formats) + if cursor.rowcount == 0: irc.reply(_('No keys matched that query.')) elif cursor.rowcount == 1 and \ @@ -865,7 +869,44 @@ class Factoids(callbacks.Plugin, plugins.ChannelDBHandler): elif len(results) == 1 and \ self.registryValue('showFactoidIfOnlyOneMatch', channel, irc.network): - self.whatis(irc, msg, [channel, results[0][0]]) + ((key,),) = results + + # add the knowledge we gained, so avoid a full search again + join_criteria.append('keys.key=?') + formats.append(key) + + if not join_factoids: + # if they were not joined before, we need to join + # them now to get the values + _join_factoids() + + sql = """ + SELECT factoids.fact, (1 AND %s) FROM %s + WHERE %s + ORDER BY factoids.id + """ % \ + (' AND '.join(criteria), ', '.join(tables), + ' AND '.join(['keys.key=?', *join_criteria])) + sql = sql.replace('TARGET', target) + formats.append(key) + cursor.execute(sql, formats) + factoids = cursor.fetchall() + assert factoids # we had a result before, and still should now + if len(factoids) == 1: + ((fact, included),) = factoids + assert included # matched before, should still match now + irc.reply('%s is %s' % + (key, ircutils.standardSubstitute(irc, msg, fact))) + else: + factoidsS = [] + counter = 1 + for (fact, included) in factoids: + if included: + factoidsS.append(format('(#%i) %s', counter, + ircutils.standardSubstitute(irc, msg, fact))) + counter += 1 + irc.replies(factoidsS, prefixer=lambda s: '%s is %s' % (key, s), + joiner=', or ', onlyPrefixFirst=True) elif len(results) > 100: irc.reply(_('More than 100 keys matched that query; ' 'please narrow your query.')) diff --git a/plugins/Factoids/test.py b/plugins/Factoids/test.py index a600fd4c1..7e253c009 100644 --- a/plugins/Factoids/test.py +++ b/plugins/Factoids/test.py @@ -118,6 +118,18 @@ class FactoidsTestCase(ChannelPluginTestCase): self.assertRegexp('factoids search --author blahblah j*', 'No keys matched that query.') + def testSearchMultiFactoids(self): + self.assertNotError('learn water is wet') + self.assertResponse('factoids search --values we', 'water is wet') + self.assertNotError('learn water is H2O') + self.assertNotError('learn fire is hot') + self.assertResponse('factoids search --values we', 'water is (#1) wet') + self.assertResponse('factoids search --values H2', 'water is (#2) H2O') + + self.assertNotError('learn water is very wet') + self.assertResponse('factoids search --values we', + 'water is (#1) wet, or (#3) very wet') + def testWhatisOnNumbers(self): self.assertNotError('learn 911 is emergency number') self.assertRegexp('whatis 911', 'emergency number') diff --git a/plugins/Fediverse/README.rst b/plugins/Fediverse/README.rst index 5b9937856..08fe78f45 100644 --- a/plugins/Fediverse/README.rst +++ b/plugins/Fediverse/README.rst @@ -42,22 +42,22 @@ Commands .. _command-fediverse-featured: -featured <@user@instance> +``featured <@user@instance>`` Returnes the featured statuses of @user@instance (aka. pinned toots). .. _command-fediverse-profile: -profile <@user@instance> +``profile <@user@instance>`` Returns generic information on the account @user@instance. .. _command-fediverse-status: -status +``status `` Shows the content of the status at . .. _command-fediverse-statuses: -statuses <@user@instance> +``statuses <@user@instance>`` Returned the last statuses of @user@instance. .. _conf-Fediverse: diff --git a/plugins/Fediverse/messages.pot b/plugins/Fediverse/messages.pot index 0dbc2811d..4b706f0dc 100644 --- a/plugins/Fediverse/messages.pot +++ b/plugins/Fediverse/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -39,14 +39,14 @@ msgid "" " when the status has a Content Warning." msgstr "" -#: plugin.py:54 +#: plugin.py:59 msgid "" "\n" " You shouldn't be here, this subfolder is not for you. Go back to the\n" " index and try out other plugins (if any)." msgstr "" -#: plugin.py:119 +#: plugin.py:124 #, docstring msgid "" "Fetches information from ActivityPub servers.\n" @@ -75,23 +75,27 @@ msgid "" " " msgstr "" -#: plugin.py:233 +#: plugin.py:242 msgid "" msgstr "" -#: plugin.py:245 +#: plugin.py:278 msgid "%s: \002[CW %s]\002 %s" msgstr "" -#: plugin.py:254 +#: plugin.py:287 msgid "%s: CW %s" msgstr "" -#: plugin.py:258 plugin.py:292 plugin.py:300 +#: plugin.py:291 plugin.py:336 plugin.py:344 msgid "%s: %s" msgstr "" -#: plugin.py:286 +#: plugin.py:316 +msgid "\002%s\002 (%T) by %s: %s" +msgstr "" + +#: plugin.py:330 #, docstring msgid "" "<@user@instance>\n" @@ -99,7 +103,7 @@ msgid "" " Returns generic information on the account @user@instance." msgstr "" -#: plugin.py:376 +#: plugin.py:420 #, docstring msgid "" "<@user@instance>\n" @@ -108,11 +112,11 @@ msgid "" " " msgstr "" -#: plugin.py:382 plugin.py:388 +#: plugin.py:426 plugin.py:432 msgid "No featured statuses." msgstr "" -#: plugin.py:399 +#: plugin.py:443 #, docstring msgid "" "<@user@instance>\n" @@ -121,11 +125,11 @@ msgid "" " " msgstr "" -#: plugin.py:405 +#: plugin.py:449 msgid "No status." msgstr "" -#: plugin.py:422 +#: plugin.py:466 #, docstring msgid "" "\n" @@ -134,7 +138,7 @@ msgid "" " " msgstr "" -#: plugin.py:429 +#: plugin.py:473 msgid "Could not get status: %s" msgstr "" diff --git a/plugins/Filter/README.rst b/plugins/Filter/README.rst index 975863e0e..2e0b6ba88 100644 --- a/plugins/Filter/README.rst +++ b/plugins/Filter/README.rst @@ -31,147 +31,147 @@ Commands .. _command-filter-aol: -aol +``aol `` Returns as if an AOL user had said it. .. _command-filter-binary: -binary +``binary `` Returns the binary representation of . .. _command-filter-caps: -caps +``caps `` EVERYONE LOVES CAPS LOCK. .. _command-filter-capwords: -capwords +``capwords `` Capitalises the first letter of each word. .. _command-filter-colorize: -colorize +``colorize `` Returns with each character randomly colorized. .. _command-filter-gnu: -gnu +``gnu `` Returns as GNU/RMS would say it. .. _command-filter-hebrew: -hebrew +``hebrew `` Removes all the vowels from . (If you're curious why this is named 'hebrew' it's because I (jemfinch) thought of it in Hebrew class, and printed Hebrew often elides the vowels.) .. _command-filter-hexlify: -hexlify +``hexlify `` Returns a hexstring from the given string; a hexstring is a string composed of the hexadecimal value of each character in the string .. _command-filter-jeffk: -jeffk +``jeffk `` Returns as if JeffK had said it himself. .. _command-filter-leet: -leet +``leet `` Returns the l33tspeak version of .. _command-filter-morse: -morse +``morse `` Gives the Morse code equivalent of a given string. .. _command-filter-outfilter: -outfilter [] [] +``outfilter [] []`` Sets the outFilter of this plugin to be . If no command is given, unsets the outFilter. is only necessary if the message isn't sent in the channel itself. .. _command-filter-rainbow: -rainbow +``rainbow `` Returns colorized like a rainbow. .. _command-filter-reverse: -reverse +``reverse `` Reverses . .. _command-filter-rot13: -rot13 +``rot13 `` Rotates 13 characters to the right in the alphabet. Rot13 is commonly used for text that simply needs to be hidden from inadvertent reading by roaming eyes, since it's easily reversible. .. _command-filter-scramble: -scramble +``scramble `` Replies with a string where each word is scrambled; i.e., each internal letter (that is, all letters but the first and last) are shuffled. .. _command-filter-shrink: -shrink +``shrink `` Returns with each word longer than supybot.plugins.Filter.shrink.minimum being shrunken (i.e., like "internationalization" becomes "i18n"). .. _command-filter-spellit: -spellit +``spellit `` Returns , phonetically spelled out. .. _command-filter-squish: -squish +``squish `` Removes all the spaces from . .. _command-filter-stripcolor: -stripcolor +``stripcolor `` Returns stripped of all color codes. .. _command-filter-stripformatting: -stripformatting +``stripformatting `` Strips bold, underline, and colors from . .. _command-filter-supa1337: -supa1337 +``supa1337 `` Replies with an especially k-rad translation of . .. _command-filter-unbinary: -unbinary +``unbinary `` Returns the character representation of binary . Assumes ASCII, 8 digits per character. .. _command-filter-undup: -undup +``undup `` Returns , with all consecutive duplicated letters removed. .. _command-filter-unhexlify: -unhexlify +``unhexlify `` Returns the string corresponding to . Obviously, must be a string of hexadecimal digits. .. _command-filter-uniud: -uniud +``uniud `` Returns rotated 180 degrees. Only really works for ASCII printable characters. .. _command-filter-unmorse: -unmorse +``unmorse `` Does the reverse of the morse command. .. _command-filter-uwu: -uwu +``uwu `` Returns in uwu-speak. .. _command-filter-vowelrot: -vowelrot +``vowelrot `` Returns with vowels rotated .. _conf-Filter: diff --git a/plugins/Filter/messages.pot b/plugins/Filter/messages.pot index 0df05317b..94394b51b 100644 --- a/plugins/Filter/messages.pot +++ b/plugins/Filter/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Format/README.rst b/plugins/Format/README.rst index 103524c1d..6c7b97663 100644 --- a/plugins/Format/README.rst +++ b/plugins/Format/README.rst @@ -24,82 +24,82 @@ Commands .. _command-format-bold: -bold +``bold `` Returns bolded. .. _command-format-capitalize: -capitalize +``capitalize `` Returns capitalized. .. _command-format-color: -color [] +``color [] `` Returns with foreground color and background color (if given) .. _command-format-concat: -concat +``concat `` Concatenates two strings. Do keep in mind that this is *not* the same thing as join "", since if contains spaces, they won't be removed by concat. .. _command-format-cut: -cut +``cut `` Cuts down to by chopping off the rightmost characters in excess of . If is a negative number, it chops that many characters off the end of . .. _command-format-field: -field +``field `` Returns the th space-separated field of . I.e., if text is "foo bar baz" and is 2, "bar" is returned. .. _command-format-format: -format [ ...] +``format [ ...]`` Expands a Python-style format string using the remaining args. Just be sure always to use %s, not %d or %f or whatever, because all the args are strings. .. _command-format-join: -join [ ...] +``join [ ...]`` Joins all the arguments together with . .. _command-format-lower: -lower +``lower `` Returns lowercased. .. _command-format-replace: -replace +``replace `` Replaces all non-overlapping occurrences of with in . .. _command-format-repr: -repr +``repr `` Returns surrounded by double quotes. .. _command-format-reverse: -reverse +``reverse `` Returns in reverse-video. .. _command-format-title: -title +``title `` Returns titlecased. .. _command-format-translate: -translate +``translate `` Replaces with in . The first and second arguments must necessarily be the same length. .. _command-format-underline: -underline +``underline `` Returns underlined. .. _command-format-upper: -upper +``upper `` Returns uppercased. .. _conf-Format: diff --git a/plugins/Format/messages.pot b/plugins/Format/messages.pot index 3a696a3ae..cc3cd0aba 100644 --- a/plugins/Format/messages.pot +++ b/plugins/Format/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/GPG/README.rst b/plugins/GPG/README.rst index 170685c4a..aa6177749 100644 --- a/plugins/GPG/README.rst +++ b/plugins/GPG/README.rst @@ -13,6 +13,36 @@ Usage Provides authentication based on GPG keys. +First you must associate your GPG key with your Limnoria account. The gpg +add command takes two arguments, key id and key server. + +My key is 0x0C207F07B2F32B67 and it's on keyserver pool.sks-keyservers.net +so and now I add it to my bot:: + + +gpg add 0x0C207F07B2F32B67 pool.sks-keyservers.net + 1 key imported, 0 unchanged, 0 not imported. + +Now I can get token to sign so I can identify:: + + +gpg gettoken + Your token is: {03640620-97ea-4fdf-b0c3-ce8fb62f2dc5}. Please sign it with your GPG key, paste it somewhere, and call the 'auth' command with the URL to the (raw) file containing the signature. + +Then I follow the instructions and sign my token in terminal:: + + echo "{03640620-97ea-4fdf-b0c3-ce8fb62f2dc5}"|gpg --clearsign|curl -F 'sprunge=<-' http://sprunge.us + +Note that I sent the output to curl with flags to directly send the +clearsigned content to sprunge.us pastebin. Curl should be installed on +most of distributions and comes with msysgit. If you remove the curl part, +you get the output to terminal and can pastebin it to any pastebin of +your choice. Sprunge.us has only plain text and is easy so I used it in +this example. + +And last I give the bot link to the plain text signature:: + + +gpg auth http://sprunge.us/DUdd + You are now authenticated as Mikaela. + .. _commands-GPG: Commands @@ -20,27 +50,27 @@ Commands .. _command-gpg-key.add: -key add +``key add `` Add a GPG key to your account. .. _command-gpg-key.list: -key list takes no arguments +``key list takes no arguments`` List your GPG keys. .. _command-gpg-key.remove: -key remove +``key remove `` Remove a GPG key from your account. .. _command-gpg-signing.auth: -signing auth +``signing auth `` Check the GPG signature at the and authenticates you if the key used is associated to a user. .. _command-gpg-signing.gettoken: -signing gettoken takes no arguments +``signing gettoken takes no arguments`` Send you a token that you'll have to sign with your key. .. _conf-GPG: diff --git a/plugins/GPG/messages.pot b/plugins/GPG/messages.pot index 9c77390b2..9bc8b4187 100644 --- a/plugins/GPG/messages.pot +++ b/plugins/GPG/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -33,10 +33,42 @@ msgstr "" #: plugin.py:92 #, docstring -msgid "Provides authentication based on GPG keys." +msgid "" +"Provides authentication based on GPG keys.\n" +"\n" +" First you must associate your GPG key with your Limnoria account. The gpg\n" +" add command takes two arguments, key id and key server.\n" +"\n" +" My key is 0x0C207F07B2F32B67 and it's on keyserver pool.sks-keyservers.net\n" +" so and now I add it to my bot::\n" +"\n" +" +gpg add 0x0C207F07B2F32B67 pool.sks-keyservers.net\n" +" 1 key imported, 0 unchanged, 0 not imported.\n" +"\n" +" Now I can get token to sign so I can identify::\n" +"\n" +" +gpg gettoken\n" +" Your token is: {03640620-97ea-4fdf-b0c3-ce8fb62f2dc5}. Please sign it with your GPG key, paste it somewhere, and call the 'auth' command with the URL to the (raw) file containing the signature.\n" +"\n" +" Then I follow the instructions and sign my token in terminal::\n" +"\n" +" echo \"{03640620-97ea-4fdf-b0c3-ce8fb62f2dc5}\"|gpg --clearsign|curl -F 'sprunge=<-' http://sprunge.us\n" +"\n" +" Note that I sent the output to curl with flags to directly send the\n" +" clearsigned content to sprunge.us pastebin. Curl should be installed on\n" +" most of distributions and comes with msysgit. If you remove the curl part,\n" +" you get the output to terminal and can pastebin it to any pastebin of\n" +" your choice. Sprunge.us has only plain text and is easy so I used it in\n" +" this example.\n" +"\n" +" And last I give the bot link to the plain text signature::\n" +"\n" +" +gpg auth http://sprunge.us/DUdd\n" +" You are now authenticated as Mikaela.\n" +" " msgstr "" -#: plugin.py:96 +#: plugin.py:127 #, docstring msgid "" " \n" @@ -44,27 +76,27 @@ msgid "" " Add a GPG key to your account." msgstr "" -#: plugin.py:100 +#: plugin.py:131 msgid "This key is already associated with your account." msgstr "" -#: plugin.py:104 +#: plugin.py:135 msgid "%n imported, %i unchanged, %i not imported." msgstr "" -#: plugin.py:105 +#: plugin.py:136 msgid "key" msgstr "" -#: plugin.py:116 +#: plugin.py:147 msgid "You must give a valid key id" msgstr "" -#: plugin.py:118 +#: plugin.py:149 msgid "You must give a valid key server" msgstr "" -#: plugin.py:122 +#: plugin.py:153 #, docstring msgid "" "\n" @@ -72,11 +104,11 @@ msgid "" " Remove a GPG key from your account." msgstr "" -#: plugin.py:138 +#: plugin.py:169 msgid "GPG key not associated with your account." msgstr "" -#: plugin.py:143 +#: plugin.py:174 #, docstring msgid "" "takes no arguments\n" @@ -84,11 +116,11 @@ msgid "" " List your GPG keys." msgstr "" -#: plugin.py:148 +#: plugin.py:179 msgid "No key is associated with your account." msgstr "" -#: plugin.py:165 +#: plugin.py:196 #, docstring msgid "" "takes no arguments\n" @@ -96,11 +128,11 @@ msgid "" " Send you a token that you'll have to sign with your key." msgstr "" -#: plugin.py:172 +#: plugin.py:203 msgid "Your token is: %s. Please sign it with your GPG key, paste it somewhere, and call the 'auth' command with the URL to the (raw) file containing the signature." msgstr "" -#: plugin.py:187 +#: plugin.py:218 #, docstring msgid "" "\n" @@ -109,31 +141,31 @@ msgid "" " the key used is associated to a user." msgstr "" -#: plugin.py:197 +#: plugin.py:228 msgid "Signature or token not found." msgstr "" -#: plugin.py:201 +#: plugin.py:232 msgid "Unknown token. It may have expired before you submit it." msgstr "" -#: plugin.py:204 +#: plugin.py:235 msgid "Your hostname/nick changed in the process. Authentication aborted." msgstr "" -#: plugin.py:216 +#: plugin.py:247 msgid "Your secure flag is true and your hostmask doesn't match any of your known hostmasks." msgstr "" -#: plugin.py:220 +#: plugin.py:251 msgid "You are now authenticated as %s." msgstr "" -#: plugin.py:223 +#: plugin.py:254 msgid "Unknown GPG key." msgstr "" -#: plugin.py:225 +#: plugin.py:256 msgid "Signature could not be verified. Make sure this is a valid GPG signature and the URL is valid." msgstr "" diff --git a/plugins/GPG/plugin.py b/plugins/GPG/plugin.py index a4c65d537..de0b6f2b6 100644 --- a/plugins/GPG/plugin.py +++ b/plugins/GPG/plugin.py @@ -89,7 +89,38 @@ else: 'too much time to answer the request.')) class GPG(callbacks.Plugin): - """Provides authentication based on GPG keys.""" + """Provides authentication based on GPG keys. + + First you must associate your GPG key with your Limnoria account. The gpg + add command takes two arguments, key id and key server. + + My key is 0x0C207F07B2F32B67 and it's on keyserver pool.sks-keyservers.net + so and now I add it to my bot:: + + +gpg add 0x0C207F07B2F32B67 pool.sks-keyservers.net + 1 key imported, 0 unchanged, 0 not imported. + + Now I can get token to sign so I can identify:: + + +gpg gettoken + Your token is: {03640620-97ea-4fdf-b0c3-ce8fb62f2dc5}. Please sign it with your GPG key, paste it somewhere, and call the 'auth' command with the URL to the (raw) file containing the signature. + + Then I follow the instructions and sign my token in terminal:: + + echo "{03640620-97ea-4fdf-b0c3-ce8fb62f2dc5}"|gpg --clearsign|curl -F 'sprunge=<-' http://sprunge.us + + Note that I sent the output to curl with flags to directly send the + clearsigned content to sprunge.us pastebin. Curl should be installed on + most of distributions and comes with msysgit. If you remove the curl part, + you get the output to terminal and can pastebin it to any pastebin of + your choice. Sprunge.us has only plain text and is easy so I used it in + this example. + + And last I give the bot link to the plain text signature:: + + +gpg auth http://sprunge.us/DUdd + You are now authenticated as Mikaela. + """ class key(callbacks.Commands): @check_gpg_available def add(self, irc, msg, args, user, keyid, keyserver): diff --git a/plugins/Games/README.rst b/plugins/Games/README.rst index d8b10c25a..6db4bffff 100644 --- a/plugins/Games/README.rst +++ b/plugins/Games/README.rst @@ -23,27 +23,27 @@ Commands .. _command-games-coin: -coin takes no arguments +``coin takes no arguments`` Flips a coin and returns the result. .. _command-games-dice: -dice d +``dice d`` Rolls a die with number of sides times. For example, 2d6 will roll 2 six-sided dice; 10d10 will roll 10 ten-sided dice. .. _command-games-eightball: -eightball [] +``eightball []`` Ask a question and the answer shall be provided. .. _command-games-monologue: -monologue [] +``monologue []`` Returns the number of consecutive lines you've sent in without being interrupted by someone else (i.e. how long your current 'monologue' is). is only necessary if the message isn't sent in the channel itself. .. _command-games-roulette: -roulette [spin] +``roulette [spin]`` Fires the revolver. If the bullet was in the chamber, you're dead. Tell me to spin the chambers and I will. .. _conf-Games: diff --git a/plugins/Games/messages.pot b/plugins/Games/messages.pot index 85b96175d..32734f1bd 100644 --- a/plugins/Games/messages.pot +++ b/plugins/Games/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Geography/messages.pot b/plugins/Geography/messages.pot index 9c5de4011..e1e05cf2e 100644 --- a/plugins/Geography/messages.pot +++ b/plugins/Geography/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -44,15 +44,15 @@ msgid "" " This uses data from Wikidata and Nominatim." msgstr "" -#: plugin.py:84 plugin.py:122 +#: plugin.py:84 plugin.py:137 msgid "Could not find the location" msgstr "" -#: plugin.py:110 plugin.py:167 +#: plugin.py:110 plugin.py:178 msgid "Could not find the timezone of this location." msgstr "" -#: plugin.py:115 +#: plugin.py:130 #, docstring msgid "" "\n" diff --git a/plugins/Google/README.rst b/plugins/Google/README.rst index b416c9fef..798c779b7 100644 --- a/plugins/Google/README.rst +++ b/plugins/Google/README.rst @@ -45,17 +45,17 @@ Commands .. _command-google-google: -google [--{filter,language} ] +``google [--{filter,language} ]`` Searches google.com for the given string. As many results as can fit are included. --language accepts a language abbreviation; --filter accepts a filtering level ('active', 'moderate', 'off'). .. _command-google-lucky: -lucky [--snippet] +``lucky [--snippet] `` Does a google search, but only returns the first result. If option --snippet is given, returns also the page text snippet. .. _command-google-translate: -translate [to] +``translate [to] `` Returns translated from into . and take language codes (not language names), which are listed here: https://cloud.google.com/translate/docs/languages .. _conf-Google: diff --git a/plugins/Google/locales/fi.po b/plugins/Google/locales/fi.po index 999ccfc3e..5bb176542 100644 --- a/plugins/Google/locales/fi.po +++ b/plugins/Google/locales/fi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Google plugin for Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-12-20 14:10+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -215,44 +215,12 @@ msgstr "" " hyväksyy suodatus tason ('active', 'moderate', 'off').\n" " " -#: plugin.py:236 -msgid "" -"\n" -"\n" -" Returns a link to the cached version of if it is available.\n" -" " -msgstr "" -"\n" -"\n" -" Palauttaa linkin välimuistissa olevaan versioon, jos se on " -"saatavilla.\n" -" " - -#: plugin.py:247 -msgid "Google seems to have no cache for that site." -msgstr "Googlella ei näytä olevan välimuistia tuolle sivulle." - -#: plugin.py:253 -msgid "" -" [ ...]\n" -"\n" -" Returns the results of each search, in order, from greatest number\n" -" of results to least.\n" -" " -msgstr "" -" [ ...]\n" -"\n" -" Palauttaa tulokset jokaiselle haulle järjestyksessä suurimmasta " -"numerosta\n" -" pienimpään.\n" -" " - -#: plugin.py:309 +#: plugin.py:263 #, fuzzy msgid "No translations found." msgstr "Osumia ei löytynyt." -#: plugin.py:313 +#: plugin.py:267 #, fuzzy msgid "" " [to] \n" @@ -268,37 +236,65 @@ msgstr "" " Kääntää .\n" " " -#: plugin.py:325 +#: plugin.py:279 msgid "^google\\s+(.*)$" msgstr "^google\\s+(.*)$" -#: plugin.py:347 -msgid "" -"\n" -"\n" -" Uses Google's calculator to calculate the value of .\n" -" " -msgstr "" -"\n" -"\n" -" Käyttää Googlen laskinta laskeakseen arvon.\n" -" " +#~ msgid "" +#~ "\n" +#~ "\n" +#~ " Returns a link to the cached version of if it is " +#~ "available.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ " Palauttaa linkin välimuistissa olevaan versioon, jos se " +#~ "on saatavilla.\n" +#~ " " -#: plugin.py:378 -msgid "" -"\n" -"\n" -" Looks up on Google.\n" -" " -msgstr "" -"\n" -"\n" -" Etsii Googlesta.\n" -" " +#~ msgid "Google seems to have no cache for that site." +#~ msgstr "Googlella ei näytä olevan välimuistia tuolle sivulle." -#: plugin.py:392 -msgid "Google's phonebook didn't come up with anything." -msgstr "Googlen puhelinluettelo ei keksinyt mitään." +#~ msgid "" +#~ " [ ...]\n" +#~ "\n" +#~ " Returns the results of each search, in order, from greatest " +#~ "number\n" +#~ " of results to least.\n" +#~ " " +#~ msgstr "" +#~ " [ ...]\n" +#~ "\n" +#~ " Palauttaa tulokset jokaiselle haulle järjestyksessä suurimmasta " +#~ "numerosta\n" +#~ " pienimpään.\n" +#~ " " + +#~ msgid "" +#~ "\n" +#~ "\n" +#~ " Uses Google's calculator to calculate the value of .\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ " Käyttää Googlen laskinta laskeakseen arvon.\n" +#~ " " + +#~ msgid "" +#~ "\n" +#~ "\n" +#~ " Looks up on Google.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ " Etsii Googlesta.\n" +#~ " " + +#~ msgid "Google's phonebook didn't come up with anything." +#~ msgstr "Googlen puhelinluettelo ei keksinyt mitään." #~ msgid "" #~ "This is a simple plugin to provide access to the Google services we\n" diff --git a/plugins/Google/locales/fr.po b/plugins/Google/locales/fr.po index 0302e0c55..08dde3330 100644 --- a/plugins/Google/locales/fr.po +++ b/plugins/Google/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Limnoria \n" @@ -201,40 +201,12 @@ msgstr "" "sont donnés. --language accepte une abbréviation de langue ; --filter " "accepte un niveau de filtrage ('active', 'moderate', 'off')." -#: plugin.py:236 -msgid "" -"\n" -"\n" -" Returns a link to the cached version of if it is available.\n" -" " -msgstr "" -"\n" -"\n" -"Retourne un lien vers la version en cache de l', si elle est disponible." - -#: plugin.py:247 -msgid "Google seems to have no cache for that site." -msgstr "Google semble ne pas avoir de cache pour ce site." - -#: plugin.py:253 -msgid "" -" [ ...]\n" -"\n" -" Returns the results of each search, in order, from greatest number\n" -" of results to least.\n" -" " -msgstr "" -" [ ...]\n" -"\n" -"Retourne les résultats de chaque recherche, dans l'ordre, par ordre " -"croissant du nombre de résultats." - -#: plugin.py:309 +#: plugin.py:263 #, fuzzy msgid "No translations found." msgstr "Aucune correspondance." -#: plugin.py:313 +#: plugin.py:267 #, fuzzy msgid "" " [to] \n" @@ -250,35 +222,60 @@ msgstr "" "Retourne le , traduire de la vers la ." -#: plugin.py:325 +#: plugin.py:279 msgid "^google\\s+(.*)$" msgstr "^google\\s+(.*)$" -#: plugin.py:347 -msgid "" -"\n" -"\n" -" Uses Google's calculator to calculate the value of .\n" -" " -msgstr "" -"\n" -"\n" -"Utilise la calculatrice Google pour calculer la valeur de l'." +#~ msgid "" +#~ "\n" +#~ "\n" +#~ " Returns a link to the cached version of if it is " +#~ "available.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ "Retourne un lien vers la version en cache de l', si elle est " +#~ "disponible." -#: plugin.py:378 -msgid "" -"\n" -"\n" -" Looks up on Google.\n" -" " -msgstr "" -"\n" -"\n" -"Recherche le sur Google." +#~ msgid "Google seems to have no cache for that site." +#~ msgstr "Google semble ne pas avoir de cache pour ce site." -#: plugin.py:392 -msgid "Google's phonebook didn't come up with anything." -msgstr "L'annuaire téléphonique de Google ne donne aucun résultat." +#~ msgid "" +#~ " [ ...]\n" +#~ "\n" +#~ " Returns the results of each search, in order, from greatest " +#~ "number\n" +#~ " of results to least.\n" +#~ " " +#~ msgstr "" +#~ " [ ...]\n" +#~ "\n" +#~ "Retourne les résultats de chaque recherche, dans l'ordre, par ordre " +#~ "croissant du nombre de résultats." + +#~ msgid "" +#~ "\n" +#~ "\n" +#~ " Uses Google's calculator to calculate the value of .\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ "Utilise la calculatrice Google pour calculer la valeur de l'." + +#~ msgid "" +#~ "\n" +#~ "\n" +#~ " Looks up on Google.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ "Recherche le sur Google." + +#~ msgid "Google's phonebook didn't come up with anything." +#~ msgstr "L'annuaire téléphonique de Google ne donne aucun résultat." #~ msgid "We broke The Google!" #~ msgstr "Google est toukassay !" diff --git a/plugins/Google/locales/it.po b/plugins/Google/locales/it.po index daf5236d8..63672fa75 100644 --- a/plugins/Google/locales/it.po +++ b/plugins/Google/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-03-15 20:55+0100\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -105,8 +105,8 @@ msgid "" " by default. 'active' - most filtering, 'moderate' - default filtering,\n" " 'off' - no filtering" msgstr "" -"Determina quale livello di filtraggio usare in modo predefinito. \"active" -"\":\n" +"Determina quale livello di filtraggio usare in modo predefinito. " +"\"active\":\n" " filtra tutto; \"moderate\": filtro predefinito; \"off\": filtro " "disattivato." @@ -207,43 +207,12 @@ msgstr "" " ('active', 'moderate', 'off').\n" " " -#: plugin.py:236 -msgid "" -"\n" -"\n" -" Returns a link to the cached version of if it is available.\n" -" " -msgstr "" -"\n" -"\n" -" Restituisce un link della versione in cache di , se " -"disponibile.\n" -" " - -#: plugin.py:247 -msgid "Google seems to have no cache for that site." -msgstr "Google sembra non avere cache per questo sito." - -#: plugin.py:253 -msgid "" -" [ ...]\n" -"\n" -" Returns the results of each search, in order, from greatest number\n" -" of results to least.\n" -" " -msgstr "" -" [ ...]\n" -"\n" -" Restituisce i risultati di ogni ricerca in ordine decrescente in " -"base al numero di risultati.\n" -" " - -#: plugin.py:309 +#: plugin.py:263 #, fuzzy msgid "No translations found." msgstr "Nessun risultato trovato." -#: plugin.py:313 +#: plugin.py:267 #, fuzzy msgid "" " [to] \n" @@ -261,38 +230,65 @@ msgstr "" " può produrre risultati molto strani.\n" " " -#: plugin.py:325 +#: plugin.py:279 msgid "^google\\s+(.*)$" msgstr "^google\\s+(.*)$" -#: plugin.py:347 -msgid "" -"\n" -"\n" -" Uses Google's calculator to calculate the value of .\n" -" " -msgstr "" -"\n" -"\n" -" Utilizza la calcolatrice di Google per calcolare il valore di " -".\n" -" " +#~ msgid "" +#~ "\n" +#~ "\n" +#~ " Returns a link to the cached version of if it is " +#~ "available.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ " Restituisce un link della versione in cache di , se " +#~ "disponibile.\n" +#~ " " -#: plugin.py:378 -msgid "" -"\n" -"\n" -" Looks up on Google.\n" -" " -msgstr "" -"\n" -"\n" -" Cerca su Google.\n" -" " +#~ msgid "Google seems to have no cache for that site." +#~ msgstr "Google sembra non avere cache per questo sito." -#: plugin.py:392 -msgid "Google's phonebook didn't come up with anything." -msgstr "La rubrica di Google non ha fornito alcun risultato." +#~ msgid "" +#~ " [ ...]\n" +#~ "\n" +#~ " Returns the results of each search, in order, from greatest " +#~ "number\n" +#~ " of results to least.\n" +#~ " " +#~ msgstr "" +#~ " [ ...]\n" +#~ "\n" +#~ " Restituisce i risultati di ogni ricerca in ordine decrescente in " +#~ "base al numero di risultati.\n" +#~ " " + +#~ msgid "" +#~ "\n" +#~ "\n" +#~ " Uses Google's calculator to calculate the value of .\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ " Utilizza la calcolatrice di Google per calcolare il valore di " +#~ ".\n" +#~ " " + +#~ msgid "" +#~ "\n" +#~ "\n" +#~ " Looks up on Google.\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ "\n" +#~ " Cerca su Google.\n" +#~ " " + +#~ msgid "Google's phonebook didn't come up with anything." +#~ msgstr "La rubrica di Google non ha fornito alcun risultato." #~ msgid "We broke The Google!" #~ msgstr "Abbiamo rotto Google!" diff --git a/plugins/Google/messages.pot b/plugins/Google/messages.pot index 52c720585..34d28b8e1 100644 --- a/plugins/Google/messages.pot +++ b/plugins/Google/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -168,34 +168,11 @@ msgid "" " " msgstr "" -#: plugin.py:236 -#, docstring -msgid "" -"\n" -"\n" -" Returns a link to the cached version of if it is available.\n" -" " -msgstr "" - -#: plugin.py:247 -msgid "Google seems to have no cache for that site." -msgstr "" - -#: plugin.py:253 -#, docstring -msgid "" -" [ ...]\n" -"\n" -" Returns the results of each search, in order, from greatest number\n" -" of results to least.\n" -" " -msgstr "" - -#: plugin.py:309 +#: plugin.py:263 msgid "No translations found." msgstr "" -#: plugin.py:313 +#: plugin.py:267 #, docstring msgid "" " [to] \n" @@ -207,30 +184,8 @@ msgid "" " " msgstr "" -#: plugin.py:325 +#: plugin.py:279 #, docstring msgid "^google\\s+(.*)$" msgstr "" -#: plugin.py:347 -#, docstring -msgid "" -"\n" -"\n" -" Uses Google's calculator to calculate the value of .\n" -" " -msgstr "" - -#: plugin.py:378 -#, docstring -msgid "" -"\n" -"\n" -" Looks up on Google.\n" -" " -msgstr "" - -#: plugin.py:392 -msgid "Google's phonebook didn't come up with anything." -msgstr "" - diff --git a/plugins/Hashes/README.rst b/plugins/Hashes/README.rst index f18f9a6df..38ea9b47d 100644 --- a/plugins/Hashes/README.rst +++ b/plugins/Hashes/README.rst @@ -20,32 +20,32 @@ Commands .. _command-hashes-algorithms: -algorithms +``algorithms `` Returns the list of available algorithms. .. _command-hashes-md5: -md5 +``md5 `` Returns the md5 hash of a given string. .. _command-hashes-mkhash: -mkhash +``mkhash `` Returns TEXT after it has been hashed with ALGORITHM. See the 'algorithms' command in this plugin to return the algorithms available on this system. .. _command-hashes-sha: -sha +``sha `` Returns the SHA1 hash of a given string. .. _command-hashes-sha256: -sha256 +``sha256 `` Returns a SHA256 hash of the given string. .. _command-hashes-sha512: -sha512 +``sha512 `` Returns a SHA512 hash of the given string. .. _conf-Hashes: diff --git a/plugins/Hashes/messages.pot b/plugins/Hashes/messages.pot index 138b04915..f2d91e169 100644 --- a/plugins/Hashes/messages.pot +++ b/plugins/Hashes/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Herald/README.rst b/plugins/Herald/README.rst index b73eec01d..bd44f1d9f 100644 --- a/plugins/Herald/README.rst +++ b/plugins/Herald/README.rst @@ -22,27 +22,27 @@ Commands .. _command-herald-add: -add [] +``add [] `` Sets the herald message for (or the user is currently identified or recognized as) to . is only necessary if the message isn't sent in the channel itself. .. _command-herald-change: -change [] [] +``change [] [] `` Changes the herald message for , or the user is currently identified or recognized as, according to . If is not given, defaults to the calling user. is only necessary if the message isn't sent in the channel itself. .. _command-herald-default: -default [] [--remove|] +``default [] [--remove|]`` If is given, sets the default herald to . A of "" will remove the default herald. If is not given, returns the current default herald. is only necessary if the message isn't sent in the channel itself. .. _command-herald-get: -get [] [] +``get [] []`` Returns the current herald message for (or the user is currently identified or recognized as). If is not given, defaults to the user giving the command. is only necessary if the message isn't sent in the channel itself. .. _command-herald-remove: -remove [] [] +``remove [] []`` Removes the herald message set for , or the user is currently identified or recognized as. If is not given, defaults to the user giving the command. is only necessary if the message isn't sent in the channel itself. .. _conf-Herald: diff --git a/plugins/Herald/messages.pot b/plugins/Herald/messages.pot index 19e30f184..12c4d60be 100644 --- a/plugins/Herald/messages.pot +++ b/plugins/Herald/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Internet/README.rst b/plugins/Internet/README.rst index d03e09ec4..b35d6b12d 100644 --- a/plugins/Internet/README.rst +++ b/plugins/Internet/README.rst @@ -22,17 +22,17 @@ Commands .. _command-internet-dns: -dns +``dns `` Returns the ip of or the reverse DNS hostname of . .. _command-internet-hexip: -hexip +``hexip `` Returns the hexadecimal IP for that IP. .. _command-internet-whois: -whois +``whois `` Returns WHOIS information on the registration of . .. _conf-Internet: diff --git a/plugins/Internet/locales/fi.po b/plugins/Internet/locales/fi.po index df2632745..5e040aaa3 100644 --- a/plugins/Internet/locales/fi.po +++ b/plugins/Internet/locales/fi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Internet plugin for Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-12-20 13:25+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -17,7 +17,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 1.6.10\n" -#: plugin.py:45 +#: plugin.py:44 #, fuzzy msgid "" "Provides commands to query DNS, search WHOIS databases,\n" @@ -27,7 +27,7 @@ msgstr "" "muuttamaan\n" " IP-osoitteet hexoiksi." -#: plugin.py:50 +#: plugin.py:49 msgid "" "\n" "\n" @@ -39,11 +39,11 @@ msgstr "" " Palauttaa ip:een tai käänteisen isäntänimen.\n" " " -#: plugin.py:57 plugin.py:72 +#: plugin.py:56 plugin.py:71 msgid "Host not found." msgstr "Isäntää ei löytynyt." -#: plugin.py:87 +#: plugin.py:86 msgid "" "\n" "\n" @@ -55,35 +55,35 @@ msgstr "" " Palauttaa WHOIS tiedot rekisteröimisestä.\n" " " -#: plugin.py:149 +#: plugin.py:148 msgid "updated %s" msgstr "päivitetty %s" -#: plugin.py:152 +#: plugin.py:151 msgid "registered %s" msgstr "rekisteröity %s" -#: plugin.py:155 +#: plugin.py:154 msgid "expires %s" msgstr "vanhenee %s" -#: plugin.py:175 +#: plugin.py:174 msgid " " msgstr " " -#: plugin.py:177 +#: plugin.py:176 msgid " " msgstr " " -#: plugin.py:184 +#: plugin.py:183 msgid "%s%s is %L." msgstr "%s%s on %L." -#: plugin.py:187 +#: plugin.py:186 msgid "I couldn't find such a domain." msgstr "En voi löytää sellaista verkkotunnusta." -#: plugin.py:192 +#: plugin.py:191 msgid "" "\n" "\n" diff --git a/plugins/Internet/locales/fr.po b/plugins/Internet/locales/fr.po index 93ed7278d..cf1dd20a5 100644 --- a/plugins/Internet/locales/fr.po +++ b/plugins/Internet/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: Valentin Lorentz \n" "Language-Team: Limnoria \n" @@ -13,13 +13,13 @@ msgstr "" "X-Poedit-Country: France\n" "X-Poedit-SourceCharset: ASCII\n" -#: plugin.py:45 +#: plugin.py:44 msgid "" "Provides commands to query DNS, search WHOIS databases,\n" " and convert IPs to hex." msgstr "" -#: plugin.py:50 +#: plugin.py:49 msgid "" "\n" "\n" @@ -30,11 +30,11 @@ msgstr "" "\n" "Retourne l'ip de l', ou le reverse DNS de l'" -#: plugin.py:57 plugin.py:72 +#: plugin.py:56 plugin.py:71 msgid "Host not found." msgstr "Hôte non trouvé." -#: plugin.py:87 +#: plugin.py:86 msgid "" "\n" "\n" @@ -45,35 +45,35 @@ msgstr "" "\n" "Retourne les informations du WHOIS sur le ." -#: plugin.py:149 +#: plugin.py:148 msgid "updated %s" msgstr "mis à jour le %s" -#: plugin.py:152 +#: plugin.py:151 msgid "registered %s" msgstr "enregistré le %s" -#: plugin.py:155 +#: plugin.py:154 msgid "expires %s" msgstr "expire le %s" -#: plugin.py:175 +#: plugin.py:174 msgid " " msgstr " " -#: plugin.py:177 +#: plugin.py:176 msgid " " msgstr " " -#: plugin.py:184 +#: plugin.py:183 msgid "%s%s is %L." msgstr "%s%s est %L" -#: plugin.py:187 +#: plugin.py:186 msgid "I couldn't find such a domain." msgstr "Je ne peux trouver ce domaine." -#: plugin.py:192 +#: plugin.py:191 msgid "" "\n" "\n" diff --git a/plugins/Internet/locales/it.po b/plugins/Internet/locales/it.po index 864948262..c151e825a 100644 --- a/plugins/Internet/locales/it.po +++ b/plugins/Internet/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2011-06-12 14:14+0200\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -10,13 +10,13 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: plugin.py:45 +#: plugin.py:44 msgid "" "Provides commands to query DNS, search WHOIS databases,\n" " and convert IPs to hex." msgstr "" -#: plugin.py:50 +#: plugin.py:49 msgid "" "\n" "\n" @@ -28,11 +28,11 @@ msgstr "" " Restituisce l'ip di o il DNS inverso di .\n" " " -#: plugin.py:57 plugin.py:72 +#: plugin.py:56 plugin.py:71 msgid "Host not found." msgstr "Host non trovato." -#: plugin.py:87 +#: plugin.py:86 msgid "" "\n" "\n" @@ -44,35 +44,35 @@ msgstr "" " Restituisce le informazioni WHOIS sulla registrazione di .\n" " " -#: plugin.py:149 +#: plugin.py:148 msgid "updated %s" msgstr "aggiornato il %s" -#: plugin.py:152 +#: plugin.py:151 msgid "registered %s" msgstr "registrato il %s" -#: plugin.py:155 +#: plugin.py:154 msgid "expires %s" msgstr "scade il %s" -#: plugin.py:175 +#: plugin.py:174 msgid " " msgstr " " -#: plugin.py:177 +#: plugin.py:176 msgid " " msgstr " " -#: plugin.py:184 +#: plugin.py:183 msgid "%s%s is %L." msgstr "%s%s è %L." -#: plugin.py:187 +#: plugin.py:186 msgid "I couldn't find such a domain." msgstr "Non riesco a trovare un dominio." -#: plugin.py:192 +#: plugin.py:191 msgid "" "\n" "\n" diff --git a/plugins/Internet/messages.pot b/plugins/Internet/messages.pot index bd472e6ce..e2d1b978a 100644 --- a/plugins/Internet/messages.pot +++ b/plugins/Internet/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -15,14 +15,14 @@ msgstr "" "Generated-By: pygettext.py 1.5\n" -#: plugin.py:45 +#: plugin.py:44 #, docstring msgid "" "Provides commands to query DNS, search WHOIS databases,\n" " and convert IPs to hex." msgstr "" -#: plugin.py:50 +#: plugin.py:49 #, docstring msgid "" "\n" @@ -31,11 +31,11 @@ msgid "" " " msgstr "" -#: plugin.py:57 plugin.py:72 +#: plugin.py:56 plugin.py:71 msgid "Host not found." msgstr "" -#: plugin.py:87 +#: plugin.py:86 #, docstring msgid "" "\n" @@ -44,35 +44,35 @@ msgid "" " " msgstr "" -#: plugin.py:149 +#: plugin.py:148 msgid "updated %s" msgstr "" -#: plugin.py:152 +#: plugin.py:151 msgid "registered %s" msgstr "" -#: plugin.py:155 +#: plugin.py:154 msgid "expires %s" msgstr "" -#: plugin.py:175 +#: plugin.py:174 msgid " " msgstr "" -#: plugin.py:177 +#: plugin.py:176 msgid " " msgstr "" -#: plugin.py:184 +#: plugin.py:183 msgid "%s%s is %L." msgstr "" -#: plugin.py:187 +#: plugin.py:186 msgid "I couldn't find such a domain." msgstr "" -#: plugin.py:192 +#: plugin.py:191 #, docstring msgid "" "\n" diff --git a/plugins/Karma/README.rst b/plugins/Karma/README.rst index 832f9eff2..98742c6ec 100644 --- a/plugins/Karma/README.rst +++ b/plugins/Karma/README.rst @@ -33,27 +33,27 @@ Commands .. _command-karma-clear: -clear [] [] +``clear [] []`` Resets the karma of to 0. If is not given, resets everything. .. _command-karma-dump: -dump [] +``dump [] `` Dumps the Karma database for to in the bot's data directory. is only necessary if the message isn't sent in the channel itself. .. _command-karma-karma: -karma [] [ ...] +``karma [] [ ...]`` Returns the karma of . If is not given, returns the top N karmas, where N is determined by the config variable supybot.plugins.Karma.rankingDisplay. If one is given, returns the details of its karma; if more than one is given, returns the total karma of each of the things. is only necessary if the message isn't sent on the channel itself. .. _command-karma-load: -load [] +``load [] `` Loads the Karma database for from in the bot's data directory. is only necessary if the message isn't sent in the channel itself. .. _command-karma-most: -most [] {increased,decreased,active} +``most [] {increased,decreased,active}`` Returns the most increased, the most decreased, or the most active (the sum of increased and decreased) karma things. is only necessary if the message isn't sent in the channel itself. .. _conf-Karma: diff --git a/plugins/Karma/messages.pot b/plugins/Karma/messages.pot index 845d205e1..f9147e5ae 100644 --- a/plugins/Karma/messages.pot +++ b/plugins/Karma/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Karma/plugin.py b/plugins/Karma/plugin.py index bd896bf30..4f7c91160 100644 --- a/plugins/Karma/plugin.py +++ b/plugins/Karma/plugin.py @@ -272,7 +272,7 @@ class Karma(callbacks.Plugin): karma = '' for s in inc: if thing.endswith(s): - thing = thing[:-len(s)] + thing = thing[:-len(s)].rstrip(",:\t ") # Don't reply if the target isn't a nick if onlynicks and thing.lower() not in map(ircutils.toLower, irc.state.channels[channel].users): @@ -286,7 +286,7 @@ class Karma(callbacks.Plugin): karma = self.db.get(channel, self._normalizeThing(thing)) for s in dec: if thing.endswith(s): - thing = thing[:-len(s)] + thing = thing[:-len(s)].rstrip(",:\t ") if onlynicks and thing.lower() not in map(ircutils.toLower, irc.state.channels[channel].users): return diff --git a/plugins/Karma/test.py b/plugins/Karma/test.py index 97c178919..94285e89f 100644 --- a/plugins/Karma/test.py +++ b/plugins/Karma/test.py @@ -60,6 +60,10 @@ class KarmaTestCase(ChannelPluginTestCase): 'Karma for [\'"]moo[\'"].*increased 1.*total.*1') self.assertRegexp('karma MoO', 'Karma for [\'"]MoO[\'"].*increased 1.*total.*1') + # Test trailing characters and spaces + self.assertNoResponse('baz, ++', 2) + self.assertRegexp('karma baz', + 'Karma for [\'"]baz[\'"].*increased 1.*total.*1') def testKarmaRankingDisplayConfigurable(self): try: diff --git a/plugins/Lart/README.rst b/plugins/Lart/README.rst index a8c3cded6..5da41b9ca 100644 --- a/plugins/Lart/README.rst +++ b/plugins/Lart/README.rst @@ -28,37 +28,37 @@ Commands .. _command-lart-add: -add [] +``add [] `` Adds to the lart database for . is only necessary if the message isn't sent in the channel itself. .. _command-lart-change: -change [] +``change [] `` Changes the lart with id according to the regular expression . is only necessary if the message isn't sent in the channel itself. .. _command-lart-get: -get [] +``get [] `` Gets the lart with id from the lart database for . is only necessary if the message isn't sent in the channel itself. .. _command-lart-lart: -lart [] [] [for ] +``lart [] [] [for ]`` Uses the Luser Attitude Readjustment Tool on (for , if given). If is given, uses that specific lart. is only necessary if the message isn't sent in the channel itself. .. _command-lart-remove: -remove [] +``remove [] `` Removes the lart with id from the lart database for . is only necessary if the message isn't sent in the channel itself. .. _command-lart-search: -search [] [--{regexp,by} ] [] +``search [] [--{regexp,by} ] []`` Searches for larts matching the criteria given. .. _command-lart-stats: -stats [] +``stats []`` Returns the number of larts in the database for . is only necessary if the message isn't sent in the channel itself. .. _conf-Lart: diff --git a/plugins/Lart/messages.pot b/plugins/Lart/messages.pot index 83c8fdd85..1fa21c539 100644 --- a/plugins/Lart/messages.pot +++ b/plugins/Lart/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Later/README.rst b/plugins/Later/README.rst index 0f5331284..e3eebd1d3 100644 --- a/plugins/Later/README.rst +++ b/plugins/Later/README.rst @@ -48,22 +48,22 @@ Commands .. _command-later-notes: -notes [] +``notes []`` If is given, replies with what notes are waiting on , otherwise, replies with the nicks that have notes waiting for them. .. _command-later-remove: -remove +``remove `` Removes the notes waiting on . .. _command-later-tell: -tell +``tell `` Tells each the next time is seen. can contain wildcard characters, and the first matching nick will be given the note. .. _command-later-undo: -undo +``undo `` Removes the latest note you sent to . .. _conf-Later: diff --git a/plugins/Later/messages.pot b/plugins/Later/messages.pot index 9689aca3e..026838bbf 100644 --- a/plugins/Later/messages.pot +++ b/plugins/Later/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Limiter/messages.pot b/plugins/Limiter/messages.pot index e3ac2d5c2..51e837021 100644 --- a/plugins/Limiter/messages.pot +++ b/plugins/Limiter/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/LogToIrc/messages.pot b/plugins/LogToIrc/messages.pot index afe0b8600..2b22b366e 100644 --- a/plugins/LogToIrc/messages.pot +++ b/plugins/LogToIrc/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,3 +25,10 @@ msgstr "" msgid "Value must be a valid channel or a valid nick." msgstr "" +#: plugin.py:33 +#, docstring +msgid "" +"\n" +"Allows for sending the bot's logging output to channels or users.\n" +msgstr "" + diff --git a/plugins/Math/README.rst b/plugins/Math/README.rst index 646d313f6..b321e663a 100644 --- a/plugins/Math/README.rst +++ b/plugins/Math/README.rst @@ -22,32 +22,32 @@ Commands .. _command-math-base: -base [] +``base [] `` Converts from base to base . If is left out, it converts to decimal. .. _command-math-calc: -calc +``calc `` Returns the value of the evaluated . The syntax is Python syntax; the type of arithmetic is floating point. Floating point arithmetic is used in order to prevent a user from being able to crash to the bot with something like '10**10**10**10'. One consequence is that large values such as '10**24' might not be exact. .. _command-math-convert: -convert [] to +``convert [] to `` Converts from to . If number isn't given, it defaults to 1. For unit information, see 'units' command. .. _command-math-icalc: -icalc +``icalc `` This is the same as the calc command except that it allows integer math, and can thus cause the bot to suck up CPU. Hence it requires the 'trusted' capability to use. .. _command-math-rpn: -rpn +``rpn `` Returns the value of an RPN expression. .. _command-math-units: -units [] +``units []`` With no arguments, returns a list of measurement types, which can be passed as arguments. When called with a type as an argument, returns the units of that type. .. _conf-Math: diff --git a/plugins/Math/locales/fi.po b/plugins/Math/locales/fi.po index ad99c0da7..5df9c22a0 100644 --- a/plugins/Math/locales/fi.po +++ b/plugins/Math/locales/fi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Math plugin for Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-12-20 12:16+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -117,7 +117,7 @@ msgstr "" " 'trusted' valtuuden.\n" " " -#: plugin.py:187 +#: plugin.py:198 #, fuzzy msgid "" "\n" @@ -130,19 +130,19 @@ msgstr "" " Palauttaa RPN lausekkeen arvon.\n" " " -#: plugin.py:212 +#: plugin.py:223 msgid "Not enough arguments for %s" msgstr "Ei tarpeeksi parametrejä %s:lle." -#: plugin.py:225 +#: plugin.py:236 msgid "%q is not a defined function." msgstr "%q ei ole määritetty funktio." -#: plugin.py:232 +#: plugin.py:243 msgid "Stack: [%s]" msgstr "Pino: [%s]" -#: plugin.py:236 +#: plugin.py:247 msgid "" "[] to \n" "\n" @@ -157,7 +157,7 @@ msgstr "" " on oletuksena 1. Yksikkö tiedoille, katso 'units' komento.\n" " " -#: plugin.py:266 +#: plugin.py:277 msgid "" " []\n" "\n" diff --git a/plugins/Math/locales/fr.po b/plugins/Math/locales/fr.po index 82bcfb620..11c183406 100644 --- a/plugins/Math/locales/fr.po +++ b/plugins/Math/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Limnoria \n" @@ -100,7 +100,7 @@ msgstr "" "des mathématiques entières, ce qui peut causer une surconsommation de CPU de " "la part du bot. C'est pourquoi elle requiert la capacité 'trusted'." -#: plugin.py:187 +#: plugin.py:198 msgid "" "\n" "\n" @@ -111,19 +111,19 @@ msgstr "" "\n" "Retourne la valeur de l'expression mathématique NPI." -#: plugin.py:212 +#: plugin.py:223 msgid "Not enough arguments for %s" msgstr "Pas assez d'arguments pour %s." -#: plugin.py:225 +#: plugin.py:236 msgid "%q is not a defined function." msgstr "%q n'est pas une fonction définie." -#: plugin.py:232 +#: plugin.py:243 msgid "Stack: [%s]" msgstr "Pile : [%s]" -#: plugin.py:236 +#: plugin.py:247 msgid "" "[] to \n" "\n" @@ -137,7 +137,7 @@ msgstr "" "vaut 1 par défaut. Pour plus d'informations sur les unités, utilisez la " "commande 'units'." -#: plugin.py:266 +#: plugin.py:277 msgid "" " []\n" "\n" diff --git a/plugins/Math/locales/hu.po b/plugins/Math/locales/hu.po index 3fe4dabc5..47310d0eb 100644 --- a/plugins/Math/locales/hu.po +++ b/plugins/Math/locales/hu.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria Math\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2011-08-02 21:06+0200\n" "Last-Translator: nyuszika7h \n" "Language-Team: \n" @@ -105,7 +105,7 @@ msgstr "" "matematikát, és előidézheti, hogy a bot felszívjon sok CPU-t. Ezért a " "'trusted' képesség szükséges a használatához." -#: plugin.py:187 +#: plugin.py:198 msgid "" "\n" "\n" @@ -116,19 +116,19 @@ msgstr "" "\n" "Kiírja egy RPN kifejezés értékét." -#: plugin.py:212 +#: plugin.py:223 msgid "Not enough arguments for %s" msgstr "Nincs elég paraméter %s-hoz." -#: plugin.py:225 +#: plugin.py:236 msgid "%q is not a defined function." msgstr "%q nincs meghatározva függvényként." -#: plugin.py:232 +#: plugin.py:243 msgid "Stack: [%s]" msgstr "Verem: [%s]" -#: plugin.py:236 +#: plugin.py:247 msgid "" "[] to \n" "\n" @@ -142,7 +142,7 @@ msgstr "" "alapértelmezett értéke 1. Mértékegység információért lásd az 'units' " "parancsot." -#: plugin.py:266 +#: plugin.py:277 msgid "" " []\n" "\n" diff --git a/plugins/Math/locales/it.po b/plugins/Math/locales/it.po index 25166eda4..9e8539389 100644 --- a/plugins/Math/locales/it.po +++ b/plugins/Math/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2011-06-21 17:27+0200\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -108,7 +108,7 @@ msgstr "" " richiede la capacità \"trusted\" per poterlo utilizzare.\n" " " -#: plugin.py:187 +#: plugin.py:198 msgid "" "\n" "\n" @@ -121,19 +121,19 @@ msgstr "" "Notation).\n" " " -#: plugin.py:212 +#: plugin.py:223 msgid "Not enough arguments for %s" msgstr "Argomenti per %s insufficienti" -#: plugin.py:225 +#: plugin.py:236 msgid "%q is not a defined function." msgstr "%q non è una funzione definita." -#: plugin.py:232 +#: plugin.py:243 msgid "Stack: [%s]" msgstr "Stack: [%s]" -#: plugin.py:236 +#: plugin.py:247 msgid "" "[] to \n" "\n" @@ -149,7 +149,7 @@ msgstr "" "comando \"units\".\n" " " -#: plugin.py:266 +#: plugin.py:277 msgid "" " []\n" "\n" diff --git a/plugins/Math/messages.pot b/plugins/Math/messages.pot index 87d40048b..a08838ecf 100644 --- a/plugins/Math/messages.pot +++ b/plugins/Math/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -88,7 +88,7 @@ msgid "" " " msgstr "" -#: plugin.py:187 +#: plugin.py:198 #, docstring msgid "" "\n" @@ -97,19 +97,19 @@ msgid "" " " msgstr "" -#: plugin.py:212 +#: plugin.py:223 msgid "Not enough arguments for %s" msgstr "" -#: plugin.py:225 +#: plugin.py:236 msgid "%q is not a defined function." msgstr "" -#: plugin.py:232 +#: plugin.py:243 msgid "Stack: [%s]" msgstr "" -#: plugin.py:236 +#: plugin.py:247 #, docstring msgid "" "[] to \n" @@ -119,7 +119,7 @@ msgid "" " " msgstr "" -#: plugin.py:266 +#: plugin.py:277 #, docstring msgid "" " []\n" diff --git a/plugins/Math/plugin.py b/plugins/Math/plugin.py index 21250aacc..0d47cc1f2 100644 --- a/plugins/Math/plugin.py +++ b/plugins/Math/plugin.py @@ -253,6 +253,7 @@ class Math(callbacks.Plugin): digits = len(str(number).split('.')[1]) except IndexError: digits = 0 + try: newNum = convertcore.convert(number, unit1, unit2) if isinstance(newNum, float): @@ -261,11 +262,23 @@ class Math(callbacks.Plugin): if char != '0': break zeros += 1 + # Let's add one signifiant digit. Physicists would not like # that, but common people usually do not give extra zeros... # (for example, with '32 C to F', an extra digit would be # expected). newNum = round(newNum, digits + 1 + zeros) + + # However, if the difference is negligeable compared to the + # precision we got in the input, we remove two more digits. + # this is useful for rounding .9999999 up. + newNum2 = round(newNum, digits - 1 + zeros) + try: + if abs((newNum2 - newNum) / newNum) < 10**(-digits-10): + newNum = newNum2 + except ZeroDivisionError: + pass + newNum = self._floatToString(newNum) irc.reply(str(newNum)) except convertcore.UnitDataError as ude: diff --git a/plugins/Math/test.py b/plugins/Math/test.py index 22578c9ed..97bc591ec 100644 --- a/plugins/Math/test.py +++ b/plugins/Math/test.py @@ -141,9 +141,10 @@ class MathTestCase(PluginTestCase): def testCalcMemoryError(self): self.assertRegexp('calc ' + '('*10000, - '(too much recursion' # cpython < 3.10 - '|too many nested parentheses' # cpython >= 3.10 - '|parenthesis is never closed)' # pypy + r"(too much recursion" # cpython < 3.10 + r"|too many nested parentheses" # cpython >= 3.10 + r"|parenthesis is never closed" # pypy for python < 3.10 + r"|'\(' was never closed)" # pypy for python >= 3.10 ) def testICalc(self): @@ -187,6 +188,13 @@ class MathTestCase(PluginTestCase): self.assertError('convert 1 mol to grams') self.assertError('convert 1 m to kpa') + def testConvertSignificantDigits(self): + self.assertResponse('convert 1 s to ns', '1000000000') + self.assertResponse('convert 0.9999999999999999 s to ns', + '999999999.9999999') + self.assertResponse('convert 1000000000 ns to s', '1') + self.assertResponse('convert 999999999.9999999 ns to s', '1') + def testConvertSingularPlural(self): self.assertResponse('convert [calc 2*pi] rads to degrees', '360') self.assertResponse('convert 1 carat to grams', '0.2') diff --git a/plugins/MessageParser/README.rst b/plugins/MessageParser/README.rst index ec5a1666f..cc51b3bb0 100644 --- a/plugins/MessageParser/README.rst +++ b/plugins/MessageParser/README.rst @@ -11,8 +11,10 @@ which will trigger the bot to respond if they match anywhere in the message. This is useful for those cases when you want a bot response even when the bot was not explicitly addressed by name or prefix character. -An updated page of this plugin's documentation is located here: -https://sourceforge.net/p/gribble/wiki/MessageParser_Plugin/ +You can find usage examples at +https://docs.limnoria.net/use/messageparser.html +and +https://sourceforge.net/p/gribble/wiki/MessageParser_Plugin/ (older reference) Usage ----- @@ -27,47 +29,47 @@ Commands .. _command-messageparser-add: -add [|global] +``add [|global] `` Associates with . is only necessary if the message isn't sent on the channel itself. Action is echoed upon regexp match, with variables $1, $2, etc. being interpolated from the regexp match groups. .. _command-messageparser-info: -info [|global] [--id] +``info [|global] [--id] `` Display information about in the triggers database. is only necessary if the message isn't sent in the channel itself. If option --id specified, will retrieve by regexp id, not content. .. _command-messageparser-list: -list [|global] +``list [|global]`` Lists regexps present in the triggers database. is only necessary if the message isn't sent in the channel itself. Regexp ID listed in parentheses. .. _command-messageparser-lock: -lock [|global] +``lock [|global] `` Locks the so that it cannot be removed or overwritten to. is only necessary if the message isn't sent in the channel itself. .. _command-messageparser-rank: -rank [|global] +``rank [|global]`` Returns a list of top-ranked regexps, sorted by usage count (rank). The number of regexps returned is set by the rankListLength registry value. is only necessary if the message isn't sent in the channel itself. .. _command-messageparser-remove: -remove [|global] [--id] ] +``remove [|global] [--id] ]`` Removes the trigger for from the triggers database. is only necessary if the message isn't sent in the channel itself. If option --id specified, will retrieve by regexp id, not content. .. _command-messageparser-show: -show [|global] [--id] +``show [|global] [--id] `` Looks up the value of in the triggers database. is only necessary if the message isn't sent in the channel itself. If option --id specified, will retrieve by regexp id, not content. .. _command-messageparser-unlock: -unlock [|global] +``unlock [|global] `` Unlocks the entry associated with so that it can be removed or overwritten. is only necessary if the message isn't sent in the channel itself. .. _command-messageparser-vacuum: -vacuum [|global] +``vacuum [|global]`` Vacuums the database for . See SQLite vacuum doc here: http://www.sqlite.org/lang_vacuum.html is only necessary if the message isn't sent in the channel itself. First check if user has the required capability specified in plugin config requireVacuumCapability. .. _conf-MessageParser: diff --git a/plugins/MessageParser/__init__.py b/plugins/MessageParser/__init__.py index 21d0652ae..69198be0a 100644 --- a/plugins/MessageParser/__init__.py +++ b/plugins/MessageParser/__init__.py @@ -35,8 +35,10 @@ which will trigger the bot to respond if they match anywhere in the message. This is useful for those cases when you want a bot response even when the bot was not explicitly addressed by name or prefix character. -An updated page of this plugin's documentation is located here: -https://sourceforge.net/p/gribble/wiki/MessageParser_Plugin/ +You can find usage examples at +https://docs.limnoria.net/use/messageparser.html +and +https://sourceforge.net/p/gribble/wiki/MessageParser_Plugin/ (older reference) """ diff --git a/plugins/MessageParser/locales/fi.po b/plugins/MessageParser/locales/fi.po index 7dcaa65c5..29552fd2f 100644 --- a/plugins/MessageParser/locales/fi.po +++ b/plugins/MessageParser/locales/fi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-03-22 14:39+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -115,7 +115,7 @@ msgid "Run a command from message, as if command was sent over IRC." msgstr "" "Suorittaa komennon viestistä, kuin jos komento olisi lähetetty IRC:een yli." -#: plugin.py:146 +#: plugin.py:147 msgid "" "Check if the user has any of the required capabilities to manage\n" " the regexp database." @@ -123,7 +123,7 @@ msgstr "" "Tarkista onko käyttäjällä vaadittu oikeus säännöllisen lauseke tietokannan\n" " muokkaamiseen." -#: plugin.py:209 +#: plugin.py:227 #, fuzzy msgid "" "[|global] \n" @@ -140,15 +140,15 @@ msgstr "" " toiminto toistetaan säännöllisen lausekkeen täsmätessä muuttujilla $1, $2,\n" " jne. tulevat interpolatoiduiksi säännöllisen lausekkeen täsmäysryhmistä." -#: plugin.py:231 +#: plugin.py:249 msgid "Invalid python regexp: %s" msgstr "Viallinen Python säännöllinen lauseke: %s" -#: plugin.py:243 +#: plugin.py:261 msgid "That trigger is locked." msgstr "Tuo liipaisin on lukittu." -#: plugin.py:249 +#: plugin.py:267 #, fuzzy msgid "" "[|global] [--id] ]\n" @@ -170,15 +170,15 @@ msgstr "" "sisällöllä.\n" " " -#: plugin.py:271 plugin.py:301 plugin.py:324 plugin.py:352 plugin.py:382 +#: plugin.py:289 plugin.py:319 plugin.py:342 plugin.py:370 plugin.py:400 msgid "There is no such regexp trigger." msgstr "Tuollaista säännöllinen lauseke liipaisinta ei ole." -#: plugin.py:275 +#: plugin.py:293 msgid "This regexp trigger is locked." msgstr "Tämä säännöllinen lauseke liipaisin on lukittu." -#: plugin.py:287 +#: plugin.py:305 #, fuzzy msgid "" "[|global] \n" @@ -197,7 +197,7 @@ msgstr "" "itsellään.\n" " " -#: plugin.py:310 +#: plugin.py:328 #, fuzzy msgid "" "[|global] \n" @@ -217,7 +217,7 @@ msgstr "" " lähetetä kanavalla itsellään.\n" " " -#: plugin.py:333 +#: plugin.py:351 #, fuzzy msgid "" "[|global] [--id] \n" @@ -238,7 +238,7 @@ msgstr "" "ei sisällön perusteella\n" " " -#: plugin.py:362 +#: plugin.py:380 #, fuzzy msgid "" "[|global] [--id] \n" @@ -260,7 +260,7 @@ msgstr "" "sisällön perusteella.\n" " " -#: plugin.py:385 +#: plugin.py:403 msgid "" "The regexp id is %d, regexp is \"%s\", and action is \"%s\". It was added by " "user %s on %s, has been triggered %d times, and is %s." @@ -268,15 +268,15 @@ msgstr "" "Säännöllisen lausekkeen id on %d, säännöllinen lauseke on \"%s\", ja " "toiminto on \"%s\". Sen lisäsi %s %s:llä, on liipaistu %d kertaa, ja on %s." -#: plugin.py:394 +#: plugin.py:412 msgid "locked" msgstr "lukittu" -#: plugin.py:394 +#: plugin.py:412 msgid "not locked" msgstr "ei lukittu" -#: plugin.py:401 +#: plugin.py:419 #, fuzzy msgid "" "[|global]\n" @@ -295,11 +295,11 @@ msgstr "" " itsellään. Säännöllinen lauseke ID on luetteloitu suluissa.\n" " " -#: plugin.py:414 plugin.py:440 +#: plugin.py:432 plugin.py:458 msgid "There are no regexp triggers in the database." msgstr "Säännöllinen lauseke tietokannassa ei ole liipaisimia." -#: plugin.py:424 +#: plugin.py:442 #, fuzzy msgid "" "[|global]\n" @@ -321,7 +321,7 @@ msgstr "" " kanavalla itsellään.\n" " " -#: plugin.py:448 +#: plugin.py:466 #, fuzzy msgid "" "[|global]\n" diff --git a/plugins/MessageParser/locales/fr.po b/plugins/MessageParser/locales/fr.po index 9dd83150a..e9290c745 100644 --- a/plugins/MessageParser/locales/fr.po +++ b/plugins/MessageParser/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Limnoria \n" @@ -101,13 +101,13 @@ msgstr "." msgid "Run a command from message, as if command was sent over IRC." msgstr "." -#: plugin.py:146 +#: plugin.py:147 msgid "" "Check if the user has any of the required capabilities to manage\n" " the regexp database." msgstr "." -#: plugin.py:209 +#: plugin.py:227 msgid "" "[|global] \n" "\n" @@ -124,15 +124,15 @@ msgstr "" "régulière>. n'est nécessaire que si le message n'est pas envoyé sur " "le canal lui-même." -#: plugin.py:231 +#: plugin.py:249 msgid "Invalid python regexp: %s" msgstr "Expression régulière Python invalide : %s" -#: plugin.py:243 +#: plugin.py:261 msgid "That trigger is locked." msgstr "Ce trigger est bloqué." -#: plugin.py:249 +#: plugin.py:267 msgid "" "[|global] [--id] ]\n" "\n" @@ -148,15 +148,15 @@ msgstr "" "des déclencheurs. Si l'option --id est spécifiée, l'id de l' sera récupéré, et non le contenu." -#: plugin.py:271 plugin.py:301 plugin.py:324 plugin.py:352 plugin.py:382 +#: plugin.py:289 plugin.py:319 plugin.py:342 plugin.py:370 plugin.py:400 msgid "There is no such regexp trigger." msgstr "Cette expression régulière n'existe pas." -#: plugin.py:275 +#: plugin.py:293 msgid "This regexp trigger is locked." msgstr "Cette expression régulière est verrouillée" -#: plugin.py:287 +#: plugin.py:305 msgid "" "[|global] \n" "\n" @@ -172,7 +172,7 @@ msgstr "" "supprimer ou la modifier. n'est nécessaire que si le message n'est " "pas envoyé sur le canal lui-même." -#: plugin.py:310 +#: plugin.py:328 msgid "" "[|global] \n" "\n" @@ -188,7 +188,7 @@ msgstr "" "la supprimer ou la modifier. n'est nécessaire que si le message " "n'est pas envoyé sur le canal lui-même." -#: plugin.py:333 +#: plugin.py:351 msgid "" "[|global] [--id] \n" "\n" @@ -205,7 +205,7 @@ msgstr "" "déclencheurs. Si l'option --id est spécifiée, l'id de l' sera récupéré, et non le contenu." -#: plugin.py:362 +#: plugin.py:380 msgid "" "[|global] [--id] \n" "\n" @@ -222,7 +222,7 @@ msgstr "" "données des déclencheurs. Si l'option --id est spécifiée, l'id de " "l' sera récupéré, et non le contenu." -#: plugin.py:385 +#: plugin.py:403 msgid "" "The regexp id is %d, regexp is \"%s\", and action is \"%s\". It was added by " "user %s on %s, has been triggered %d times, and is %s." @@ -231,15 +231,15 @@ msgstr "" "l'action est \"%s\". Elle a été ajoutée par l'utilisateur %s le %s, et a été " "utilisée %d fois, et est %s" -#: plugin.py:394 +#: plugin.py:412 msgid "locked" msgstr "verouillée" -#: plugin.py:394 +#: plugin.py:412 msgid "not locked" msgstr "non verrouillée" -#: plugin.py:401 +#: plugin.py:419 msgid "" "[|global]\n" "\n" @@ -254,11 +254,11 @@ msgstr "" "Liste les expressions régulières présentes dans la base de données. " "n'est nécessaire que si le message n'est pas envoyé sur le canal lui-même." -#: plugin.py:414 plugin.py:440 +#: plugin.py:432 plugin.py:458 msgid "There are no regexp triggers in the database." msgstr "Il n'y a pas d'expression régulière dans ma base de données." -#: plugin.py:424 +#: plugin.py:442 msgid "" "[|global]\n" "\n" @@ -275,7 +275,7 @@ msgstr "" "plugins.MessageParser.rankListLength. n'est nécessaire que si le " "message n'est pas envoyé sur le canal lui-même." -#: plugin.py:448 +#: plugin.py:466 msgid "" "[|global]\n" "\n" diff --git a/plugins/MessageParser/locales/it.po b/plugins/MessageParser/locales/it.po index e087f9b11..aeb8c4d8f 100644 --- a/plugins/MessageParser/locales/it.po +++ b/plugins/MessageParser/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2011-07-17 01:43+0200\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -98,7 +98,7 @@ msgid "Run a command from message, as if command was sent over IRC." msgstr "" "Esegue un comando da un messaggio, come se questo fosse stato inviato su IRC." -#: plugin.py:146 +#: plugin.py:147 msgid "" "Check if the user has any of the required capabilities to manage\n" " the regexp database." @@ -106,7 +106,7 @@ msgstr "" "Controlla se l'utente ha una delle capacità richieste per gestire il " "database delle regexp." -#: plugin.py:209 +#: plugin.py:227 #, fuzzy msgid "" "[|global] \n" @@ -126,15 +126,15 @@ msgstr "" "messaggio\n" " non viene inviato nel canale stesso." -#: plugin.py:231 +#: plugin.py:249 msgid "Invalid python regexp: %s" msgstr "Espressione regolare python non valida: %s" -#: plugin.py:243 +#: plugin.py:261 msgid "That trigger is locked." msgstr "Questo trigger è bloccato." -#: plugin.py:249 +#: plugin.py:267 #, fuzzy msgid "" "[|global] [--id] ]\n" @@ -154,15 +154,15 @@ msgstr "" "contenuto.\n" " " -#: plugin.py:271 plugin.py:301 plugin.py:324 plugin.py:352 plugin.py:382 +#: plugin.py:289 plugin.py:319 plugin.py:342 plugin.py:370 plugin.py:400 msgid "There is no such regexp trigger." msgstr "Questa espressione regolare non esiste." -#: plugin.py:275 +#: plugin.py:293 msgid "This regexp trigger is locked." msgstr "Questa espressione regolare è bloccata." -#: plugin.py:287 +#: plugin.py:305 #, fuzzy msgid "" "[|global] \n" @@ -181,7 +181,7 @@ msgstr "" "canale stesso.\n" " " -#: plugin.py:310 +#: plugin.py:328 #, fuzzy msgid "" "[|global] \n" @@ -200,7 +200,7 @@ msgstr "" "inviato nel canale stesso.\n" " " -#: plugin.py:333 +#: plugin.py:351 #, fuzzy msgid "" "[|global] [--id] \n" @@ -222,7 +222,7 @@ msgstr "" "contenuto.\n" " " -#: plugin.py:362 +#: plugin.py:380 #, fuzzy msgid "" "[|global] [--id] \n" @@ -244,7 +244,7 @@ msgstr "" "anziché contenuto.\n" " " -#: plugin.py:385 +#: plugin.py:403 msgid "" "The regexp id is %d, regexp is \"%s\", and action is \"%s\". It was added by " "user %s on %s, has been triggered %d times, and is %s." @@ -252,15 +252,15 @@ msgstr "" "L'ID della regexp è %d, la regexp è \"%s\" e l'azione associata è \"%s\". È " "stata aggiunta dall'utente %s il %s, è stata utilizzata %d volte ed è %s." -#: plugin.py:394 +#: plugin.py:412 msgid "locked" msgstr "bloccata" -#: plugin.py:394 +#: plugin.py:412 msgid "not locked" msgstr "non bloccata" -#: plugin.py:401 +#: plugin.py:419 #, fuzzy msgid "" "[|global]\n" @@ -279,11 +279,11 @@ msgstr "" "sono tra parentesi.\n" " " -#: plugin.py:414 plugin.py:440 +#: plugin.py:432 plugin.py:458 msgid "There are no regexp triggers in the database." msgstr "Non ci sono espressioni regolari nel database." -#: plugin.py:424 +#: plugin.py:442 #, fuzzy msgid "" "[|global]\n" @@ -304,7 +304,7 @@ msgstr "" "stesso.\n" " " -#: plugin.py:448 +#: plugin.py:466 #, fuzzy msgid "" "[|global]\n" diff --git a/plugins/MessageParser/messages.pot b/plugins/MessageParser/messages.pot index 9a60cb1f3..e064475b8 100644 --- a/plugins/MessageParser/messages.pot +++ b/plugins/MessageParser/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -90,14 +90,14 @@ msgstr "" msgid "Run a command from message, as if command was sent over IRC." msgstr "" -#: plugin.py:146 +#: plugin.py:147 #, docstring msgid "" "Check if the user has any of the required capabilities to manage\n" " the regexp database." msgstr "" -#: plugin.py:209 +#: plugin.py:227 #, docstring msgid "" "[|global] \n" @@ -108,15 +108,15 @@ msgid "" " etc. being interpolated from the regexp match groups." msgstr "" -#: plugin.py:231 +#: plugin.py:249 msgid "Invalid python regexp: %s" msgstr "" -#: plugin.py:243 +#: plugin.py:261 msgid "That trigger is locked." msgstr "" -#: plugin.py:249 +#: plugin.py:267 #, docstring msgid "" "[|global] [--id] ]\n" @@ -128,15 +128,15 @@ msgid "" " " msgstr "" -#: plugin.py:271 plugin.py:301 plugin.py:324 plugin.py:352 plugin.py:382 +#: plugin.py:289 plugin.py:319 plugin.py:342 plugin.py:370 plugin.py:400 msgid "There is no such regexp trigger." msgstr "" -#: plugin.py:275 +#: plugin.py:293 msgid "This regexp trigger is locked." msgstr "" -#: plugin.py:287 +#: plugin.py:305 #, docstring msgid "" "[|global] \n" @@ -147,7 +147,7 @@ msgid "" " " msgstr "" -#: plugin.py:310 +#: plugin.py:328 #, docstring msgid "" "[|global] \n" @@ -158,7 +158,7 @@ msgid "" " " msgstr "" -#: plugin.py:333 +#: plugin.py:351 #, docstring msgid "" "[|global] [--id] \n" @@ -170,7 +170,7 @@ msgid "" " " msgstr "" -#: plugin.py:362 +#: plugin.py:380 #, docstring msgid "" "[|global] [--id] \n" @@ -182,19 +182,19 @@ msgid "" " " msgstr "" -#: plugin.py:385 +#: plugin.py:403 msgid "The regexp id is %d, regexp is \"%s\", and action is \"%s\". It was added by user %s on %s, has been triggered %d times, and is %s." msgstr "" -#: plugin.py:394 +#: plugin.py:412 msgid "locked" msgstr "" -#: plugin.py:394 +#: plugin.py:412 msgid "not locked" msgstr "" -#: plugin.py:401 +#: plugin.py:419 #, docstring msgid "" "[|global]\n" @@ -205,11 +205,11 @@ msgid "" " " msgstr "" -#: plugin.py:414 plugin.py:440 +#: plugin.py:432 plugin.py:458 msgid "There are no regexp triggers in the database." msgstr "" -#: plugin.py:424 +#: plugin.py:442 #, docstring msgid "" "[|global]\n" @@ -221,7 +221,7 @@ msgid "" " " msgstr "" -#: plugin.py:448 +#: plugin.py:466 #, docstring msgid "" "[|global]\n" diff --git a/plugins/Misc/README.rst b/plugins/Misc/README.rst index 4654101af..9264aead2 100644 --- a/plugins/Misc/README.rst +++ b/plugins/Misc/README.rst @@ -21,62 +21,62 @@ Commands .. _command-misc-apropos: -apropos +``apropos `` Searches for in the commands currently offered by the bot, returning a list of the commands containing that string. .. _command-misc-clearmores: -clearmores takes no arguments +``clearmores takes no arguments`` Clears all mores for the current network. .. _command-misc-completenick: -completenick [] [--match-case] +``completenick [] [--match-case]`` Returns the nick of someone on the channel whose nick begins with the given . defaults to the current channel. .. _command-misc-help: -help [] [] +``help [] []`` This command gives a useful description of what does. is only necessary if the command is in more than one plugin. You may also want to use the 'list' command to list all available plugins and commands. .. _command-misc-last: -last [--{from,in,on,with,without,regexp} ] [--nolimit] +``last [--{from,in,on,with,without,regexp} ] [--nolimit]`` Returns the last message matching the given criteria. --from requires a nick from whom the message came; --in requires a channel the message was sent to; --on requires a network the message was sent on; --with requires some string that had to be in the message; --regexp requires a regular expression the message must match; --nolimit returns all the messages that can be found. By default, the channel this command is given in is searched. .. _command-misc-list: -list [--private] [--unloaded] [] +``list [--private] [--unloaded] []`` Lists the commands available in the given plugin. If no plugin is given, lists the public plugins available. If --private is given, lists the private plugins. If --unloaded is given, it will list available plugins that are not loaded. .. _command-misc-more: -more [] +``more []`` If the last command was truncated due to IRC message length limitations, returns the next chunk of the result of the last command. If is given, it takes the continuation of the last command from instead of the person sending this message. .. _command-misc-noticetell: -noticetell +``noticetell `` Tells the whatever is, in a notice. Use nested commands to your benefit here. .. _command-misc-ping: -ping takes no arguments +``ping takes no arguments`` Checks to see if the bot is alive. .. _command-misc-source: -source takes no arguments +``source takes no arguments`` Returns a URL saying where to get Limnoria. .. _command-misc-tell: -tell +``tell `` Tells the whatever is. Use nested commands to your benefit here. .. _command-misc-version: -version takes no arguments +``version takes no arguments`` Returns the version of the current bot. .. _conf-Misc: diff --git a/plugins/Misc/locales/de.po b/plugins/Misc/locales/de.po index 5d30c1a3a..790ea0260 100644 --- a/plugins/Misc/locales/de.po +++ b/plugins/Misc/locales/de.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Supybot\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-04-27 15:40+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: German \n" @@ -80,13 +80,13 @@ msgstr "" "Legt fest ob der Nick mit in der Ausgabe stehen soll, wenn der letzte Befehl " "teil eines verschachtelten Befehls war." -#: plugin.py:76 +#: plugin.py:79 msgid "" "Miscellaneous commands to access Supybot core. This is a core\n" " Supybot plugin that should not be removed!" msgstr "" -#: plugin.py:114 +#: plugin.py:117 #, fuzzy msgid "" "You've given me %s invalid commands within the last %i seconds; I'm now " @@ -95,7 +95,7 @@ msgstr "" "Du hast mir %s nicht zulässige Befehle innerhalb der letzten Minute gegeben. " "Ich werde dich für %s ignorieren." -#: plugin.py:157 +#: plugin.py:160 msgid "" "The %q plugin is loaded, but there is no command named %q in it. Try \"list " "%s\" to see the commands in the %q plugin." @@ -103,15 +103,15 @@ msgstr "" "Das %q Plugin ist geladen, aber es besitzt keinen Befehl mit dem Namen %q. " "Versuche \"list %s\" um die Befehle des %q Plugins zu sehen." -#: plugin.py:163 plugin.py:166 +#: plugin.py:166 plugin.py:169 msgid "command" msgstr "" -#: plugin.py:172 +#: plugin.py:175 msgid "private" msgstr "" -#: plugin.py:188 +#: plugin.py:191 #, fuzzy msgid "" "[--private] [--unloaded] []\n" @@ -128,19 +128,19 @@ msgstr "" "angegeben wird, werden alle verfügbaren öffentliche Befehle aufgelistet. " "Falls --private angegeben wird, werden alle privaten Plugins aufgelistet." -#: plugin.py:209 +#: plugin.py:212 msgid "--private and --unloaded are incompatible options." msgstr "" -#: plugin.py:237 +#: plugin.py:240 msgid "There are no private plugins." msgstr "Es gibt keine privaten Plugins." -#: plugin.py:239 +#: plugin.py:242 msgid "There are no public plugins." msgstr "Es gibt keine öffentlichen Plugins." -#: plugin.py:246 +#: plugin.py:249 msgid "" "That plugin exists, but has no commands. This probably means that it has " "some configuration variables that can be changed in order to modify its " @@ -152,7 +152,7 @@ msgstr "" "Verhalten zu beeinflussen. Probiere \"config list supybot.plugins.%s\" um zu " "sehen welche Konfigurationsvariablen es hat." -#: plugin.py:258 +#: plugin.py:261 msgid "" "\n" "\n" @@ -165,11 +165,11 @@ msgstr "" "Sucht nach in den Befehlen die der Bot momentan anbietet, " "gibt eine Liste der Befehle zurück in denen die Zeichenkette vorkommt." -#: plugin.py:277 +#: plugin.py:280 msgid "No appropriate commands were found." msgstr "Kein passender Befehl gefunden." -#: plugin.py:282 +#: plugin.py:285 #, fuzzy msgid "" "[] []\n" @@ -187,13 +187,13 @@ msgstr "" "Gibt eine nützliche Beschreibung was der tut. wird nur " "benötigt, falls es den Befehl in mehr wie einem Plugin gibt." -#: plugin.py:295 +#: plugin.py:298 msgid "" "Use the 'list' command to list all plugins, and 'list ' to list all " "commands in a plugin. To show the help of a command, use 'help '. " msgstr "" -#: plugin.py:306 +#: plugin.py:309 msgid "" "That command exists in the %L plugins. Please specify exactly which plugin " "command you want help with." @@ -201,23 +201,23 @@ msgstr "" "Den Befehl gibt es in diesen %L Plugins. Bitte gibt genau an mit welchen " "Plugin Befehl du Hilfe benötigst." -#: plugin.py:315 +#: plugin.py:318 msgid "There is no command %q." msgstr "Es gibt keinen Befehl %q." -#: plugin.py:319 +#: plugin.py:322 msgid "" " However, '{0}' is the name of a loaded plugin, and you may be able to find " "its help using 'plugin help {0}' and its provided commands using 'list {0}'." msgstr "" -#: plugin.py:326 +#: plugin.py:329 msgid "" " However, '{0}' is the name of a loaded plugin, and you may be able to find " "its provided commands using 'list {0}'." msgstr "" -#: plugin.py:337 +#: plugin.py:340 msgid "" "takes no arguments\n" "\n" @@ -228,27 +228,26 @@ msgstr "" "\n" "Gibt die momentane Bot Version aus." -#: plugin.py:354 -msgid "The newest versions available online are %s." +#: plugin.py:366 +#, fuzzy +msgid "" +"The newest version available online is %(release_version)s, or " +"%(git_version)s in Git" msgstr "Die neuste online Version ist %s." -#: plugin.py:355 -msgid "%s (in %s)" -msgstr "%s (in %s)" - -#: plugin.py:359 +#: plugin.py:372 msgid "I couldn't fetch the newest version from the Limnoria repository." msgstr "" "Ich konnte mir die neuste Version nicht aus dem Limnoria Verzeichnis holen." -#: plugin.py:361 +#: plugin.py:374 #, fuzzy msgid "" "The current (running) version of this Limnoria is %s, running on Python %s. " "%s" msgstr "Die momentane (laufende) Version von Supybot ist %s. %s" -#: plugin.py:369 +#: plugin.py:382 msgid "" "takes no arguments\n" "\n" @@ -259,12 +258,12 @@ msgstr "" "\n" "Gibt eine URL zurück die dir sagt wo man Limnoria bekommt." -#: plugin.py:373 +#: plugin.py:386 #, fuzzy msgid "My source is at https://github.com/progval/Limnoria" msgstr "Mein Quellcode ist auf https://github.com/ProgVal/Limnoria" -#: plugin.py:378 +#: plugin.py:391 msgid "" "[]\n" "\n" @@ -283,15 +282,15 @@ msgstr "" "Befehls ausgegben. Falls angegeben wird, wird die AUsgabe des letzten " "Befehls von weitergeführt, anstatt der Person die den Befehl sendete." -#: plugin.py:395 +#: plugin.py:408 msgid "%s has no public mores." msgstr "%s hat keine öffentlichen Nachrichten mehr." -#: plugin.py:398 +#: plugin.py:411 msgid "Sorry, I can't find any mores for %s" msgstr "Sorry, Ich kann nicht mehr für %s finden" -#: plugin.py:403 +#: plugin.py:416 msgid "" "You haven't asked me a command; perhaps you want to see someone else's " "more. To do so, call this command with that person's nick." @@ -300,11 +299,11 @@ msgstr "" "anderen Person sehen. Um das zu ereichen, rufe diesen Befehl auf mit dem " "Nicknamen der Person auf." -#: plugin.py:433 +#: plugin.py:446 msgid "That's all, there is no more." msgstr "Das ist alles, mehr ist nicht da." -#: plugin.py:443 +#: plugin.py:456 msgid "" "[--{from,in,on,with,without,regexp} ] [--nolimit]\n" "\n" @@ -333,11 +332,7 @@ msgstr "" "wurden. Voreinstellung: Der Kanal in dem der Befehl gegeben wird, wird " "durchsucht." -#: plugin.py:540 -msgid "The regular expression timed out." -msgstr "" - -#: plugin.py:553 +#: plugin.py:589 msgid "" "I couldn't find a message matching that criteria in my history of %s " "messages." @@ -345,23 +340,23 @@ msgstr "" "I konnte keine Nachricht in meiner Geschichte von %s Nachrichten finden die " "auf die Kriterien passt." -#: plugin.py:572 +#: plugin.py:608 msgid "Hey, just give the command. No need for the tell." msgstr "Junge, gib mir einfach den Befehl." -#: plugin.py:577 +#: plugin.py:613 msgid "You just told me, why should I tell myself?" msgstr "Das hast du mir gerade gesagt, wieso sollte ich es mir selbst sagen?" -#: plugin.py:582 +#: plugin.py:618 msgid "I haven't seen %s, I'll let you do the telling." msgstr "Ich habe %s nicht gesehen, sag es ihm selbst." -#: plugin.py:587 +#: plugin.py:623 msgid "%s wants me to tell you: %s" msgstr "%s will dir folgendes sagen: %s" -#: plugin.py:593 +#: plugin.py:629 msgid "" " \n" "\n" @@ -374,7 +369,7 @@ msgstr "" "Sagt den Inhalt von . Benutze verschachtelte Befehle um nutzen " "daraus zu ziehen." -#: plugin.py:603 +#: plugin.py:639 #, fuzzy msgid "" " \n" @@ -388,7 +383,7 @@ msgstr "" "Sagt den Inhalt von . Benutze verschachtelte Befehle um nutzen " "daraus zu ziehen." -#: plugin.py:613 +#: plugin.py:649 msgid "" "takes no arguments\n" "\n" @@ -399,11 +394,11 @@ msgstr "" "\n" "Überprüft ob der Bot noch am Leben ist." -#: plugin.py:617 +#: plugin.py:653 msgid "pong" msgstr "Pong" -#: plugin.py:621 +#: plugin.py:657 msgid "" "[] [--match-case]\n" "\n" @@ -413,15 +408,15 @@ msgid "" " defaults to the current channel." msgstr "" -#: plugin.py:627 +#: plugin.py:663 msgid "I'm not even in %s." msgstr "" -#: plugin.py:639 +#: plugin.py:675 msgid "No such nick." msgstr "" -#: plugin.py:645 +#: plugin.py:681 #, fuzzy msgid "" "takes no arguments\n" @@ -432,6 +427,9 @@ msgstr "" "\n" "Gibt die momentane Bot Version aus." +#~ msgid "%s (in %s)" +#~ msgstr "%s (in %s)" + #, fuzzy #~ msgid "1 more message" #~ msgstr "1 mehr Nachricht" diff --git a/plugins/Misc/locales/fi.po b/plugins/Misc/locales/fi.po index 76916eadb..7e1d7ca2a 100644 --- a/plugins/Misc/locales/fi.po +++ b/plugins/Misc/locales/fi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Misc plugin for Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-12-20 14:51+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -98,7 +98,7 @@ msgstr "" "sisäkkäisiä\n" " komentoja." -#: plugin.py:76 +#: plugin.py:79 msgid "" "Miscellaneous commands to access Supybot core. This is a core\n" " Supybot plugin that should not be removed!" @@ -106,7 +106,7 @@ msgstr "" "Sekalaisia komentoja Supybotin ytimeen pääsemiseksi. Tänä on ydin Supybot-" "plugini, jota ei pitäisi poistaa." -#: plugin.py:114 +#: plugin.py:117 msgid "" "You've given me %s invalid commands within the last %i seconds; I'm now " "ignoring you for %s." @@ -114,7 +114,7 @@ msgstr "" "Olet antanut minulle %s epäkelvollista komentoa minuutin sisällä; Minä jätän " "sinut nyt huomioitta ajaksi %s." -#: plugin.py:157 +#: plugin.py:160 msgid "" "The %q plugin is loaded, but there is no command named %q in it. Try \"list " "%s\" to see the commands in the %q plugin." @@ -122,15 +122,15 @@ msgstr "" "Lisäosa %q on ladattu, mutta siinä ei ole %q nimistä komentoa. Käytä " "komentoa \"list %s\" mähdäksesi kaikki komennot lisäosassa %q." -#: plugin.py:163 plugin.py:166 +#: plugin.py:166 plugin.py:169 msgid "command" msgstr "komento" -#: plugin.py:172 +#: plugin.py:175 msgid "private" msgstr "yksityinen" -#: plugin.py:188 +#: plugin.py:191 msgid "" "[--private] [--unloaded] []\n" "\n" @@ -148,19 +148,19 @@ msgstr "" " luettelee kaikki yksityiset lisäosat.\n" " " -#: plugin.py:209 +#: plugin.py:212 msgid "--private and --unloaded are incompatible options." msgstr "--private ja --unloaded ovat epäyhteensopivia asetuksia." -#: plugin.py:237 +#: plugin.py:240 msgid "There are no private plugins." msgstr "Yksityisiä lisäosia ei ole." -#: plugin.py:239 +#: plugin.py:242 msgid "There are no public plugins." msgstr "Julkisia lisäosia ei ole." -#: plugin.py:246 +#: plugin.py:249 msgid "" "That plugin exists, but has no commands. This probably means that it has " "some configuration variables that can be changed in order to modify its " @@ -172,7 +172,7 @@ msgstr "" "sen käyttäytymisen muokkaamiseksi. Käytä komentoa \"config list supybot." "plugins.%s\" nähdäksesi mitä asetusarvoja sillä on." -#: plugin.py:258 +#: plugin.py:261 msgid "" "\n" "\n" @@ -187,11 +187,11 @@ msgstr "" " palauttaen listan komennoista, jotka sisältävät sen merkkiketjun.\n" " " -#: plugin.py:277 +#: plugin.py:280 msgid "No appropriate commands were found." msgstr "Sopivia komentoja ei löytynyt." -#: plugin.py:282 +#: plugin.py:285 msgid "" "[] []\n" "\n" @@ -212,13 +212,13 @@ msgstr "" "ja komentojen luettelointiin.\n" " " -#: plugin.py:295 +#: plugin.py:298 msgid "" "Use the 'list' command to list all plugins, and 'list ' to list all " "commands in a plugin. To show the help of a command, use 'help '. " msgstr "" -#: plugin.py:306 +#: plugin.py:309 msgid "" "That command exists in the %L plugins. Please specify exactly which plugin " "command you want help with." @@ -226,23 +226,23 @@ msgstr "" "Tuo komento on %L lisäosassa. Ole hyvä ja määritä minkä komennon kanssa " "haluat apua." -#: plugin.py:315 +#: plugin.py:318 msgid "There is no command %q." msgstr "Komentoa %q ei ole." -#: plugin.py:319 +#: plugin.py:322 msgid "" " However, '{0}' is the name of a loaded plugin, and you may be able to find " "its help using 'plugin help {0}' and its provided commands using 'list {0}'." msgstr "" -#: plugin.py:326 +#: plugin.py:329 msgid "" " However, '{0}' is the name of a loaded plugin, and you may be able to find " "its provided commands using 'list {0}'." msgstr "" -#: plugin.py:337 +#: plugin.py:340 msgid "" "takes no arguments\n" "\n" @@ -254,19 +254,18 @@ msgstr "" " Palauttaa nykyisen botin version.\n" " " -#: plugin.py:354 -msgid "The newest versions available online are %s." +#: plugin.py:366 +#, fuzzy +msgid "" +"The newest version available online is %(release_version)s, or " +"%(git_version)s in Git" msgstr "Uusimmat verkossa olevat versiot ovat %s." -#: plugin.py:355 -msgid "%s (in %s)" -msgstr "%s (%s:ssa)" - -#: plugin.py:359 +#: plugin.py:372 msgid "I couldn't fetch the newest version from the Limnoria repository." msgstr "Minä en voinut tarkistaa uusinta versiota Limnorian pakettivarastosta." -#: plugin.py:361 +#: plugin.py:374 #, fuzzy msgid "" "The current (running) version of this Limnoria is %s, running on Python %s. " @@ -275,7 +274,7 @@ msgstr "" "Tällä hetkellä (käynnissä) oleva versio tästä Supybotista on %s, Python, " "jota suoritetaan Pythonin versiolla %s. %s" -#: plugin.py:369 +#: plugin.py:382 msgid "" "takes no arguments\n" "\n" @@ -287,12 +286,12 @@ msgstr "" " Palauttaa URL:n, joka kertoo mistä Limnorian saa.\n" " " -#: plugin.py:373 +#: plugin.py:386 #, fuzzy msgid "My source is at https://github.com/progval/Limnoria" msgstr "Minun lähdekoodini on osoitteessa: https://github.com/ProgVal/Limnoria" -#: plugin.py:378 +#: plugin.py:391 msgid "" "[]\n" "\n" @@ -312,15 +311,15 @@ msgstr "" " komennon antaneen henkilön sijasta.\n" " " -#: plugin.py:395 +#: plugin.py:408 msgid "%s has no public mores." msgstr "%s:llä ei ole julkista jatkoa." -#: plugin.py:398 +#: plugin.py:411 msgid "Sorry, I can't find any mores for %s" msgstr "Anteeksi, en voi löytää jatkoa %s:lle." -#: plugin.py:403 +#: plugin.py:416 msgid "" "You haven't asked me a command; perhaps you want to see someone else's " "more. To do so, call this command with that person's nick." @@ -328,11 +327,11 @@ msgstr "" "Et ole pyytänyt minulta komentoa; ehkäpä tahdoit nähdä jonkun muun jatkon. " "Tehdäksesi niin, käytä tätä komentoa tuon henkilön nimimerkillä." -#: plugin.py:433 +#: plugin.py:446 msgid "That's all, there is no more." msgstr "Siinä kaikki, enempää ei ole." -#: plugin.py:443 +#: plugin.py:456 msgid "" "[--{from,in,on,with,without,regexp} ] [--nolimit]\n" "\n" @@ -365,11 +364,7 @@ msgstr "" " komento on annettu.\n" " " -#: plugin.py:540 -msgid "The regular expression timed out." -msgstr "Säännöllinen lauseke aiheutti aikakatkaisun." - -#: plugin.py:553 +#: plugin.py:589 msgid "" "I couldn't find a message matching that criteria in my history of %s " "messages." @@ -377,23 +372,23 @@ msgstr "" "En voinut löytää viestiä, joka täsmää noihin kriteereihin %s:än viestin " "historiassa." -#: plugin.py:572 +#: plugin.py:608 msgid "Hey, just give the command. No need for the tell." msgstr "Keikari, anna vain komento. Ei tarvitse kertoa." -#: plugin.py:577 +#: plugin.py:613 msgid "You just told me, why should I tell myself?" msgstr "Sinä kerroit juuri minulle, miksi minun pitäisi kertoa itselleni?" -#: plugin.py:582 +#: plugin.py:618 msgid "I haven't seen %s, I'll let you do the telling." msgstr "En ole nähnyt %s:ää, annan sinun hoitaa kertomisen." -#: plugin.py:587 +#: plugin.py:623 msgid "%s wants me to tell you: %s" msgstr "%s haluaa minun kertovan sinulle: %s" -#: plugin.py:593 +#: plugin.py:629 msgid "" " \n" "\n" @@ -408,7 +403,7 @@ msgstr "" " eduksesi tässä.\n" " " -#: plugin.py:603 +#: plugin.py:639 msgid "" " \n" "\n" @@ -423,7 +418,7 @@ msgstr "" " sisäkkäisiä komentoja hyväksesi tässä.\n" " " -#: plugin.py:613 +#: plugin.py:649 msgid "" "takes no arguments\n" "\n" @@ -435,11 +430,11 @@ msgstr "" " Tarkistaa onko botti elossa.\n" " " -#: plugin.py:617 +#: plugin.py:653 msgid "pong" msgstr "pong" -#: plugin.py:621 +#: plugin.py:657 msgid "" "[] [--match-case]\n" "\n" @@ -454,15 +449,15 @@ msgstr "" " annetulla .\n" " on oletuksena nykyinen kanava." -#: plugin.py:627 +#: plugin.py:663 msgid "I'm not even in %s." msgstr "En edes ole kanavalla %s." -#: plugin.py:639 +#: plugin.py:675 msgid "No such nick." msgstr "Tuollaista nimimerkkiä ei ole." -#: plugin.py:645 +#: plugin.py:681 #, fuzzy msgid "" "takes no arguments\n" @@ -474,6 +469,12 @@ msgstr "" " Palauttaa nykyisen botin version.\n" " " +#~ msgid "%s (in %s)" +#~ msgstr "%s (%s:ssa)" + +#~ msgid "The regular expression timed out." +#~ msgstr "Säännöllinen lauseke aiheutti aikakatkaisun." + #~ msgid "1 more message" #~ msgstr "1 viesti jäljellä" diff --git a/plugins/Misc/locales/fr.po b/plugins/Misc/locales/fr.po index a2c346b85..a4a046257 100644 --- a/plugins/Misc/locales/fr.po +++ b/plugins/Misc/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Limnoria \n" @@ -83,13 +83,13 @@ msgstr "" "Détermine si le nick est inclu dans la sortie de 'last' lorsqu'il est dans " "une commande imbriquée." -#: plugin.py:76 +#: plugin.py:79 msgid "" "Miscellaneous commands to access Supybot core. This is a core\n" " Supybot plugin that should not be removed!" msgstr "" -#: plugin.py:114 +#: plugin.py:117 msgid "" "You've given me %s invalid commands within the last %i seconds; I'm now " "ignoring you for %s." @@ -97,7 +97,7 @@ msgstr "" "Vous m'avez donné %s commandes invalides durant les %i dernières secondes, " "je vous ignore maintenant pendant %s." -#: plugin.py:157 +#: plugin.py:160 msgid "" "The %q plugin is loaded, but there is no command named %q in it. Try \"list " "%s\" to see the commands in the %q plugin." @@ -105,15 +105,15 @@ msgstr "" "Le plugin %q est chargé, mais il n'a pas de commande appelée %q. Essayez " "\"list %s\" pour voir les commandes dans le plugin %q." -#: plugin.py:163 plugin.py:166 +#: plugin.py:166 plugin.py:169 msgid "command" msgstr "commande" -#: plugin.py:172 +#: plugin.py:175 msgid "private" msgstr "" -#: plugin.py:188 +#: plugin.py:191 msgid "" "[--private] [--unloaded] []\n" "\n" @@ -130,19 +130,19 @@ msgstr "" "plugins privés. Si --unloaded est donné, il liste les plugins disponibles " "qui ne sont pas chargés." -#: plugin.py:209 +#: plugin.py:212 msgid "--private and --unloaded are incompatible options." msgstr "--private et --unloaded ne sont pas des options compatibles." -#: plugin.py:237 +#: plugin.py:240 msgid "There are no private plugins." msgstr "Il n'y a pas de plugin privé." -#: plugin.py:239 +#: plugin.py:242 msgid "There are no public plugins." msgstr "Il n'y a pas de plugin privé." -#: plugin.py:246 +#: plugin.py:249 msgid "" "That plugin exists, but has no commands. This probably means that it has " "some configuration variables that can be changed in order to modify its " @@ -154,7 +154,7 @@ msgstr "" "comportement. Essayez \"config list supybot.plugins.%s\" pour voir quelles " "variables de configuration il a." -#: plugin.py:258 +#: plugin.py:261 msgid "" "\n" "\n" @@ -167,11 +167,11 @@ msgstr "" "Recherche la dans les commandes actuellement fournies par le bot et " "retourne une list des commandes contenant cette chaîne." -#: plugin.py:277 +#: plugin.py:280 msgid "No appropriate commands were found." msgstr "Aucune commande appropriée n'a été trouvée." -#: plugin.py:282 +#: plugin.py:285 msgid "" "[] []\n" "\n" @@ -190,13 +190,13 @@ msgstr "" "plugin. Il se peut que vous vouliez utiliser la commande « list » pour " "lister tous les plugins et commandes disponibles." -#: plugin.py:295 +#: plugin.py:298 msgid "" "Use the 'list' command to list all plugins, and 'list ' to list all " "commands in a plugin. To show the help of a command, use 'help '. " msgstr "" -#: plugin.py:306 +#: plugin.py:309 msgid "" "That command exists in the %L plugins. Please specify exactly which plugin " "command you want help with." @@ -204,23 +204,23 @@ msgstr "" "Cette commande existe dans les plugins %L. Veuillez spécifier dans quel " "plugin se trouve la commande pour laquelle vous cherchez de l'aide." -#: plugin.py:315 +#: plugin.py:318 msgid "There is no command %q." msgstr "Il n'y a pas de commande %q." -#: plugin.py:319 +#: plugin.py:322 msgid "" " However, '{0}' is the name of a loaded plugin, and you may be able to find " "its help using 'plugin help {0}' and its provided commands using 'list {0}'." msgstr "" -#: plugin.py:326 +#: plugin.py:329 msgid "" " However, '{0}' is the name of a loaded plugin, and you may be able to find " "its provided commands using 'list {0}'." msgstr "" -#: plugin.py:337 +#: plugin.py:340 msgid "" "takes no arguments\n" "\n" @@ -231,19 +231,18 @@ msgstr "" "\n" "Retourne la version actuelle du bot" -#: plugin.py:354 -msgid "The newest versions available online are %s." +#: plugin.py:366 +#, fuzzy +msgid "" +"The newest version available online is %(release_version)s, or " +"%(git_version)s in Git" msgstr "Les dernières versions disponibles en ligne sont %s." -#: plugin.py:355 -msgid "%s (in %s)" -msgstr "%s (dans %s)" - -#: plugin.py:359 +#: plugin.py:372 msgid "I couldn't fetch the newest version from the Limnoria repository." msgstr "Je ne peux récupérer la dernière version sur le dépôt de Limnoria." -#: plugin.py:361 +#: plugin.py:374 #, fuzzy msgid "" "The current (running) version of this Limnoria is %s, running on Python %s. " @@ -251,7 +250,7 @@ msgid "" msgstr "" "La version actuelle de ce Supybot est %s, fonctionnant sur Python %s. %s" -#: plugin.py:369 +#: plugin.py:382 msgid "" "takes no arguments\n" "\n" @@ -262,12 +261,12 @@ msgstr "" "\n" "Retourne une URL disant où trouver Limnoria." -#: plugin.py:373 +#: plugin.py:386 #, fuzzy msgid "My source is at https://github.com/progval/Limnoria" msgstr "Ma source est disponible sur https://github.com/ProgVal/Limnoria" -#: plugin.py:378 +#: plugin.py:391 msgid "" "[]\n" "\n" @@ -286,15 +285,15 @@ msgstr "" "commande. Si le est donné, continue la dernière commande du " "plutôt que de la personne envoyant ce message." -#: plugin.py:395 +#: plugin.py:408 msgid "%s has no public mores." msgstr "%s n'a pas de 'more' public." -#: plugin.py:398 +#: plugin.py:411 msgid "Sorry, I can't find any mores for %s" msgstr "Désolé, je ne peux trouver de 'more' pour %s" -#: plugin.py:403 +#: plugin.py:416 msgid "" "You haven't asked me a command; perhaps you want to see someone else's " "more. To do so, call this command with that person's nick." @@ -303,11 +302,11 @@ msgstr "" "de quelqu'un d'autre. Pour cela, appelez cette commande en ajoutant le nick " "de cette personne." -#: plugin.py:433 +#: plugin.py:446 msgid "That's all, there is no more." msgstr "C'est tout, il n'y a plus de 'more'" -#: plugin.py:443 +#: plugin.py:456 msgid "" "[--{from,in,on,with,without,regexp} ] [--nolimit]\n" "\n" @@ -335,11 +334,7 @@ msgstr "" "qui peuvent être trouvés. Par défaut, recherche dans les logs du canal sur " "lequel est envoyée cette commande." -#: plugin.py:540 -msgid "The regular expression timed out." -msgstr "L'expression régulière a pris trop de temps à être évaluée." - -#: plugin.py:553 +#: plugin.py:589 msgid "" "I couldn't find a message matching that criteria in my history of %s " "messages." @@ -347,24 +342,24 @@ msgstr "" "Je ne peux trouver de message correspondant à ce critère dans mon historique " "de %s messages." -#: plugin.py:572 +#: plugin.py:608 msgid "Hey, just give the command. No need for the tell." msgstr "" "Oh, contentes-toi de me donner la commande. Pas besoin d'utiliser 'tell'." -#: plugin.py:577 +#: plugin.py:613 msgid "You just told me, why should I tell myself?" msgstr "Vous venez de me le dire, pourquoi devrais-je me le dire moi-même ?" -#: plugin.py:582 +#: plugin.py:618 msgid "I haven't seen %s, I'll let you do the telling." msgstr "Je n'ai pas vu %s, je vous laisse lui dire." -#: plugin.py:587 +#: plugin.py:623 msgid "%s wants me to tell you: %s" msgstr "%s veut que je vous dise : %s" -#: plugin.py:593 +#: plugin.py:629 msgid "" " \n" "\n" @@ -376,7 +371,7 @@ msgstr "" "\n" "Dit le au . Utile si vous utilisez des commandes imbriquées." -#: plugin.py:603 +#: plugin.py:639 msgid "" " \n" "\n" @@ -389,7 +384,7 @@ msgstr "" "Dit le à , dans une notice. Utile si vous utilisez des " "commandes imbriquées." -#: plugin.py:613 +#: plugin.py:649 msgid "" "takes no arguments\n" "\n" @@ -400,11 +395,11 @@ msgstr "" "\n" "Vérifie si le bot est encore en vie." -#: plugin.py:617 +#: plugin.py:653 msgid "pong" msgstr "pong" -#: plugin.py:621 +#: plugin.py:657 msgid "" "[] [--match-case]\n" "\n" @@ -417,15 +412,15 @@ msgstr "" "Retourne le nick de quelqu'un dans le salon dont le nick commence par les " " indiquées. correspond par défaut au salon actuel." -#: plugin.py:627 +#: plugin.py:663 msgid "I'm not even in %s." msgstr "Je ne suis pas dans %s." -#: plugin.py:639 +#: plugin.py:675 msgid "No such nick." msgstr "Ce nick n'existe pas." -#: plugin.py:645 +#: plugin.py:681 #, fuzzy msgid "" "takes no arguments\n" @@ -436,6 +431,12 @@ msgstr "" "\n" "Retourne la version actuelle du bot" +#~ msgid "%s (in %s)" +#~ msgstr "%s (dans %s)" + +#~ msgid "The regular expression timed out." +#~ msgstr "L'expression régulière a pris trop de temps à être évaluée." + #~ msgid "1 more message" #~ msgstr "1 autre message" diff --git a/plugins/Misc/locales/hu.po b/plugins/Misc/locales/hu.po index f757f671c..9802a6d48 100644 --- a/plugins/Misc/locales/hu.po +++ b/plugins/Misc/locales/hu.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria Misc\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-04-27 15:15+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -85,13 +85,13 @@ msgstr "" "Meghatározza, hogy a last kimenete tartalmazza-e a nevet, ha az egy " "beágyazott parancs része." -#: plugin.py:76 +#: plugin.py:79 msgid "" "Miscellaneous commands to access Supybot core. This is a core\n" " Supybot plugin that should not be removed!" msgstr "" -#: plugin.py:114 +#: plugin.py:117 #, fuzzy msgid "" "You've given me %s invalid commands within the last %i seconds; I'm now " @@ -99,7 +99,7 @@ msgid "" msgstr "" "%s érvénytelen parancsot adtál nekem az utolsó percben; most mellőzlek %s-ig." -#: plugin.py:157 +#: plugin.py:160 msgid "" "The %q plugin is loaded, but there is no command named %q in it. Try \"list " "%s\" to see the commands in the %q plugin." @@ -107,15 +107,15 @@ 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:163 plugin.py:166 +#: plugin.py:166 plugin.py:169 msgid "command" msgstr "" -#: plugin.py:172 +#: plugin.py:175 msgid "private" msgstr "" -#: plugin.py:188 +#: plugin.py:191 #, fuzzy msgid "" "[--private] [--unloaded] []\n" @@ -132,19 +132,19 @@ msgstr "" "bővítmény, kiírja az elérhető publikus bővítményeket. Ha --private meg van " "adva, kiírja a privát bővítményeket." -#: plugin.py:209 +#: plugin.py:212 msgid "--private and --unloaded are incompatible options." msgstr "" -#: plugin.py:237 +#: plugin.py:240 msgid "There are no private plugins." msgstr "Nincsenek privát bővítmények." -#: plugin.py:239 +#: plugin.py:242 msgid "There are no public plugins." msgstr "Nincsenek publikus bővítmények." -#: plugin.py:246 +#: plugin.py:249 msgid "" "That plugin exists, but has no commands. This probably means that it has " "some configuration variables that can be changed in order to modify its " @@ -156,7 +156,7 @@ msgstr "" "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:258 +#: plugin.py:261 msgid "" "\n" "\n" @@ -169,11 +169,11 @@ msgstr "" "-ra keres a parancsokban, amelyeket a bot kínál, és kiírja a " "parancsokat, amelyek tartalmazzák a karakterláncot." -#: plugin.py:277 +#: plugin.py:280 msgid "No appropriate commands were found." msgstr "Nem található megfelelő parancs." -#: plugin.py:282 +#: plugin.py:285 #, fuzzy msgid "" "[] []\n" @@ -191,13 +191,13 @@ msgstr "" "Ez a parancs egy hasznos leírást ad arról, hogy mit csinál . " " csak akkor szükséges, ha a parancs egynél több bővítményben van." -#: plugin.py:295 +#: plugin.py:298 msgid "" "Use the 'list' command to list all plugins, and 'list ' to list all " "commands in a plugin. To show the help of a command, use 'help '. " msgstr "" -#: plugin.py:306 +#: plugin.py:309 msgid "" "That command exists in the %L plugins. Please specify exactly which plugin " "command you want help with." @@ -205,23 +205,23 @@ msgstr "" "Ez a parancs a(z) %L bővítményekben létezik. Kérlek pontosan határozd meg, " "hogy melyik bővítmény parancsának akarod látni a segítségét." -#: plugin.py:315 +#: plugin.py:318 msgid "There is no command %q." msgstr "Nincs %q parancs." -#: plugin.py:319 +#: plugin.py:322 msgid "" " However, '{0}' is the name of a loaded plugin, and you may be able to find " "its help using 'plugin help {0}' and its provided commands using 'list {0}'." msgstr "" -#: plugin.py:326 +#: plugin.py:329 msgid "" " However, '{0}' is the name of a loaded plugin, and you may be able to find " "its provided commands using 'list {0}'." msgstr "" -#: plugin.py:337 +#: plugin.py:340 msgid "" "takes no arguments\n" "\n" @@ -232,26 +232,25 @@ msgstr "" "\n" "Kiírja a bot verzióját." -#: plugin.py:354 -msgid "The newest versions available online are %s." +#: plugin.py:366 +#, fuzzy +msgid "" +"The newest version available online is %(release_version)s, or " +"%(git_version)s in Git" msgstr "A legújabb elérhető verziók az interneten: %s." -#: plugin.py:355 -msgid "%s (in %s)" -msgstr "%s (%s-ban)" - -#: plugin.py:359 +#: plugin.py:372 msgid "I couldn't fetch the newest version from the Limnoria repository." msgstr "Nem tudtam lekérdezni a legújabb verziót a Limnoria gyűjteményből." -#: plugin.py:361 +#: plugin.py:374 #, fuzzy msgid "" "The current (running) version of this Limnoria is %s, running on Python %s. " "%s" msgstr "Az aktuális (futó) verziója ennek a Supybot-nak %s. %s" -#: plugin.py:369 +#: plugin.py:382 msgid "" "takes no arguments\n" "\n" @@ -261,12 +260,12 @@ msgstr "" "paraméter nélküli\n" "Kiír egy linket, ami megmondja, honnan lehet a Limnoria-t megszerezni." -#: plugin.py:373 +#: plugin.py:386 #, fuzzy msgid "My source is at https://github.com/progval/Limnoria" msgstr "A forrásom https://github.com/ProgVal/Limnoria -ban van." -#: plugin.py:378 +#: plugin.py:391 msgid "" "[]\n" "\n" @@ -284,15 +283,15 @@ msgstr "" "miatt, kiírja a következő részét az utolsó parancs eredményének. Ha " "meg van adva, utolsó parancsának a folytatását írja ki." -#: plugin.py:395 +#: plugin.py:408 msgid "%s has no public mores." msgstr "%s-nek nincsenek publikus folytatásai." -#: plugin.py:398 +#: plugin.py:411 msgid "Sorry, I can't find any mores for %s" msgstr "Sajnálom, nem találok folytatásokat %s-hoz." -#: plugin.py:403 +#: plugin.py:416 msgid "" "You haven't asked me a command; perhaps you want to see someone else's " "more. To do so, call this command with that person's nick." @@ -300,11 +299,11 @@ msgstr "" "Nem adtál nekem parancsot; talán valaki más folyatását szeretnéd látni. Ha " "ezt szeretnéd tenni, hívd meg ezt a parancsot az adott ember nevével." -#: plugin.py:433 +#: plugin.py:446 msgid "That's all, there is no more." msgstr "Ez minden, nincs több." -#: plugin.py:443 +#: plugin.py:456 msgid "" "[--{from,in,on,with,without,regexp} ] [--nolimit]\n" "\n" @@ -331,11 +330,7 @@ msgstr "" "kiírja az összes talált üzenetet. Alapértelmezésben abban a csatornában " "keres, ahol ez a parancs végre lett hajtva." -#: plugin.py:540 -msgid "The regular expression timed out." -msgstr "" - -#: plugin.py:553 +#: plugin.py:589 msgid "" "I couldn't find a message matching that criteria in my history of %s " "messages." @@ -343,23 +338,23 @@ msgstr "" "Nem találtam a kritériumra illeszkedő üzenetet a(z) %s üzenetes " "előzményeimben." -#: plugin.py:572 +#: plugin.py:608 msgid "Hey, just give the command. No need for the tell." msgstr "Haver, csak add meg a parancsot. Nem kell mondani." -#: plugin.py:577 +#: plugin.py:613 msgid "You just told me, why should I tell myself?" msgstr "Most mondtad el nekem, miért mondjam el magamnak?" -#: plugin.py:582 +#: plugin.py:618 msgid "I haven't seen %s, I'll let you do the telling." msgstr "Nem láttam %s-t, rád hagyom a mondást." -#: plugin.py:587 +#: plugin.py:623 msgid "%s wants me to tell you: %s" msgstr "%s szeretné, hogy megmondjam neked: %s" -#: plugin.py:593 +#: plugin.py:629 msgid "" " \n" "\n" @@ -370,7 +365,7 @@ msgstr "" " Megmondja -nek szöveget. Itt az előnyödre használhatod a " "beágyazott parancsokat." -#: plugin.py:603 +#: plugin.py:639 #, fuzzy msgid "" " \n" @@ -382,7 +377,7 @@ msgstr "" " Megmondja -nek szöveget. Itt az előnyödre használhatod a " "beágyazott parancsokat." -#: plugin.py:613 +#: plugin.py:649 msgid "" "takes no arguments\n" "\n" @@ -393,11 +388,11 @@ msgstr "" "\n" "Ellenőrzi, hogy a bot él-e." -#: plugin.py:617 +#: plugin.py:653 msgid "pong" msgstr "pong" -#: plugin.py:621 +#: plugin.py:657 msgid "" "[] [--match-case]\n" "\n" @@ -407,15 +402,15 @@ msgid "" " defaults to the current channel." msgstr "" -#: plugin.py:627 +#: plugin.py:663 msgid "I'm not even in %s." msgstr "" -#: plugin.py:639 +#: plugin.py:675 msgid "No such nick." msgstr "" -#: plugin.py:645 +#: plugin.py:681 #, fuzzy msgid "" "takes no arguments\n" @@ -426,6 +421,9 @@ msgstr "" "\n" "Kiírja a bot verzióját." +#~ msgid "%s (in %s)" +#~ msgstr "%s (%s-ban)" + #, fuzzy #~ msgid "1 more message" #~ msgstr "eggyel több üzenet" diff --git a/plugins/Misc/locales/it.po b/plugins/Misc/locales/it.po index 3c7f6fc13..527016349 100644 --- a/plugins/Misc/locales/it.po +++ b/plugins/Misc/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-03-15 21:01+0100\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -85,13 +85,13 @@ msgstr "" "Determines se il nick verrà incluso o meno nell'output di \"last\" quando fa " "parte di un comando nidificato." -#: plugin.py:76 +#: plugin.py:79 msgid "" "Miscellaneous commands to access Supybot core. This is a core\n" " Supybot plugin that should not be removed!" msgstr "" -#: plugin.py:114 +#: plugin.py:117 #, fuzzy msgid "" "You've given me %s invalid commands within the last %i seconds; I'm now " @@ -99,23 +99,23 @@ msgid "" msgstr "" "Mi hai fornito %s comandi non validi entro l'ultimo minuto; ti ignoro per %s." -#: plugin.py:157 +#: plugin.py:160 msgid "" "The %q plugin is loaded, but there is no command named %q in it. Try \"list " "%s\" to see the commands in the %q plugin." msgstr "" -"Il plugin %q è caricato ma non ha nessun comando chiamato %q. Prova \"list %s" -"\" per vedere i comandi disponibili nel plugin %q." +"Il plugin %q è caricato ma non ha nessun comando chiamato %q. Prova \"list " +"%s\" per vedere i comandi disponibili nel plugin %q." -#: plugin.py:163 plugin.py:166 +#: plugin.py:166 plugin.py:169 msgid "command" msgstr "" -#: plugin.py:172 +#: plugin.py:175 msgid "private" msgstr "" -#: plugin.py:188 +#: plugin.py:191 msgid "" "[--private] [--unloaded] []\n" "\n" @@ -134,19 +134,19 @@ msgstr "" " privati, mentre con --unloaded quelli non caricati.\n" " " -#: plugin.py:209 +#: plugin.py:212 msgid "--private and --unloaded are incompatible options." msgstr "Le opzioni --private e --unloaded non possono essere usate insieme." -#: plugin.py:237 +#: plugin.py:240 msgid "There are no private plugins." msgstr "Non ci sono plugin privati." -#: plugin.py:239 +#: plugin.py:242 msgid "There are no public plugins." msgstr "Non ci sono plugin pubblici." -#: plugin.py:246 +#: plugin.py:249 msgid "" "That plugin exists, but has no commands. This probably means that it has " "some configuration variables that can be changed in order to modify its " @@ -157,7 +157,7 @@ msgstr "" "variabili di configurazione modificabili che cambiano il suo comportamento. " "Prova \"config list supybot.plugins.%s\" per vedere quali sono disponibili." -#: plugin.py:258 +#: plugin.py:261 msgid "" "\n" "\n" @@ -171,11 +171,11 @@ msgstr "" " riportando un elenco di quelli che contengono la stringa.\n" " " -#: plugin.py:277 +#: plugin.py:280 msgid "No appropriate commands were found." msgstr "Non è stato trovato alcun comando appropriato." -#: plugin.py:282 +#: plugin.py:285 #, fuzzy msgid "" "[] []\n" @@ -194,35 +194,35 @@ msgstr "" " necessario solo se il comando è presente in più di un plugin.\n" " " -#: plugin.py:295 +#: plugin.py:298 msgid "" "Use the 'list' command to list all plugins, and 'list ' to list all " "commands in a plugin. To show the help of a command, use 'help '. " msgstr "" -#: plugin.py:306 +#: plugin.py:309 msgid "" "That command exists in the %L plugins. Please specify exactly which plugin " "command you want help with." msgstr "Questo comando esiste nei plugin %L. Specifica per quale vuoi aiuto." -#: plugin.py:315 +#: plugin.py:318 msgid "There is no command %q." msgstr "Non c'è nessun comando %q." -#: plugin.py:319 +#: plugin.py:322 msgid "" " However, '{0}' is the name of a loaded plugin, and you may be able to find " "its help using 'plugin help {0}' and its provided commands using 'list {0}'." msgstr "" -#: plugin.py:326 +#: plugin.py:329 msgid "" " However, '{0}' is the name of a loaded plugin, and you may be able to find " "its provided commands using 'list {0}'." msgstr "" -#: plugin.py:337 +#: plugin.py:340 msgid "" "takes no arguments\n" "\n" @@ -234,27 +234,26 @@ msgstr "" " Riporta la versione attuale del bot.\n" " " -#: plugin.py:354 -msgid "The newest versions available online are %s." +#: plugin.py:366 +#, fuzzy +msgid "" +"The newest version available online is %(release_version)s, or " +"%(git_version)s in Git" msgstr "Le versioni online più recenti sono %s." -#: plugin.py:355 -msgid "%s (in %s)" -msgstr "%s (in %s)" - -#: plugin.py:359 +#: plugin.py:372 msgid "I couldn't fetch the newest version from the Limnoria repository." msgstr "" "Non riesco a recuperare la versione più recente dal repository di Limnoria." -#: plugin.py:361 +#: plugin.py:374 #, fuzzy msgid "" "The current (running) version of this Limnoria is %s, running on Python %s. " "%s" msgstr "La versione di questo Supybot è %s. %s" -#: plugin.py:369 +#: plugin.py:382 msgid "" "takes no arguments\n" "\n" @@ -266,14 +265,14 @@ msgstr "" " Riporta un URL che dice dove ottenere Limnoria.\n" " " -#: plugin.py:373 +#: plugin.py:386 #, fuzzy msgid "My source is at https://github.com/progval/Limnoria" msgstr "" "I miei sorgenti sono disponibili all'indirizzo https://github.com/ProgVal/" "Limnoria" -#: plugin.py:378 +#: plugin.py:391 msgid "" "[]\n" "\n" @@ -296,15 +295,15 @@ msgstr "" " dell'utente che usa questo comando.\n" " " -#: plugin.py:395 +#: plugin.py:408 msgid "%s has no public mores." msgstr "%s non ha \"more\" pubblici." -#: plugin.py:398 +#: plugin.py:411 msgid "Sorry, I can't find any mores for %s" msgstr "Spiacente, non trovo alcun \"more\" per %s" -#: plugin.py:403 +#: plugin.py:416 msgid "" "You haven't asked me a command; perhaps you want to see someone else's " "more. To do so, call this command with that person's nick." @@ -312,11 +311,11 @@ msgstr "" "Non mi hai richiesto un comando, forse vuoi vedere quelli di qualcun altro. " "Per farlo usa questo comando con il nick di quell'utente." -#: plugin.py:433 +#: plugin.py:446 msgid "That's all, there is no more." msgstr "È tutto, non c'è nessun \"more\"." -#: plugin.py:443 +#: plugin.py:456 msgid "" "[--{from,in,on,with,without,regexp} ] [--nolimit]\n" "\n" @@ -350,11 +349,7 @@ msgstr "" "stato dato il comando.\n" " " -#: plugin.py:540 -msgid "The regular expression timed out." -msgstr "L'espressione regolare è scaduta." - -#: plugin.py:553 +#: plugin.py:589 msgid "" "I couldn't find a message matching that criteria in my history of %s " "messages." @@ -362,23 +357,23 @@ msgstr "" "Non trovo un messaggio corrispondente a questo criterio nella cronologia di " "%s messaggi." -#: plugin.py:572 +#: plugin.py:608 msgid "Hey, just give the command. No need for the tell." msgstr "Dammi il comando, non c'è bisogno di usare \"tell\"." -#: plugin.py:577 +#: plugin.py:613 msgid "You just told me, why should I tell myself?" msgstr "Me l'hai appena detto, perché dovrei ripetermelo?" -#: plugin.py:582 +#: plugin.py:618 msgid "I haven't seen %s, I'll let you do the telling." msgstr "Non ho mai visto %s, lascio a te l'invio del messaggio." -#: plugin.py:587 +#: plugin.py:623 msgid "%s wants me to tell you: %s" msgstr "%s vuole che ti dica: %s" -#: plugin.py:593 +#: plugin.py:629 msgid "" " \n" "\n" @@ -392,7 +387,7 @@ msgstr "" "vantaggio.\n" " " -#: plugin.py:603 +#: plugin.py:639 #, fuzzy msgid "" " \n" @@ -407,7 +402,7 @@ msgstr "" "vantaggio.\n" " " -#: plugin.py:613 +#: plugin.py:649 msgid "" "takes no arguments\n" "\n" @@ -419,11 +414,11 @@ msgstr "" " Controlla che il bot sia ancora vivo.\n" " " -#: plugin.py:617 +#: plugin.py:653 msgid "pong" msgstr "pong" -#: plugin.py:621 +#: plugin.py:657 msgid "" "[] [--match-case]\n" "\n" @@ -439,15 +434,15 @@ msgstr "" " specificato da .\n" " è quello corrente." -#: plugin.py:627 +#: plugin.py:663 msgid "I'm not even in %s." msgstr "Non sono in %s." -#: plugin.py:639 +#: plugin.py:675 msgid "No such nick." msgstr "Nessun nick trovato." -#: plugin.py:645 +#: plugin.py:681 #, fuzzy msgid "" "takes no arguments\n" @@ -459,6 +454,12 @@ msgstr "" " Riporta la versione attuale del bot.\n" " " +#~ msgid "%s (in %s)" +#~ msgstr "%s (in %s)" + +#~ msgid "The regular expression timed out." +#~ msgstr "L'espressione regolare è scaduta." + #, fuzzy #~ msgid "1 more message" #~ msgstr "altro messaggio" diff --git a/plugins/Misc/messages.pot b/plugins/Misc/messages.pot index aca67d4c4..b170c6235 100644 --- a/plugins/Misc/messages.pot +++ b/plugins/Misc/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -65,30 +65,30 @@ msgid "" " command" msgstr "" -#: plugin.py:76 +#: plugin.py:79 #, docstring msgid "" "Miscellaneous commands to access Supybot core. This is a core\n" " Supybot plugin that should not be removed!" msgstr "" -#: plugin.py:114 +#: plugin.py:117 msgid "You've given me %s invalid commands within the last %i seconds; I'm now ignoring you for %s." msgstr "" -#: plugin.py:157 +#: plugin.py:160 msgid "The %q plugin is loaded, but there is no command named %q in it. Try \"list %s\" to see the commands in the %q plugin." msgstr "" -#: plugin.py:163 plugin.py:166 +#: plugin.py:166 plugin.py:169 msgid "command" msgstr "" -#: plugin.py:172 +#: plugin.py:175 msgid "private" msgstr "" -#: plugin.py:188 +#: plugin.py:191 #, docstring msgid "" "[--private] [--unloaded] []\n" @@ -100,23 +100,23 @@ msgid "" " " msgstr "" -#: plugin.py:209 +#: plugin.py:212 msgid "--private and --unloaded are incompatible options." msgstr "" -#: plugin.py:237 +#: plugin.py:240 msgid "There are no private plugins." msgstr "" -#: plugin.py:239 +#: plugin.py:242 msgid "There are no public plugins." msgstr "" -#: plugin.py:246 +#: plugin.py:249 msgid "That plugin exists, but has no commands. This probably means that it has some configuration variables that can be changed in order to modify its behavior. Try \"config list supybot.plugins.%s\" to see what configuration variables it has." msgstr "" -#: plugin.py:258 +#: plugin.py:261 #, docstring msgid "" "\n" @@ -126,11 +126,11 @@ msgid "" " " msgstr "" -#: plugin.py:277 +#: plugin.py:280 msgid "No appropriate commands were found." msgstr "" -#: plugin.py:282 +#: plugin.py:285 #, docstring msgid "" "[] []\n" @@ -143,27 +143,27 @@ msgid "" " " msgstr "" -#: plugin.py:295 +#: plugin.py:298 msgid "Use the 'list' command to list all plugins, and 'list ' to list all commands in a plugin. To show the help of a command, use 'help '. " msgstr "" -#: plugin.py:306 +#: plugin.py:309 msgid "That command exists in the %L plugins. Please specify exactly which plugin command you want help with." msgstr "" -#: plugin.py:315 +#: plugin.py:318 msgid "There is no command %q." msgstr "" -#: plugin.py:319 +#: plugin.py:322 msgid " However, '{0}' is the name of a loaded plugin, and you may be able to find its help using 'plugin help {0}' and its provided commands using 'list {0}'." msgstr "" -#: plugin.py:326 +#: plugin.py:329 msgid " However, '{0}' is the name of a loaded plugin, and you may be able to find its provided commands using 'list {0}'." msgstr "" -#: plugin.py:337 +#: plugin.py:340 #, docstring msgid "" "takes no arguments\n" @@ -172,23 +172,19 @@ msgid "" " " msgstr "" -#: plugin.py:354 -msgid "The newest versions available online are %s." +#: plugin.py:366 +msgid "The newest version available online is %(release_version)s, or %(git_version)s in Git" msgstr "" -#: plugin.py:355 -msgid "%s (in %s)" -msgstr "" - -#: plugin.py:359 +#: plugin.py:372 msgid "I couldn't fetch the newest version from the Limnoria repository." msgstr "" -#: plugin.py:361 +#: plugin.py:374 msgid "The current (running) version of this Limnoria is %s, running on Python %s. %s" msgstr "" -#: plugin.py:369 +#: plugin.py:382 #, docstring msgid "" "takes no arguments\n" @@ -197,11 +193,11 @@ msgid "" " " msgstr "" -#: plugin.py:373 +#: plugin.py:386 msgid "My source is at https://github.com/progval/Limnoria" msgstr "" -#: plugin.py:378 +#: plugin.py:391 #, docstring msgid "" "[]\n" @@ -213,23 +209,23 @@ msgid "" " " msgstr "" -#: plugin.py:395 +#: plugin.py:408 msgid "%s has no public mores." msgstr "" -#: plugin.py:398 +#: plugin.py:411 msgid "Sorry, I can't find any mores for %s" msgstr "" -#: plugin.py:403 +#: plugin.py:416 msgid "You haven't asked me a command; perhaps you want to see someone else's more. To do so, call this command with that person's nick." msgstr "" -#: plugin.py:433 +#: plugin.py:446 msgid "That's all, there is no more." msgstr "" -#: plugin.py:443 +#: plugin.py:456 #, docstring msgid "" "[--{from,in,on,with,without,regexp} ] [--nolimit]\n" @@ -244,31 +240,27 @@ msgid "" " " msgstr "" -#: plugin.py:540 -msgid "The regular expression timed out." -msgstr "" - -#: plugin.py:553 +#: plugin.py:589 msgid "I couldn't find a message matching that criteria in my history of %s messages." msgstr "" -#: plugin.py:572 +#: plugin.py:608 msgid "Hey, just give the command. No need for the tell." msgstr "" -#: plugin.py:577 +#: plugin.py:613 msgid "You just told me, why should I tell myself?" msgstr "" -#: plugin.py:582 +#: plugin.py:618 msgid "I haven't seen %s, I'll let you do the telling." msgstr "" -#: plugin.py:587 +#: plugin.py:623 msgid "%s wants me to tell you: %s" msgstr "" -#: plugin.py:593 +#: plugin.py:629 #, docstring msgid "" " \n" @@ -278,7 +270,7 @@ msgid "" " " msgstr "" -#: plugin.py:603 +#: plugin.py:639 #, docstring msgid "" " \n" @@ -288,7 +280,7 @@ msgid "" " " msgstr "" -#: plugin.py:613 +#: plugin.py:649 #, docstring msgid "" "takes no arguments\n" @@ -297,11 +289,11 @@ msgid "" " " msgstr "" -#: plugin.py:617 +#: plugin.py:653 msgid "pong" msgstr "" -#: plugin.py:621 +#: plugin.py:657 #, docstring msgid "" "[] [--match-case]\n" @@ -311,15 +303,15 @@ msgid "" " defaults to the current channel." msgstr "" -#: plugin.py:627 +#: plugin.py:663 msgid "I'm not even in %s." msgstr "" -#: plugin.py:639 +#: plugin.py:675 msgid "No such nick." msgstr "" -#: plugin.py:645 +#: plugin.py:681 #, docstring msgid "" "takes no arguments\n" diff --git a/plugins/Misc/plugin.py b/plugins/Misc/plugin.py index 73f32e00d..8fb1d80be 100644 --- a/plugins/Misc/plugin.py +++ b/plugins/Misc/plugin.py @@ -342,21 +342,31 @@ class Misc(callbacks.Plugin): Returns the version of the current bot. """ try: - newestUrl = 'https://api.github.com/repos/progval/Limnoria/' + \ - 'commits/%s' - versions = {} - for branch in ('master', 'testing'): - data = json.loads(utils.web.getUrl(newestUrl % branch) - .decode('utf8')) - version = data['commit']['committer']['date'] - # Strip the last 'Z': - version = version.rsplit('T', 1)[0].replace('-', '.') - if minisix.PY2 and isinstance(version, unicode): - version = version.encode('utf8') - versions[branch] = version - newest = _('The newest versions available online are %s.') % \ - ', '.join([_('%s (in %s)') % (y,x) - for x,y in versions.items()]) + versions = [] + + # fetch from PyPI + data = json.loads(utils.web.getUrl( + 'https://pypi.org/pypi/limnoria/json' + ).decode('utf8')) + release_version = data['info']['version'] + # zero-left-pad months and days + release_version = re.sub( + r'\.([0-9])\b', lambda m: '.0' + m.group(1), release_version + ) + + # fetch from Git + data = json.loads(utils.web.getUrl( + 'https://api.github.com/repos/progval/Limnoria/' + 'commits/master' + ).decode('utf8')) + git_version = data['commit']['committer']['date'] + # Strip the last 'Z': + git_version = git_version.rsplit('T', 1)[0].replace('-', '.') + + newest = _( + 'The newest version available online is %(release_version)s, ' + 'or %(git_version)s in Git' + ) % {'release_version': release_version, 'git_version': git_version} except utils.web.Error as e: self.log.info('Couldn\'t get website version: %s', e) newest = _('I couldn\'t fetch the newest version ' diff --git a/plugins/MoobotFactoids/README.rst b/plugins/MoobotFactoids/README.rst index 4ee29606e..10cbba73e 100644 --- a/plugins/MoobotFactoids/README.rst +++ b/plugins/MoobotFactoids/README.rst @@ -45,52 +45,52 @@ Commands .. _command-moobotfactoids-factinfo: -factinfo [] +``factinfo [] `` Returns the various bits of info on the factoid for the given key. is only necessary if the message isn't sent in the channel itself. .. _command-moobotfactoids-listauth: -listauth [] +``listauth [] `` Lists the keys of the factoids with the given author. Note that if an author has an integer name, you'll have to use that author's id to use this function (so don't use integer usernames!). is only necessary if the message isn't sent in the channel itself. .. _command-moobotfactoids-listkeys: -listkeys [] +``listkeys [] `` Lists the keys of the factoids whose key contains the provided text. is only necessary if the message isn't sent in the channel itself. .. _command-moobotfactoids-listvalues: -listvalues [] +``listvalues [] `` Lists the keys of the factoids whose value contains the provided text. is only necessary if the message isn't sent in the channel itself. .. _command-moobotfactoids-literal: -literal [] +``literal [] `` Returns the literal factoid for the given factoid key. No parsing of the factoid value is done as it is with normal retrieval. is only necessary if the message isn't sent in the channel itself. .. _command-moobotfactoids-lock: -lock [] +``lock [] `` Locks the factoid with the given factoid key. Requires that the user be registered and have created the factoid originally. is only necessary if the message isn't sent in the channel itself. .. _command-moobotfactoids-most: -most [] {popular|authored|recent} +``most [] {popular|authored|recent}`` Lists the most {popular|authored|recent} factoids. "popular" lists the most frequently requested factoids. "authored" lists the author with the most factoids. "recent" lists the most recently created factoids. is only necessary if the message isn't sent in the channel itself. .. _command-moobotfactoids-random: -random [] +``random []`` Displays a random factoid (along with its key) from the database. is only necessary if the message isn't sent in the channel itself. .. _command-moobotfactoids-remove: -remove [] +``remove [] `` Deletes the factoid with the given key. is only necessary if the message isn't sent in the channel itself. .. _command-moobotfactoids-unlock: -unlock [] +``unlock [] `` Unlocks the factoid with the given factoid key. Requires that the user be registered and have locked the factoid. is only necessary if the message isn't sent in the channel itself. .. _conf-MoobotFactoids: diff --git a/plugins/MoobotFactoids/locales/fi.po b/plugins/MoobotFactoids/locales/fi.po index 9fd9c6b31..e529c121f 100644 --- a/plugins/MoobotFactoids/locales/fi.po +++ b/plugins/MoobotFactoids/locales/fi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: MoobotFactoids plugin for Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-12-20 13:02+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -47,41 +47,53 @@ msgid "" "says\n" " ``something is something``.\n" "\n" -" If you want factoid to be in different format say (for example):\n" +" If you want the factoid to be in different format say (for example):\n" " ``@Hi is Hello`` And when you call ``@hi`` the bot says ``Hello." "``\n" "\n" " If you want the bot to use /mes with Factoids, that is possible too.\n" " ``@test is tests.`` and everytime when someone calls for\n" " ``test`` the bot answers ``* bot tests.``\n" +"\n" +" If you want the factoid to have random answers say (for example):\n" +" ``@fruit is (orange|apple|banana)``. So when ``@fruit`` is " +"called\n" +" the bot will reply with one of the listed fruits (random): ``orange``.\n" +" \n" +" If you want to replace the value of the factoid, for example:\n" +" ``@no Hi is Hey`` when you call ``@hi`` the bot says ``Hey``.\n" +"\n" +" If you want to append to the current value of a factoid say:\n" +" ``@Hi is also Hello``, so that when you call ``@hi`` the\n" +" bot says ``Hey, or Hello.`` \n" " " msgstr "" -#: plugin.py:358 +#: plugin.py:369 msgid "%s is %s" msgstr "%s on %s" -#: plugin.py:377 +#: plugin.py:388 msgid "Factoid %q is locked." msgstr "Factoidi %q on lukittu." -#: plugin.py:384 +#: plugin.py:395 msgid "Factoid %q not found." msgstr "Factoidia %q ei löytynyt." -#: plugin.py:394 +#: plugin.py:405 msgid "Missing an 'is' or '_is_'." msgstr "Puuttuva 'is' tai '_is_'." -#: plugin.py:410 +#: plugin.py:421 msgid "Factoid %q already exists." msgstr "Factoidi %q on jo olemassa." -#: plugin.py:444 +#: plugin.py:455 msgid "%s, or %s" msgstr "%s, tai %s" -#: plugin.py:465 +#: plugin.py:476 msgid "" "[] \n" "\n" @@ -101,7 +113,7 @@ msgstr "" " kanavalla itsellään.\n" " " -#: plugin.py:478 +#: plugin.py:489 msgid "" "[] \n" "\n" @@ -118,39 +130,39 @@ msgstr "" " itsellään.\n" " " -#: plugin.py:489 plugin.py:529 +#: plugin.py:500 plugin.py:540 msgid "No such factoid: %q" msgstr "Ei sellaista factoidia: %q" -#: plugin.py:498 +#: plugin.py:509 msgid "Created by %s on %s." msgstr "luonut %s kello %s." -#: plugin.py:504 +#: plugin.py:515 msgid " Last modified by %s on %s." msgstr "Viimeeksi muokattu %s kello %s." -#: plugin.py:512 +#: plugin.py:523 msgid " Last requested by %s on %s, requested %n." msgstr "Viimeeksi pyytänyt %s kello %s, pyytänyt %n." -#: plugin.py:519 +#: plugin.py:530 msgid " Locked by %s on %s." msgstr "%s:än lukitsema %s:llä." -#: plugin.py:534 +#: plugin.py:545 msgid "Factoid %q is already locked." msgstr "Factoidi %q on jo lukittu." -#: plugin.py:537 +#: plugin.py:548 msgid "Factoid %q is not locked." msgstr "Factoidi %q is not locked." -#: plugin.py:547 +#: plugin.py:558 msgid "Cannot %s someone else's factoid unless you are an admin." msgstr "Et voi %s jonkun muun factoidia paitsi, jos olet admin." -#: plugin.py:559 +#: plugin.py:570 msgid "" "[] \n" "\n" @@ -169,7 +181,7 @@ msgstr "" " vaadittu vain jos viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:570 +#: plugin.py:581 msgid "" "[] \n" "\n" @@ -185,7 +197,7 @@ msgstr "" " vain jos viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:581 +#: plugin.py:592 msgid "" "[] {popular|authored|recent}\n" "\n" @@ -211,51 +223,51 @@ msgstr "" " itsellään.\n" " " -#: plugin.py:603 +#: plugin.py:614 msgid "author" msgstr "kirjoittaja" -#: plugin.py:605 +#: plugin.py:616 msgid "authors" msgstr "kirjoittajat" -#: plugin.py:606 +#: plugin.py:617 msgid "Most prolific %s: %L" msgstr "Tuottoisimmat %s: %L" -#: plugin.py:608 plugin.py:620 +#: plugin.py:619 plugin.py:631 msgid "There are no factoids in my database." msgstr "Tietokannassani ei ole factoideja." -#: plugin.py:615 +#: plugin.py:626 msgid "latest factoid" msgstr "viimeisin factoidi" -#: plugin.py:617 +#: plugin.py:628 msgid "latest factoids" msgstr "viimeisimmät factoidit" -#: plugin.py:618 +#: plugin.py:629 msgid "%i %s: %L" msgstr "%i %s: %L" -#: plugin.py:627 +#: plugin.py:638 msgid "requested factoid" msgstr "pyydetty factoidi" -#: plugin.py:629 +#: plugin.py:640 msgid "requested factoids" msgstr "pyydetyt factoidit" -#: plugin.py:630 +#: plugin.py:641 msgid "Top %i %s: %L" msgstr "Huippu %i %s: %L" -#: plugin.py:632 +#: plugin.py:643 msgid "No factoids have been requested from my database." msgstr "Factoideja ei ole pyydetty tietokannastani." -#: plugin.py:636 +#: plugin.py:647 msgid "" "[] \n" "\n" @@ -278,15 +290,15 @@ msgstr "" " viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:649 +#: plugin.py:660 msgid "No factoids by %q found." msgstr "%q:n kirjoittamia factoideja ei löytynyt." -#: plugin.py:652 +#: plugin.py:663 msgid "Author search for %q (%i found): %L" msgstr "Kirjoittaja haku %q:lle (%i löytynyt): %L" -#: plugin.py:659 +#: plugin.py:670 msgid "" "[] \n" "\n" @@ -304,15 +316,15 @@ msgstr "" " itsellään.\n" " " -#: plugin.py:667 +#: plugin.py:678 msgid "No keys matching %q found." msgstr "Avaimia, jotka täsmäävät %q:un ei löytynyt." -#: plugin.py:675 +#: plugin.py:686 msgid "Key search for %q (%i found): %L" msgstr "Avain haku %q:lle (%i löytynyt): %L" -#: plugin.py:682 +#: plugin.py:693 msgid "" "[] \n" "\n" @@ -330,15 +342,15 @@ msgstr "" " kanavalla itsellään.\n" " " -#: plugin.py:690 +#: plugin.py:701 msgid "No values matching %q found." msgstr "%q:un täsmääviä avaimia ei löytynyt." -#: plugin.py:693 +#: plugin.py:704 msgid "Value search for %q (%i found): %L" msgstr "Arvo haku %q:lle (%i löytynyt): %L" -#: plugin.py:700 +#: plugin.py:711 msgid "" "[] \n" "\n" @@ -354,7 +366,7 @@ msgstr "" " viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:713 +#: plugin.py:724 msgid "" "[]\n" "\n" @@ -371,7 +383,7 @@ msgstr "" " itsellään.\n" " " -#: plugin.py:721 +#: plugin.py:732 msgid "No factoids in the database." msgstr "Tietokannassa ei ole factoideja." diff --git a/plugins/MoobotFactoids/locales/fr.po b/plugins/MoobotFactoids/locales/fr.po index ba636e736..f606f6fd8 100644 --- a/plugins/MoobotFactoids/locales/fr.po +++ b/plugins/MoobotFactoids/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: Valentin Lorentz \n" "Language-Team: Limnoria \n" @@ -41,41 +41,53 @@ msgid "" "says\n" " ``something is something``.\n" "\n" -" If you want factoid to be in different format say (for example):\n" +" If you want the factoid to be in different format say (for example):\n" " ``@Hi is Hello`` And when you call ``@hi`` the bot says ``Hello." "``\n" "\n" " If you want the bot to use /mes with Factoids, that is possible too.\n" " ``@test is tests.`` and everytime when someone calls for\n" " ``test`` the bot answers ``* bot tests.``\n" +"\n" +" If you want the factoid to have random answers say (for example):\n" +" ``@fruit is (orange|apple|banana)``. So when ``@fruit`` is " +"called\n" +" the bot will reply with one of the listed fruits (random): ``orange``.\n" +" \n" +" If you want to replace the value of the factoid, for example:\n" +" ``@no Hi is Hey`` when you call ``@hi`` the bot says ``Hey``.\n" +"\n" +" If you want to append to the current value of a factoid say:\n" +" ``@Hi is also Hello``, so that when you call ``@hi`` the\n" +" bot says ``Hey, or Hello.`` \n" " " msgstr "" -#: plugin.py:358 +#: plugin.py:369 msgid "%s is %s" msgstr "%s est %s" -#: plugin.py:377 +#: plugin.py:388 msgid "Factoid %q is locked." msgstr "La factoid %q est verrouillée" -#: plugin.py:384 +#: plugin.py:395 msgid "Factoid %q not found." msgstr "Factoid %q non trouvée." -#: plugin.py:394 +#: plugin.py:405 msgid "Missing an 'is' or '_is_'." msgstr "Il manque un 'is' ou un '_is_'" -#: plugin.py:410 +#: plugin.py:421 msgid "Factoid %q already exists." msgstr "La factoid %q existe déjà." -#: plugin.py:444 +#: plugin.py:455 msgid "%s, or %s" msgstr "%s, ou %s" -#: plugin.py:465 +#: plugin.py:476 msgid "" "[] \n" "\n" @@ -92,7 +104,7 @@ msgstr "" "effecté sur la valeur de la factoid. n'est nécesaire que si le " "message n'est pas envoyé sur le canal lui-même." -#: plugin.py:478 +#: plugin.py:489 msgid "" "[] \n" "\n" @@ -108,40 +120,40 @@ msgstr "" " n'est nécesaire que si le message n'est pas envoyé sur le canal lui-" "même." -#: plugin.py:489 plugin.py:529 +#: plugin.py:500 plugin.py:540 msgid "No such factoid: %q" msgstr "Cette factoid n'existe pas : %q" -#: plugin.py:498 +#: plugin.py:509 msgid "Created by %s on %s." msgstr "Créé par %s le %s" -#: plugin.py:504 +#: plugin.py:515 msgid " Last modified by %s on %s." msgstr "Dernière modification par %s le %s" -#: plugin.py:512 +#: plugin.py:523 msgid " Last requested by %s on %s, requested %n." msgstr "Dernière requete par %s le %s ; a demandé %n." -#: plugin.py:519 +#: plugin.py:530 msgid " Locked by %s on %s." msgstr "Verrouillé par %s le %s" -#: plugin.py:534 +#: plugin.py:545 msgid "Factoid %q is already locked." msgstr "La factoid %q est déjà bloquée." -#: plugin.py:537 +#: plugin.py:548 msgid "Factoid %q is not locked." msgstr "La factoid %q n'est pas bloquée." -#: plugin.py:547 +#: plugin.py:558 msgid "Cannot %s someone else's factoid unless you are an admin." msgstr "" "Impossible de %s la factoid de quelqu'un d'autre à moins d'être un admin." -#: plugin.py:559 +#: plugin.py:570 msgid "" "[] \n" "\n" @@ -158,7 +170,7 @@ msgstr "" "enregistré et ait créé la factoid. n'est nécesaire que si le message " "n'est pas envoyé sur le canal lui-même." -#: plugin.py:570 +#: plugin.py:581 msgid "" "[] \n" "\n" @@ -173,7 +185,7 @@ msgstr "" "enregistré et ait verrouillé la factoid. n'est nécesaire que si le " "message n'est pas envoyé sur le canal lui-même." -#: plugin.py:581 +#: plugin.py:592 msgid "" "[] {popular|authored|recent}\n" "\n" @@ -195,51 +207,51 @@ msgstr "" "\"recent\" liste les factoids les plus récentes. n'est nécesaire que " "si le message n'est pas envoyé sur le canal lui-même." -#: plugin.py:603 +#: plugin.py:614 msgid "author" msgstr "auteur" -#: plugin.py:605 +#: plugin.py:616 msgid "authors" msgstr "auteurs" -#: plugin.py:606 +#: plugin.py:617 msgid "Most prolific %s: %L" msgstr "%s ayant posté le plus de factoids : %L" -#: plugin.py:608 plugin.py:620 +#: plugin.py:619 plugin.py:631 msgid "There are no factoids in my database." msgstr "Il n'y a pas de factoid dans ma base de données." -#: plugin.py:615 +#: plugin.py:626 msgid "latest factoid" msgstr "dernière factoid" -#: plugin.py:617 +#: plugin.py:628 msgid "latest factoids" msgstr "dernières factoids" -#: plugin.py:618 +#: plugin.py:629 msgid "%i %s: %L" msgstr "%i %s : %L" -#: plugin.py:627 +#: plugin.py:638 msgid "requested factoid" msgstr "factoid la plus demandée" -#: plugin.py:629 +#: plugin.py:640 msgid "requested factoids" msgstr "factoids les plus demandées" -#: plugin.py:630 +#: plugin.py:641 msgid "Top %i %s: %L" msgstr "Top des %i %s : %L" -#: plugin.py:632 +#: plugin.py:643 msgid "No factoids have been requested from my database." msgstr "Aucune factoid n'a été demandée dans ma base de données." -#: plugin.py:636 +#: plugin.py:647 msgid "" "[] \n" "\n" @@ -259,15 +271,15 @@ msgstr "" "d'utilisateur !) n'est nécesaire que si le message n'est pas " "envoyé sur le canal lui-même." -#: plugin.py:649 +#: plugin.py:660 msgid "No factoids by %q found." msgstr "Aucune factoid par %q ne peut être trouvée." -#: plugin.py:652 +#: plugin.py:663 msgid "Author search for %q (%i found): %L" msgstr "Recherche d'auteur pour %q (%i trouvé(s)) : %L" -#: plugin.py:659 +#: plugin.py:670 msgid "" "[] \n" "\n" @@ -283,15 +295,15 @@ msgstr "" "Liste les clefs des factoids dont la clef contient le texte fourni. " "n'est nécessaire que si la commande n'est pas envoyée sur le canal lui-même." -#: plugin.py:667 +#: plugin.py:678 msgid "No keys matching %q found." msgstr "Aucune factoid correspondant à %q trouvée." -#: plugin.py:675 +#: plugin.py:686 msgid "Key search for %q (%i found): %L" msgstr "Recherche de clef pour %q (%i trouvée(s)) : %L" -#: plugin.py:682 +#: plugin.py:693 msgid "" "[] \n" "\n" @@ -307,15 +319,15 @@ msgstr "" "Liste les clefs dont la valeur contient le texte recherché. n'est " "nécesaire que si le message n'est pas envoyé sur le canal lui-même." -#: plugin.py:690 +#: plugin.py:701 msgid "No values matching %q found." msgstr "Aucune valeur correspondant à %q trouvée." -#: plugin.py:693 +#: plugin.py:704 msgid "Value search for %q (%i found): %L" msgstr "Recherche de valeurs pour %q (%i trouvée(s)) : %L" -#: plugin.py:700 +#: plugin.py:711 msgid "" "[] \n" "\n" @@ -329,7 +341,7 @@ msgstr "" "Supprime la factoid avec la clef donnée. n'est nécesaire que si le " "message n'est pas envoyé sur le canal lui-même." -#: plugin.py:713 +#: plugin.py:724 msgid "" "[]\n" "\n" @@ -344,6 +356,6 @@ msgstr "" "Affiche une factoid aléatoire (avec sa clef) de la base de données. " "n'est nécesaire que si le message n'est pas envoyé sur le canal lui-même." -#: plugin.py:721 +#: plugin.py:732 msgid "No factoids in the database." msgstr "Aucune factoid dans la base de données." diff --git a/plugins/MoobotFactoids/locales/it.po b/plugins/MoobotFactoids/locales/it.po index 7f62a6fd3..a32189fd2 100644 --- a/plugins/MoobotFactoids/locales/it.po +++ b/plugins/MoobotFactoids/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2011-07-17 16:39+0200\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -37,41 +37,53 @@ msgid "" "says\n" " ``something is something``.\n" "\n" -" If you want factoid to be in different format say (for example):\n" +" If you want the factoid to be in different format say (for example):\n" " ``@Hi is Hello`` And when you call ``@hi`` the bot says ``Hello." "``\n" "\n" " If you want the bot to use /mes with Factoids, that is possible too.\n" " ``@test is tests.`` and everytime when someone calls for\n" " ``test`` the bot answers ``* bot tests.``\n" +"\n" +" If you want the factoid to have random answers say (for example):\n" +" ``@fruit is (orange|apple|banana)``. So when ``@fruit`` is " +"called\n" +" the bot will reply with one of the listed fruits (random): ``orange``.\n" +" \n" +" If you want to replace the value of the factoid, for example:\n" +" ``@no Hi is Hey`` when you call ``@hi`` the bot says ``Hey``.\n" +"\n" +" If you want to append to the current value of a factoid say:\n" +" ``@Hi is also Hello``, so that when you call ``@hi`` the\n" +" bot says ``Hey, or Hello.`` \n" " " msgstr "" -#: plugin.py:358 +#: plugin.py:369 msgid "%s is %s" msgstr "%s è %s" -#: plugin.py:377 +#: plugin.py:388 msgid "Factoid %q is locked." msgstr "Il factoid %q è bloccato." -#: plugin.py:384 +#: plugin.py:395 msgid "Factoid %q not found." msgstr "Factoid %q non trovato." -#: plugin.py:394 +#: plugin.py:405 msgid "Missing an 'is' or '_is_'." msgstr "Manca un 'is' o un '_is_'." -#: plugin.py:410 +#: plugin.py:421 msgid "Factoid %q already exists." msgstr "Il factoid %q esiste già." -#: plugin.py:444 +#: plugin.py:455 msgid "%s, or %s" msgstr "%s, o %s" -#: plugin.py:465 +#: plugin.py:476 msgid "" "[] \n" "\n" @@ -90,7 +102,7 @@ msgstr "" "inviato nel canale stesso.\n" " " -#: plugin.py:478 +#: plugin.py:489 msgid "" "[] \n" "\n" @@ -108,41 +120,41 @@ msgstr "" "stesso.\n" " " -#: plugin.py:489 plugin.py:529 +#: plugin.py:500 plugin.py:540 msgid "No such factoid: %q" msgstr "Nessun factoid: %q" -#: plugin.py:498 +#: plugin.py:509 msgid "Created by %s on %s." msgstr "Creato da %s il %s." -#: plugin.py:504 +#: plugin.py:515 msgid " Last modified by %s on %s." msgstr " Ultima modifica da %s il %s." -#: plugin.py:512 +#: plugin.py:523 msgid " Last requested by %s on %s, requested %n." msgstr " Ultima richiesta da %s il %s, richiesto %n." -#: plugin.py:519 +#: plugin.py:530 msgid " Locked by %s on %s." msgstr " Bloccato da %s il %s." -#: plugin.py:534 +#: plugin.py:545 msgid "Factoid %q is already locked." msgstr "Il factoid %q è già bloccato." -#: plugin.py:537 +#: plugin.py:548 msgid "Factoid %q is not locked." msgstr "Il factoid %q non è bloccato." -#: plugin.py:547 +#: plugin.py:558 msgid "Cannot %s someone else's factoid unless you are an admin." msgstr "" "Impossibile %s il factoid di qualcun altro a meno che non sei un " "amministratore." -#: plugin.py:559 +#: plugin.py:570 msgid "" "[] \n" "\n" @@ -162,7 +174,7 @@ msgstr "" " messaggio non viene inviato nel canale stesso.\n" " " -#: plugin.py:570 +#: plugin.py:581 msgid "" "[] \n" "\n" @@ -180,7 +192,7 @@ msgstr "" " il messaggio non viene inviato nel canale stesso.\n" " " -#: plugin.py:581 +#: plugin.py:592 msgid "" "[] {popular|authored|recent}\n" "\n" @@ -205,53 +217,53 @@ msgstr "" "viene inviato nel canale stesso.\n" " " -#: plugin.py:603 +#: plugin.py:614 msgid "author" msgstr "autore" -#: plugin.py:605 +#: plugin.py:616 msgid "authors" msgstr "autori" -#: plugin.py:606 +#: plugin.py:617 msgid "Most prolific %s: %L" msgstr "%s più prolifico: %L" -#: plugin.py:608 plugin.py:620 +#: plugin.py:619 plugin.py:631 msgid "There are no factoids in my database." msgstr "Non ci sono factoid nel mio database." -#: plugin.py:615 +#: plugin.py:626 msgid "latest factoid" msgstr "ultimo factoid" -#: plugin.py:617 +#: plugin.py:628 msgid "latest factoids" msgstr "ultimi factoid" -#: plugin.py:618 +#: plugin.py:629 #, fuzzy msgid "%i %s: %L" msgstr "%s: %L" -#: plugin.py:627 +#: plugin.py:638 msgid "requested factoid" msgstr "factoid più richiesto" -#: plugin.py:629 +#: plugin.py:640 msgid "requested factoids" msgstr "factoid più richiesti" -#: plugin.py:630 +#: plugin.py:641 #, fuzzy msgid "Top %i %s: %L" msgstr "%s: %L" -#: plugin.py:632 +#: plugin.py:643 msgid "No factoids have been requested from my database." msgstr "Non è stato richiesto alcun factoid dal mio database." -#: plugin.py:636 +#: plugin.py:647 msgid "" "[] \n" "\n" @@ -273,15 +285,15 @@ msgstr "" "inviato nel canale stesso.\n" " " -#: plugin.py:649 +#: plugin.py:660 msgid "No factoids by %q found." msgstr "Nessun factoid di %q trovato." -#: plugin.py:652 +#: plugin.py:663 msgid "Author search for %q (%i found): %L" msgstr "Ricerca di autori per %q (trovati %i): %L" -#: plugin.py:659 +#: plugin.py:670 msgid "" "[] \n" "\n" @@ -300,15 +312,15 @@ msgstr "" "canale stesso.\n" " " -#: plugin.py:667 +#: plugin.py:678 msgid "No keys matching %q found." msgstr "Nessun factoid corrispondente a %q trovato." -#: plugin.py:675 +#: plugin.py:686 msgid "Key search for %q (%i found): %L" msgstr "Ricerca di chiavi per %q (trovate %i): %L" -#: plugin.py:682 +#: plugin.py:693 msgid "" "[] \n" "\n" @@ -327,15 +339,15 @@ msgstr "" "canale stesso.\n" " " -#: plugin.py:690 +#: plugin.py:701 msgid "No values matching %q found." msgstr "Nessun valore corrispondente a %q trovato." -#: plugin.py:693 +#: plugin.py:704 msgid "Value search for %q (%i found): %L" msgstr "Ricerca di valori per %q (trovati %i): %L" -#: plugin.py:700 +#: plugin.py:711 msgid "" "[] \n" "\n" @@ -351,7 +363,7 @@ msgstr "" " solo se se il messaggio non viene inviato nel canale stesso.\n" " " -#: plugin.py:713 +#: plugin.py:724 msgid "" "[]\n" "\n" @@ -369,6 +381,6 @@ msgstr "" "stesso.\n" " " -#: plugin.py:721 +#: plugin.py:732 msgid "No factoids in the database." msgstr "Nessun factoid nel database." diff --git a/plugins/MoobotFactoids/messages.pot b/plugins/MoobotFactoids/messages.pot index 0d806547b..9b57d435c 100644 --- a/plugins/MoobotFactoids/messages.pot +++ b/plugins/MoobotFactoids/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -39,40 +39,51 @@ msgid "" " ``@something is something`` And when you call ``@something`` the bot says\n" " ``something is something``.\n" "\n" -" If you want factoid to be in different format say (for example):\n" +" If you want the factoid to be in different format say (for example):\n" " ``@Hi is Hello`` And when you call ``@hi`` the bot says ``Hello.``\n" "\n" " If you want the bot to use /mes with Factoids, that is possible too.\n" " ``@test is tests.`` and everytime when someone calls for\n" " ``test`` the bot answers ``* bot tests.``\n" +"\n" +" If you want the factoid to have random answers say (for example):\n" +" ``@fruit is (orange|apple|banana)``. So when ``@fruit`` is called\n" +" the bot will reply with one of the listed fruits (random): ``orange``.\n" +" \n" +" If you want to replace the value of the factoid, for example:\n" +" ``@no Hi is Hey`` when you call ``@hi`` the bot says ``Hey``.\n" +"\n" +" If you want to append to the current value of a factoid say:\n" +" ``@Hi is also Hello``, so that when you call ``@hi`` the\n" +" bot says ``Hey, or Hello.`` \n" " " msgstr "" -#: plugin.py:358 +#: plugin.py:369 msgid "%s is %s" msgstr "" -#: plugin.py:377 +#: plugin.py:388 msgid "Factoid %q is locked." msgstr "" -#: plugin.py:384 +#: plugin.py:395 msgid "Factoid %q not found." msgstr "" -#: plugin.py:394 +#: plugin.py:405 msgid "Missing an 'is' or '_is_'." msgstr "" -#: plugin.py:410 +#: plugin.py:421 msgid "Factoid %q already exists." msgstr "" -#: plugin.py:444 +#: plugin.py:455 msgid "%s, or %s" msgstr "" -#: plugin.py:465 +#: plugin.py:476 #, docstring msgid "" "[] \n" @@ -83,7 +94,7 @@ msgid "" " " msgstr "" -#: plugin.py:478 +#: plugin.py:489 #, docstring msgid "" "[] \n" @@ -94,39 +105,39 @@ msgid "" " " msgstr "" -#: plugin.py:489 plugin.py:529 +#: plugin.py:500 plugin.py:540 msgid "No such factoid: %q" msgstr "" -#: plugin.py:498 +#: plugin.py:509 msgid "Created by %s on %s." msgstr "" -#: plugin.py:504 +#: plugin.py:515 msgid " Last modified by %s on %s." msgstr "" -#: plugin.py:512 +#: plugin.py:523 msgid " Last requested by %s on %s, requested %n." msgstr "" -#: plugin.py:519 +#: plugin.py:530 msgid " Locked by %s on %s." msgstr "" -#: plugin.py:534 +#: plugin.py:545 msgid "Factoid %q is already locked." msgstr "" -#: plugin.py:537 +#: plugin.py:548 msgid "Factoid %q is not locked." msgstr "" -#: plugin.py:547 +#: plugin.py:558 msgid "Cannot %s someone else's factoid unless you are an admin." msgstr "" -#: plugin.py:559 +#: plugin.py:570 #, docstring msgid "" "[] \n" @@ -137,7 +148,7 @@ msgid "" " " msgstr "" -#: plugin.py:570 +#: plugin.py:581 #, docstring msgid "" "[] \n" @@ -148,7 +159,7 @@ msgid "" " " msgstr "" -#: plugin.py:581 +#: plugin.py:592 #, docstring msgid "" "[] {popular|authored|recent}\n" @@ -161,51 +172,51 @@ msgid "" " " msgstr "" -#: plugin.py:603 +#: plugin.py:614 msgid "author" msgstr "" -#: plugin.py:605 +#: plugin.py:616 msgid "authors" msgstr "" -#: plugin.py:606 +#: plugin.py:617 msgid "Most prolific %s: %L" msgstr "" -#: plugin.py:608 plugin.py:620 +#: plugin.py:619 plugin.py:631 msgid "There are no factoids in my database." msgstr "" -#: plugin.py:615 +#: plugin.py:626 msgid "latest factoid" msgstr "" -#: plugin.py:617 +#: plugin.py:628 msgid "latest factoids" msgstr "" -#: plugin.py:618 +#: plugin.py:629 msgid "%i %s: %L" msgstr "" -#: plugin.py:627 +#: plugin.py:638 msgid "requested factoid" msgstr "" -#: plugin.py:629 +#: plugin.py:640 msgid "requested factoids" msgstr "" -#: plugin.py:630 +#: plugin.py:641 msgid "Top %i %s: %L" msgstr "" -#: plugin.py:632 +#: plugin.py:643 msgid "No factoids have been requested from my database." msgstr "" -#: plugin.py:636 +#: plugin.py:647 #, docstring msgid "" "[] \n" @@ -217,15 +228,15 @@ msgid "" " " msgstr "" -#: plugin.py:649 +#: plugin.py:660 msgid "No factoids by %q found." msgstr "" -#: plugin.py:652 +#: plugin.py:663 msgid "Author search for %q (%i found): %L" msgstr "" -#: plugin.py:659 +#: plugin.py:670 #, docstring msgid "" "[] \n" @@ -236,15 +247,15 @@ msgid "" " " msgstr "" -#: plugin.py:667 +#: plugin.py:678 msgid "No keys matching %q found." msgstr "" -#: plugin.py:675 +#: plugin.py:686 msgid "Key search for %q (%i found): %L" msgstr "" -#: plugin.py:682 +#: plugin.py:693 #, docstring msgid "" "[] \n" @@ -255,15 +266,15 @@ msgid "" " " msgstr "" -#: plugin.py:690 +#: plugin.py:701 msgid "No values matching %q found." msgstr "" -#: plugin.py:693 +#: plugin.py:704 msgid "Value search for %q (%i found): %L" msgstr "" -#: plugin.py:700 +#: plugin.py:711 #, docstring msgid "" "[] \n" @@ -273,7 +284,7 @@ msgid "" " " msgstr "" -#: plugin.py:713 +#: plugin.py:724 #, docstring msgid "" "[]\n" @@ -284,7 +295,7 @@ msgid "" " " msgstr "" -#: plugin.py:721 +#: plugin.py:732 msgid "No factoids in the database." msgstr "" diff --git a/plugins/Network/README.rst b/plugins/Network/README.rst index 5b41d2b71..887a8f6ac 100644 --- a/plugins/Network/README.rst +++ b/plugins/Network/README.rst @@ -23,67 +23,67 @@ Commands .. _command-network-authenticate: -authenticate takes no arguments +``authenticate takes no arguments`` Manually initiate SASL authentication. .. _command-network-capabilities: -capabilities [] +``capabilities []`` Returns the list of IRCv3 capabilities available on the network. .. _command-network-cmdall: -cmdall [ ...] +``cmdall [ ...]`` Perform (with its associated s) on all networks. .. _command-network-command: -command [ ...] +``command [ ...]`` Gives the bot (with its associated s) on . .. _command-network-connect: -connect [--nossl] [] [] +``connect [--nossl] [] []`` Connects to another network (which will be represented by the name provided in ) at . If port is not provided, it defaults to 6697, the default port for IRC with SSL. If password is provided, it will be sent to the server in a PASS command. If --nossl is provided, an SSL connection will not be attempted, and the port will default to 6667. .. _command-network-disconnect: -disconnect [] +``disconnect []`` Disconnects from the network represented by the network . If is given, quits the network with the given quit message. .. _command-network-driver: -driver [] +``driver []`` Returns the current network driver for . is only necessary if the message isn't sent on the network to which this command is to apply. .. _command-network-latency: -latency [] +``latency []`` Returns the current latency to . is only necessary if the message isn't sent on the network to which this command is to apply. .. _command-network-networks: -networks [--all] +``networks [--all]`` Returns the networks to which the bot is currently connected. If --all is given, also includes networks known by the bot, but not connected to. .. _command-network-reconnect: -reconnect [] [] +``reconnect [] []`` Disconnects and then reconnects to . If no network is given, disconnects and then reconnects to the network the command was given on. If no quit message is given, uses the configured one (supybot.plugins.Owner.quitMsg) or the nick of the person giving the command. .. _command-network-uptime: -uptime [] +``uptime []`` Returns the time duration since the connection was established. .. _command-network-whois: -whois [] +``whois [] `` Returns the WHOIS response gives for . is only necessary if the network is different than the network the command is sent on. .. _command-network-whowas: -whowas [] +``whowas [] `` Returns the WHOIS response gives for . is only necessary if the network is different than the network the command is sent on. .. _conf-Network: diff --git a/plugins/Network/locales/de.po b/plugins/Network/locales/de.po index dc6913f66..742fdbfe0 100644 --- a/plugins/Network/locales/de.po +++ b/plugins/Network/locales/de.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Supybot\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2011-10-29 20:20+0100\n" "Last-Translator: Florian Besser \n" "Language-Team: German \n" @@ -220,6 +220,22 @@ msgid "" " " msgstr "" +#: plugin.py:310 +#, fuzzy +msgid "" +"takes no arguments\n" +"\n" +" Manually initiate SASL authentication.\n" +" " +msgstr "" +"hat keine Argumente\n" +"\n" +"Gibt an zu welchen Netzwerken der Bot momentan verbunden ist." + +#: plugin.py:318 +msgid "SASL not supported" +msgstr "" + #~ msgid "is an op on %L" #~ msgstr "ist ein Operator in %L" @@ -248,13 +264,3 @@ msgstr "" #~ msgid "%s (%s) has been%s on server %s since %s (idle for %s) and %s.%s" #~ msgstr "" #~ "%s (%s) ist%s auf dem Server % seit %s (im Leerlauf für %s) und %s.%s" - -#~ msgid "" -#~ "takes no arguments\n" -#~ "\n" -#~ " Returns the networks to which the bot is currently connected.\n" -#~ " " -#~ msgstr "" -#~ "hat keine Argumente\n" -#~ "\n" -#~ "Gibt an zu welchen Netzwerken der Bot momentan verbunden ist." diff --git a/plugins/Network/locales/fi.po b/plugins/Network/locales/fi.po index 0e4fbf835..8bae86e05 100644 --- a/plugins/Network/locales/fi.po +++ b/plugins/Network/locales/fi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Network plugin for Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-12-20 11:34+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: Finnish <>\n" @@ -259,6 +259,24 @@ msgstr "" "\n" " Palauttaa ajan, joka on kulunut siitä, kun yhteys muodostettiin.]" +#: plugin.py:310 +#, fuzzy +msgid "" +"takes no arguments\n" +"\n" +" Manually initiate SASL authentication.\n" +" " +msgstr "" +"ei ota parametrejä\n" +"\n" +" Palauttaa verkot, joihin botti on tällä hetkellä muodostanut " +"yhteyden.\n" +" " + +#: plugin.py:318 +msgid "SASL not supported" +msgstr "" + #~ msgid "is an op on %L" #~ msgstr "on kanavaoperaattori %L:llä" @@ -293,15 +311,3 @@ msgstr "" #, fuzzy #~ msgid "%s (%s) has been%s on server %s and disconnected on %s." #~ msgstr "%s (%s) on ollut %s palvelimella %s %s lähtien (jouten %s) ja %s.%s" - -#~ msgid "" -#~ "takes no arguments\n" -#~ "\n" -#~ " Returns the networks to which the bot is currently connected.\n" -#~ " " -#~ msgstr "" -#~ "ei ota parametrejä\n" -#~ "\n" -#~ " Palauttaa verkot, joihin botti on tällä hetkellä muodostanut " -#~ "yhteyden.\n" -#~ " " diff --git a/plugins/Network/locales/fr.po b/plugins/Network/locales/fr.po index ef45a76f3..e8c043d6c 100644 --- a/plugins/Network/locales/fr.po +++ b/plugins/Network/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Limnoria \n" @@ -224,6 +224,22 @@ msgstr "" "\n" "Indique depuis combien de temps la connexion est établie." +#: plugin.py:310 +#, fuzzy +msgid "" +"takes no arguments\n" +"\n" +" Manually initiate SASL authentication.\n" +" " +msgstr "" +"ne prend pas d'argument\n" +" \n" +"Retourne la liste des réseaux auxquels le bot est actuellement connecté." + +#: plugin.py:318 +msgid "SASL not supported" +msgstr "" + #~ msgid "is an op on %L" #~ msgstr "est op sur %L" @@ -254,13 +270,3 @@ msgstr "" #~ msgid "%s (%s) has been%s on server %s and disconnect on %s." #~ msgstr "%s (%s) a été%s sur le serveur %s puis c’est déconnecté à %s." - -#~ msgid "" -#~ "takes no arguments\n" -#~ "\n" -#~ " Returns the networks to which the bot is currently connected.\n" -#~ " " -#~ msgstr "" -#~ "ne prend pas d'argument\n" -#~ " \n" -#~ "Retourne la liste des réseaux auxquels le bot est actuellement connecté." diff --git a/plugins/Network/locales/it.po b/plugins/Network/locales/it.po index 31cd1e5c0..d8cff6582 100644 --- a/plugins/Network/locales/it.po +++ b/plugins/Network/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-07-04 19:51+0200\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -243,6 +243,23 @@ msgstr "" " Riporta da quanto tempo è connesso il bot.\n" " " +#: plugin.py:310 +#, fuzzy +msgid "" +"takes no arguments\n" +"\n" +" Manually initiate SASL authentication.\n" +" " +msgstr "" +"non necessita argomenti\n" +"\n" +" Restituisce le reti alle quali è attualmente connesso il bot.\n" +" " + +#: plugin.py:318 +msgid "SASL not supported" +msgstr "" + #~ msgid "is an op on %L" #~ msgstr "è un op su %L" @@ -269,14 +286,3 @@ msgstr "" #~ msgid "%s (%s) has been%s on server %s since %s (idle for %s) and %s.%s" #~ msgstr "%s (%s) è%s sul server %s dalle %s (inattivo da %s) ed %s.%s" - -#~ msgid "" -#~ "takes no arguments\n" -#~ "\n" -#~ " Returns the networks to which the bot is currently connected.\n" -#~ " " -#~ msgstr "" -#~ "non necessita argomenti\n" -#~ "\n" -#~ " Restituisce le reti alle quali è attualmente connesso il bot.\n" -#~ " " diff --git a/plugins/Network/messages.pot b/plugins/Network/messages.pot index 2930b7d44..d3e63070e 100644 --- a/plugins/Network/messages.pot +++ b/plugins/Network/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -180,3 +180,16 @@ msgid "" " " msgstr "" +#: plugin.py:310 +#, docstring +msgid "" +"takes no arguments\n" +"\n" +" Manually initiate SASL authentication.\n" +" " +msgstr "" + +#: plugin.py:318 +msgid "SASL not supported" +msgstr "" + diff --git a/plugins/News/README.rst b/plugins/News/README.rst index 16bd13ed7..93dcd8a6a 100644 --- a/plugins/News/README.rst +++ b/plugins/News/README.rst @@ -22,27 +22,27 @@ Commands .. _command-news-add: -add [] : +``add [] : `` Adds a given news item of to a channel with the given . If isn't 0, that news item will expire seconds from now. is only necessary if the message isn't sent in the channel itself. .. _command-news-change: -change [] +``change [] `` Changes the news item with from according to the regular expression . should be of the form s/text/replacement/flags. is only necessary if the message isn't sent on the channel itself. .. _command-news-news: -news [] [] +``news [] []`` Display the news items for in the format of '(#id) subject'. If is given, retrieve only that news item; otherwise retrieve all news items. is only necessary if the message isn't sent in the channel itself. .. _command-news-old: -old [] [] +``old [] []`` Returns the old news item for with . If no number is given, returns all the old news items in reverse order. is only necessary if the message isn't sent in the channel itself. .. _command-news-remove: -remove [] +``remove [] `` Removes the news item with from . is only necessary if the message isn't sent in the channel itself. .. _conf-News: diff --git a/plugins/News/messages.pot b/plugins/News/messages.pot index 53b6df35c..4987ecc16 100644 --- a/plugins/News/messages.pot +++ b/plugins/News/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/NickAuth/README.rst b/plugins/NickAuth/README.rst index da292f913..debfdfb62 100644 --- a/plugins/NickAuth/README.rst +++ b/plugins/NickAuth/README.rst @@ -25,22 +25,22 @@ Commands .. _command-nickauth-auth: -auth takes no argument +``auth takes no argument`` Tries to authenticate you using network services. If you get no reply, it means you are not authenticated to the network services. .. _command-nickauth-nick.add: -nick add [] +``nick add [] `` Add to the list of nicks owned by the on the . You have to register this nick to the network services to be authenticated. defaults to the current network. .. _command-nickauth-nick.list: -nick list [] [] +``nick list [] []`` Lists nicks of the on the network. defaults to the current network. .. _command-nickauth-nick.remove: -nick remove [] +``nick remove [] `` Remove from the list of nicks owned by the on the . defaults to the current network. .. _conf-NickAuth: diff --git a/plugins/NickAuth/locales/ru.po b/plugins/NickAuth/locales/ru.po new file mode 100644 index 000000000..8e4fa4f29 --- /dev/null +++ b/plugins/NickAuth/locales/ru.po @@ -0,0 +1,153 @@ +# NickAuth plugin in Limnoria. +# Copyright (C) 2013 Limnoria +# ssdaniel24 , 2024. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"PO-Revision-Date: 2024-07-20 22:11+0300\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: ru\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" +"X-Generator: Poedit 3.4.2\n" + +#: plugin.py:47 +msgid "" +"\n" +" This plugin allows users to use their network services account to\n" +" authenticate to the bot.\n" +"\n" +" They first have to use ``@nickauth nick add `` while being\n" +" identified to the bot and then use ``@auth`` when they want to\n" +" identify to the bot.\n" +" " +msgstr "" +"\n" +"Этот плагин позволяет пользователям использовать их аккаунт в сервисах IRC-" +"сети для авторизации в боте.\n" +"\n" +"Но сначала им потребуется использовать команду ``@nickauth nick add <свой " +"ник>``, будучи авторизованным в боте, а в дальнейшем использовать " +"``@auth``, когда они хотят авторизоваться в боте." + +#: plugin.py:62 plugin.py:67 +msgid "You are not authenticated." +msgstr "Вы не авторизованы." + +#: plugin.py:70 +msgid "You must be owner to do that." +msgstr "Вы должны быть владельцем, чтобы сделать это." + +#: plugin.py:75 +msgid "" +"[] \n" +"\n" +" Add to the list of nicks owned by the on the\n" +" . You have to register this nick to the network\n" +" services to be authenticated.\n" +" defaults to the current network.\n" +" " +msgstr "" +"[<сеть>] <пользователь> <ник>\n" +"\n" +"Добавляет <ник> в список ников, которыми владеет <пользователь> в данной " +"<сети>. Вы должны зарегистрировать этот ник в сервисах сети, чтобы иметь " +"возможность авторизоваться через него.\n" +"<сетью> по умолчанию задана текущая." + +#: plugin.py:88 +msgid "This nick is already used by someone on this network." +msgstr "Этот ник уже используется кем-то в этой сети." + +#: plugin.py:97 +msgid "" +"[] \n" +"\n" +" Remove from the list of nicks owned by the on " +"the\n" +" .\n" +" defaults to the current network.\n" +" " +msgstr "" +"[<сеть>] <пользователь> <ник>\n" +"\n" +"Удаляет <ник> из списка ников, которыми владеет <пользователь> в данной " +"<сети>.\n" +"<сетью> по умолчанию задана текущая." + +#: plugin.py:109 +msgid "This nick is not registered to you on this network." +msgstr "Этот ник не зарегистрирован за вами в этой сети." + +#: plugin.py:118 +msgid "" +"[] []\n" +"\n" +" Lists nicks of the on the network.\n" +" defaults to the current network.\n" +" " +msgstr "" +"[<сеть>] [<пользователь>]\n" +"\n" +"Показывает список ников <пользователя> в этой сети.\n" +"<сетью> по умолчанию задана текущая." + +#: plugin.py:127 +msgid "You are not identified and is not given." +msgstr "Вы не авторизованы, и <пользователь> не дан." + +#: plugin.py:138 +#, fuzzy +msgid "You have no recognized nick on this network." +msgstr "У вас нет распознанных ников в этой сети." + +#: plugin.py:141 +#, fuzzy +msgid "%s has no recognized nick on this network." +msgstr "%s не имеет распознанных ников в этой сети." + +#: plugin.py:148 +msgid "" +"takes no argument\n" +"\n" +" Tries to authenticate you using network services.\n" +" If you get no reply, it means you are not authenticated to the\n" +" network services." +msgstr "" +"не принимает аргументов\n" +"\n" +"Пытается авторизовать вас, используя сервисы сети. Если вы не получили " +"ответа, то значит вы не авторизованы в сервисах сети." + +#: plugin.py:159 +msgid "" +"If the messages has a server tag with account name, tries to\n" +" authenticate it." +msgstr "" + +#: plugin.py:180 +msgid "" +"Your secure flag is true and your hostmask doesn't match any of your known " +"hostmasks." +msgstr "" +"Ваша настройка защита установлена в true, и ваша хост-маска не совпадает " +"ни с одной известной." + +#: plugin.py:184 +msgid "You are now authenticated as %s." +msgstr "Вы авторизованы как %s." + +#: plugin.py:186 +msgid "" +"No user claimed the nick %s on this network. If this is you, you should " +"connect with an other method and use the \"nickauth nick add\" command, or " +"ask the owner of the bot to do it." +msgstr "" +"Ни один пользователь не владеет ником %s в этой сети. Если это вы, то вы " +"должны подключиться другим способом и использовать команду \"nickauth nick " +"add\" или попросить владельца бота сделать это." diff --git a/plugins/NickAuth/messages.pot b/plugins/NickAuth/messages.pot index de13bf713..17cb0af1b 100644 --- a/plugins/NickAuth/messages.pot +++ b/plugins/NickAuth/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/NickAuth/plugin.py b/plugins/NickAuth/plugin.py index 7597fa285..fcccd41e1 100644 --- a/plugins/NickAuth/plugin.py +++ b/plugins/NickAuth/plugin.py @@ -48,8 +48,8 @@ class NickAuth(callbacks.Plugin): This plugin allows users to use their network services account to authenticate to the bot. - They first have to use ``@nickauth nick add `` while being - identified to the bot and then use ``@auth`` when they want to + They first have to use ``@nickauth nick add `` while + identified to the bot, and then use ``@auth`` when they want to identify to the bot. """ @@ -59,12 +59,12 @@ class NickAuth(callbacks.Plugin): class nick(callbacks.Commands): def _check_auth(self, irc, msg, user): if user is None: - irc.error(_('You are not authenticated.'), Raise=True) + irc.error(_('You are not logged in to the bot.'), Raise=True) if not user.checkHostmask(msg.prefix): try: u = ircdb.users.getUser(msg.prefix) except KeyError: - irc.error(_('You are not authenticated.'), + irc.error(_('You are not logged in to the bot.'), Raise=True) if not u._checkCapability('owner'): irc.error(_('You must be owner to do that.'), @@ -72,11 +72,11 @@ class NickAuth(callbacks.Plugin): @internationalizeDocstring def add(self, irc, msg, args, network, user, nick): - """[] + """[] [] - Add to the list of nicks owned by the on the - . You have to register this nick to the network - services to be authenticated. + Add to the list of network services accounts owned by + on . is only required if you + are not already logged in to Limnoria. defaults to the current network. """ network = network.network or irc.network @@ -85,8 +85,8 @@ class NickAuth(callbacks.Plugin): try: user.addNick(network, nick) except KeyError: - irc.error(_('This nick is already used by someone on this ' - 'network.'), Raise=True) + irc.error(_('This services account is already used by someone ' + 'on this network.'), Raise=True) irc.replySuccess() add = wrap(add, [optional('networkIrc'), optional('otherUser'), @@ -94,10 +94,11 @@ class NickAuth(callbacks.Plugin): @internationalizeDocstring def remove(self, irc, msg, args, network, user, nick): - """[] + """[] [] - Remove from the list of nicks owned by the on the - . + Remove from the list of network services accounts owned by + on . is only required if you + are not already logged in to Limnoria. defaults to the current network. """ network = network.network or irc.network @@ -106,8 +107,8 @@ class NickAuth(callbacks.Plugin): try: user.removeNick(network, nick) except KeyError: - irc.error(_('This nick is not registered to you on this ' - 'network.'), Raise=True) + irc.error(_('This services account is not registered to you on ' + 'this network.'), Raise=True) irc.replySuccess() remove = wrap(remove, [optional('networkIrc'), optional('otherUser'), @@ -115,9 +116,10 @@ class NickAuth(callbacks.Plugin): @internationalizeDocstring def list(self, irc, msg, args, network, user): - """[] [] + """[] [] - Lists nicks of the on the network. + Lists services accounts registered to on the network, + or your own bot account if no username is given. defaults to the current network. """ network = network.network or irc.network @@ -135,11 +137,11 @@ class NickAuth(callbacks.Plugin): raise KeyError except KeyError: if user == ircdb.users.getUser(msg.prefix): - irc.error(_('You have no recognized nick on this ' - 'network.'), Raise=True) + irc.error(_('You have no recognized services accounts on ' + 'this network.'), Raise=True) else: - irc.error(_('%s has no recognized nick on this ' - 'network.') % user.name, Raise=True) + irc.error(_('%s has no recognized services accounts on this ' + 'network.') % user.name, Raise=True) list = wrap(list, [optional('networkIrc'), optional('otherUser')]) @@ -148,7 +150,7 @@ class NickAuth(callbacks.Plugin): """takes no argument Tries to authenticate you using network services. - If you get no reply, it means you are not authenticated to the + If you get no reply, it means you are not authenticated to network services.""" nick = ircutils.toLower(msg.nick) self._requests[(irc.network, msg.nick)] = (time.time(), msg.prefix, irc) @@ -183,7 +185,7 @@ class NickAuth(callbacks.Plugin): ircdb.users.setUser(user, flush=False) irc.reply(_('You are now authenticated as %s.') % user.name) else: - irc.error(_('No user claimed the nick %s on this network. ' + irc.error(_('No user claimed the account %s on this network. ' 'If this is you, you should connect with an other ' 'method and use the "nickauth nick add" command, ' 'or ask the owner of the bot to do it.') diff --git a/plugins/NickAuth/test.py b/plugins/NickAuth/test.py index 4542358e5..d2cb2b26a 100644 --- a/plugins/NickAuth/test.py +++ b/plugins/NickAuth/test.py @@ -128,7 +128,7 @@ class NickAuthTestCase(PluginTestCase): def testList(self): self.assertNotError('register foobar 123') - self.assertRegexp('nick list', 'You have no recognized nick') + self.assertRegexp('nick list', 'You have no recognized services accounts') self.assertNotError('nick add foo') self.assertRegexp('nick list', 'foo') self.assertNotError('nick add %s bar' % self.nick) diff --git a/plugins/NickCapture/messages.pot b/plugins/NickCapture/messages.pot index 5ce21f985..3561d4562 100644 --- a/plugins/NickCapture/messages.pot +++ b/plugins/NickCapture/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Nickometer/README.rst b/plugins/Nickometer/README.rst index e23a98175..a43d322d7 100644 --- a/plugins/Nickometer/README.rst +++ b/plugins/Nickometer/README.rst @@ -22,7 +22,7 @@ Commands .. _command-nickometer-nickometer: -nickometer [] +``nickometer []`` Tells you how lame said nick is. If is not given, uses the nick of the person giving the command. .. _conf-Nickometer: diff --git a/plugins/Nickometer/messages.pot b/plugins/Nickometer/messages.pot index 7b70365ca..5b65b6120 100644 --- a/plugins/Nickometer/messages.pot +++ b/plugins/Nickometer/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Note/README.rst b/plugins/Note/README.rst index 7608bc8b7..c24954f88 100644 --- a/plugins/Note/README.rst +++ b/plugins/Note/README.rst @@ -21,37 +21,37 @@ Commands .. _command-note-list: -list [--{old,sent}] [--{from,to} ] +``list [--{old,sent}] [--{from,to} ]`` Retrieves the ids of all your unread notes. If --old is given, list read notes. If --sent is given, list notes that you have sent. If --from is specified, only lists notes sent to you from . If --to is specified, only lists notes sent by you to . .. _command-note-next: -next takes no arguments +``next takes no arguments`` Retrieves your next unread note, if any. .. _command-note-note: -note +``note `` Retrieves a single note by its unique note id. Use the 'note list' command to see what unread notes you have. .. _command-note-reply: -reply +``reply `` Sends a note in reply to . .. _command-note-search: -search [--{regexp} ] [--sent] [] +``search [--{regexp} ] [--sent] []`` Searches your received notes for ones matching . If --regexp is given, its associated value is taken as a regexp and matched against the notes. If --sent is specified, only search sent notes. .. _command-note-send: -send ,[,[...]] +``send ,[,[...]] `` Sends a new note to the user specified. Multiple recipients may be specified by separating their names by commas. .. _command-note-unsend: -unsend +``unsend `` Unsends the note with the id given. You must be the author of the note, and it must be unread. .. _conf-Note: diff --git a/plugins/Note/messages.pot b/plugins/Note/messages.pot index 5bedccc63..f0ba1f6ed 100644 --- a/plugins/Note/messages.pot +++ b/plugins/Note/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Owner/README.rst b/plugins/Owner/README.rst index 80ff97e81..fcacd8146 100644 --- a/plugins/Owner/README.rst +++ b/plugins/Owner/README.rst @@ -22,82 +22,82 @@ Commands .. _command-owner-announce: -announce +``announce `` Sends to all channels the bot is currently on and not lobotomized in. .. _command-owner-defaultcapability: -defaultcapability {add|remove} +``defaultcapability {add|remove} `` Adds or removes (according to the first argument) from the default capabilities given to users (the configuration variable supybot.capabilities stores these). .. _command-owner-defaultplugin: -defaultplugin [--remove] [] +``defaultplugin [--remove] []`` Sets the default plugin for to . If --remove is given, removes the current default plugin for . If no plugin is given, returns the current default plugin set for . See also, supybot.commands.defaultPlugins.importantPlugins. .. _command-owner-disable: -disable [] +``disable [] `` Disables the command for all users (including the owners). If is given, only disables the from . If you want to disable a command for most users but not for yourself, set a default capability of -plugin.command or -command (if you want to disable the command in all plugins). .. _command-owner-enable: -enable [] +``enable [] `` Enables the command for all users. If if given, only enables the from . This command is the inverse of disable. .. _command-owner-flush: -flush takes no arguments +``flush takes no arguments`` Runs all the periodic flushers in world.flushers. This includes flushing all logs and all configuration changes to disk. .. _command-owner-ircquote: -ircquote +``ircquote `` Sends the raw string given to the server. .. _command-owner-load: -load [--deprecated] +``load [--deprecated] `` Loads the plugin from any of the directories in conf.supybot.directories.plugins; usually this includes the main installed directory and 'plugins' in the current directory. --deprecated is necessary if you wish to load deprecated plugins. .. _command-owner-logmark: -logmark +``logmark `` Logs to the global Supybot log at critical priority. Useful for marking logfiles for later searching. .. _command-owner-quit: -quit [] +``quit []`` Exits the bot with the QUIT message . If is not given, the default quit message (supybot.plugins.Owner.quitMsg) will be used. If there is no default quitMsg set, your nick will be used. The standard substitutions ($version, $nick, etc.) are all handled appropriately. .. _command-owner-reload: -reload +``reload `` Unloads and subsequently reloads the plugin by name; use the 'list' command to see a list of the currently loaded plugins. .. _command-owner-reloadlocale: -reloadlocale takes no argument +``reloadlocale takes no argument`` Reloads the locale of the bot. .. _command-owner-rename: -rename +``rename `` Renames in to the . .. _command-owner-unload: -unload +``unload `` Unloads the callback by name; use the 'list' command to see a list of the currently loaded plugins. Obviously, the Owner plugin can't be unloaded. .. _command-owner-unrename: -unrename +``unrename `` Removes all renames in . The plugin will be reloaded after this command is run. .. _command-owner-upkeep: -upkeep [] +``upkeep []`` Runs the standard upkeep stuff (flushes and gc.collects()). If given a level, runs that level of upkeep (currently, the only supported level is "high", which causes the bot to flush a lot of caches as well as do normal upkeep stuff). .. _conf-Owner: diff --git a/plugins/Owner/locales/de.po b/plugins/Owner/locales/de.po index 07d3e7ed8..e9b207cdf 100644 --- a/plugins/Owner/locales/de.po +++ b/plugins/Owner/locales/de.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Supybot\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-04-27 15:38+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: German \n" @@ -18,7 +18,7 @@ msgid "" " that should not be removed!" msgstr "" -#: plugin.py:319 +#: plugin.py:374 msgid "" "If the given message is a command, triggers Limnoria's\n" " command-dispatching for that command.\n" @@ -35,7 +35,7 @@ msgid "" " " msgstr "" -#: plugin.py:372 +#: plugin.py:427 msgid "" "\n" "\n" @@ -49,7 +49,7 @@ msgstr "" "Schreibt in die globale Supybot Logdatei mit kritischer Priorität. " "Nützlich um Logdateien zu markieren um sie später zu durchsuchen." -#: plugin.py:382 +#: plugin.py:437 msgid "" "\n" "\n" @@ -62,7 +62,7 @@ msgstr "" "Sendet an alle Kanäle in denen der Bot momentan ist und nicht " "hirnamputiert ist." -#: plugin.py:403 +#: plugin.py:458 msgid "" "[--remove] []\n" "\n" @@ -82,7 +82,7 @@ msgstr "" "ausgegeben. Schau auch nach supybot.commands.defaultPlugins." "importantPlugins. " -#: plugin.py:441 +#: plugin.py:496 msgid "" "\n" "\n" @@ -93,7 +93,7 @@ msgstr "" "\n" "Sendet die Zeichenketten zum angegeben Server." -#: plugin.py:455 +#: plugin.py:514 #, fuzzy msgid "" "[]\n" @@ -114,7 +114,7 @@ msgstr "" "wird die Standard Endnachricht (supybot.plugins.Owner.quitMsg) benutzt. Wenn " "es keine standard quitMsg gesetzt ist, wird dein Nickname benutzt." -#: plugin.py:473 +#: plugin.py:532 msgid "" "takes no arguments\n" "\n" @@ -127,7 +127,7 @@ msgstr "" "Führt alle periodischen Flusher in world.flushers aus. Das beinhaltet alle " "Log und Konfigurationsänderung auf die Festplatte zu schreiben." -#: plugin.py:483 +#: plugin.py:542 msgid "" "[]\n" "\n" @@ -147,7 +147,7 @@ msgstr "" "veranlässt viele Caches aufzuräumen und normale Instandhaltung zu " "bestreiben)." -#: plugin.py:529 +#: plugin.py:588 msgid "" "[--deprecated] \n" "\n" @@ -164,7 +164,7 @@ msgstr "" "Hauptinstallationsverzeichnis und 'plugins' im momentanen Verzeichnis. --" "deprecated ist nötig falls du veraltete Plugins laden möchtest." -#: plugin.py:567 +#: plugin.py:626 msgid "" "\n" "\n" @@ -177,7 +177,7 @@ msgstr "" "Entläd und läd das das Plugin neu; benutze den Befehl 'list' um dir die " "momentan geladenen Plugins anzuzeigen zu lassen." -#: plugin.py:602 +#: plugin.py:661 #, fuzzy msgid "" "\n" @@ -193,7 +193,7 @@ msgstr "" "Callbacks momentan geladen sind. Es ist wohl klar, dass das Owner Plugin " "nicht entladen werden kann." -#: plugin.py:631 +#: plugin.py:690 msgid "" "{add|remove} \n" "\n" @@ -209,7 +209,7 @@ msgstr "" "den Standardfähigkeiten die den Benutzern gegeben werden (die " "Konfigurationsvariable supybot.capabilities speichert diese)." -#: plugin.py:656 +#: plugin.py:715 msgid "" "[] \n" "\n" @@ -231,7 +231,7 @@ msgstr "" "Nutzer deaktiveren willst setze eine standard Fähigkeit -plugin.befehl oder -" "befehl (falls du den Befehl von allen Plugins deaktivieren willst)." -#: plugin.py:683 +#: plugin.py:742 msgid "" "[] \n" "\n" @@ -247,7 +247,7 @@ msgstr "" "nur der von aktiviert. Dieser Befehl ist das gegenteil von " "disable." -#: plugin.py:702 +#: plugin.py:761 msgid "" " \n" "\n" @@ -258,7 +258,7 @@ msgstr "" "\n" "Benennt von in um." -#: plugin.py:719 +#: plugin.py:778 msgid "" "\n" "\n" @@ -271,7 +271,7 @@ msgstr "" "Entfernt alle Namensänderungen in . Das Plugin wird neu geladen nach " "diesem Befehl." -#: plugin.py:732 +#: plugin.py:791 msgid "" "takes no argument\n" "\n" diff --git a/plugins/Owner/locales/fi.po b/plugins/Owner/locales/fi.po index 1a9aceb0c..26cfad406 100644 --- a/plugins/Owner/locales/fi.po +++ b/plugins/Owner/locales/fi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-03-15 08:28+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -23,7 +23,7 @@ msgid "" " that should not be removed!" msgstr "" -#: plugin.py:319 +#: plugin.py:374 msgid "" "If the given message is a command, triggers Limnoria's\n" " command-dispatching for that command.\n" @@ -40,7 +40,7 @@ msgid "" " " msgstr "" -#: plugin.py:372 +#: plugin.py:427 msgid "" "\n" "\n" @@ -50,7 +50,7 @@ msgid "" " " msgstr "" -#: plugin.py:382 +#: plugin.py:437 msgid "" "\n" "\n" @@ -59,7 +59,7 @@ msgid "" " " msgstr "" -#: plugin.py:403 +#: plugin.py:458 msgid "" "[--remove] []\n" "\n" @@ -72,7 +72,7 @@ msgid "" " " msgstr "" -#: plugin.py:441 +#: plugin.py:496 msgid "" "\n" "\n" @@ -80,7 +80,7 @@ msgid "" " " msgstr "" -#: plugin.py:455 +#: plugin.py:514 msgid "" "[]\n" "\n" @@ -95,7 +95,7 @@ msgid "" " " msgstr "" -#: plugin.py:473 +#: plugin.py:532 msgid "" "takes no arguments\n" "\n" @@ -104,7 +104,7 @@ msgid "" " " msgstr "" -#: plugin.py:483 +#: plugin.py:542 msgid "" "[]\n" "\n" @@ -117,7 +117,7 @@ msgid "" " " msgstr "" -#: plugin.py:529 +#: plugin.py:588 msgid "" "[--deprecated] \n" "\n" @@ -128,7 +128,7 @@ msgid "" " " msgstr "" -#: plugin.py:567 +#: plugin.py:626 msgid "" "\n" "\n" @@ -137,7 +137,7 @@ msgid "" " " msgstr "" -#: plugin.py:602 +#: plugin.py:661 msgid "" "\n" "\n" @@ -147,7 +147,7 @@ msgid "" " " msgstr "" -#: plugin.py:631 +#: plugin.py:690 msgid "" "{add|remove} \n" "\n" @@ -158,7 +158,7 @@ msgid "" " " msgstr "" -#: plugin.py:656 +#: plugin.py:715 msgid "" "[] \n" "\n" @@ -173,7 +173,7 @@ msgid "" " " msgstr "" -#: plugin.py:683 +#: plugin.py:742 msgid "" "[] \n" "\n" @@ -184,7 +184,7 @@ msgid "" " " msgstr "" -#: plugin.py:702 +#: plugin.py:761 msgid "" " \n" "\n" @@ -192,7 +192,7 @@ msgid "" " " msgstr "" -#: plugin.py:719 +#: plugin.py:778 msgid "" "\n" "\n" @@ -201,7 +201,7 @@ msgid "" " " msgstr "" -#: plugin.py:732 +#: plugin.py:791 msgid "" "takes no argument\n" "\n" diff --git a/plugins/Owner/locales/fr.po b/plugins/Owner/locales/fr.po index 0586dfe64..3f968c059 100644 --- a/plugins/Owner/locales/fr.po +++ b/plugins/Owner/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: Valentin Lorentz \n" "Language-Team: Limnoria \n" @@ -19,7 +19,7 @@ msgid "" " that should not be removed!" msgstr "" -#: plugin.py:319 +#: plugin.py:374 msgid "" "If the given message is a command, triggers Limnoria's\n" " command-dispatching for that command.\n" @@ -36,7 +36,7 @@ msgid "" " " msgstr "" -#: plugin.py:372 +#: plugin.py:427 msgid "" "\n" "\n" @@ -50,7 +50,7 @@ msgstr "" "Log le aux logs globaux de Supybot avec une priorité critique. Utile " "pour marquer les fichiers de logs pour des recherches ultérieures." -#: plugin.py:382 +#: plugin.py:437 msgid "" "\n" "\n" @@ -63,7 +63,7 @@ msgstr "" "Envoie le à tous les canaux sur lesquels le bot est sans être " "lobotomisé." -#: plugin.py:403 +#: plugin.py:458 msgid "" "[--remove] []\n" "\n" @@ -82,7 +82,7 @@ msgstr "" "retourne le plugin par défaut actuel. Voyez supybot.commands.defaultPlugins." "importantPlugins pour plus d'informations." -#: plugin.py:441 +#: plugin.py:496 msgid "" "\n" "\n" @@ -93,7 +93,7 @@ msgstr "" "\n" "Envoie la chaîne directement au serveur." -#: plugin.py:455 +#: plugin.py:514 #, fuzzy msgid "" "[]\n" @@ -114,7 +114,7 @@ msgstr "" "donné, le message de quit par défaut (supybot.plugins.Owner.quitMsg) est " "utilisé. Si quitMsg est vide, votre nick sera utilisé." -#: plugin.py:473 +#: plugin.py:532 msgid "" "takes no arguments\n" "\n" @@ -127,7 +127,7 @@ msgstr "" "Lance tous les 'flushers' périodiques dans world.flushers. Ceci inclue " "l'écriture des logs et de la configuration sur le disque." -#: plugin.py:483 +#: plugin.py:542 msgid "" "[]\n" "\n" @@ -146,7 +146,7 @@ msgstr "" "\"high\", ce qui fait que le bot vide beaucoup plus de cache que ce qu'il " "fait normalement)." -#: plugin.py:529 +#: plugin.py:588 msgid "" "[--deprecated] \n" "\n" @@ -163,7 +163,7 @@ msgstr "" "l'installation, et 'plugins' dans le répertoire courrant. Utilisez --" "deprected si nécessaire pour charger des plugins dépréciés." -#: plugin.py:567 +#: plugin.py:626 msgid "" "\n" "\n" @@ -176,7 +176,7 @@ msgstr "" "Décharger et recharge immédiatement le ; utilisez la commande " "'list' pour lister les plugins actuellement chargés." -#: plugin.py:602 +#: plugin.py:661 msgid "" "\n" "\n" @@ -190,7 +190,7 @@ msgstr "" "Décharge le ; utilisez la commande 'list' pour lister les plugins " "actuellement chargés. Évidemment, le plugin Owner ne peut être déchargé." -#: plugin.py:631 +#: plugin.py:690 msgid "" "{add|remove} \n" "\n" @@ -206,7 +206,7 @@ msgstr "" "liste des capacités par défaut données aux utilisateurs (stockée dans la " "variable de configuration supybot.capabilities)." -#: plugin.py:656 +#: plugin.py:715 msgid "" "[] \n" "\n" @@ -228,7 +228,7 @@ msgstr "" "utilisateurs sauf vous-même, définissez la capacité par défaut -plugin." "command ou -command." -#: plugin.py:683 +#: plugin.py:742 msgid "" "[] \n" "\n" @@ -244,7 +244,7 @@ msgstr "" "ne réactive la que pour le . Cette commande est l'inverse " "de disable." -#: plugin.py:702 +#: plugin.py:761 msgid "" " \n" "\n" @@ -255,7 +255,7 @@ msgstr "" "\n" "Renomme la du par un ." -#: plugin.py:719 +#: plugin.py:778 msgid "" "\n" "\n" @@ -268,7 +268,7 @@ msgstr "" "Supprime tous les renommages du . Ce plugin sera rechargé après que " "cette commande ait été lancée." -#: plugin.py:732 +#: plugin.py:791 msgid "" "takes no argument\n" "\n" diff --git a/plugins/Owner/locales/hu.po b/plugins/Owner/locales/hu.po index bf7ab3c79..81c3e76e2 100644 --- a/plugins/Owner/locales/hu.po +++ b/plugins/Owner/locales/hu.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria Owner\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-04-27 15:13+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -21,7 +21,7 @@ msgid "" " that should not be removed!" msgstr "" -#: plugin.py:319 +#: plugin.py:374 msgid "" "If the given message is a command, triggers Limnoria's\n" " command-dispatching for that command.\n" @@ -38,7 +38,7 @@ msgid "" " " msgstr "" -#: plugin.py:372 +#: plugin.py:427 msgid "" "\n" "\n" @@ -52,7 +52,7 @@ msgstr "" "Naplózza -et a globális Supybot naplóba kritikus prioritással. " "Hasznos a naplófájlok megjelölésére későbbi kereséshez." -#: plugin.py:382 +#: plugin.py:437 msgid "" "\n" "\n" @@ -64,7 +64,7 @@ msgstr "" "\n" "Elküldi -et minden csatornára, ahol a bot van és nincs némítva." -#: plugin.py:403 +#: plugin.py:458 msgid "" "[--remove] []\n" "\n" @@ -82,7 +82,7 @@ msgstr "" "Ha nincs bővítmény megadva, kiírja jelenlegi alapértelmezett " "bővítményét. Lásd még, supybot.commands.defaultPlugins.importantPlugins." -#: plugin.py:441 +#: plugin.py:496 msgid "" "\n" "\n" @@ -93,7 +93,7 @@ msgstr "" "\n" "Elküldi a megadott nyers karakterláncot a szervernek." -#: plugin.py:455 +#: plugin.py:514 #, fuzzy msgid "" "[]\n" @@ -115,7 +115,7 @@ msgstr "" "használva. Ha nincs alapértelmezett kilépési üzenet beállítva, a neved lesz " "használva." -#: plugin.py:473 +#: plugin.py:532 msgid "" "takes no arguments\n" "\n" @@ -128,7 +128,7 @@ msgstr "" "Futtatja az összes időszakos öblítőket world.flushers-ban. Ez magában " "foglalja az összes naplófájl és konfigurációs fájl mentését a lemezre." -#: plugin.py:483 +#: plugin.py:542 msgid "" "[]\n" "\n" @@ -147,7 +147,7 @@ msgstr "" "az egyetlen témogatott szint a \"high\", amellyel a bot öblít nagyon sok " "gyorsítótárat és megcsinálja a normális karbantartási dolgokat." -#: plugin.py:529 +#: plugin.py:588 msgid "" "[--deprecated] \n" "\n" @@ -164,7 +164,7 @@ msgstr "" "egy 'plugins' a jelenlegi könyvtárban. --deprecated akkor szükséges, ha " "elavult bővítményeket szeretnél betölteni." -#: plugin.py:567 +#: plugin.py:626 msgid "" "\n" "\n" @@ -177,7 +177,7 @@ msgstr "" "Kirakja és aztán újratölti a megadott bővítményt név szerint; használd a " "'list' parancsot, hogy lásd a jelenleg betöltött bővítményeket." -#: plugin.py:602 +#: plugin.py:661 #, fuzzy msgid "" "\n" @@ -193,7 +193,7 @@ msgstr "" "lásd a jelenleg betöltött bővítményeket. Nyilvánvalóan az Owner bővítményt " "nem lehet kirakni." -#: plugin.py:631 +#: plugin.py:690 msgid "" "{add|remove} \n" "\n" @@ -209,7 +209,7 @@ msgstr "" "felhasználóknak adott alapértelmezett képességekhez/-ből (a supybot." "capabilities konfigurációs változó tárolja ezeket)." -#: plugin.py:656 +#: plugin.py:715 msgid "" "[] \n" "\n" @@ -232,7 +232,7 @@ msgstr "" "alapértelmezett képességet (ha minden bővítményben le szeretnéd tiltani a " "parancsot)." -#: plugin.py:683 +#: plugin.py:742 msgid "" "[] \n" "\n" @@ -248,7 +248,7 @@ msgstr "" "van adva, csak -ben engedélyezi -ot. Ez a parancs a " "fordítottja a disable-nek." -#: plugin.py:702 +#: plugin.py:761 msgid "" " \n" "\n" @@ -259,7 +259,7 @@ msgstr "" "\n" "Átnevezi -ot -ben az <új név>-re." -#: plugin.py:719 +#: plugin.py:778 msgid "" "\n" "\n" @@ -272,7 +272,7 @@ msgstr "" "Eltávolítja az összes átnevezést -ben. A bővítmény újra lesz " "töltve miután ez a parancs lefutott." -#: plugin.py:732 +#: plugin.py:791 msgid "" "takes no argument\n" "\n" diff --git a/plugins/Owner/locales/it.po b/plugins/Owner/locales/it.po index a55045bc2..ea147d57d 100644 --- a/plugins/Owner/locales/it.po +++ b/plugins/Owner/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-03-15 23:59+0100\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -16,7 +16,7 @@ msgid "" " that should not be removed!" msgstr "" -#: plugin.py:319 +#: plugin.py:374 msgid "" "If the given message is a command, triggers Limnoria's\n" " command-dispatching for that command.\n" @@ -33,7 +33,7 @@ msgid "" " " msgstr "" -#: plugin.py:372 +#: plugin.py:427 msgid "" "\n" "\n" @@ -48,7 +48,7 @@ msgstr "" " Utile per contrassegnare i file di log per ricerche successive.\n" " " -#: plugin.py:382 +#: plugin.py:437 msgid "" "\n" "\n" @@ -62,7 +62,7 @@ msgstr "" "e non è lobotomizzato.\n" " " -#: plugin.py:403 +#: plugin.py:458 msgid "" "[--remove] []\n" "\n" @@ -84,7 +84,7 @@ msgstr "" "importantPlugins.\n" " " -#: plugin.py:441 +#: plugin.py:496 msgid "" "\n" "\n" @@ -96,7 +96,7 @@ msgstr "" " Invia la data stringa direttamente al server.\n" " " -#: plugin.py:455 +#: plugin.py:514 #, fuzzy msgid "" "[]\n" @@ -119,7 +119,7 @@ msgstr "" "altrimenti il tuo nick.\n" " " -#: plugin.py:473 +#: plugin.py:532 msgid "" "takes no arguments\n" "\n" @@ -134,7 +134,7 @@ msgstr "" "configurazione.\n" " " -#: plugin.py:483 +#: plugin.py:542 msgid "" "[]\n" "\n" @@ -156,7 +156,7 @@ msgstr "" "normale).\n" " " -#: plugin.py:529 +#: plugin.py:588 msgid "" "[--deprecated] \n" "\n" @@ -175,7 +175,7 @@ msgstr "" " --deprecated è necessario per caricare plugin deprecati.\n" " " -#: plugin.py:567 +#: plugin.py:626 msgid "" "\n" "\n" @@ -189,7 +189,7 @@ msgstr "" "l'elenco di quelli attualmente caricati.\n" " " -#: plugin.py:602 +#: plugin.py:661 msgid "" "\n" "\n" @@ -206,7 +206,7 @@ msgstr "" ". Il plugin Owner non può essere de-caricato.\n" " " -#: plugin.py:631 +#: plugin.py:690 msgid "" "{add|remove} \n" "\n" @@ -224,7 +224,7 @@ msgstr "" "capabilities).\n" " " -#: plugin.py:656 +#: plugin.py:715 msgid "" "[] \n" "\n" @@ -251,7 +251,7 @@ msgstr "" " disabilita il comando in tutti i plugin).\n" " " -#: plugin.py:683 +#: plugin.py:742 msgid "" "[] \n" "\n" @@ -268,7 +268,7 @@ msgstr "" "\"disable\".\n" " " -#: plugin.py:702 +#: plugin.py:761 msgid "" " \n" "\n" @@ -280,7 +280,7 @@ msgstr "" " Rinomina in con .\n" " " -#: plugin.py:719 +#: plugin.py:778 msgid "" "\n" "\n" @@ -294,7 +294,7 @@ msgstr "" "plugin verrà ricaricato.\n" " " -#: plugin.py:732 +#: plugin.py:791 msgid "" "takes no argument\n" "\n" diff --git a/plugins/Owner/messages.pot b/plugins/Owner/messages.pot index 2f4a66e57..2fa82de9b 100644 --- a/plugins/Owner/messages.pot +++ b/plugins/Owner/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,7 +22,7 @@ msgid "" " that should not be removed!" msgstr "" -#: plugin.py:319 +#: plugin.py:374 #, docstring msgid "" "If the given message is a command, triggers Limnoria's\n" @@ -39,7 +39,7 @@ msgid "" " " msgstr "" -#: plugin.py:372 +#: plugin.py:427 #, docstring msgid "" "\n" @@ -49,7 +49,7 @@ msgid "" " " msgstr "" -#: plugin.py:382 +#: plugin.py:437 #, docstring msgid "" "\n" @@ -59,7 +59,7 @@ msgid "" " " msgstr "" -#: plugin.py:403 +#: plugin.py:458 #, docstring msgid "" "[--remove] []\n" @@ -71,7 +71,7 @@ msgid "" " " msgstr "" -#: plugin.py:441 +#: plugin.py:496 #, docstring msgid "" "\n" @@ -80,7 +80,7 @@ msgid "" " " msgstr "" -#: plugin.py:455 +#: plugin.py:514 #, docstring msgid "" "[]\n" @@ -92,7 +92,7 @@ msgid "" " " msgstr "" -#: plugin.py:473 +#: plugin.py:532 #, docstring msgid "" "takes no arguments\n" @@ -102,7 +102,7 @@ msgid "" " " msgstr "" -#: plugin.py:483 +#: plugin.py:542 #, docstring msgid "" "[]\n" @@ -114,7 +114,7 @@ msgid "" " " msgstr "" -#: plugin.py:529 +#: plugin.py:588 #, docstring msgid "" "[--deprecated] \n" @@ -126,7 +126,7 @@ msgid "" " " msgstr "" -#: plugin.py:567 +#: plugin.py:626 #, docstring msgid "" "\n" @@ -136,7 +136,7 @@ msgid "" " " msgstr "" -#: plugin.py:602 +#: plugin.py:661 #, docstring msgid "" "\n" @@ -147,7 +147,7 @@ msgid "" " " msgstr "" -#: plugin.py:631 +#: plugin.py:690 #, docstring msgid "" "{add|remove} \n" @@ -158,7 +158,7 @@ msgid "" " " msgstr "" -#: plugin.py:656 +#: plugin.py:715 #, docstring msgid "" "[] \n" @@ -171,7 +171,7 @@ msgid "" " " msgstr "" -#: plugin.py:683 +#: plugin.py:742 #, docstring msgid "" "[] \n" @@ -182,7 +182,7 @@ msgid "" " " msgstr "" -#: plugin.py:702 +#: plugin.py:761 #, docstring msgid "" " \n" @@ -191,7 +191,7 @@ msgid "" " " msgstr "" -#: plugin.py:719 +#: plugin.py:778 #, docstring msgid "" "\n" @@ -201,7 +201,7 @@ msgid "" " " msgstr "" -#: plugin.py:732 +#: plugin.py:791 #, docstring msgid "" "takes no argument\n" diff --git a/plugins/Plugin/README.rst b/plugins/Plugin/README.rst index 0bfc0a42c..31674ca52 100644 --- a/plugins/Plugin/README.rst +++ b/plugins/Plugin/README.rst @@ -24,27 +24,27 @@ Commands .. _command-plugin-author: -author +``author `` Returns the author of . This is the person you should talk to if you have ideas, suggestions, or other comments about a given plugin. .. _command-plugin-contributors: -contributors [] +``contributors []`` Replies with a list of people who made contributions to a given plugin. If is specified, that person's specific contributions will be listed. You can specify a person's name by their full name or their nick, which is shown inside brackets if available. .. _command-plugin-help: -help +``help `` Returns a useful description of how to use , if the plugin has one. .. _command-plugin-plugin: -plugin +``plugin `` Returns the name of the plugin that would be used to call . If it is not uniquely determined, returns list of all plugins that contain . .. _command-plugin-plugins: -plugins +``plugins `` Returns the names of all plugins that contain . .. _conf-Plugin: diff --git a/plugins/Plugin/messages.pot b/plugins/Plugin/messages.pot index 295b46feb..90ad159d4 100644 --- a/plugins/Plugin/messages.pot +++ b/plugins/Plugin/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/PluginDownloader/README.rst b/plugins/PluginDownloader/README.rst index ca1a0907b..b14f082f7 100644 --- a/plugins/PluginDownloader/README.rst +++ b/plugins/PluginDownloader/README.rst @@ -58,17 +58,17 @@ Commands .. _command-plugindownloader-info: -info +``info `` Displays informations on the in the . .. _command-plugindownloader-install: -install +``install `` Downloads and installs the from the . .. _command-plugindownloader-repolist: -repolist [] +``repolist []`` Displays the list of plugins in the . If is not given, returns a list of available repositories. .. _conf-PluginDownloader: diff --git a/plugins/PluginDownloader/locales/de.po b/plugins/PluginDownloader/locales/de.po index b69649515..ec7a74a94 100644 --- a/plugins/PluginDownloader/locales/de.po +++ b/plugins/PluginDownloader/locales/de.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Supybot\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-04-27 15:39+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: German \n" @@ -11,23 +11,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" -#: plugin.py:167 +#: plugin.py:152 msgid "" -"Plugin is probably not compatible with your Python version (3.x) and could " -"not be converted because 2to3 is not installed." +"Plugin installed. However, it may be incompatible with Python 3 and require " +"manual code changes to work correctly." msgstr "" -#: plugin.py:174 -msgid "" -"Plugin was designed for Python 2, but an attempt to convert it to Python 3 " -"has been made. There is no guarantee it will work, though." -msgstr "" - -#: plugin.py:178 +#: plugin.py:154 msgid "Plugin successfully installed." msgstr "" -#: plugin.py:323 +#: plugin.py:241 msgid "" "\n" " This plugin allows you to install unofficial plugins from\n" @@ -84,7 +78,7 @@ msgid "" " " msgstr "" -#: plugin.py:368 +#: plugin.py:286 msgid "" "[]\n" "\n" @@ -93,46 +87,46 @@ msgid "" " repositories." msgstr "" -#: plugin.py:376 plugin.py:387 +#: plugin.py:294 plugin.py:305 msgid ", " msgstr ", " -#: plugin.py:378 plugin.py:400 plugin.py:425 +#: plugin.py:296 plugin.py:318 plugin.py:343 msgid "This repository does not exist or is not known by this bot." msgstr "Diese Quelle existiert nicht, oder sie ist dem Bot nicht bekannt." -#: plugin.py:385 +#: plugin.py:303 msgid "No plugin found in this repository." msgstr "Kein Plugin in dieser Quelle gefunden." -#: plugin.py:392 +#: plugin.py:310 msgid "" " \n" "\n" " Downloads and installs the from the ." msgstr "" -#: plugin.py:396 +#: plugin.py:314 msgid "" "This command is not available, because supybot.commands.allowShell is False." msgstr "" -#: plugin.py:405 plugin.py:430 +#: plugin.py:323 plugin.py:348 msgid "This plugin does not exist in this repository." msgstr "Das Plugin ist in dieser Quelle nicht vorhanden." -#: plugin.py:420 +#: plugin.py:338 msgid "" " \n" "\n" " Displays informations on the in the ." msgstr "" -#: plugin.py:434 +#: plugin.py:352 msgid "No README found for this plugin." msgstr "" -#: plugin.py:437 +#: plugin.py:355 #, fuzzy msgid "This plugin has no description." msgstr "Das Plugin ist in dieser Quelle nicht vorhanden." diff --git a/plugins/PluginDownloader/locales/fi.po b/plugins/PluginDownloader/locales/fi.po index 7b18fc47f..6b9238bee 100644 --- a/plugins/PluginDownloader/locales/fi.po +++ b/plugins/PluginDownloader/locales/fi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-03-22 16:38+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: Finnish <>\n" @@ -17,27 +17,17 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n!=1);\n" "X-Generator: Poedit 1.5.4\n" -#: plugin.py:167 +#: plugin.py:152 msgid "" -"Plugin is probably not compatible with your Python version (3.x) and could " -"not be converted because 2to3 is not installed." +"Plugin installed. However, it may be incompatible with Python 3 and require " +"manual code changes to work correctly." msgstr "" -"Lisä-osa ei luultavasti ole yhteensopiva Python-versiosi (3.x) kanssa, eikä " -"sitä voitu muuntaa, koska 2to3 ei ole asennettu." -#: plugin.py:174 -msgid "" -"Plugin was designed for Python 2, but an attempt to convert it to Python 3 " -"has been made. There is no guarantee it will work, though." -msgstr "" -"Lisä-osa suunniteltiin Python 2:lle, mutta yritys muuntaa se Python 3:lle on " -"tehty. Ei kuitenkaan ole takuuta, että se toimisi." - -#: plugin.py:178 +#: plugin.py:154 msgid "Plugin successfully installed." msgstr "Lisä-osa asennettiin onnistuneesti." -#: plugin.py:323 +#: plugin.py:241 msgid "" "\n" " This plugin allows you to install unofficial plugins from\n" @@ -94,7 +84,7 @@ msgid "" " " msgstr "" -#: plugin.py:368 +#: plugin.py:286 msgid "" "[]\n" "\n" @@ -109,20 +99,20 @@ msgstr "" "olevista\n" " ohjelmistolähteistä." -#: plugin.py:376 plugin.py:387 +#: plugin.py:294 plugin.py:305 msgid ", " msgstr ", " -#: plugin.py:378 plugin.py:400 plugin.py:425 +#: plugin.py:296 plugin.py:318 plugin.py:343 msgid "This repository does not exist or is not known by this bot." msgstr "" "Tämä ohjelmistolähde ei ole olemassakaan tai tämä botti ei tiedä siitä." -#: plugin.py:385 +#: plugin.py:303 msgid "No plugin found in this repository." msgstr "Lisäosaa ei löytynyt tästä ohjelmistolähteestä." -#: plugin.py:392 +#: plugin.py:310 msgid "" " \n" "\n" @@ -132,16 +122,16 @@ msgstr "" "\n" " Lataa ja asentaa ." -#: plugin.py:396 +#: plugin.py:314 msgid "" "This command is not available, because supybot.commands.allowShell is False." msgstr "" -#: plugin.py:405 plugin.py:430 +#: plugin.py:323 plugin.py:348 msgid "This plugin does not exist in this repository." msgstr "Tämä lisäosa ei ole tässä ohjelmistolähteessä." -#: plugin.py:420 +#: plugin.py:338 msgid "" " \n" "\n" @@ -151,14 +141,28 @@ msgstr "" "\n" " Näyttää tietoja ." -#: plugin.py:434 +#: plugin.py:352 msgid "No README found for this plugin." msgstr "Tämän lisäosan README-tiedostoa ei löydy." -#: plugin.py:437 +#: plugin.py:355 msgid "This plugin has no description." msgstr "Tällä lisäosalla ei ole kuvausta." +#~ msgid "" +#~ "Plugin is probably not compatible with your Python version (3.x) and " +#~ "could not be converted because 2to3 is not installed." +#~ msgstr "" +#~ "Lisä-osa ei luultavasti ole yhteensopiva Python-versiosi (3.x) kanssa, " +#~ "eikä sitä voitu muuntaa, koska 2to3 ei ole asennettu." + +#~ msgid "" +#~ "Plugin was designed for Python 2, but an attempt to convert it to Python " +#~ "3 has been made. There is no guarantee it will work, though." +#~ msgstr "" +#~ "Lisä-osa suunniteltiin Python 2:lle, mutta yritys muuntaa se Python 3:lle " +#~ "on tehty. Ei kuitenkaan ole takuuta, että se toimisi." + #~ msgid "" #~ "This plugin allows you to install unofficial plugins from\n" #~ " multiple repositories easily. Use the \"repolist\" command to see " diff --git a/plugins/PluginDownloader/locales/fr.po b/plugins/PluginDownloader/locales/fr.po index cde726e17..509081a53 100644 --- a/plugins/PluginDownloader/locales/fr.po +++ b/plugins/PluginDownloader/locales/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: limnoria\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-01-22 07:52+0100\n" "Last-Translator: \n" "Language-Team: French \n" @@ -18,29 +18,17 @@ msgstr "" "X-Launchpad-Export-Date: 2012-04-19 19:44+0000\n" "X-Generator: Poedit 1.5.4\n" -#: plugin.py:167 -#, fuzzy +#: plugin.py:152 msgid "" -"Plugin is probably not compatible with your Python version (3.x) and could " -"not be converted because 2to3 is not installed." +"Plugin installed. However, it may be incompatible with Python 3 and require " +"manual code changes to work correctly." msgstr "" -"Ce plugin n’est probablement pas compatible avec votre version de Python (3." -"x), mais il n’a pas pu être converti car 2to3 n’est pas installé." -#: plugin.py:174 -msgid "" -"Plugin was designed for Python 2, but an attempt to convert it to Python 3 " -"has been made. There is no guarantee it will work, though." -msgstr "" -"Ce plugin a été conçu pour Python 2, mais une tentative de conversion à " -"Python 3 a été faite. Cependant, il n’y a pas de garantie que le plugin " -"fonctionnera." - -#: plugin.py:178 +#: plugin.py:154 msgid "Plugin successfully installed." msgstr "Plugin installé avec succès." -#: plugin.py:323 +#: plugin.py:241 msgid "" "\n" " This plugin allows you to install unofficial plugins from\n" @@ -97,7 +85,7 @@ msgid "" " " msgstr "" -#: plugin.py:368 +#: plugin.py:286 msgid "" "[]\n" "\n" @@ -110,19 +98,19 @@ msgstr "" "Affiche une liste des plugins du . Si n'est pas donné, " "retourne une liste des dépôts disponibles." -#: plugin.py:376 plugin.py:387 +#: plugin.py:294 plugin.py:305 msgid ", " msgstr ", " -#: plugin.py:378 plugin.py:400 plugin.py:425 +#: plugin.py:296 plugin.py:318 plugin.py:343 msgid "This repository does not exist or is not known by this bot." msgstr "Ce dépôt n'existe pas ou n'est pas connu de ce bot." -#: plugin.py:385 +#: plugin.py:303 msgid "No plugin found in this repository." msgstr "Aucun plugin trouvé dans ce dépôt." -#: plugin.py:392 +#: plugin.py:310 msgid "" " \n" "\n" @@ -132,16 +120,16 @@ msgstr "" "\n" "Télécharge et installe le depuis le ." -#: plugin.py:396 +#: plugin.py:314 msgid "" "This command is not available, because supybot.commands.allowShell is False." msgstr "" -#: plugin.py:405 plugin.py:430 +#: plugin.py:323 plugin.py:348 msgid "This plugin does not exist in this repository." msgstr "Ce plugin n'existe pas dans ce dépôt." -#: plugin.py:420 +#: plugin.py:338 msgid "" " \n" "\n" @@ -151,14 +139,30 @@ msgstr "" "\n" "Affiche des informations sur depuis le ." -#: plugin.py:434 +#: plugin.py:352 msgid "No README found for this plugin." msgstr "Aucun README trouvé pour ce plugin." -#: plugin.py:437 +#: plugin.py:355 msgid "This plugin has no description." msgstr "Ce plugin n'a pas de description." +#, fuzzy +#~ msgid "" +#~ "Plugin is probably not compatible with your Python version (3.x) and " +#~ "could not be converted because 2to3 is not installed." +#~ msgstr "" +#~ "Ce plugin n’est probablement pas compatible avec votre version de Python " +#~ "(3.x), mais il n’a pas pu être converti car 2to3 n’est pas installé." + +#~ msgid "" +#~ "Plugin was designed for Python 2, but an attempt to convert it to Python " +#~ "3 has been made. There is no guarantee it will work, though." +#~ msgstr "" +#~ "Ce plugin a été conçu pour Python 2, mais une tentative de conversion à " +#~ "Python 3 a été faite. Cependant, il n’y a pas de garantie que le plugin " +#~ "fonctionnera." + #~ msgid "" #~ "This plugin allows you to install unofficial plugins from\n" #~ " multiple repositories easily. Use the \"repolist\" command to see " diff --git a/plugins/PluginDownloader/locales/it.po b/plugins/PluginDownloader/locales/it.po index b50c0f5d4..48257aaa3 100644 --- a/plugins/PluginDownloader/locales/it.po +++ b/plugins/PluginDownloader/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-05-04 01:17+020\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -10,23 +10,17 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: plugin.py:167 +#: plugin.py:152 msgid "" -"Plugin is probably not compatible with your Python version (3.x) and could " -"not be converted because 2to3 is not installed." +"Plugin installed. However, it may be incompatible with Python 3 and require " +"manual code changes to work correctly." msgstr "" -#: plugin.py:174 -msgid "" -"Plugin was designed for Python 2, but an attempt to convert it to Python 3 " -"has been made. There is no guarantee it will work, though." -msgstr "" - -#: plugin.py:178 +#: plugin.py:154 msgid "Plugin successfully installed." msgstr "" -#: plugin.py:323 +#: plugin.py:241 msgid "" "\n" " This plugin allows you to install unofficial plugins from\n" @@ -83,7 +77,7 @@ msgid "" " " msgstr "" -#: plugin.py:368 +#: plugin.py:286 msgid "" "[]\n" "\n" @@ -97,19 +91,19 @@ msgstr "" " Se non è specificato riporta una lista di quelli " "disponibili." -#: plugin.py:376 plugin.py:387 +#: plugin.py:294 plugin.py:305 msgid ", " msgstr ", " -#: plugin.py:378 plugin.py:400 plugin.py:425 +#: plugin.py:296 plugin.py:318 plugin.py:343 msgid "This repository does not exist or is not known by this bot." msgstr "Questo repository non esiste o non è riconosciuto." -#: plugin.py:385 +#: plugin.py:303 msgid "No plugin found in this repository." msgstr "Nessun plugin trovato in questo repository." -#: plugin.py:392 +#: plugin.py:310 msgid "" " \n" "\n" @@ -119,16 +113,16 @@ msgstr "" "\n" " Scarica e installa da ." -#: plugin.py:396 +#: plugin.py:314 msgid "" "This command is not available, because supybot.commands.allowShell is False." msgstr "" -#: plugin.py:405 plugin.py:430 +#: plugin.py:323 plugin.py:348 msgid "This plugin does not exist in this repository." msgstr "Il plugin non esiste in questo repository." -#: plugin.py:420 +#: plugin.py:338 msgid "" " \n" "\n" @@ -138,12 +132,12 @@ msgstr "" "\n" " Visualizza informazioni riguardo in ." -#: plugin.py:434 +#: plugin.py:352 #, fuzzy msgid "No README found for this plugin." msgstr "Non è stato trovato nessun file README per questo plugin." -#: plugin.py:437 +#: plugin.py:355 msgid "This plugin has no description." msgstr "Questo plugin non ha una descrizione." diff --git a/plugins/PluginDownloader/locales/ru.po b/plugins/PluginDownloader/locales/ru.po new file mode 100644 index 000000000..aac670824 --- /dev/null +++ b/plugins/PluginDownloader/locales/ru.po @@ -0,0 +1,210 @@ +# PluginDownloader plugin for Limnoria +# Copyright (C) 2024 Limnoria +# ssdaniel24 , 2024. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" +"PO-Revision-Date: 2024-06-12 22:10+0300\n" +"Last-Translator: ssdaniel24 \n" +"Language-Team: \n" +"Language: ru\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" +"X-Generator: Poedit 3.4.2\n" + +#: plugin.py:152 +msgid "" +"Plugin installed. However, it may be incompatible with Python 3 and require " +"manual code changes to work correctly." +msgstr "" + +#: plugin.py:154 +msgid "Plugin successfully installed." +msgstr "Плагин успешно установлен." + +#: plugin.py:241 +msgid "" +"\n" +" This plugin allows you to install unofficial plugins from\n" +" multiple repositories easily. Use the \"repolist\" command to see list " +"of\n" +" available repositories and \"repolist \" to list plugins,\n" +" which are available in that repository. When you want to install a " +"plugin,\n" +" just run command \"install \".\n" +"\n" +" First start by using the `plugindownloader repolist` command to see the\n" +" available repositories.\n" +"\n" +" To see the plugins inside repository, use command\n" +" `plugindownloader repolist `\n" +"\n" +" When you see anything interesting, you can use\n" +" `plugindownloader info ` to see what the plugin is\n" +" for.\n" +"\n" +" And finally to install the plugin,\n" +" `plugindownloader install `.\n" +"\n" +" Examples\n" +" ^^^^^^^^\n" +"\n" +" ::\n" +"\n" +" < Mikaela> @load PluginDownloader\n" +" < Limnoria> Ok.\n" +" < Mikaela> @plugindownloader repolist\n" +" < Limnoria> Antibody, jlu5, Hoaas, Iota, progval, SpiderDave, " +"boombot, code4lib, code4lib-edsu, code4lib-snapshot, doorbot, frumious, " +"jonimoose, mailed-notifier, mtughan-weather, nanotube-bitcoin, nyuszika7h, " +"nyuszika7h-old, pingdom, quantumlemur, resistivecorpse, scrum, skgsergio, " +"stepnem\n" +" < Mikaela> @plugindownloader repolist progval\n" +" < Limnoria> AttackProtector, AutoTrans, Biography, Brainfuck, " +"ChannelStatus, Cleverbot, Coffee, Coinpan, Debian, ERepublik, Eureka, " +"Fortune, GUI, GitHub, Glob2Chan, GoodFrench, I18nPlaceholder, IMDb, " +"IgnoreNonVoice, Iwant, Kickme, LimnoriaChan, LinkRelay, ListEmpty, Listener, " +"Markovgen, MegaHAL, MilleBornes, NoLatin1, NoisyKarma, OEIS, PPP, PingTime, " +"Pinglist, RateLimit, Rbls, Redmine, Scheme, Seeks, (1 more message)\n" +" < Mikaela> more\n" +" < Limnoria> SilencePlugin, StdoutCapture, Sudo, SupyML, SupySandbox, " +"TWSS, Trigger, Trivia, Twitter, TwitterStream, Untiny, Variables, WebDoc, " +"WebLogs, WebStats, Website, WikiTrans, Wikipedia, WunderWeather\n" +" < Mikaela> @plugindownloader info progval Wikipedia\n" +" < Limnoria> Grabs data from Wikipedia.\n" +" < Mikaela> @plugindownloader install progval Wikipedia\n" +" < Limnoria> Ok.\n" +" < Mikaela> @load Wikipedia\n" +" < Limnoria> Ok.\n" +" " +msgstr "" +"\n" +"Этот плагин позволяет вам с легкостью устанавливать неофициальные плагины из " +"различных репозиториев. Используйте команду \"repolist\", чтобы увидеть " +"список доступных репозиториев, и команду \"repolist <репозиторий>\", чтобы " +"увидеть список плагинов, доступные в данном репозитории. Когда вы захотите " +"установить плагин, просто запустите команду \"install <репозиторий> " +"<плагин>\".\n" +"\n" +"Для начала используйте команду `plugindownloader repolist`, чтобы увидеть " +"доступные репозитории.\n" +"\n" +"Чтобы увидеть плагины в репозитории, используйте команду `plugindownloader " +"repolist <репозиторий>`\n" +"\n" +"Когда вы найдёте что-нибудь интересное, вы можете использовать команду " +"`plugindownloader info <репозиторий> <плагин>`, чтобы увидеть для чего этот " +"плагин нужен.\n" +"\n" +"И наконец, для установки плагина используйте `plugindownloader install " +"<репозиторий> <плагин>`.\n" +"\n" +"Примеры\n" +"^^^^^^^\n" +"\n" +"< Mikaela> @load PluginDownloader\n" +"< Limnoria> Ok.\n" +"< Mikaela> @plugindownloader repolist\n" +"< Limnoria> Antibody, jlu5, Hoaas, Iota, progval, SpiderDave, boombot, " +"code4lib, code4lib-edsu, code4lib-snapshot, doorbot, frumious, jonimoose, " +"mailed-notifier, mtughan-weather, nanotube-bitcoin, nyuszika7h, nyuszika7h-" +"old, pingdom, quantumlemur, resistivecorpse, scrum, skgsergio, stepnem\n" +"< Mikaela> @plugindownloader repolist progval\n" +"< Limnoria> AttackProtector, AutoTrans, Biography, Brainfuck, ChannelStatus, " +"Cleverbot, Coffee, Coinpan, Debian, ERepublik, Eureka, Fortune, GUI, GitHub, " +"Glob2Chan, GoodFrench, I18nPlaceholder, IMDb, IgnoreNonVoice, Iwant, Kickme, " +"LimnoriaChan, LinkRelay, ListEmpty, Listener, Markovgen, MegaHAL, " +"MilleBornes, NoLatin1, NoisyKarma, OEIS, PPP, PingTime, Pinglist, RateLimit, " +"Rbls, Redmine, Scheme, Seeks, (1 more message)\n" +"< Mikaela> more\n" +"< Limnoria> SilencePlugin, StdoutCapture, Sudo, SupyML, SupySandbox, TWSS, " +"Trigger, Trivia, Twitter, TwitterStream, Untiny, Variables, WebDoc, WebLogs, " +"WebStats, Website, WikiTrans, Wikipedia, WunderWeather\n" +"< Mikaela> @plugindownloader info progval Wikipedia\n" +"< Limnoria> Grabs data from Wikipedia.\n" +"< Mikaela> @plugindownloader install progval Wikipedia\n" +"< Limnoria> Ok.\n" +"< Mikaela> @load Wikipedia\n" +"< Limnoria> Ok." + +#: plugin.py:286 +msgid "" +"[]\n" +"\n" +" Displays the list of plugins in the .\n" +" If is not given, returns a list of available\n" +" repositories." +msgstr "" +"[<репозиторий>]\n" +"\n" +"Показывает список плагинов в данном <репозитории>. Если <репозиторий> не дан " +"аргументом, то показывает список доступных репозиториев." + +#: plugin.py:294 plugin.py:305 +msgid ", " +msgstr "" + +#: plugin.py:296 plugin.py:318 plugin.py:343 +msgid "This repository does not exist or is not known by this bot." +msgstr "Этот репозиторий не существует или неизвестен боту." + +#: plugin.py:303 +msgid "No plugin found in this repository." +msgstr "В этом репозитории не найдено ни одного плагина." + +#: plugin.py:310 +msgid "" +" \n" +"\n" +" Downloads and installs the from the ." +msgstr "" +"<репозиторий> <плагин>\n" +"\n" +"Скачивает и устанавливает данный <плагин> из данного <репозитория>." + +#: plugin.py:314 +msgid "" +"This command is not available, because supybot.commands.allowShell is False." +msgstr "" +"Эта команда недоступна, так как настройка supybot.command.allowShell " +"установлена в False." + +#: plugin.py:323 plugin.py:348 +msgid "This plugin does not exist in this repository." +msgstr "Этого плагина нет в данном репозитории." + +#: plugin.py:338 +msgid "" +" \n" +"\n" +" Displays informations on the in the ." +msgstr "" +"<репозиторий> <плагин>\n" +"\n" +"Показывает информацию о данном <плагине> в этом <репозитории>." + +#: plugin.py:352 +msgid "No README found for this plugin." +msgstr "В этом плагине не найдено файла README." + +#: plugin.py:355 +msgid "This plugin has no description." +msgstr "Этот плагин не предоставляет описание." + +#~ msgid "" +#~ "Plugin is probably not compatible with your Python version (3.x) and " +#~ "could not be converted because 2to3 is not installed." +#~ msgstr "" +#~ "Плагин возможно несовместим с вашей версией Python (3.x) и не может быть " +#~ "конвертирован, так как 2to3 не установлен." + +#~ msgid "" +#~ "Plugin was designed for Python 2, but an attempt to convert it to Python " +#~ "3 has been made. There is no guarantee it will work, though." +#~ msgstr "" +#~ "Плагин был разработан на Python 2, но была сделана попытка конвертировать " +#~ "его на Python 3, однако не гарантируется, что плагин будет работать." diff --git a/plugins/PluginDownloader/messages.pot b/plugins/PluginDownloader/messages.pot index eb360c4e1..9fd03122d 100644 --- a/plugins/PluginDownloader/messages.pot +++ b/plugins/PluginDownloader/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -15,19 +15,15 @@ msgstr "" "Generated-By: pygettext.py 1.5\n" -#: plugin.py:167 -msgid "Plugin is probably not compatible with your Python version (3.x) and could not be converted because 2to3 is not installed." +#: plugin.py:152 +msgid "Plugin installed. However, it may be incompatible with Python 3 and require manual code changes to work correctly." msgstr "" -#: plugin.py:174 -msgid "Plugin was designed for Python 2, but an attempt to convert it to Python 3 has been made. There is no guarantee it will work, though." -msgstr "" - -#: plugin.py:178 +#: plugin.py:154 msgid "Plugin successfully installed." msgstr "" -#: plugin.py:323 +#: plugin.py:241 #, docstring msgid "" "\n" @@ -72,7 +68,7 @@ msgid "" " " msgstr "" -#: plugin.py:368 +#: plugin.py:286 #, docstring msgid "" "[]\n" @@ -82,19 +78,19 @@ msgid "" " repositories." msgstr "" -#: plugin.py:376 plugin.py:387 +#: plugin.py:294 plugin.py:305 msgid ", " msgstr "" -#: plugin.py:378 plugin.py:400 plugin.py:425 +#: plugin.py:296 plugin.py:318 plugin.py:343 msgid "This repository does not exist or is not known by this bot." msgstr "" -#: plugin.py:385 +#: plugin.py:303 msgid "No plugin found in this repository." msgstr "" -#: plugin.py:392 +#: plugin.py:310 #, docstring msgid "" " \n" @@ -102,15 +98,15 @@ msgid "" " Downloads and installs the from the ." msgstr "" -#: plugin.py:396 +#: plugin.py:314 msgid "This command is not available, because supybot.commands.allowShell is False." msgstr "" -#: plugin.py:405 plugin.py:430 +#: plugin.py:323 plugin.py:348 msgid "This plugin does not exist in this repository." msgstr "" -#: plugin.py:420 +#: plugin.py:338 #, docstring msgid "" " \n" @@ -118,11 +114,11 @@ msgid "" " Displays informations on the in the ." msgstr "" -#: plugin.py:434 +#: plugin.py:352 msgid "No README found for this plugin." msgstr "" -#: plugin.py:437 +#: plugin.py:355 msgid "This plugin has no description." msgstr "" diff --git a/plugins/PluginDownloader/plugin.py b/plugins/PluginDownloader/plugin.py index cd2434021..c6832a86e 100644 --- a/plugins/PluginDownloader/plugin.py +++ b/plugins/PluginDownloader/plugin.py @@ -231,6 +231,10 @@ repositories = utils.InsensitivePreservingDict({ 'matiasw', 'my-limnoria-plugins', ), + 'spithash': GithubRepository( + 'spithash', + 'Limnoria-Plugins', + ), }) class PluginDownloader(callbacks.Plugin): diff --git a/plugins/Poll/README.rst b/plugins/Poll/README.rst index 2e1434a49..e6fc07fcb 100644 --- a/plugins/Poll/README.rst +++ b/plugins/Poll/README.rst @@ -53,27 +53,27 @@ Commands .. _command-poll-add: -add [] [ [ [...]]] +``add [] [ [ [...]]]`` Creates a new poll with the specified and answers on the . The first word of each answer is used as its id to vote, so each answer should start with a different word. is only necessary if this command is run in private, and defaults to the current channel otherwise. .. _command-poll-close: -close [] +``close [] `` Closes the specified poll. .. _command-poll-list: -list [] +``list []`` Lists open polls in the . .. _command-poll-results: -results [] +``results [] `` Returns the results of the specified poll. .. _command-poll-vote: -vote [] +``vote [] `` Registers your vote on the poll as being the answer identified by (which is the first word of each possible answer). .. _conf-Poll: diff --git a/plugins/Poll/messages.pot b/plugins/Poll/messages.pot index c3e8b9779..05767619c 100644 --- a/plugins/Poll/messages.pot +++ b/plugins/Poll/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -87,11 +87,11 @@ msgstr "" msgid "Duplicate answer identifier(s): %L" msgstr "" -#: plugin.py:155 +#: plugin.py:158 msgid "Poll # %d created." msgstr "" -#: plugin.py:159 +#: plugin.py:162 #, docstring msgid "" "[] \n" @@ -99,11 +99,11 @@ msgid "" " Closes the specified poll." msgstr "" -#: plugin.py:167 +#: plugin.py:170 msgid "This poll was already closed." msgstr "" -#: plugin.py:180 +#: plugin.py:183 #, docstring msgid "" "[] \n" @@ -113,19 +113,19 @@ msgid "" " answer)." msgstr "" -#: plugin.py:189 +#: plugin.py:192 msgid "This poll is closed." msgstr "" -#: plugin.py:192 +#: plugin.py:195 msgid "You already voted on this poll." msgstr "" -#: plugin.py:197 +#: plugin.py:202 msgid "Invalid answer ID. Valid answers are: %L" msgstr "" -#: plugin.py:209 +#: plugin.py:214 #, docstring msgid "" "[] \n" @@ -133,7 +133,27 @@ msgid "" " Returns the results of the specified poll." msgstr "" -#: plugin.py:221 +#: plugin.py:226 msgid "%n for %s" msgstr "" +#: plugin.py:226 plugin.py:242 +msgid "vote" +msgstr "" + +#: plugin.py:234 +#, docstring +msgid "" +"[]\n" +"\n" +" Lists open polls in the ." +msgstr "" + +#: plugin.py:239 +msgid "%i: %s (%n)" +msgstr "" + +#: plugin.py:251 +msgid "There are no open polls." +msgstr "" + diff --git a/plugins/Praise/README.rst b/plugins/Praise/README.rst index c67c58ad7..bf82ad942 100644 --- a/plugins/Praise/README.rst +++ b/plugins/Praise/README.rst @@ -29,37 +29,37 @@ Commands .. _command-praise-add: -add [] +``add [] `` Adds to the praise database for . is only necessary if the message isn't sent in the channel itself. .. _command-praise-change: -change [] +``change [] `` Changes the praise with id according to the regular expression . is only necessary if the message isn't sent in the channel itself. .. _command-praise-get: -get [] +``get [] `` Gets the praise with id from the praise database for . is only necessary if the message isn't sent in the channel itself. .. _command-praise-praise: -praise [] [] [for ] +``praise [] [] [for ]`` Praises (for , if given). If is given, uses that specific praise. is only necessary if the message isn't sent in the channel itself. .. _command-praise-remove: -remove [] +``remove [] `` Removes the praise with id from the praise database for . is only necessary if the message isn't sent in the channel itself. .. _command-praise-search: -search [] [--{regexp,by} ] [] +``search [] [--{regexp,by} ] []`` Searches for praises matching the criteria given. .. _command-praise-stats: -stats [] +``stats []`` Returns the number of praises in the database for . is only necessary if the message isn't sent in the channel itself. .. _conf-Praise: diff --git a/plugins/Praise/messages.pot b/plugins/Praise/messages.pot index 46c43c0b0..2bb97d0aa 100644 --- a/plugins/Praise/messages.pot +++ b/plugins/Praise/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Protector/locales/fi.po b/plugins/Protector/locales/fi.po index 8d0d0d1a6..879004c56 100644 --- a/plugins/Protector/locales/fi.po +++ b/plugins/Protector/locales/fi.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: Protector plugin for Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-12-20 12:09+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -24,7 +24,7 @@ msgstr "" "Määrittää onko tämä lisäosa käytössä\n" " annetulla kanavalla." -#: config.py:55 +#: config.py:56 msgid "" "Determines what nicks the bot will consider to\n" " be immune from enforcement. These nicks will not even have their " diff --git a/plugins/Protector/locales/fr.po b/plugins/Protector/locales/fr.po index e56106ef2..c504b7dab 100644 --- a/plugins/Protector/locales/fr.po +++ b/plugins/Protector/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: Valentin Lorentz \n" "Language-Team: Limnoria \n" @@ -19,7 +19,7 @@ msgid "" " given channel." msgstr "Détermine si le plugin est activé sur un canal donné." -#: config.py:55 +#: config.py:56 msgid "" "Determines what nicks the bot will consider to\n" " be immune from enforcement. These nicks will not even have their " diff --git a/plugins/Protector/locales/it.po b/plugins/Protector/locales/it.po index 461b5ff71..98019a638 100644 --- a/plugins/Protector/locales/it.po +++ b/plugins/Protector/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-07-25 23:33+0200\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -16,7 +16,7 @@ msgid "" " given channel." msgstr "Determina se il plugin è abilitato in un dato canale." -#: config.py:55 +#: config.py:56 msgid "" "Determines what nicks the bot will consider to\n" " be immune from enforcement. These nicks will not even have their " diff --git a/plugins/Protector/messages.pot b/plugins/Protector/messages.pot index e980a212b..b21bfaae0 100644 --- a/plugins/Protector/messages.pot +++ b/plugins/Protector/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,7 +21,7 @@ msgid "" " given channel." msgstr "" -#: config.py:55 +#: config.py:56 msgid "" "Determines what nicks the bot will consider to\n" " be immune from enforcement. These nicks will not even have their actions\n" diff --git a/plugins/Quote/README.rst b/plugins/Quote/README.rst index 4b84fa5c6..73e28ec79 100644 --- a/plugins/Quote/README.rst +++ b/plugins/Quote/README.rst @@ -20,42 +20,42 @@ Commands .. _command-quote-add: -add [] +``add [] `` Adds to the quote database for . is only necessary if the message isn't sent in the channel itself. .. _command-quote-change: -change [] +``change [] `` Changes the quote with id according to the regular expression . is only necessary if the message isn't sent in the channel itself. .. _command-quote-get: -get [] +``get [] `` Gets the quote with id from the quote database for . is only necessary if the message isn't sent in the channel itself. .. _command-quote-random: -random [] +``random []`` Returns a random quote from . is only necessary if the message isn't sent in the channel itself. .. _command-quote-remove: -remove [] +``remove [] `` Removes the quote with id from the quote database for . is only necessary if the message isn't sent in the channel itself. .. _command-quote-replace: -replace [] +``replace [] `` Replace quote with . is only necessary if the message isn't sent in the channel itself. .. _command-quote-search: -search [] [--{regexp,by} ] [] +``search [] [--{regexp,by} ] []`` Searches for quotes matching the criteria given. .. _command-quote-stats: -stats [] +``stats []`` Returns the number of quotes in the database for . is only necessary if the message isn't sent in the channel itself. .. _conf-Quote: diff --git a/plugins/Quote/messages.pot b/plugins/Quote/messages.pot index 485befa09..94462a726 100644 --- a/plugins/Quote/messages.pot +++ b/plugins/Quote/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/QuoteGrabs/README.rst b/plugins/QuoteGrabs/README.rst index 55e3bb3c8..5d948b872 100644 --- a/plugins/QuoteGrabs/README.rst +++ b/plugins/QuoteGrabs/README.rst @@ -25,42 +25,42 @@ Commands .. _command-quotegrabs-get: -get [] +``get [] `` Return the quotegrab with the given . is only necessary if the message isn't sent in the channel itself. .. _command-quotegrabs-grab: -grab [] +``grab [] `` Grabs a quote from by for the quotegrabs table. is only necessary if the message isn't sent in the channel itself. .. _command-quotegrabs-list: -list [] +``list [] `` Returns a list of shortened quotes that have been grabbed for as well as the id of each quote. These ids can be used to get the full quote. is only necessary if the message isn't sent in the channel itself. .. _command-quotegrabs-quote: -quote [] +``quote [] `` Returns 's latest quote grab in . is only necessary if the message isn't sent in the channel itself. .. _command-quotegrabs-random: -random [] [] +``random [] []`` Returns a randomly grabbed quote, optionally choosing only from those quotes grabbed for . is only necessary if the message isn't sent in the channel itself. .. _command-quotegrabs-say: -say [] +``say [] `` Return the quotegrab with the given . is only necessary if the message isn't sent in the channel itself. .. _command-quotegrabs-search: -search [] +``search [] `` Searches for in a quote. is only necessary if the message isn't sent in the channel itself. .. _command-quotegrabs-ungrab: -ungrab [] +``ungrab [] `` Removes the grab (the last by default) on . is only necessary if the message isn't sent in the channel itself. .. _conf-QuoteGrabs: diff --git a/plugins/QuoteGrabs/messages.pot b/plugins/QuoteGrabs/messages.pot index 160dd7359..7f856cf7a 100644 --- a/plugins/QuoteGrabs/messages.pot +++ b/plugins/QuoteGrabs/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/RSS/README.rst b/plugins/RSS/README.rst index 1aca99b19..6bf145fec 100644 --- a/plugins/RSS/README.rst +++ b/plugins/RSS/README.rst @@ -58,42 +58,42 @@ Commands .. _command-rss-add: -add +``add `` Adds a command to this plugin that will look up the RSS feed at the given URL. .. _command-rss-announce.add: -announce add [] [ ...] +``announce add [] [ ...]`` Adds the list of feeds to the current list of announced feeds in . Valid feeds include the names of registered feeds as well as URLs for RSS feeds. is only necessary if the message isn't sent in the channel itself. .. _command-rss-announce.channels: -announce channels +``announce channels `` Returns a list of channels that the given feed name or URL is being announced to. .. _command-rss-announce.list: -announce list [] +``announce list []`` Returns the list of feeds announced in . is only necessary if the message isn't sent in the channel itself. .. _command-rss-announce.remove: -announce remove [] [ ...] +``announce remove [] [ ...]`` Removes the list of feeds from the current list of announced feeds in . Valid feeds include the names of registered feeds as well as URLs for RSS feeds. is only necessary if the message isn't sent in the channel itself. .. _command-rss-info: -info +``info `` Returns information from the given RSS feed, namely the title, URL, description, and last update date, if available. .. _command-rss-remove: -remove +``remove `` Removes the command for looking up RSS feeds at from this plugin. .. _command-rss-rss: -rss [] +``rss []`` Gets the title components of the given RSS feed. If is given, return only that many headlines. .. _conf-RSS: diff --git a/plugins/RSS/locales/de.po b/plugins/RSS/locales/de.po index e1ab972e6..f8bd26df8 100644 --- a/plugins/RSS/locales/de.po +++ b/plugins/RSS/locales/de.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Supybot\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2011-10-29 17:09+0100\n" "Last-Translator: Valentin Lorentz \n" "Language-Team: German \n" @@ -40,22 +40,24 @@ msgid "" " manually. In addition to fields defined by feedparser ($published\n" " (the entry date), $title, $link, $description, $id, etc.), the " "following\n" -" variables can be used: $feed_name, $date (parsed date, as defined in\n" +" variables can be used: $feed_name (the configured name)\n" +" $feed_title/$feed_subtitle/$feed_author/$feed_language/$feed_link,\n" +" $date (parsed date, as defined in\n" " supybot.reply.format.time)" msgstr "" -#: config.py:74 +#: config.py:76 msgid "News from $feed_name: $title <$link>" msgstr "" -#: config.py:75 +#: config.py:77 msgid "" "The format the bot will use for displaying headlines of a RSS feed\n" " that is announced. See supybot.plugins.RSS.format for the available\n" " variables." msgstr "" -#: config.py:83 +#: config.py:85 msgid "" "Determines which RSS feeds\n" " should be announced in the channel; valid input is a list of strings\n" @@ -65,7 +67,7 @@ msgstr "" "eingaben sind Listen von Zeichenketten (entweder registrierte RSS Feed oder " "URLs zu RSS Feed), mit einem Leerzeichen getrennt" -#: config.py:87 +#: config.py:89 msgid "" "Indicates how many seconds the bot will\n" " wait between retrieving RSS feeds; requests made within this period " @@ -76,7 +78,7 @@ msgstr "" "Feeds; Anfragen die innerhalb dieser Zeit gemachten werden, führt zu " "zwischengespeicherten Ergebnissen." -#: config.py:91 +#: config.py:93 msgid "" "Determines whether feed items should be\n" " sorted by their publication/update timestamp or kept in the same order " @@ -84,31 +86,31 @@ msgid "" " they appear in a feed." msgstr "" -#: config.py:95 +#: config.py:97 msgid "" "Determines whether announces will be sent\n" " as notices instead of privmsgs." msgstr "" -#: config.py:98 +#: config.py:100 msgid "" "Indicates how many new news entries may\n" " be sent at the same time. Extra entries will be discarded." msgstr "" -#: config.py:104 +#: config.py:106 msgid "" "Indicates how many headlines an rss feed\n" " will output by default, if no number is provided." msgstr "" -#: config.py:107 +#: config.py:109 msgid "" "Indicates how many headlines an rss feed\n" " will output when it is first added to announce for a channel." msgstr "" -#: config.py:110 +#: config.py:112 msgid "" "Space separated list of \n" " strings, lets you filter headlines to those containing one or more " @@ -116,26 +118,26 @@ msgid "" " in this whitelist." msgstr "" -#: config.py:114 +#: config.py:116 msgid "" "Space separated list of \n" " strings, lets you filter headlines to those not containing any items\n" " in this blacklist." msgstr "" -#: config.py:127 +#: config.py:129 msgid "" "Feed-specific format. Defaults to\n" " supybot.plugins.RSS.format if empty." msgstr "" -#: config.py:130 +#: config.py:132 msgid "" "Feed-specific announce format.\n" " Defaults to supybot.plugins.RSS.announceFormat if empty." msgstr "" -#: config.py:133 +#: config.py:135 msgid "" "If set to a non-zero\n" " value, overrides supybot.plugins.RSS.waitPeriod for this\n" @@ -163,8 +165,8 @@ msgid "" " This plugin is useful both for announcing updates to RSS feeds in a\n" " channel, and for retrieving the headlines of RSS feeds via command. " "Use\n" -" the \"add\" command to add feeds to this plugin, and use the \"announce" -"\"\n" +" the \"add\" command to add feeds to this plugin, and use the " +"\"announce\"\n" " command to determine what feeds should be announced in a given channel.\n" "\n" " Basic usage\n" @@ -213,7 +215,7 @@ msgstr "" msgid "I already have a feed with that URL named %s." msgstr "" -#: plugin.py:508 +#: plugin.py:565 msgid "" " \n" "\n" @@ -226,7 +228,7 @@ msgstr "" "Fügt einen Befehl zu diesem Plugin hinzu, der den RSS Feed von angegebener " "URL abruft." -#: plugin.py:521 +#: plugin.py:578 msgid "" "\n" "\n" @@ -238,11 +240,11 @@ msgstr "" "\n" "Entfernt den Befehl um RSS Feeds von abzurufen aus diesem Plugin" -#: plugin.py:528 +#: plugin.py:585 msgid "That's not a valid RSS feed command name." msgstr "Das ist kein gültiger RSS Feed Befehl." -#: plugin.py:547 +#: plugin.py:604 msgid "" "[]\n" "\n" @@ -255,11 +257,11 @@ msgstr "" "Gibt eine Liste der Feeds, die in einem verkündet werden, zurück. " " ist nur nötig falls der Befehl nicht direkt im Kanal abgegeben wird." -#: plugin.py:556 +#: plugin.py:613 msgid "I am currently not announcing any feeds." msgstr "Momentan kündige ich keine Feeds an." -#: plugin.py:561 +#: plugin.py:618 msgid "" "[] [ ...]\n" "\n" @@ -278,11 +280,11 @@ msgstr "" "auch URLs für RSS Feeds. ist nur nötig falls die Nachricht nicht im " "Kanal gesendet wird." -#: plugin.py:572 +#: plugin.py:629 msgid "These feeds are unknown: %L" msgstr "" -#: plugin.py:593 +#: plugin.py:650 msgid "" "[] [ ...]\n" "\n" @@ -301,7 +303,7 @@ msgstr "" "auch URLs für RSS Feeds. ist nur nötig falls die Nachricht nicht im " "Kanal gesendet wird." -#: plugin.py:618 +#: plugin.py:675 msgid "" "\n" "\n" @@ -311,7 +313,7 @@ msgid "" " " msgstr "" -#: plugin.py:642 +#: plugin.py:699 #, fuzzy msgid "" " []\n" @@ -325,15 +327,15 @@ msgstr "" "Empfängt die Titel des angegeben RSS Feeds. Falls " "angegeben wurde, werden nur soviele Kopfzeilen ausgegeben." -#: plugin.py:658 +#: plugin.py:715 msgid "Couldn't get RSS feed." msgstr "Konnte den RSS Feed nicht bekommen." -#: plugin.py:661 +#: plugin.py:718 msgid " Parser error: " msgstr "" -#: plugin.py:677 +#: plugin.py:736 msgid "" "\n" "\n" @@ -346,19 +348,19 @@ msgstr "" "Gibt Informationen zum angegeben RSS Feed aus. Den Titel, URL, Beschreibung " "und das Datum des letzten Updates, wenn verfügbar." -#: plugin.py:692 +#: plugin.py:751 msgid "I couldn't retrieve that RSS feed." msgstr "Ich konnte den RSS Feed nicht empfangen." -#: plugin.py:700 +#: plugin.py:759 msgid "time unavailable" msgstr "" -#: plugin.py:701 plugin.py:702 plugin.py:703 +#: plugin.py:760 plugin.py:761 plugin.py:762 msgid "unavailable" msgstr "" -#: plugin.py:705 +#: plugin.py:764 msgid "Title: %s; URL: %u; Description: %s; Last updated: %s." msgstr "Titel: %s; URL: %u; Beschreibung: %s; Zuletzt aktualisiert: %s." diff --git a/plugins/RSS/locales/fi.po b/plugins/RSS/locales/fi.po index b4f6140a6..57475793d 100644 --- a/plugins/RSS/locales/fi.po +++ b/plugins/RSS/locales/fi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: RSS plugin for Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-12-20 12:12+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: Finnish <>\n" @@ -52,7 +52,9 @@ msgid "" " manually. In addition to fields defined by feedparser ($published\n" " (the entry date), $title, $link, $description, $id, etc.), the " "following\n" -" variables can be used: $feed_name, $date (parsed date, as defined in\n" +" variables can be used: $feed_name (the configured name)\n" +" $feed_title/$feed_subtitle/$feed_author/$feed_language/$feed_link,\n" +" $date (parsed date, as defined in\n" " supybot.reply.format.time)" msgstr "" "Muoto, jota käytetään manuaalisesti pyydetyn RSS-syltteen otsikoissa.\n" @@ -62,11 +64,11 @@ msgstr "" "$feed_name,\n" " $date (parsittu päiväys, jonka määrittää asetus supybot.reply.format.time)" -#: config.py:74 +#: config.py:76 msgid "News from $feed_name: $title <$link>" msgstr "Uutisia lähteestä $feed_name: $title <$link>" -#: config.py:75 +#: config.py:77 msgid "" "The format the bot will use for displaying headlines of a RSS feed\n" " that is announced. See supybot.plugins.RSS.format for the available\n" @@ -76,7 +78,7 @@ msgstr "" "näyttämiseen.\n" " Kelvolliset muuttujat näkee asetuksesta supybot.plugins.RSS.format." -#: config.py:83 +#: config.py:85 msgid "" "Determines which RSS feeds\n" " should be announced in the channel; valid input is a list of strings\n" @@ -87,7 +89,7 @@ msgstr "" "syöte\n" "-osoitteita) välilyönneillä erotettuina." -#: config.py:87 +#: config.py:89 msgid "" "Indicates how many seconds the bot will\n" " wait between retrieving RSS feeds; requests made within this period " @@ -99,7 +101,7 @@ msgstr "" "ajalla\n" " palauttavat välimuistissa olevia tuloksia." -#: config.py:91 +#: config.py:93 #, fuzzy msgid "" "Determines whether feed items should be\n" @@ -112,19 +114,19 @@ msgstr "" "ilmestyvät\n" " syötteessä." -#: config.py:95 +#: config.py:97 msgid "" "Determines whether announces will be sent\n" " as notices instead of privmsgs." msgstr "" -#: config.py:98 +#: config.py:100 msgid "" "Indicates how many new news entries may\n" " be sent at the same time. Extra entries will be discarded." msgstr "" -#: config.py:104 +#: config.py:106 msgid "" "Indicates how many headlines an rss feed\n" " will output by default, if no number is provided." @@ -132,7 +134,7 @@ msgstr "" "Ilmaisee kuinka monta otsikkoa RSS-syötteen ulostulossa on oletuksena,\n" " jos määrää ei määritetä komennossa." -#: config.py:107 +#: config.py:109 msgid "" "Indicates how many headlines an rss feed\n" " will output when it is first added to announce for a channel." @@ -141,7 +143,7 @@ msgstr "" "kerralla, kun sen kuuluttaminen\n" " lisätään kanavalle." -#: config.py:110 +#: config.py:112 msgid "" "Space separated list of \n" " strings, lets you filter headlines to those containing one or more " @@ -152,7 +154,7 @@ msgstr "" "suodattamisen\n" " yhteen tai useampaan kohteeseen, jotka ovat tällä valkoisella listalla." -#: config.py:114 +#: config.py:116 msgid "" "Space separated list of \n" " strings, lets you filter headlines to those not containing any items\n" @@ -162,14 +164,14 @@ msgstr "" " tämä sallii kohteiden, jotka ovat tällä mustalla listalla, suodattamisen " "pois." -#: config.py:127 +#: config.py:129 #, fuzzy msgid "" "Feed-specific format. Defaults to\n" " supybot.plugins.RSS.format if empty." msgstr "Syötekohtainen muoto. Oletuksena supybot.plugins.RSS.format." -#: config.py:130 +#: config.py:132 #, fuzzy msgid "" "Feed-specific announce format.\n" @@ -177,7 +179,7 @@ msgid "" msgstr "" "Syötekohtainen kuulutusmuoto. Oletuksena supybot.plugins.RSS.announceFormat." -#: config.py:133 +#: config.py:135 msgid "" "If set to a non-zero\n" " value, overrides supybot.plugins.RSS.waitPeriod for this\n" @@ -213,8 +215,8 @@ msgid "" " This plugin is useful both for announcing updates to RSS feeds in a\n" " channel, and for retrieving the headlines of RSS feeds via command. " "Use\n" -" the \"add\" command to add feeds to this plugin, and use the \"announce" -"\"\n" +" the \"add\" command to add feeds to this plugin, and use the " +"\"announce\"\n" " command to determine what feeds should be announced in a given channel.\n" "\n" " Basic usage\n" @@ -263,7 +265,7 @@ msgstr "Minulla on jo komento %s tässä lisä-osassa." msgid "I already have a feed with that URL named %s." msgstr "Minulla on jo syöte nimeltä %s." -#: plugin.py:508 +#: plugin.py:565 msgid "" " \n" "\n" @@ -277,7 +279,7 @@ msgstr "" " URL osoitteesta..\n" " " -#: plugin.py:521 +#: plugin.py:578 msgid "" "\n" "\n" @@ -291,11 +293,11 @@ msgstr "" " lisäosasta.\n" " " -#: plugin.py:528 +#: plugin.py:585 msgid "That's not a valid RSS feed command name." msgstr "Tuo ei ole kelvollinen RSS sylte komento nimi." -#: plugin.py:547 +#: plugin.py:604 msgid "" "[]\n" "\n" @@ -310,11 +312,11 @@ msgstr "" " vaadittu vain jos viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:556 +#: plugin.py:613 msgid "I am currently not announcing any feeds." msgstr "Minä en tällä hetkellä kuuluta yhtään syötettä." -#: plugin.py:561 +#: plugin.py:618 msgid "" "[] [ ...]\n" "\n" @@ -336,12 +338,12 @@ msgstr "" " viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:572 +#: plugin.py:629 #, fuzzy msgid "These feeds are unknown: %L" msgstr "Nämä syötteet ovat tuntemattomia: %L" -#: plugin.py:593 +#: plugin.py:650 msgid "" "[] [ ...]\n" "\n" @@ -363,7 +365,7 @@ msgstr "" " ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:618 +#: plugin.py:675 msgid "" "\n" "\n" @@ -373,7 +375,7 @@ msgid "" " " msgstr "" -#: plugin.py:642 +#: plugin.py:699 #, fuzzy msgid "" " []\n" @@ -389,15 +391,15 @@ msgstr "" "otsikkoa.\n" " " -#: plugin.py:658 +#: plugin.py:715 msgid "Couldn't get RSS feed." msgstr "RSS syötettä ei pystytty hakemaan." -#: plugin.py:661 +#: plugin.py:718 msgid " Parser error: " msgstr "" -#: plugin.py:677 +#: plugin.py:736 msgid "" "\n" "\n" @@ -411,20 +413,20 @@ msgstr "" " URL, kuvauksen, ja viimeisen päivityksen, jos saatavilla.\n" " " -#: plugin.py:692 +#: plugin.py:751 msgid "I couldn't retrieve that RSS feed." msgstr "En voinut noutaa tuota RSS syötettä." -#: plugin.py:700 +#: plugin.py:759 #, fuzzy msgid "time unavailable" msgstr "aika ei ole saatavilla" -#: plugin.py:701 plugin.py:702 plugin.py:703 +#: plugin.py:760 plugin.py:761 plugin.py:762 msgid "unavailable" msgstr "ei saatavilla" -#: plugin.py:705 +#: plugin.py:764 msgid "Title: %s; URL: %u; Description: %s; Last updated: %s." msgstr "Otsikko: %s; URL: %u; Kuvaus: %s; Viimeeksi päivitetty: %s." @@ -441,8 +443,8 @@ msgstr "Otsikko: %s; URL: %u; Kuvaus: %s; Viimeeksi päivitetty: %s." #~ "kuuluttamiseen\n" #~ " kanavalla, ja hakemaan RSS syötteen uusimmat otsikot komennon " #~ "kautta. Käytä\n" -#~ " \"add\" komentoa lisätäksesi syötteitä tähän lisäosaan ja \"announce" -#~ "\"\n" +#~ " \"add\" komentoa lisätäksesi syötteitä tähän lisäosaan ja " +#~ "\"announce\"\n" #~ " komentoa määrittämään mitkä syötteet pitäisi kuuluttaa annetulla " #~ "kanavalla." diff --git a/plugins/RSS/locales/fr.po b/plugins/RSS/locales/fr.po index 50a169ce7..a361d8b08 100644 --- a/plugins/RSS/locales/fr.po +++ b/plugins/RSS/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Limnoria \n" @@ -41,22 +41,24 @@ msgid "" " manually. In addition to fields defined by feedparser ($published\n" " (the entry date), $title, $link, $description, $id, etc.), the " "following\n" -" variables can be used: $feed_name, $date (parsed date, as defined in\n" +" variables can be used: $feed_name (the configured name)\n" +" $feed_title/$feed_subtitle/$feed_author/$feed_language/$feed_link,\n" +" $date (parsed date, as defined in\n" " supybot.reply.format.time)" msgstr "" -#: config.py:74 +#: config.py:76 msgid "News from $feed_name: $title <$link>" msgstr "" -#: config.py:75 +#: config.py:77 msgid "" "The format the bot will use for displaying headlines of a RSS feed\n" " that is announced. See supybot.plugins.RSS.format for the available\n" " variables." msgstr "" -#: config.py:83 +#: config.py:85 msgid "" "Determines which RSS feeds\n" " should be announced in the channel; valid input is a list of strings\n" @@ -66,7 +68,7 @@ msgstr "" "est une liste de chaînes (des flux enregistrés ou des URLs de flux RSS), " "séparées par des espaces." -#: config.py:87 +#: config.py:89 msgid "" "Indicates how many seconds the bot will\n" " wait between retrieving RSS feeds; requests made within this period " @@ -76,7 +78,7 @@ msgstr "" "Détermine le temps (en secondes) entre deux rafraichissement des flux RSS. " "Durant cette période, les flux seront mis en cache." -#: config.py:91 +#: config.py:93 #, fuzzy msgid "" "Determines whether feed items should be\n" @@ -87,19 +89,19 @@ msgstr "" "Détermine si les éléments du flux doivent être triés selon la date de leur " "mise à jour ou si ils doivent être conservés dans l'ordre original du flux." -#: config.py:95 +#: config.py:97 msgid "" "Determines whether announces will be sent\n" " as notices instead of privmsgs." msgstr "" -#: config.py:98 +#: config.py:100 msgid "" "Indicates how many new news entries may\n" " be sent at the same time. Extra entries will be discarded." msgstr "" -#: config.py:104 +#: config.py:106 msgid "" "Indicates how many headlines an rss feed\n" " will output by default, if no number is provided." @@ -107,7 +109,7 @@ msgstr "" "Indique combien d'éléments un flux rss affichera par défaut, si aucun nombre " "n'est donné." -#: config.py:107 +#: config.py:109 msgid "" "Indicates how many headlines an rss feed\n" " will output when it is first added to announce for a channel." @@ -115,7 +117,7 @@ msgstr "" "Indique combien d'éléments un flux rss affichera lorsque qu'il vient d'être " "configuré pour être annoncé sur le salon." -#: config.py:110 +#: config.py:112 msgid "" "Space separated list of \n" " strings, lets you filter headlines to those containing one or more " @@ -125,7 +127,7 @@ msgstr "" "Liste séparée par des espaces de chaînes, qui vous permet de filtrer les " "éléments par liste blanche." -#: config.py:114 +#: config.py:116 msgid "" "Space separated list of \n" " strings, lets you filter headlines to those not containing any items\n" @@ -134,19 +136,19 @@ msgstr "" "Liste séparée par des espaces de chaînes, qui vous permet de filtrer les " "éléments par liste noire." -#: config.py:127 +#: config.py:129 msgid "" "Feed-specific format. Defaults to\n" " supybot.plugins.RSS.format if empty." msgstr "" -#: config.py:130 +#: config.py:132 msgid "" "Feed-specific announce format.\n" " Defaults to supybot.plugins.RSS.announceFormat if empty." msgstr "" -#: config.py:133 +#: config.py:135 msgid "" "If set to a non-zero\n" " value, overrides supybot.plugins.RSS.waitPeriod for this\n" @@ -174,8 +176,8 @@ msgid "" " This plugin is useful both for announcing updates to RSS feeds in a\n" " channel, and for retrieving the headlines of RSS feeds via command. " "Use\n" -" the \"add\" command to add feeds to this plugin, and use the \"announce" -"\"\n" +" the \"add\" command to add feeds to this plugin, and use the " +"\"announce\"\n" " command to determine what feeds should be announced in a given channel.\n" "\n" " Basic usage\n" @@ -224,7 +226,7 @@ msgstr "" msgid "I already have a feed with that URL named %s." msgstr "" -#: plugin.py:508 +#: plugin.py:565 msgid "" " \n" "\n" @@ -237,7 +239,7 @@ msgstr "" "Ajoute un commande à ce plugin qui permet de regarder le flux situé à " "l'." -#: plugin.py:521 +#: plugin.py:578 msgid "" "\n" "\n" @@ -249,11 +251,11 @@ msgstr "" "\n" "Supprime le flux des flux qui peuvent être lus grâce à une commande." -#: plugin.py:528 +#: plugin.py:585 msgid "That's not a valid RSS feed command name." msgstr "Ce n'est pas une commande de flux RSS valide" -#: plugin.py:547 +#: plugin.py:604 msgid "" "[]\n" "\n" @@ -266,11 +268,11 @@ msgstr "" "Retourne la liste des flux annoncés sur le . n'est nécessaire " "que si le message n'est pas envoyé sur le canal lui-même." -#: plugin.py:556 +#: plugin.py:613 msgid "I am currently not announcing any feeds." msgstr "Je n'annonce actuellement aucun flux." -#: plugin.py:561 +#: plugin.py:618 msgid "" "[] [ ...]\n" "\n" @@ -289,11 +291,11 @@ msgstr "" "l' dans le cas contraire. n'est nécessaire que si le message " "n'est pas envoyé sur le canal lui-même." -#: plugin.py:572 +#: plugin.py:629 msgid "These feeds are unknown: %L" msgstr "" -#: plugin.py:593 +#: plugin.py:650 msgid "" "[] [ ...]\n" "\n" @@ -312,7 +314,7 @@ msgstr "" "l' dans le cas contraire. n'est nécessaire que si le message " "n'est pas envoyé sur le canal lui-même." -#: plugin.py:618 +#: plugin.py:675 msgid "" "\n" "\n" @@ -322,7 +324,7 @@ msgid "" " " msgstr "" -#: plugin.py:642 +#: plugin.py:699 #, fuzzy msgid "" " []\n" @@ -336,15 +338,15 @@ msgstr "" "Récupère le titre des éléments du flux RSS donné. si le " "est donné, ne retourne que ce nombre de lignes d'en-tête." -#: plugin.py:658 +#: plugin.py:715 msgid "Couldn't get RSS feed." msgstr "Ne peut récupérer le flux RSS." -#: plugin.py:661 +#: plugin.py:718 msgid " Parser error: " msgstr "" -#: plugin.py:677 +#: plugin.py:736 msgid "" "\n" "\n" @@ -357,19 +359,19 @@ msgstr "" "Retourne des informations sur le flux RSS donné : le titre, l'URL, la " "description, et la dernière mise à jour." -#: plugin.py:692 +#: plugin.py:751 msgid "I couldn't retrieve that RSS feed." msgstr "Je ne peux récupérer ce flux RSS." -#: plugin.py:700 +#: plugin.py:759 msgid "time unavailable" msgstr "" -#: plugin.py:701 plugin.py:702 plugin.py:703 +#: plugin.py:760 plugin.py:761 plugin.py:762 msgid "unavailable" msgstr "" -#: plugin.py:705 +#: plugin.py:764 msgid "Title: %s; URL: %u; Description: %s; Last updated: %s." msgstr "Titre : %s , URL : %u ; description : %s ; dernière mise à jour : %s." @@ -431,5 +433,6 @@ msgstr "Titre : %s , URL : %u ; description : %s ; dernière mise à jour : %s." #~ msgstr "" #~ "Ce plugin est utile pour annoncer des flux RSS sur un canal, et pour " #~ "récupérer les en-tête des flux RSS via une commande. Utilisez la commande " -#~ "\"add\" pour ajouter des flux au plugin, et utilisez la commande \"annonce" -#~ "\" pour détermine quels flux pourront être annoncés sur un canal donné." +#~ "\"add\" pour ajouter des flux au plugin, et utilisez la commande " +#~ "\"annonce\" pour détermine quels flux pourront être annoncés sur un canal " +#~ "donné." diff --git a/plugins/RSS/locales/hu.po b/plugins/RSS/locales/hu.po index 4f9f2ef97..0efc9223d 100644 --- a/plugins/RSS/locales/hu.po +++ b/plugins/RSS/locales/hu.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria RSS\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-05-10 23:46+0200\n" "Last-Translator: nyuszika7h \n" "Language-Team: \n" @@ -45,22 +45,24 @@ msgid "" " manually. In addition to fields defined by feedparser ($published\n" " (the entry date), $title, $link, $description, $id, etc.), the " "following\n" -" variables can be used: $feed_name, $date (parsed date, as defined in\n" +" variables can be used: $feed_name (the configured name)\n" +" $feed_title/$feed_subtitle/$feed_author/$feed_language/$feed_link,\n" +" $date (parsed date, as defined in\n" " supybot.reply.format.time)" msgstr "" -#: config.py:74 +#: config.py:76 msgid "News from $feed_name: $title <$link>" msgstr "" -#: config.py:75 +#: config.py:77 msgid "" "The format the bot will use for displaying headlines of a RSS feed\n" " that is announced. See supybot.plugins.RSS.format for the available\n" " variables." msgstr "" -#: config.py:83 +#: config.py:85 msgid "" "Determines which RSS feeds\n" " should be announced in the channel; valid input is a list of strings\n" @@ -71,7 +73,7 @@ msgstr "" "hírcsatornák vagy RSS hírcsatorna hivatkozások) szóközzel elválasztott " "listája." -#: config.py:87 +#: config.py:89 msgid "" "Indicates how many seconds the bot will\n" " wait between retrieving RSS feeds; requests made within this period " @@ -82,7 +84,7 @@ msgstr "" "az ebben az időszakban végrehajtott kérések gyorsítótárazott eredményeket " "adnak vissza." -#: config.py:91 +#: config.py:93 msgid "" "Determines whether feed items should be\n" " sorted by their publication/update timestamp or kept in the same order " @@ -90,31 +92,31 @@ msgid "" " they appear in a feed." msgstr "" -#: config.py:95 +#: config.py:97 msgid "" "Determines whether announces will be sent\n" " as notices instead of privmsgs." msgstr "" -#: config.py:98 +#: config.py:100 msgid "" "Indicates how many new news entries may\n" " be sent at the same time. Extra entries will be discarded." msgstr "" -#: config.py:104 +#: config.py:106 msgid "" "Indicates how many headlines an rss feed\n" " will output by default, if no number is provided." msgstr "" -#: config.py:107 +#: config.py:109 msgid "" "Indicates how many headlines an rss feed\n" " will output when it is first added to announce for a channel." msgstr "" -#: config.py:110 +#: config.py:112 msgid "" "Space separated list of \n" " strings, lets you filter headlines to those containing one or more " @@ -122,26 +124,26 @@ msgid "" " in this whitelist." msgstr "" -#: config.py:114 +#: config.py:116 msgid "" "Space separated list of \n" " strings, lets you filter headlines to those not containing any items\n" " in this blacklist." msgstr "" -#: config.py:127 +#: config.py:129 msgid "" "Feed-specific format. Defaults to\n" " supybot.plugins.RSS.format if empty." msgstr "" -#: config.py:130 +#: config.py:132 msgid "" "Feed-specific announce format.\n" " Defaults to supybot.plugins.RSS.announceFormat if empty." msgstr "" -#: config.py:133 +#: config.py:135 msgid "" "If set to a non-zero\n" " value, overrides supybot.plugins.RSS.waitPeriod for this\n" @@ -169,8 +171,8 @@ msgid "" " This plugin is useful both for announcing updates to RSS feeds in a\n" " channel, and for retrieving the headlines of RSS feeds via command. " "Use\n" -" the \"add\" command to add feeds to this plugin, and use the \"announce" -"\"\n" +" the \"add\" command to add feeds to this plugin, and use the " +"\"announce\"\n" " command to determine what feeds should be announced in a given channel.\n" "\n" " Basic usage\n" @@ -219,7 +221,7 @@ msgstr "" msgid "I already have a feed with that URL named %s." msgstr "" -#: plugin.py:508 +#: plugin.py:565 msgid "" " \n" "\n" @@ -232,7 +234,7 @@ msgstr "" "Hozzáad egy parancsot ehhez a bővítményhez, amely le fogja kérdezni az RSS " "hírcsatornát a megadott hivatkozáson." -#: plugin.py:521 +#: plugin.py:578 msgid "" "\n" "\n" @@ -244,11 +246,11 @@ msgstr "" "\n" "Eltávolítja a RSS hírcsatornáinak lekérdezéséhez a bővítményből." -#: plugin.py:528 +#: plugin.py:585 msgid "That's not a valid RSS feed command name." msgstr "Ez nem egy érvényes RSS hírcsatorna parancsnév." -#: plugin.py:547 +#: plugin.py:604 msgid "" "[]\n" "\n" @@ -261,11 +263,11 @@ msgstr "" "Kiírja a -n bejelentett hírcsatornákat. csak akkor " "szükséges, ha az üzenet nem a csatornában van elküldve." -#: plugin.py:556 +#: plugin.py:613 msgid "I am currently not announcing any feeds." msgstr "Jelenleg nem jelentek be semmilyen hírcsatornát." -#: plugin.py:561 +#: plugin.py:618 msgid "" "[] [ ...]\n" "\n" @@ -284,11 +286,11 @@ msgstr "" "hírcsatornák nevei és az RSS hírcsatornák hivatkozásai. csak " "akkor szükséges, ha az üzenet nem a csatornában van elküldve." -#: plugin.py:572 +#: plugin.py:629 msgid "These feeds are unknown: %L" msgstr "" -#: plugin.py:593 +#: plugin.py:650 msgid "" "[] [ ...]\n" "\n" @@ -307,7 +309,7 @@ msgstr "" "regisztrált hírcsatornák nevei és az RSS hírcsatornák hivatkozásai. " " csak akkor szükséges, ha az üzenet nem a csatornában van elküldve." -#: plugin.py:618 +#: plugin.py:675 msgid "" "\n" "\n" @@ -317,7 +319,7 @@ msgid "" " " msgstr "" -#: plugin.py:642 +#: plugin.py:699 #, fuzzy msgid "" " []\n" @@ -331,15 +333,15 @@ msgstr "" "Lekérdezi a főcímeket a megadott RSS hírcsatornából. Ha meg " "van adva, csak annyi főcímet ír ki." -#: plugin.py:658 +#: plugin.py:715 msgid "Couldn't get RSS feed." msgstr "Nem sikerült elérni az RSS hírcsatornát." -#: plugin.py:661 +#: plugin.py:718 msgid " Parser error: " msgstr "" -#: plugin.py:677 +#: plugin.py:736 msgid "" "\n" "\n" @@ -352,19 +354,19 @@ msgstr "" "Információt ír ki a megadott RSS hírcsatornáról, név szerint a címet, a " "hivatkozást, a leírást és a legutóbbi frissítés idejét, ha elérhető." -#: plugin.py:692 +#: plugin.py:751 msgid "I couldn't retrieve that RSS feed." msgstr "Nem tudtam lekérdezni a megadott RSS hírcsatornát." -#: plugin.py:700 +#: plugin.py:759 msgid "time unavailable" msgstr "" -#: plugin.py:701 plugin.py:702 plugin.py:703 +#: plugin.py:760 plugin.py:761 plugin.py:762 msgid "unavailable" msgstr "" -#: plugin.py:705 +#: plugin.py:764 msgid "Title: %s; URL: %u; Description: %s; Last updated: %s." msgstr "Cím: %s; Hivatkozás: %u; Leírás: %s; Legutóbbi frissítés: %s." diff --git a/plugins/RSS/locales/it.po b/plugins/RSS/locales/it.po index d78156aab..d813c0bd0 100644 --- a/plugins/RSS/locales/it.po +++ b/plugins/RSS/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-06-03 04:49+0200\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -38,22 +38,24 @@ msgid "" " manually. In addition to fields defined by feedparser ($published\n" " (the entry date), $title, $link, $description, $id, etc.), the " "following\n" -" variables can be used: $feed_name, $date (parsed date, as defined in\n" +" variables can be used: $feed_name (the configured name)\n" +" $feed_title/$feed_subtitle/$feed_author/$feed_language/$feed_link,\n" +" $date (parsed date, as defined in\n" " supybot.reply.format.time)" msgstr "" -#: config.py:74 +#: config.py:76 msgid "News from $feed_name: $title <$link>" msgstr "" -#: config.py:75 +#: config.py:77 msgid "" "The format the bot will use for displaying headlines of a RSS feed\n" " that is announced. See supybot.plugins.RSS.format for the available\n" " variables." msgstr "" -#: config.py:83 +#: config.py:85 msgid "" "Determines which RSS feeds\n" " should be announced in the channel; valid input is a list of strings\n" @@ -63,7 +65,7 @@ msgstr "" "elenco di stringhe\n" " (sia di feed registrati sia di URL di feed) separate da spazi." -#: config.py:87 +#: config.py:89 msgid "" "Indicates how many seconds the bot will\n" " wait between retrieving RSS feeds; requests made within this period " @@ -74,7 +76,7 @@ msgstr "" "effettuate\n" " entro questo periodo verranno memorizzate nella cache." -#: config.py:91 +#: config.py:93 #, fuzzy msgid "" "Determines whether feed items should be\n" @@ -86,31 +88,31 @@ msgstr "" "aggiornamento\n" " o mantenuti nello stesso ordine con il quale appaiono." -#: config.py:95 +#: config.py:97 msgid "" "Determines whether announces will be sent\n" " as notices instead of privmsgs." msgstr "" -#: config.py:98 +#: config.py:100 msgid "" "Indicates how many new news entries may\n" " be sent at the same time. Extra entries will be discarded." msgstr "" -#: config.py:104 +#: config.py:106 msgid "" "Indicates how many headlines an rss feed\n" " will output by default, if no number is provided." msgstr "" -#: config.py:107 +#: config.py:109 msgid "" "Indicates how many headlines an rss feed\n" " will output when it is first added to announce for a channel." msgstr "" -#: config.py:110 +#: config.py:112 msgid "" "Space separated list of \n" " strings, lets you filter headlines to those containing one or more " @@ -118,26 +120,26 @@ msgid "" " in this whitelist." msgstr "" -#: config.py:114 +#: config.py:116 msgid "" "Space separated list of \n" " strings, lets you filter headlines to those not containing any items\n" " in this blacklist." msgstr "" -#: config.py:127 +#: config.py:129 msgid "" "Feed-specific format. Defaults to\n" " supybot.plugins.RSS.format if empty." msgstr "" -#: config.py:130 +#: config.py:132 msgid "" "Feed-specific announce format.\n" " Defaults to supybot.plugins.RSS.announceFormat if empty." msgstr "" -#: config.py:133 +#: config.py:135 msgid "" "If set to a non-zero\n" " value, overrides supybot.plugins.RSS.waitPeriod for this\n" @@ -165,8 +167,8 @@ msgid "" " This plugin is useful both for announcing updates to RSS feeds in a\n" " channel, and for retrieving the headlines of RSS feeds via command. " "Use\n" -" the \"add\" command to add feeds to this plugin, and use the \"announce" -"\"\n" +" the \"add\" command to add feeds to this plugin, and use the " +"\"announce\"\n" " command to determine what feeds should be announced in a given channel.\n" "\n" " Basic usage\n" @@ -215,7 +217,7 @@ msgstr "" msgid "I already have a feed with that URL named %s." msgstr "" -#: plugin.py:508 +#: plugin.py:565 msgid "" " \n" "\n" @@ -229,7 +231,7 @@ msgstr "" "specificato.\n" " " -#: plugin.py:521 +#: plugin.py:578 msgid "" "\n" "\n" @@ -242,11 +244,11 @@ msgstr "" " Rimuove il comando per cercare feed RSS con .\n" " " -#: plugin.py:528 +#: plugin.py:585 msgid "That's not a valid RSS feed command name." msgstr "Questo non è un comando di feed RSS valido." -#: plugin.py:547 +#: plugin.py:604 msgid "" "[]\n" "\n" @@ -262,11 +264,11 @@ msgstr "" "stesso.\n" " " -#: plugin.py:556 +#: plugin.py:613 msgid "I am currently not announcing any feeds." msgstr "Attualmente non sto annunciando alcun feed." -#: plugin.py:561 +#: plugin.py:618 msgid "" "[] [ ...]\n" "\n" @@ -288,11 +290,11 @@ msgstr "" "canale stesso.\n" " " -#: plugin.py:572 +#: plugin.py:629 msgid "These feeds are unknown: %L" msgstr "" -#: plugin.py:593 +#: plugin.py:650 msgid "" "[] [ ...]\n" "\n" @@ -314,7 +316,7 @@ msgstr "" "canale stesso.\n" " " -#: plugin.py:618 +#: plugin.py:675 msgid "" "\n" "\n" @@ -324,7 +326,7 @@ msgid "" " " msgstr "" -#: plugin.py:642 +#: plugin.py:699 #, fuzzy msgid "" " []\n" @@ -339,15 +341,15 @@ msgstr "" " Se è fornito, restituisce solo quella quantità.\n" " " -#: plugin.py:658 +#: plugin.py:715 msgid "Couldn't get RSS feed." msgstr "Impossibile recuperare il feed RSS." -#: plugin.py:661 +#: plugin.py:718 msgid " Parser error: " msgstr "" -#: plugin.py:677 +#: plugin.py:736 msgid "" "\n" "\n" @@ -361,19 +363,19 @@ msgstr "" " URL, descrizione e data dell'ultimo aggiornamento.\n" " " -#: plugin.py:692 +#: plugin.py:751 msgid "I couldn't retrieve that RSS feed." msgstr "Non riesco a recuperare questo feed RSS." -#: plugin.py:700 +#: plugin.py:759 msgid "time unavailable" msgstr "" -#: plugin.py:701 plugin.py:702 plugin.py:703 +#: plugin.py:760 plugin.py:761 plugin.py:762 msgid "unavailable" msgstr "" -#: plugin.py:705 +#: plugin.py:764 msgid "Title: %s; URL: %u; Description: %s; Last updated: %s." msgstr "Titolo: %s; URL: %u; Descrizione: %s; Ultimo aggiornamento: %s." diff --git a/plugins/RSS/messages.pot b/plugins/RSS/messages.pot index 7279a4e59..9c86b9e77 100644 --- a/plugins/RSS/messages.pot +++ b/plugins/RSS/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -42,93 +42,95 @@ msgid "" " will use for displaying headlines of a RSS feed that is triggered\n" " manually. In addition to fields defined by feedparser ($published\n" " (the entry date), $title, $link, $description, $id, etc.), the following\n" -" variables can be used: $feed_name, $date (parsed date, as defined in\n" +" variables can be used: $feed_name (the configured name)\n" +" $feed_title/$feed_subtitle/$feed_author/$feed_language/$feed_link,\n" +" $date (parsed date, as defined in\n" " supybot.reply.format.time)" msgstr "" -#: config.py:74 +#: config.py:76 msgid "News from $feed_name: $title <$link>" msgstr "" -#: config.py:75 +#: config.py:77 msgid "" "The format the bot will use for displaying headlines of a RSS feed\n" " that is announced. See supybot.plugins.RSS.format for the available\n" " variables." msgstr "" -#: config.py:83 +#: config.py:85 msgid "" "Determines which RSS feeds\n" " should be announced in the channel; valid input is a list of strings\n" " (either registered RSS feeds or RSS feed URLs) separated by spaces." msgstr "" -#: config.py:87 +#: config.py:89 msgid "" "Indicates how many seconds the bot will\n" " wait between retrieving RSS feeds; requests made within this period will\n" " return cached results." msgstr "" -#: config.py:91 +#: config.py:93 msgid "" "Determines whether feed items should be\n" " sorted by their publication/update timestamp or kept in the same order as\n" " they appear in a feed." msgstr "" -#: config.py:95 +#: config.py:97 msgid "" "Determines whether announces will be sent\n" " as notices instead of privmsgs." msgstr "" -#: config.py:98 +#: config.py:100 msgid "" "Indicates how many new news entries may\n" " be sent at the same time. Extra entries will be discarded." msgstr "" -#: config.py:104 +#: config.py:106 msgid "" "Indicates how many headlines an rss feed\n" " will output by default, if no number is provided." msgstr "" -#: config.py:107 +#: config.py:109 msgid "" "Indicates how many headlines an rss feed\n" " will output when it is first added to announce for a channel." msgstr "" -#: config.py:110 +#: config.py:112 msgid "" "Space separated list of \n" " strings, lets you filter headlines to those containing one or more items\n" " in this whitelist." msgstr "" -#: config.py:114 +#: config.py:116 msgid "" "Space separated list of \n" " strings, lets you filter headlines to those not containing any items\n" " in this blacklist." msgstr "" -#: config.py:127 +#: config.py:129 msgid "" "Feed-specific format. Defaults to\n" " supybot.plugins.RSS.format if empty." msgstr "" -#: config.py:130 +#: config.py:132 msgid "" "Feed-specific announce format.\n" " Defaults to supybot.plugins.RSS.announceFormat if empty." msgstr "" -#: config.py:133 +#: config.py:135 msgid "" "If set to a non-zero\n" " value, overrides supybot.plugins.RSS.waitPeriod for this\n" @@ -203,7 +205,7 @@ msgstr "" msgid "I already have a feed with that URL named %s." msgstr "" -#: plugin.py:508 +#: plugin.py:565 #, docstring msgid "" " \n" @@ -213,7 +215,7 @@ msgid "" " " msgstr "" -#: plugin.py:521 +#: plugin.py:578 #, docstring msgid "" "\n" @@ -223,11 +225,11 @@ msgid "" " " msgstr "" -#: plugin.py:528 +#: plugin.py:585 msgid "That's not a valid RSS feed command name." msgstr "" -#: plugin.py:547 +#: plugin.py:604 #, docstring msgid "" "[]\n" @@ -237,11 +239,11 @@ msgid "" " " msgstr "" -#: plugin.py:556 +#: plugin.py:613 msgid "I am currently not announcing any feeds." msgstr "" -#: plugin.py:561 +#: plugin.py:618 #, docstring msgid "" "[] [ ...]\n" @@ -253,11 +255,11 @@ msgid "" " " msgstr "" -#: plugin.py:572 +#: plugin.py:629 msgid "These feeds are unknown: %L" msgstr "" -#: plugin.py:593 +#: plugin.py:650 #, docstring msgid "" "[] [ ...]\n" @@ -269,7 +271,7 @@ msgid "" " " msgstr "" -#: plugin.py:618 +#: plugin.py:675 #, docstring msgid "" "\n" @@ -279,7 +281,7 @@ msgid "" " " msgstr "" -#: plugin.py:642 +#: plugin.py:699 #, docstring msgid "" " []\n" @@ -289,15 +291,15 @@ msgid "" " " msgstr "" -#: plugin.py:658 +#: plugin.py:715 msgid "Couldn't get RSS feed." msgstr "" -#: plugin.py:661 +#: plugin.py:718 msgid " Parser error: " msgstr "" -#: plugin.py:677 +#: plugin.py:736 #, docstring msgid "" "\n" @@ -307,19 +309,19 @@ msgid "" " " msgstr "" -#: plugin.py:692 +#: plugin.py:751 msgid "I couldn't retrieve that RSS feed." msgstr "" -#: plugin.py:700 +#: plugin.py:759 msgid "time unavailable" msgstr "" -#: plugin.py:701 plugin.py:702 plugin.py:703 +#: plugin.py:760 plugin.py:761 plugin.py:762 msgid "unavailable" msgstr "" -#: plugin.py:705 +#: plugin.py:764 msgid "Title: %s; URL: %u; Description: %s; Last updated: %s." msgstr "" diff --git a/plugins/RSS/plugin.py b/plugins/RSS/plugin.py index 29e0edd0e..cba29de23 100644 --- a/plugins/RSS/plugin.py +++ b/plugins/RSS/plugin.py @@ -36,6 +36,7 @@ import json import time import types import string +import random import socket import threading import feedparser @@ -170,6 +171,9 @@ def sort_feed_items(items, order): """Return feed items, sorted according to sortFeedItems.""" if order == 'asInFeed': return items + elif order == 'random': + random.shuffle(items) + return items (key, reverse) = _sort_arguments(order) try: sitems = sorted(items, key=key, reverse=reverse) @@ -695,11 +699,12 @@ class RSS(callbacks.Plugin): channels = wrap(channels, ['feedName']) @internationalizeDocstring - def rss(self, irc, msg, args, url, n): - """ [] + def rss(self, irc, msg, args, optlist, url, n): + """[--random] [] Gets the title components of the given RSS feed. If is given, return only that many headlines. + Use --random flag for random sorting of entries. """ self.log.debug('Fetching %u', url) try: @@ -719,17 +724,22 @@ class RSS(callbacks.Plugin): s += str(feed.last_exception) irc.error(s) return - n = n or self.registryValue('defaultNumberOfHeadlines', channel, irc.network) entries = list(filter(lambda e:self.should_send_entry(irc.network, channel, e), feed.entries)) - entries = sort_feed_items(entries, 'newestFirst') + order = 'newestFirst' + if 'random' in (k for k,v in optlist): + order = 'random' + entries = sort_feed_items(entries, order) + n = n or self.registryValue('defaultNumberOfHeadlines', channel, irc.network) entries = entries[:n] entries = sort_feed_items(entries, self.registryValue('sortFeedItems')) headlines = map(lambda e:self.format_entry(irc.network, channel, feed, e, False), entries) sep = self.registryValue('headlineSeparator', channel, irc.network) irc.replies(headlines, joiner=sep) - rss = wrap(rss, [first('url', 'feedName'), additional('int')]) + rss = wrap(rss, [getopts({ 'random': '', }), + first('url', 'feedName'), + additional('int')]) @internationalizeDocstring def info(self, irc, msg, args, url): diff --git a/plugins/RSS/test.py b/plugins/RSS/test.py index 494b1e9b0..2e8a3c761 100644 --- a/plugins/RSS/test.py +++ b/plugins/RSS/test.py @@ -571,6 +571,12 @@ class RSSTestCase(ChannelPluginTestCase): m = self.assertNotError('rss %s 2' % url) self.assertEqual(m.args[1].count(' | '), 1) + def testRssRandom(self): + timeFastForward(1.1) + self.assertNotError('rss --random %s' % url) + m = self.assertNotError('rss --random %s 2' % url) + self.assertEqual(m.args[1].count(' | '), 1) + def testRssAdd(self): timeFastForward(1.1) self.assertNotError('rss add advogato %s' % url) diff --git a/plugins/Relay/README.rst b/plugins/Relay/README.rst index 70a6a5218..6e803c23a 100644 --- a/plugins/Relay/README.rst +++ b/plugins/Relay/README.rst @@ -29,17 +29,17 @@ Commands .. _command-relay-join: -join [] +``join []`` Starts relaying between the channel on all networks. If on a network the bot isn't in , it'll join. This commands is required even if the bot is in the channel on both networks; it won't relay between those channels unless it's told to join both channels. If is not given, starts relaying on the channel the message was sent in. .. _command-relay-nicks: -nicks [] +``nicks []`` Returns the nicks of the people in the channel on the various networks the bot is connected to. is only necessary if the message isn't sent on the channel itself. .. _command-relay-part: -part +``part `` Ceases relaying between the channel on all networks. The bot will part from the channel on all networks in which it is on the channel. .. _conf-Relay: diff --git a/plugins/Relay/locales/fi.po b/plugins/Relay/locales/fi.po index b4025869f..b0f0df23e 100644 --- a/plugins/Relay/locales/fi.po +++ b/plugins/Relay/locales/fi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Relay plugin for Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-12-20 12:17+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -29,7 +29,7 @@ msgstr "Minkä kanavien? Erota ne välilyönnillä." msgid "Would you like to use color to distinguish between nicks?" msgstr "Haluaisitko botin käyttävän värejä erottamaan nimimerkit toisistaan?" -#: config.py:60 +#: config.py:62 msgid "" "Determines whether the bot will color relayed\n" " PRIVMSGs so as to make the messages easier to read." @@ -37,7 +37,7 @@ msgstr "" "Määrittää värjääkö botti välitetyt\n" " PRIVMSG:eet, jotta viestit olisivat helpommin luettavia." -#: config.py:63 +#: config.py:65 msgid "" "Determines whether the bot will synchronize\n" " topics between networks in the channels it relays." @@ -45,7 +45,7 @@ msgstr "" "Määrittää synkronoiko botti\n" " aiheet kanavilla, joita se välittää kaikkiin verkkoihin." -#: config.py:66 +#: config.py:68 msgid "" "Determines whether the bot will relay the\n" " hostmask of the person joining or parting the channel when they join\n" @@ -55,7 +55,7 @@ msgstr "" " liittyvän tai poistuvan henkilön hostmaskin, hänen liittyessään/" "poistuessaan." -#: config.py:70 +#: config.py:72 msgid "" "Determines whether the bot will include the\n" " network in relayed PRIVMSGs; if you're only relaying between two " @@ -66,7 +66,7 @@ msgstr "" " verkon välitetyissä PRIVMSG:issä; jos välität vain kahta verkkoa,\n" " se on aika tarpeeton, ja saatat tahtoa säästää tilaa." -#: config.py:74 +#: config.py:76 msgid "" "Determines whether the bot will detect other\n" " bots relaying and respond by kickbanning them." @@ -75,7 +75,7 @@ msgstr "" " välittävät botit ja vastaa potkimalla ne ja antamalla niille " "porttikiellon." -#: config.py:77 +#: config.py:79 msgid "" "Determines which channels the bot\n" " will relay in." @@ -83,7 +83,7 @@ msgstr "" "Määrittää mitä kanavia botti\n" " välittää." -#: config.py:80 +#: config.py:82 #, fuzzy msgid "" "Determines whether the bot\n" @@ -96,7 +96,7 @@ msgstr "" "joihin\n" " botti on yhdistänyt." -#: config.py:84 +#: config.py:86 msgid "" "Determines what hostmasks will not be relayed on a\n" " channel." @@ -104,7 +104,7 @@ msgstr "" "Määrittää mitä hostmaskeja ei välitetä\n" " kanavalla." -#: config.py:87 +#: config.py:89 msgid "" "Determines whether the bot will used NOTICEs\n" " rather than PRIVMSGs for non-PRIVMSG relay messages (i.e., joins, " diff --git a/plugins/Relay/locales/fr.po b/plugins/Relay/locales/fr.po index 7a09d8b6e..11465a0e8 100644 --- a/plugins/Relay/locales/fr.po +++ b/plugins/Relay/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: Limnoria \n" @@ -24,7 +24,7 @@ msgstr "Quels canaux ? Séparez-les par des espaces." msgid "Would you like to use color to distinguish between nicks?" msgstr "Voulez-vous utiliser de la couleur pour distinguer les nicks ?" -#: config.py:60 +#: config.py:62 msgid "" "Determines whether the bot will color relayed\n" " PRIVMSGs so as to make the messages easier to read." @@ -32,7 +32,7 @@ msgstr "" "Détermine si le bot colorera les PRIVMSGs relayez, pour rendre les messages " "plus faciles à lire." -#: config.py:63 +#: config.py:65 msgid "" "Determines whether the bot will synchronize\n" " topics between networks in the channels it relays." @@ -40,7 +40,7 @@ msgstr "" "Détermine si le bot synchronisera les topics entre les réseaux sur les " "canaux qu'il relaye." -#: config.py:66 +#: config.py:68 #, fuzzy msgid "" "Determines whether the bot will relay the\n" @@ -50,7 +50,7 @@ msgstr "" "Détermine si le bot relayera le masque d'hôte d'une personne joignant ou " "partant d'un canal." -#: config.py:70 +#: config.py:72 msgid "" "Determines whether the bot will include the\n" " network in relayed PRIVMSGs; if you're only relaying between two " @@ -61,7 +61,7 @@ msgstr "" "ne relayez qu'entre deux réseaux, ce sera quelque chose de redondant que " "vous pouvez supprimer pour gagner de la place." -#: config.py:74 +#: config.py:76 msgid "" "Determines whether the bot will detect other\n" " bots relaying and respond by kickbanning them." @@ -69,13 +69,13 @@ msgstr "" "Détermine si le bot détectera d'autres bots relayant et y répondra en les " "kickbannissant." -#: config.py:77 +#: config.py:79 msgid "" "Determines which channels the bot\n" " will relay in." msgstr "Détermine sur quels canaux le bot relayera." -#: config.py:80 +#: config.py:82 #, fuzzy msgid "" "Determines whether the bot\n" @@ -86,13 +86,13 @@ msgstr "" "Détermine si le bot rejoindra toujours le(s) canal(aux) qu'il relaye sur " "tous les réseaux auxquels il est connecté." -#: config.py:84 +#: config.py:86 msgid "" "Determines what hostmasks will not be relayed on a\n" " channel." msgstr "Détermine quels masques d'hôte ne seront pas relayés sur un canal." -#: config.py:87 +#: config.py:89 msgid "" "Determines whether the bot will used NOTICEs\n" " rather than PRIVMSGs for non-PRIVMSG relay messages (i.e., joins, " diff --git a/plugins/Relay/locales/it.po b/plugins/Relay/locales/it.po index 9852eec4e..364710f14 100644 --- a/plugins/Relay/locales/it.po +++ b/plugins/Relay/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-05-11 17:50+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: Italian \n" @@ -23,7 +23,7 @@ msgstr "Quali canali? Separali con spazi." msgid "Would you like to use color to distinguish between nicks?" msgstr "Vuoi usare colori per distinguere i nick?" -#: config.py:60 +#: config.py:62 msgid "" "Determines whether the bot will color relayed\n" " PRIVMSGs so as to make the messages easier to read." @@ -31,7 +31,7 @@ msgstr "" "Determina se il bot colorerà i PRIVMSG inoltrati per renderne più semplice " "la lettura." -#: config.py:63 +#: config.py:65 msgid "" "Determines whether the bot will synchronize\n" " topics between networks in the channels it relays." @@ -39,7 +39,7 @@ msgstr "" "Determina se il bot sincronizzerà i topic tra le reti nei canali in cui " "inoltra." -#: config.py:66 +#: config.py:68 #, fuzzy msgid "" "Determines whether the bot will relay the\n" @@ -49,7 +49,7 @@ msgstr "" "Determina se il bot inoltrerà l'hostmask dell'utente che entra o esce dal " "canale." -#: config.py:70 +#: config.py:72 msgid "" "Determines whether the bot will include the\n" " network in relayed PRIVMSGs; if you're only relaying between two " @@ -61,7 +61,7 @@ msgstr "" " tra due sole reti è alquanto ridondante e si preferirà risparmiare " "spazio." -#: config.py:74 +#: config.py:76 msgid "" "Determines whether the bot will detect other\n" " bots relaying and respond by kickbanning them." @@ -69,13 +69,13 @@ msgstr "" "Determina se il bot rileverà altri bot che stanno inoltrando rispondendo con " "un kickban." -#: config.py:77 +#: config.py:79 msgid "" "Determines which channels the bot\n" " will relay in." msgstr "Determina in quale canale il bot inoltrerà i messaggi." -#: config.py:80 +#: config.py:82 #, fuzzy msgid "" "Determines whether the bot\n" @@ -86,13 +86,13 @@ msgstr "" "Determina se il bot entrerà sempre nei canali in cui trasmette per tutte le " "reti a cui è connesso." -#: config.py:84 +#: config.py:86 msgid "" "Determines what hostmasks will not be relayed on a\n" " channel." msgstr "Determina quale hostmask non verrà inoltrata su un canale." -#: config.py:87 +#: config.py:89 msgid "" "Determines whether the bot will used NOTICEs\n" " rather than PRIVMSGs for non-PRIVMSG relay messages (i.e., joins, " diff --git a/plugins/Relay/messages.pot b/plugins/Relay/messages.pot index 68d2bd2d3..a04dc143e 100644 --- a/plugins/Relay/messages.pot +++ b/plugins/Relay/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -27,58 +27,58 @@ msgstr "" msgid "Would you like to use color to distinguish between nicks?" msgstr "" -#: config.py:60 +#: config.py:62 msgid "" "Determines whether the bot will color relayed\n" " PRIVMSGs so as to make the messages easier to read." msgstr "" -#: config.py:63 +#: config.py:65 msgid "" "Determines whether the bot will synchronize\n" " topics between networks in the channels it relays." msgstr "" -#: config.py:66 +#: config.py:68 msgid "" "Determines whether the bot will relay the\n" " hostmask of the person joining or parting the channel when they join\n" " or part." msgstr "" -#: config.py:70 +#: config.py:72 msgid "" "Determines whether the bot will include the\n" " network in relayed PRIVMSGs; if you're only relaying between two networks,\n" " it's somewhat redundant, and you may wish to save the space." msgstr "" -#: config.py:74 +#: config.py:76 msgid "" "Determines whether the bot will detect other\n" " bots relaying and respond by kickbanning them." msgstr "" -#: config.py:77 +#: config.py:79 msgid "" "Determines which channels the bot\n" " will relay in." msgstr "" -#: config.py:80 +#: config.py:82 msgid "" "Determines whether the bot\n" " will always join the channel(s) it relays when connecting to any network.\n" " " msgstr "" -#: config.py:84 +#: config.py:86 msgid "" "Determines what hostmasks will not be relayed on a\n" " channel." msgstr "" -#: config.py:87 +#: config.py:89 msgid "" "Determines whether the bot will used NOTICEs\n" " rather than PRIVMSGs for non-PRIVMSG relay messages (i.e., joins, parts,\n" diff --git a/plugins/Reply/README.rst b/plugins/Reply/README.rst index a894d39a6..ba7663e55 100644 --- a/plugins/Reply/README.rst +++ b/plugins/Reply/README.rst @@ -23,27 +23,27 @@ Commands .. _command-reply-action: -action +``action `` Replies with as an action. Use nested commands to your benefit here. .. _command-reply-notice: -notice +``notice `` Replies with in a notice. Use nested commands to your benefit here. If you want a private notice, nest the private command. .. _command-reply-private: -private +``private `` Replies with in private. Use nested commands to your benefit here. .. _command-reply-replies: -replies [ ...] +``replies [ ...]`` Replies with each of its arguments in separate replies, depending the configuration of supybot.reply.oneToOne. .. _command-reply-reply: -reply +``reply `` Replies with . Equivalent to the alias, 'echo $nick: $1'. .. _conf-Reply: diff --git a/plugins/Reply/messages.pot b/plugins/Reply/messages.pot index 1195587d6..d1ba6f072 100644 --- a/plugins/Reply/messages.pot +++ b/plugins/Reply/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Scheduler/README.rst b/plugins/Scheduler/README.rst index 0a187e07e..05d6e5386 100644 --- a/plugins/Scheduler/README.rst +++ b/plugins/Scheduler/README.rst @@ -23,27 +23,27 @@ Commands .. _command-scheduler-add: -add +``add `` Schedules the command string to run seconds in the future. For example, 'scheduler add [seconds 30m] "echo [cpu]"' will schedule the command "cpu" to be sent to the channel the schedule add command was given in (with no prefixed nick, a consequence of using echo). Do pay attention to the quotes in that example. .. _command-scheduler-list: -list takes no arguments +``list takes no arguments`` Lists the currently scheduled events. .. _command-scheduler-remind: -remind +``remind `` Sets a reminder with string to run seconds in the future. For example, 'scheduler remind [seconds 30m] "Hello World"' will return ' Reminder: Hello World' 30 minutes after being set. .. _command-scheduler-remove: -remove +``remove `` Removes the event scheduled with id from the schedule. .. _command-scheduler-repeat: -repeat [--delay ] +``repeat [--delay ] `` Schedules the command to run every seconds, starting now (i.e., the command runs now, and every seconds thereafter). is a name by which the command can be unscheduled. If --delay is given, starts in seconds instead of now. .. _conf-Scheduler: diff --git a/plugins/Scheduler/locales/fi.po b/plugins/Scheduler/locales/fi.po index 7e093bcf6..b3d254f1f 100644 --- a/plugins/Scheduler/locales/fi.po +++ b/plugins/Scheduler/locales/fi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Scheduler plugin for Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-12-20 13:38+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -26,16 +26,16 @@ msgstr "" msgid "Makes a function suitable for scheduling from command." msgstr "Tekee toiminnon sopivaksi komennosta ajastamiseen." -#: plugin.py:155 +#: plugin.py:162 #, fuzzy msgid "Makes a function suitable for scheduling text" msgstr "Tekee toiminnon sopivaksi komennosta ajastamiseen." -#: plugin.py:160 +#: plugin.py:167 msgid "Reminder: %s" msgstr "" -#: plugin.py:181 +#: plugin.py:188 msgid "" " \n" "\n" @@ -60,28 +60,28 @@ msgstr "" "tuossa esimerkissä.\n" " " -#: plugin.py:191 +#: plugin.py:198 msgid "Event #%i added." msgstr "Tapahtuma #%i lisätty." -#: plugin.py:196 +#: plugin.py:203 msgid "" " \n" "\n" " Sets a reminder with string to run seconds in the\n" -" future. For example, 'scheduler remind [seconds 30m] \"Hello World" -"\"'\n" +" future. For example, 'scheduler remind [seconds 30m] \"Hello " +"World\"'\n" " will return ' Reminder: Hello World' 30 minutes after being " "set.\n" " " msgstr "" -#: plugin.py:204 +#: plugin.py:211 #, fuzzy msgid "Reminder Event #%i added." msgstr "Tapahtuma #%i lisätty." -#: plugin.py:209 +#: plugin.py:216 msgid "" "\n" "\n" @@ -93,11 +93,11 @@ msgstr "" " Poistaa ajastetun komennon ajastuksesta.\n" " " -#: plugin.py:223 plugin.py:225 +#: plugin.py:230 plugin.py:232 msgid "Invalid event id." msgstr "Viallinen tapahtuma id." -#: plugin.py:244 +#: plugin.py:251 #, fuzzy msgid "" "[--delay ] \n" @@ -118,12 +118,12 @@ msgstr "" " poistaa.\n" " " -#: plugin.py:255 +#: plugin.py:262 msgid "There is already an event with that name, please choose another name." msgstr "" "On jo olemassa tapahtuma tuolla nimellä, ole hyvä ja käytä toista nimeä." -#: plugin.py:270 +#: plugin.py:277 msgid "" "takes no arguments\n" "\n" @@ -135,6 +135,6 @@ msgstr "" " Luettelee tällä hetkellä ajastetut komennot.\n" " " -#: plugin.py:290 +#: plugin.py:297 msgid "There are currently no scheduled commands." msgstr "Tällä hetkellä ei ole ajastettuja komentoja." diff --git a/plugins/Scheduler/locales/fr.po b/plugins/Scheduler/locales/fr.po index ca1f7d34e..23e13bca2 100644 --- a/plugins/Scheduler/locales/fr.po +++ b/plugins/Scheduler/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: Valentin Lorentz \n" "Language-Team: Limnoria \n" @@ -22,17 +22,17 @@ msgid "Makes a function suitable for scheduling from command." msgstr "" "Crée une fonction utilisable pour la programmation à partir d'une commande." -#: plugin.py:155 +#: plugin.py:162 #, fuzzy msgid "Makes a function suitable for scheduling text" msgstr "" "Crée une fonction utilisable pour la programmation à partir d'une commande." -#: plugin.py:160 +#: plugin.py:167 msgid "Reminder: %s" msgstr "" -#: plugin.py:181 +#: plugin.py:188 msgid "" " \n" "\n" @@ -53,28 +53,28 @@ msgstr "" "pour être envoyée sur le canal. Faites attention à l'utilisateur des " "guillemets dans cet exemple." -#: plugin.py:191 +#: plugin.py:198 msgid "Event #%i added." msgstr "Évènement #%i ajouté." -#: plugin.py:196 +#: plugin.py:203 msgid "" " \n" "\n" " Sets a reminder with string to run seconds in the\n" -" future. For example, 'scheduler remind [seconds 30m] \"Hello World" -"\"'\n" +" future. For example, 'scheduler remind [seconds 30m] \"Hello " +"World\"'\n" " will return ' Reminder: Hello World' 30 minutes after being " "set.\n" " " msgstr "" -#: plugin.py:204 +#: plugin.py:211 #, fuzzy msgid "Reminder Event #%i added." msgstr "Évènement #%i ajouté." -#: plugin.py:209 +#: plugin.py:216 msgid "" "\n" "\n" @@ -85,11 +85,11 @@ msgstr "" "\n" "Déprogramme l'évènement programmé d' donné." -#: plugin.py:223 plugin.py:225 +#: plugin.py:230 plugin.py:232 msgid "Invalid event id." msgstr "Id d'évènement invalide." -#: plugin.py:244 +#: plugin.py:251 #, fuzzy msgid "" "[--delay ] \n" @@ -109,11 +109,11 @@ msgstr "" "certain nombres de , puis dans deux fois ce temps, etc). Le " "est utilisé pour déprogrammer la commande." -#: plugin.py:255 +#: plugin.py:262 msgid "There is already an event with that name, please choose another name." msgstr "Il y a déjà un évènement avec ce nom, veuillez en choisir un autre." -#: plugin.py:270 +#: plugin.py:277 msgid "" "takes no arguments\n" "\n" @@ -124,6 +124,6 @@ msgstr "" "\n" "Liste tous les évènement actuellement programmés" -#: plugin.py:290 +#: plugin.py:297 msgid "There are currently no scheduled commands." msgstr "Il n'y a actuellement aucune commande programmée." diff --git a/plugins/Scheduler/locales/it.po b/plugins/Scheduler/locales/it.po index 1ed7c8892..422bfee90 100644 --- a/plugins/Scheduler/locales/it.po +++ b/plugins/Scheduler/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2011-07-31 11:51+0200\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -19,17 +19,17 @@ msgid "Makes a function suitable for scheduling from command." msgstr "" "Rende disponibile una funzione per la programmazione a partire da un comando." -#: plugin.py:155 +#: plugin.py:162 #, fuzzy msgid "Makes a function suitable for scheduling text" msgstr "" "Rende disponibile una funzione per la programmazione a partire da un comando." -#: plugin.py:160 +#: plugin.py:167 msgid "Reminder: %s" msgstr "" -#: plugin.py:181 +#: plugin.py:188 msgid "" " \n" "\n" @@ -55,28 +55,28 @@ msgstr "" "nell'esempio.\n" " " -#: plugin.py:191 +#: plugin.py:198 msgid "Event #%i added." msgstr "Aggiunto l'evento #%i." -#: plugin.py:196 +#: plugin.py:203 msgid "" " \n" "\n" " Sets a reminder with string to run seconds in the\n" -" future. For example, 'scheduler remind [seconds 30m] \"Hello World" -"\"'\n" +" future. For example, 'scheduler remind [seconds 30m] \"Hello " +"World\"'\n" " will return ' Reminder: Hello World' 30 minutes after being " "set.\n" " " msgstr "" -#: plugin.py:204 +#: plugin.py:211 #, fuzzy msgid "Reminder Event #%i added." msgstr "Aggiunto l'evento #%i." -#: plugin.py:209 +#: plugin.py:216 msgid "" "\n" "\n" @@ -88,11 +88,11 @@ msgstr "" " Rimuove l'evento programmato tramite l' fornito.\n" " " -#: plugin.py:223 plugin.py:225 +#: plugin.py:230 plugin.py:232 msgid "Invalid event id." msgstr "Id di evento non valido." -#: plugin.py:244 +#: plugin.py:251 #, fuzzy msgid "" "[--delay ] \n" @@ -116,11 +116,11 @@ msgstr "" " rimosso dalla programmazione.\n" " " -#: plugin.py:255 +#: plugin.py:262 msgid "There is already an event with that name, please choose another name." msgstr "C'è già un evento con quel nome, scegline un altro." -#: plugin.py:270 +#: plugin.py:277 msgid "" "takes no arguments\n" "\n" @@ -132,6 +132,6 @@ msgstr "" " Elenca gli eventi attualmente programmati.\n" " " -#: plugin.py:290 +#: plugin.py:297 msgid "There are currently no scheduled commands." msgstr "Al momento non ci sono comandi programmati." diff --git a/plugins/Scheduler/messages.pot b/plugins/Scheduler/messages.pot index f32af6af3..961e08cae 100644 --- a/plugins/Scheduler/messages.pot +++ b/plugins/Scheduler/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,16 +25,16 @@ msgstr "" msgid "Makes a function suitable for scheduling from command." msgstr "" -#: plugin.py:155 +#: plugin.py:162 #, docstring msgid "Makes a function suitable for scheduling text" msgstr "" -#: plugin.py:160 +#: plugin.py:167 msgid "Reminder: %s" msgstr "" -#: plugin.py:181 +#: plugin.py:188 #, docstring msgid "" " \n" @@ -47,11 +47,11 @@ msgid "" " " msgstr "" -#: plugin.py:191 +#: plugin.py:198 msgid "Event #%i added." msgstr "" -#: plugin.py:196 +#: plugin.py:203 #, docstring msgid "" " \n" @@ -62,11 +62,11 @@ msgid "" " " msgstr "" -#: plugin.py:204 +#: plugin.py:211 msgid "Reminder Event #%i added." msgstr "" -#: plugin.py:209 +#: plugin.py:216 #, docstring msgid "" "\n" @@ -75,11 +75,11 @@ msgid "" " " msgstr "" -#: plugin.py:223 plugin.py:225 +#: plugin.py:230 plugin.py:232 msgid "Invalid event id." msgstr "" -#: plugin.py:244 +#: plugin.py:251 #, docstring msgid "" "[--delay ] \n" @@ -92,11 +92,11 @@ msgid "" " " msgstr "" -#: plugin.py:255 +#: plugin.py:262 msgid "There is already an event with that name, please choose another name." msgstr "" -#: plugin.py:270 +#: plugin.py:277 #, docstring msgid "" "takes no arguments\n" @@ -105,7 +105,7 @@ msgid "" " " msgstr "" -#: plugin.py:290 +#: plugin.py:297 msgid "There are currently no scheduled commands." msgstr "" diff --git a/plugins/SedRegex/messages.pot b/plugins/SedRegex/messages.pot index 56596af78..94ed8876e 100644 --- a/plugins/SedRegex/messages.pot +++ b/plugins/SedRegex/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -36,6 +36,31 @@ msgid "" msgstr "" #: config.py:61 +msgid "$nick meant to say: $replacement" +msgstr "" + +#: config.py:61 +msgid "" +"Sets the format\n" +" string for a message edited by the original\n" +" author. Required fields: $nick (nick of the\n" +" author), $replacement (edited message)" +msgstr "" + +#: config.py:66 +msgid "" +"\n" +" Sets the format string for a message edited by\n" +" another author. Required fields: $nick (nick\n" +" of the original author), $otherNick (nick of\n" +" the editor), $replacement (edited message)" +msgstr "" + +#: config.py:66 +msgid "$otherNick thinks $nick meant to say: $replacement" +msgstr "" + +#: config.py:72 msgid "" "Sets the timeout when processing a single\n" " regexp. The default should be adequate unless\n" @@ -95,15 +120,11 @@ msgstr "" msgid "SedRegex replacer error: %s" msgstr "" -#: plugin.py:242 -msgid "%s meant to say: %s" -msgstr "" - -#: plugin.py:245 +#: plugin.py:248 msgid "SedRegex error: %s" msgstr "" -#: plugin.py:248 +#: plugin.py:251 msgid "SedRegex: Search %r not found in the last %i messages of %s." msgstr "" diff --git a/plugins/Seen/README.rst b/plugins/Seen/README.rst index 8feeb4425..f2e1a2843 100644 --- a/plugins/Seen/README.rst +++ b/plugins/Seen/README.rst @@ -23,27 +23,27 @@ Commands .. _command-seen-any: -any [] [--user ] [] +``any [] [--user ] []`` Returns the last time was seen and what was last seen doing. This includes any form of activity, instead of just PRIVMSGs. If isn't specified, returns the last activity seen in . If --user is specified, looks up name in the user database and returns the last time user was active in . is only necessary if the message isn't sent on the channel itself. .. _command-seen-last: -last [] +``last []`` Returns the last thing said in . is only necessary if the message isn't sent in the channel itself. .. _command-seen-seen: -seen [] +``seen [] `` Returns the last time was seen and what was last seen saying. is only necessary if the message isn't sent on the channel itself. may contain * as a wildcard. .. _command-seen-since: -since [] [] +``since [] []`` Returns the messages since last left the channel. If is not given, it defaults to the nickname of the person calling the command. .. _command-seen-user: -user [] +``user [] `` Returns the last time was seen and what was last seen saying. This looks up in the user seen database, which means that it could be any nick recognized as user that was seen. is only necessary if the message isn't sent in the channel itself. .. _conf-Seen: diff --git a/plugins/Seen/locales/de.po b/plugins/Seen/locales/de.po index 9339746d5..5ebf53a48 100644 --- a/plugins/Seen/locales/de.po +++ b/plugins/Seen/locales/de.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Supybot\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-04-27 15:33+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: German \n" @@ -36,46 +36,59 @@ msgstr "" msgid "Not enough non-wildcard characters." msgstr "" -#: plugin.py:198 plugin.py:306 +#: plugin.py:199 +#, fuzzy +msgid "%s was last seen in %s %s ago, and is in the channel now" +msgstr "%s wurde zuletzt in %s vor %s gesehen: %s" + +#: plugin.py:203 plugin.py:328 #, fuzzy msgid "%s was last seen in %s %s ago" msgstr "%s wurde zuletzt in %s vor %s gesehen: %s" -#: plugin.py:204 plugin.py:283 plugin.py:310 +#: plugin.py:209 plugin.py:300 plugin.py:332 msgid "%s: %s" msgstr "" -#: plugin.py:210 +#: plugin.py:216 +msgid "%s (%s ago, and is in the channel now)" +msgstr "" + +#: plugin.py:219 msgid "%s (%s ago)" msgstr "%s (vor %s)" -#: plugin.py:212 +#: plugin.py:221 msgid "%s could be %L" msgstr "%s könnte %L sein" -#: plugin.py:212 +#: plugin.py:221 msgid "or" msgstr "oder" -#: plugin.py:214 +#: plugin.py:223 msgid "I haven't seen anyone matching %s." msgstr "Ich habe niemanden gesehen der auf %s passt." -#: plugin.py:216 plugin.py:313 +#: plugin.py:226 plugin.py:336 +msgid "%s is in the channel right now." +msgstr "" + +#: plugin.py:228 plugin.py:338 msgid "I have not seen %s." msgstr "Ich habe %s nicht gesehn." -#: plugin.py:223 +#: plugin.py:235 #, fuzzy msgid "You must be in %s to use this command." msgstr "Du musst in %s sein, um diesen Befehl zu benutzen." -#: plugin.py:225 +#: plugin.py:237 #, fuzzy msgid "%s must be in %s to use this command." msgstr "Du musst in %s sein, um diesen Befehl zu benutzen." -#: plugin.py:231 +#: plugin.py:243 msgid "" "[] \n" "\n" @@ -91,11 +104,11 @@ msgstr "" "sagte. ist nur nötig, falls die Nachricht nicht im Kanal selbst " "gesendet wurde. kann * als Platzhalter beinhalten." -#: plugin.py:238 plugin.py:256 +#: plugin.py:250 plugin.py:268 msgid "You've found me!" msgstr "" -#: plugin.py:246 +#: plugin.py:258 msgid "" "[] [--user ] []\n" "\n" @@ -119,16 +132,20 @@ msgstr "" "die Zeit ausgegeben als der Benutzer zuletzte Aktiv war im . " "ist nur nötig, falls die Nachricht nicht im Kanal selbst gesendet wurde." -#: plugin.py:280 -#, fuzzy -msgid "Someone was last seen in %s %s ago" -msgstr "Jemand wurde zuletzt in %s gesehen, vor %s: %s" +#: plugin.py:295 +msgid "I couldn't parse the nick of the speaker of the last line." +msgstr "" -#: plugin.py:286 +#: plugin.py:297 +#, fuzzy +msgid "Last seen in %s was %s, %s ago" +msgstr "%s wurde zuletzt in %s vor %s gesehen: %s" + +#: plugin.py:303 msgid "I have never seen anyone." msgstr "Ich habe noch niemals jemanden gesehen." -#: plugin.py:290 +#: plugin.py:307 msgid "" "[]\n" "\n" @@ -142,7 +159,12 @@ msgstr "" "Gibt das zuletzt gesagte im aus. ist nur nötig, falls die " "Nachricht nicht im Kanal selbst gesendet wurde." -#: plugin.py:317 +#: plugin.py:324 +#, fuzzy +msgid "%s was last seen in %s %s ago and is in the channel now" +msgstr "%s wurde zuletzt in %s vor %s gesehen: %s" + +#: plugin.py:342 msgid "" "[] \n" "\n" @@ -162,7 +184,7 @@ msgstr "" "dass es jeder Nick sein kann der vom Benutzer gesehen wurde. " "ist nur nötig, falls die Nachricht nicht im Kanal selbst gesendet wurde." -#: plugin.py:331 +#: plugin.py:356 #, fuzzy msgid "" "[] []\n" @@ -177,18 +199,22 @@ msgstr "" "Gibt die Nachrichten zurück, die seit dem verlassen von im Kanal " "gesendet wurden." -#: plugin.py:363 +#: plugin.py:388 msgid "I couldn't find in my history of %s messages where %r last left %s" msgstr "" "Ich konnte in meiner Vergangenheit von %s Nachrichten nichts finden, wo %r " "zuletzt %s verlassen hat." -#: plugin.py:372 +#: plugin.py:397 msgid "Either %s didn't leave, or no messages were sent while %s was gone." msgstr "" "Entweder ist %s nicht gegangen, oder keine Nachrichten wurde gesendet " "während %s weg war." +#, fuzzy +#~ msgid "Someone was last seen in %s %s ago" +#~ msgstr "Jemand wurde zuletzt in %s gesehen, vor %s: %s" + #, fuzzy #~ msgid "I am not in %s." #~ msgstr "Ich habe %s nicht gesehn." diff --git a/plugins/Seen/locales/fi.po b/plugins/Seen/locales/fi.po index 12070005f..60ef3963f 100644 --- a/plugins/Seen/locales/fi.po +++ b/plugins/Seen/locales/fi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Seen plugin for Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-12-20 13:06+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -52,45 +52,58 @@ msgstr "" msgid "Not enough non-wildcard characters." msgstr "Ei-jokerimerkki merkkejä ei ole annettu riittävästi." -#: plugin.py:198 plugin.py:306 +#: plugin.py:199 +#, fuzzy +msgid "%s was last seen in %s %s ago, and is in the channel now" +msgstr "%s nähtiin viimeksi kanavalla %s %s sitten: %s" + +#: plugin.py:203 plugin.py:328 #, fuzzy msgid "%s was last seen in %s %s ago" msgstr "%s nähtiin viimeksi kanavalla %s %s sitten: %s" -#: plugin.py:204 plugin.py:283 plugin.py:310 +#: plugin.py:209 plugin.py:300 plugin.py:332 msgid "%s: %s" msgstr "%s: %s" -#: plugin.py:210 +#: plugin.py:216 +msgid "%s (%s ago, and is in the channel now)" +msgstr "" + +#: plugin.py:219 msgid "%s (%s ago)" msgstr "%s (%s sitten)" -#: plugin.py:212 +#: plugin.py:221 msgid "%s could be %L" msgstr "%s voisi olla %L" -#: plugin.py:212 +#: plugin.py:221 msgid "or" msgstr "tai" -#: plugin.py:214 +#: plugin.py:223 msgid "I haven't seen anyone matching %s." msgstr "En ole nähnyt kenenkään täsmäävän %s." -#: plugin.py:216 plugin.py:313 +#: plugin.py:226 plugin.py:336 +msgid "%s is in the channel right now." +msgstr "" + +#: plugin.py:228 plugin.py:338 msgid "I have not seen %s." msgstr "En ole nähnyt %s:ää." -#: plugin.py:223 +#: plugin.py:235 #, fuzzy msgid "You must be in %s to use this command." msgstr "Käyttäjän %s täytyy olla kanavalla %s käyttääkseen tätä komentoa." -#: plugin.py:225 +#: plugin.py:237 msgid "%s must be in %s to use this command." msgstr "Käyttäjän %s täytyy olla kanavalla %s käyttääkseen tätä komentoa." -#: plugin.py:231 +#: plugin.py:243 msgid "" "[] \n" "\n" @@ -108,11 +121,11 @@ msgstr "" " itsellään.\n" " " -#: plugin.py:238 plugin.py:256 +#: plugin.py:250 plugin.py:268 msgid "You've found me!" msgstr "Löysit minut!" -#: plugin.py:246 +#: plugin.py:258 msgid "" "[] [--user ] []\n" "\n" @@ -142,16 +155,20 @@ msgstr "" " on vaadittu vain, jos viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:280 -#, fuzzy -msgid "Someone was last seen in %s %s ago" -msgstr "Joku nähtiin viimeeksi kanavalla %s %s sitten: %s" +#: plugin.py:295 +msgid "I couldn't parse the nick of the speaker of the last line." +msgstr "" -#: plugin.py:286 +#: plugin.py:297 +#, fuzzy +msgid "Last seen in %s was %s, %s ago" +msgstr "%s nähtiin viimeksi kanavalla %s %s sitten: %s" + +#: plugin.py:303 msgid "I have never seen anyone." msgstr "Minä en ole nähnyt ketään." -#: plugin.py:290 +#: plugin.py:307 msgid "" "[]\n" "\n" @@ -167,7 +184,12 @@ msgstr "" " viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:317 +#: plugin.py:324 +#, fuzzy +msgid "%s was last seen in %s %s ago and is in the channel now" +msgstr "%s nähtiin viimeksi kanavalla %s %s sitten: %s" + +#: plugin.py:342 msgid "" "[] \n" "\n" @@ -192,7 +214,7 @@ msgstr "" " itsellään.\n" " " -#: plugin.py:331 +#: plugin.py:356 msgid "" "[] []\n" "\n" @@ -208,17 +230,21 @@ msgstr "" "Ellei anneta, se on oletuksena komentoa pyytävän henkilön " "nimimerkki. " -#: plugin.py:363 +#: plugin.py:388 msgid "I couldn't find in my history of %s messages where %r last left %s" msgstr "" "En voinut löytää %s viestin historiasta milloin %r viimeksi lähti kanavalta " "%s" -#: plugin.py:372 +#: plugin.py:397 msgid "Either %s didn't leave, or no messages were sent while %s was gone." msgstr "" "Joko %s ei lähtenyt, tai yhtään viestiä ei lähetetty silloin, kun %s oli " "poissa." +#, fuzzy +#~ msgid "Someone was last seen in %s %s ago" +#~ msgstr "Joku nähtiin viimeeksi kanavalla %s %s sitten: %s" + #~ msgid "I am not in %s." #~ msgstr "En ole nähnyt %s:ää." diff --git a/plugins/Seen/locales/fr.po b/plugins/Seen/locales/fr.po index 4e3df31b4..879e7d3e6 100644 --- a/plugins/Seen/locales/fr.po +++ b/plugins/Seen/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Limnoria \n" @@ -42,44 +42,57 @@ msgstr "" msgid "Not enough non-wildcard characters." msgstr "Pas assez de caractères non-joker." -#: plugin.py:198 plugin.py:306 +#: plugin.py:199 +#, fuzzy +msgid "%s was last seen in %s %s ago, and is in the channel now" +msgstr "%s a été vu-e pour la dernière fois sur %s il y a %s" + +#: plugin.py:203 plugin.py:328 msgid "%s was last seen in %s %s ago" msgstr "%s a été vu-e pour la dernière fois sur %s il y a %s" -#: plugin.py:204 plugin.py:283 plugin.py:310 +#: plugin.py:209 plugin.py:300 plugin.py:332 msgid "%s: %s" msgstr "%s : %s" -#: plugin.py:210 +#: plugin.py:216 +msgid "%s (%s ago, and is in the channel now)" +msgstr "" + +#: plugin.py:219 msgid "%s (%s ago)" msgstr "%s (il y a %s)" -#: plugin.py:212 +#: plugin.py:221 msgid "%s could be %L" msgstr "%s doit être %L" -#: plugin.py:212 +#: plugin.py:221 msgid "or" msgstr "ou" -#: plugin.py:214 +#: plugin.py:223 msgid "I haven't seen anyone matching %s." msgstr "Je n'ai vu personne correspondant à %s." -#: plugin.py:216 plugin.py:313 +#: plugin.py:226 plugin.py:336 +msgid "%s is in the channel right now." +msgstr "" + +#: plugin.py:228 plugin.py:338 msgid "I have not seen %s." msgstr "Je n'ai pas vu %s." -#: plugin.py:223 +#: plugin.py:235 #, fuzzy msgid "You must be in %s to use this command." msgstr "%s doit être dans %s pour utiliser cette commande." -#: plugin.py:225 +#: plugin.py:237 msgid "%s must be in %s to use this command." msgstr "%s doit être dans %s pour utiliser cette commande." -#: plugin.py:231 +#: plugin.py:243 msgid "" "[] \n" "\n" @@ -95,11 +108,11 @@ msgstr "" " a parlé. n'est nécessaire que si le message n'est pas envoyé " "sur le canal lui-même. peut contenir le joker *." -#: plugin.py:238 plugin.py:256 +#: plugin.py:250 plugin.py:268 msgid "You've found me!" msgstr "" -#: plugin.py:246 +#: plugin.py:258 msgid "" "[] [--user ] []\n" "\n" @@ -124,15 +137,20 @@ msgstr "" "en question a été vu-e actif-ve sur le n'est nécessaire que " "si le message n'est pas envoyé sur le canal lui-même." -#: plugin.py:280 -msgid "Someone was last seen in %s %s ago" -msgstr "Quelqu'un a été vu-e pour la dernière fois sur %s il y a %s" +#: plugin.py:295 +msgid "I couldn't parse the nick of the speaker of the last line." +msgstr "" -#: plugin.py:286 +#: plugin.py:297 +#, fuzzy +msgid "Last seen in %s was %s, %s ago" +msgstr "%s a été vu-e pour la dernière fois sur %s il y a %s" + +#: plugin.py:303 msgid "I have never seen anyone." msgstr "Je n'ai jamais vu personne." -#: plugin.py:290 +#: plugin.py:307 msgid "" "[]\n" "\n" @@ -146,7 +164,12 @@ msgstr "" "Retourne la dernière chose dite sur le . n'est nécessaire que " "si le message n'est pas envoyé sur le canal lui-même." -#: plugin.py:317 +#: plugin.py:324 +#, fuzzy +msgid "%s was last seen in %s %s ago and is in the channel now" +msgstr "%s a été vu-e pour la dernière fois sur %s il y a %s" + +#: plugin.py:342 msgid "" "[] \n" "\n" @@ -167,7 +190,7 @@ msgstr "" "l'utilisateur , il n'est pas considéré comme vu. n'est " "nécessaire que si le message n'est pas envoyé sur le canal lui-même." -#: plugin.py:331 +#: plugin.py:356 msgid "" "[] []\n" "\n" @@ -181,17 +204,20 @@ msgstr "" "Retourne les messages depuis que est parti-e du canal. " "correspond par défaut au nick de la personne appelant la commande." -#: plugin.py:363 +#: plugin.py:388 msgid "I couldn't find in my history of %s messages where %r last left %s" msgstr "" "Je ne peux pas trouver dans mon historique de %s messages, où %r a quitté il " "y a %s" -#: plugin.py:372 +#: plugin.py:397 msgid "Either %s didn't leave, or no messages were sent while %s was gone." msgstr "" "Soit %s n'est jamais parti-e, soit aucun message n'a été envoyé depuis " "qu'iel est parti-e." +#~ msgid "Someone was last seen in %s %s ago" +#~ msgstr "Quelqu'un a été vu-e pour la dernière fois sur %s il y a %s" + #~ msgid "I am not in %s." #~ msgstr "Je ne suis pas dans %s." diff --git a/plugins/Seen/locales/it.po b/plugins/Seen/locales/it.po index f0f01b406..5fb07c490 100644 --- a/plugins/Seen/locales/it.po +++ b/plugins/Seen/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-03-16 00:09+0100\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -35,45 +35,58 @@ msgstr "" msgid "Not enough non-wildcard characters." msgstr "" -#: plugin.py:198 plugin.py:306 +#: plugin.py:199 +#, fuzzy +msgid "%s was last seen in %s %s ago, and is in the channel now" +msgstr "%s è stato visto per l'ultima volta in %s %s fa: %s" + +#: plugin.py:203 plugin.py:328 #, fuzzy msgid "%s was last seen in %s %s ago" msgstr "%s è stato visto per l'ultima volta in %s %s fa: %s" -#: plugin.py:204 plugin.py:283 plugin.py:310 +#: plugin.py:209 plugin.py:300 plugin.py:332 msgid "%s: %s" msgstr "" -#: plugin.py:210 +#: plugin.py:216 +msgid "%s (%s ago, and is in the channel now)" +msgstr "" + +#: plugin.py:219 msgid "%s (%s ago)" msgstr "%s (%s fa)" -#: plugin.py:212 +#: plugin.py:221 msgid "%s could be %L" msgstr "%s potrebbe essere %L" -#: plugin.py:212 +#: plugin.py:221 msgid "or" msgstr "oppure" -#: plugin.py:214 +#: plugin.py:223 msgid "I haven't seen anyone matching %s." msgstr "Non ho visto nessuno che corrisponda a %s." -#: plugin.py:216 plugin.py:313 +#: plugin.py:226 plugin.py:336 +msgid "%s is in the channel right now." +msgstr "" + +#: plugin.py:228 plugin.py:338 msgid "I have not seen %s." msgstr "Non ho visto %s." -#: plugin.py:223 +#: plugin.py:235 #, fuzzy msgid "You must be in %s to use this command." msgstr "Per usare questo comando %s deve essere in %s." -#: plugin.py:225 +#: plugin.py:237 msgid "%s must be in %s to use this command." msgstr "Per usare questo comando %s deve essere in %s." -#: plugin.py:231 +#: plugin.py:243 msgid "" "[] \n" "\n" @@ -92,11 +105,11 @@ msgstr "" " stesso. può contenere * come wildcard.\n" " " -#: plugin.py:238 plugin.py:256 +#: plugin.py:250 plugin.py:268 msgid "You've found me!" msgstr "" -#: plugin.py:246 +#: plugin.py:258 msgid "" "[] [--user ] []\n" "\n" @@ -125,16 +138,20 @@ msgstr "" " solo se il messaggio non viene inviato nel canale stesso.\n" " " -#: plugin.py:280 -#, fuzzy -msgid "Someone was last seen in %s %s ago" -msgstr "Qualcuno è stato visto per l'ultima volta in %s %s fa: %s" +#: plugin.py:295 +msgid "I couldn't parse the nick of the speaker of the last line." +msgstr "" -#: plugin.py:286 +#: plugin.py:297 +#, fuzzy +msgid "Last seen in %s was %s, %s ago" +msgstr "%s è stato visto per l'ultima volta in %s %s fa: %s" + +#: plugin.py:303 msgid "I have never seen anyone." msgstr "Non ho mai visto nessuno." -#: plugin.py:290 +#: plugin.py:307 msgid "" "[]\n" "\n" @@ -149,7 +166,12 @@ msgstr "" " solo se il messaggio non viene inviato nel canale stesso.\n" " " -#: plugin.py:317 +#: plugin.py:324 +#, fuzzy +msgid "%s was last seen in %s %s ago and is in the channel now" +msgstr "%s è stato visto per l'ultima volta in %s %s fa: %s" + +#: plugin.py:342 msgid "" "[] \n" "\n" @@ -173,7 +195,7 @@ msgstr "" "canale stesso.\n" " " -#: plugin.py:331 +#: plugin.py:356 #, fuzzy msgid "" "[] []\n" @@ -189,15 +211,19 @@ msgstr "" "volta.\n" " " -#: plugin.py:363 +#: plugin.py:388 msgid "I couldn't find in my history of %s messages where %r last left %s" msgstr "" "Non trovo nella cronologia dei messaggi di %s dove %r ha lasciato %s " "l'ultima volta." -#: plugin.py:372 +#: plugin.py:397 msgid "Either %s didn't leave, or no messages were sent while %s was gone." msgstr "%s non è uscito o non ha inviato alcun messaggio quando se n'é andato." +#, fuzzy +#~ msgid "Someone was last seen in %s %s ago" +#~ msgstr "Qualcuno è stato visto per l'ultima volta in %s %s fa: %s" + #~ msgid "I am not in %s." #~ msgstr "Non sono in %s." diff --git a/plugins/Seen/locales/ru.po b/plugins/Seen/locales/ru.po new file mode 100644 index 000000000..e00726079 --- /dev/null +++ b/plugins/Seen/locales/ru.po @@ -0,0 +1,221 @@ +# Seen plugin for Limnoria +# Copyright (C) 2024 Limnoria +# ssdaniel24 , 2024. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" +"PO-Revision-Date: 2024-06-12 15:01+0300\n" +"Last-Translator: ssdaniel24 \n" +"Language-Team: \n" +"Language: ru\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" +"X-Generator: Poedit 3.4.2\n" + +#: config.py:50 +msgid "" +"The minimum non-wildcard characters\n" +" required to perform a 'seen' request. Of course, it only applies if " +"there\n" +" is a wildcard in the request." +msgstr "" +"Минимальное количество обыкновенных символов (не символов подстановки!), " +"необходимые для запроса 'seen'. Конечно же эта настройка действует только, " +"когда запрос содержит символы подстановки." + +#: config.py:54 +msgid "" +"Determines whether the last message will\n" +" be displayed with @seen. Useful for keeping messages from a channel\n" +" private." +msgstr "" +"Определяет будет ли последнее сообщение показываться в результатах команды " +"seen. Полезно для сохранения приватности сообщений в канале." + +#: plugin.py:98 +msgid "" +"This plugin allows you to see when and what someone last said and\n" +" what you missed since you left a channel." +msgstr "" +"Этот плагин позволяет вам видеть, когда и что кто-нибудь в последний раз " +"написал, и что вы упустили с тех пор как покинули канал." + +#: plugin.py:190 +msgid "Not enough non-wildcard characters." +msgstr "Недостаточно обыкновенных символов (НЕ символов подстановки)." + +#: plugin.py:199 +#, fuzzy +msgid "%s was last seen in %s %s ago, and is in the channel now" +msgstr "%s в последний раз видели в %s %s назад." + +#: plugin.py:203 plugin.py:328 +msgid "%s was last seen in %s %s ago" +msgstr "%s в последний раз видели в %s %s назад." + +#: plugin.py:209 plugin.py:300 plugin.py:332 +msgid "%s: %s" +msgstr "%s: %s" + +#: plugin.py:216 +msgid "%s (%s ago, and is in the channel now)" +msgstr "" + +#: plugin.py:219 +msgid "%s (%s ago)" +msgstr "%s (%s назад)" + +#: plugin.py:221 +msgid "%s could be %L" +msgstr "%s мог(ла) быть %L" + +#: plugin.py:221 +msgid "or" +msgstr "или" + +#: plugin.py:223 +msgid "I haven't seen anyone matching %s." +msgstr "Я не видел никого, кто бы соответствовал %s." + +#: plugin.py:226 plugin.py:336 +msgid "%s is in the channel right now." +msgstr "" + +#: plugin.py:228 plugin.py:338 +msgid "I have not seen %s." +msgstr "Я не видел %s." + +#: plugin.py:235 +msgid "You must be in %s to use this command." +msgstr "Вы должны быть в %s для использования этой команды." + +#: plugin.py:237 +msgid "%s must be in %s to use this command." +msgstr "%s должен/должна быть в %s для использования этой команды." + +#: plugin.py:243 +msgid "" +"[] \n" +"\n" +" Returns the last time was seen and what was last seen\n" +" saying. is only necessary if the message isn't sent on " +"the\n" +" channel itself. may contain * as a wildcard.\n" +" " +msgstr "" +"[<канал>] <ник>\n" +"\n" +"Возвращает последнее время, когда видели <ник> и его/её последнее сообщение. " +"Передавать <канал> требуется в случае, если команда запущена не на этом " +"канале. Данный <ник> может содержать * как символ подстановки." + +#: plugin.py:250 plugin.py:268 +msgid "You've found me!" +msgstr "О нет! Вы нашли меня." + +#: plugin.py:258 +msgid "" +"[] [--user ] []\n" +"\n" +" Returns the last time was seen and what was last seen\n" +" doing. This includes any form of activity, instead of just " +"PRIVMSGs.\n" +" If isn't specified, returns the last activity seen in\n" +" . If --user is specified, looks up name in the user " +"database\n" +" and returns the last time user was active in . " +"is\n" +" only necessary if the message isn't sent on the channel itself.\n" +" " +msgstr "" +"[<канал>] [--user <имя>] [<ник>]\n" +"\n" +"Возвращает последнее время, когда видели <ник> и его/её последние действия. " +"Это включает в себя любые формы активности, не ограничиваясь только PRIVMSG. " +"Если <ник> не задан, то возвращает последнюю активность в данном <канале>. " +"Если задан --user, то ищет данное <имя> в базе данных и возвращает последнее " +"время, когда этот пользователь был активен в данном <канале>. Передавать " +"<канал> требуется в случае, если команда запущена не на этом канале." + +#: plugin.py:295 +msgid "I couldn't parse the nick of the speaker of the last line." +msgstr "" + +#: plugin.py:297 +#, fuzzy +msgid "Last seen in %s was %s, %s ago" +msgstr "%s в последний раз видели в %s %s назад." + +#: plugin.py:303 +msgid "I have never seen anyone." +msgstr "Я не видел никого." + +#: plugin.py:307 +msgid "" +"[]\n" +"\n" +" Returns the last thing said in . is only " +"necessary\n" +" if the message isn't sent in the channel itself.\n" +" " +msgstr "" +"[<канал>]\n" +"\n" +"Возвращает последнее, что писали в <канале>. Передавать в аргумент <канал> " +"требуется в случае, если команда запущена не на этом канале." + +#: plugin.py:324 +#, fuzzy +msgid "%s was last seen in %s %s ago and is in the channel now" +msgstr "%s в последний раз видели в %s %s назад." + +#: plugin.py:342 +msgid "" +"[] \n" +"\n" +" Returns the last time was seen and what was last seen\n" +" saying. This looks up in the user seen database, which " +"means\n" +" that it could be any nick recognized as user that was seen.\n" +" is only necessary if the message isn't sent in the " +"channel\n" +" itself.\n" +" " +msgstr "" +"[<канал>] <имя>\n" +"\n" +"Возвращает время, когда в последний раз видели <имя> и его/её последнее " +"сообщение. Эта команда ищет <имя> в базе данных пользователей Seen, что " +"значит поиск будет производится среди всех ников, закреплённых за " +"пользователем с данным <именем>. Передавать в аргументы <канал> требуется в " +"случае, если команда запущена не на этом канале." + +#: plugin.py:356 +msgid "" +"[] []\n" +"\n" +" Returns the messages since last left the channel.\n" +" If is not given, it defaults to the nickname of the person\n" +" calling the command.\n" +" " +msgstr "" +"[<канал>] [<ник>]\n" +"\n" +"Возвращает сообщения с тех пор как данный <ник> покинул канал. Если <ник> не " +"передан в аргументы, то используется ник пользователя, запустившего команду." + +#: plugin.py:388 +msgid "I couldn't find in my history of %s messages where %r last left %s" +msgstr "Не могу найти в моей истории сообщений (%s), где %r покинул %s." + +#: plugin.py:397 +msgid "Either %s didn't leave, or no messages were sent while %s was gone." +msgstr "" +"Либо %s не покидал(а) канал, либо ни одного сообщения не было отправлено с " +"тех пор, как %s вышел/вышла." + +#~ msgid "Someone was last seen in %s %s ago" +#~ msgstr "В последний раз кого-то видели в %s %s назад" diff --git a/plugins/Seen/messages.pot b/plugins/Seen/messages.pot index 19cd8b4db..f887292a2 100644 --- a/plugins/Seen/messages.pot +++ b/plugins/Seen/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -40,43 +40,55 @@ msgstr "" msgid "Not enough non-wildcard characters." msgstr "" -#: plugin.py:198 plugin.py:306 +#: plugin.py:199 +msgid "%s was last seen in %s %s ago, and is in the channel now" +msgstr "" + +#: plugin.py:203 plugin.py:328 msgid "%s was last seen in %s %s ago" msgstr "" -#: plugin.py:204 plugin.py:283 plugin.py:310 +#: plugin.py:209 plugin.py:300 plugin.py:332 msgid "%s: %s" msgstr "" -#: plugin.py:210 +#: plugin.py:216 +msgid "%s (%s ago, and is in the channel now)" +msgstr "" + +#: plugin.py:219 msgid "%s (%s ago)" msgstr "" -#: plugin.py:212 +#: plugin.py:221 msgid "%s could be %L" msgstr "" -#: plugin.py:212 +#: plugin.py:221 msgid "or" msgstr "" -#: plugin.py:214 +#: plugin.py:223 msgid "I haven't seen anyone matching %s." msgstr "" -#: plugin.py:216 plugin.py:313 +#: plugin.py:226 plugin.py:336 +msgid "%s is in the channel right now." +msgstr "" + +#: plugin.py:228 plugin.py:338 msgid "I have not seen %s." msgstr "" -#: plugin.py:223 +#: plugin.py:235 msgid "You must be in %s to use this command." msgstr "" -#: plugin.py:225 +#: plugin.py:237 msgid "%s must be in %s to use this command." msgstr "" -#: plugin.py:231 +#: plugin.py:243 #, docstring msgid "" "[] \n" @@ -87,11 +99,11 @@ msgid "" " " msgstr "" -#: plugin.py:238 plugin.py:256 +#: plugin.py:250 plugin.py:268 msgid "You've found me!" msgstr "" -#: plugin.py:246 +#: plugin.py:258 #, docstring msgid "" "[] [--user ] []\n" @@ -105,15 +117,19 @@ msgid "" " " msgstr "" -#: plugin.py:280 -msgid "Someone was last seen in %s %s ago" +#: plugin.py:295 +msgid "I couldn't parse the nick of the speaker of the last line." msgstr "" -#: plugin.py:286 +#: plugin.py:297 +msgid "Last seen in %s was %s, %s ago" +msgstr "" + +#: plugin.py:303 msgid "I have never seen anyone." msgstr "" -#: plugin.py:290 +#: plugin.py:307 #, docstring msgid "" "[]\n" @@ -123,7 +139,11 @@ msgid "" " " msgstr "" -#: plugin.py:317 +#: plugin.py:324 +msgid "%s was last seen in %s %s ago and is in the channel now" +msgstr "" + +#: plugin.py:342 #, docstring msgid "" "[] \n" @@ -136,7 +156,7 @@ msgid "" " " msgstr "" -#: plugin.py:331 +#: plugin.py:356 #, docstring msgid "" "[] []\n" @@ -147,11 +167,11 @@ msgid "" " " msgstr "" -#: plugin.py:363 +#: plugin.py:388 msgid "I couldn't find in my history of %s messages where %r last left %s" msgstr "" -#: plugin.py:372 +#: plugin.py:397 msgid "Either %s didn't leave, or no messages were sent while %s was gone." msgstr "" diff --git a/plugins/Services/README.rst b/plugins/Services/README.rst index 6a2970777..7d86c809a 100644 --- a/plugins/Services/README.rst +++ b/plugins/Services/README.rst @@ -28,62 +28,62 @@ Commands .. _command-services-chanserv: -chanserv +``chanserv `` Sends the to ChanServ. For example, to register a channel on Atheme, use: @chanserv REGISTER <#channel>. .. _command-services-ghost: -ghost [] +``ghost []`` Ghosts the bot's given nick and takes it. If no nick is given, ghosts the bot's configured nick and takes it. .. _command-services-identify: -identify takes no arguments +``identify takes no arguments`` Identifies with NickServ using the current nick. .. _command-services-invite: -invite [] +``invite []`` Attempts to get invited by ChanServ to . is only necessary if the message isn't sent in the channel itself, but chances are, if you need this command, you're not sending it in the channel itself. .. _command-services-nicks: -nicks takes no arguments +``nicks takes no arguments`` Returns the nicks that this plugin is configured to identify and ghost with. .. _command-services-nickserv: -nickserv +``nickserv `` Sends the to NickServ. For example, to register to NickServ on Atheme, use: @nickserv REGISTER . .. _command-services-op: -op [] +``op []`` Attempts to get opped by ChanServ in . is only necessary if the message isn't sent in the channel itself. .. _command-services-password: -password [] +``password []`` Sets the NickServ password for to . If is not given, removes from the configured nicks. .. _command-services-register: -register [] [] +``register [] []`` Uses the experimental REGISTER command to create an account for the bot on the , using the and the if provided. Some networks may require the email. You may need to use the 'services verify' command afterward to confirm your email address. .. _command-services-unban: -unban [] +``unban []`` Attempts to get unbanned by ChanServ in . is only necessary if the message isn't sent in the channel itself, but chances are, if you need this command, you're not sending it in the channel itself. .. _command-services-verify: -verify [] +``verify [] `` If the requires a verification code, you need to call this command with the code the server gave you to finish the registration. .. _command-services-voice: -voice [] +``voice []`` Attempts to get voiced by ChanServ in . is only necessary if the message isn't sent in the channel itself. .. _conf-Services: diff --git a/plugins/Services/locales/de.po b/plugins/Services/locales/de.po index daae1fd9e..e234cd11a 100644 --- a/plugins/Services/locales/de.po +++ b/plugins/Services/locales/de.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Supybot\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2011-11-13 18:58+0100\n" "Last-Translator: Florian Besser \n" "Language-Team: German \n" @@ -39,23 +39,24 @@ msgstr "Wie heißt der ChanServ?" msgid "What is your NickServ named?" msgstr "Wie heißt der NickServ?" -#: config.py:70 +#: config.py:71 +#, fuzzy msgid "" -"Determines what nicks the bot will use with\n" +"Space-separated list of nicks the bot will use with\n" " services." msgstr "Legt fest der was für einen Nick der Bot mit den Services nutzt." -#: config.py:77 +#: config.py:78 msgid "" "Determines what networks this plugin\n" " will be disabled on." msgstr "Legt fest auf welchen Netzwerken dieses Plugin deaktiviert sein soll." -#: config.py:77 +#: config.py:78 msgid "QuakeNet" msgstr "QuakeNet" -#: config.py:81 +#: config.py:82 msgid "" "Determines whether the bot will not join any\n" " channels until it is identified. This may be useful, for instances, if\n" @@ -67,32 +68,40 @@ msgstr "" "erst nach dem Identifizeren gesetzt wird, oder du +R Kanaäle betreten willt, " "die es nicht erlauben sie zu betreten solange du nicht identifiziert bist." -#: config.py:86 +#: config.py:87 #, fuzzy msgid "" "Determines how many seconds the bot will\n" " wait between successive GHOST attempts. Set this to 0 to disable GHOST." msgstr "legt fest wie viele Sekunden der Bot zwischen GHOST versuchen wartet." -#: config.py:89 +#: config.py:90 +msgid "" +"Determines the NickServ command to use for GHOST. If the network\n" +" you're using runs Anope, set this to \"RECOVER\". If the network you're " +"using runs Atheme,\n" +" set this to \"GHOST\" or \"REGAIN\"." +msgstr "" + +#: config.py:94 msgid "" "Determines what nick the 'NickServ' service\n" " has." msgstr "Legt fest welchen Nick der 'NickServ' Service hat." -#: config.py:93 +#: config.py:98 msgid "" "Determines what nick the 'ChanServ' service\n" " has." msgstr "Legt fest welchen Nick der 'ChanServ' Service hat." -#: config.py:96 +#: config.py:101 msgid "" "Determines what password the bot will use with\n" " ChanServ." msgstr "Legt fest welches Passwort der Bot für den ChanServ nutzt." -#: config.py:99 +#: config.py:104 msgid "" "Determines whether the bot will request to get\n" " opped by the ChanServ when it joins the channel." @@ -100,7 +109,7 @@ msgstr "" "Legt fest ob der Bot Op von ChanServ erfragen soll, sobald er einen Kanal " "betritt." -#: config.py:102 +#: config.py:107 msgid "" "Determines whether the bot will request to get\n" " half-opped by the ChanServ when it joins the channel." @@ -108,7 +117,7 @@ msgstr "" "Legt fest ob der Bot halb-Op von ChanServ erfragen soll, sobald er einen " "Kanal betritt." -#: config.py:105 +#: config.py:110 msgid "" "Determines whether the bot will request to get\n" " voiced by the ChanServ when it joins the channel." @@ -116,7 +125,7 @@ msgstr "" "Legt fest ob der Bot Voice von ChanServ erfragen soll, sobald er einen Kanal " "betritt." -#: plugin.py:54 +#: plugin.py:55 msgid "" "This plugin handles dealing with Services on networks that provide them.\n" " Basically, you should use the \"password\" command to tell the bot a " @@ -139,7 +148,7 @@ msgstr "" "Netzwerk zutreffen. Andere Befehle, wie identify, op etc., sollten nicht " "nötig sein falls der Bot richtig konfiguriert ist." -#: plugin.py:441 +#: plugin.py:472 msgid "" "You must set supybot.plugins.Services.ChanServ before I'm able to send the " "%s command." @@ -147,7 +156,7 @@ msgstr "" "Du musst supybot.plugins.Services.ChanServ setzen, damit es mir möglich ist " "den %s Befehl auszuführen." -#: plugin.py:447 +#: plugin.py:478 msgid "" "[]\n" "\n" @@ -160,11 +169,11 @@ msgstr "" "Versucht Op durch ChanServ im zu bekommen. ist nur " "notwendig, falls die Nachricht nicht im Kanal selbst gesendet wurde." -#: plugin.py:453 +#: plugin.py:484 msgid "I'm already opped in %s." msgstr "Ich habe schon Op in %s." -#: plugin.py:460 +#: plugin.py:491 msgid "" "[]\n" "\n" @@ -177,11 +186,11 @@ msgstr "" "Versucht Voice durch ChanServ im zu bekommen. ist nur " "notwendig, falls die Nachricht nicht im Kanal selbst gesendet wurde." -#: plugin.py:466 +#: plugin.py:497 msgid "I'm already voiced in %s." msgstr "Ich habe schon Voice in %s." -#: plugin.py:483 +#: plugin.py:514 msgid "" "[]\n" "\n" @@ -200,7 +209,7 @@ msgstr "" "wahrscheinlich wird der Befehl sowieso nicht im Kanal selbst gesendet, wenn " "du den Befehl braucht." -#: plugin.py:504 +#: plugin.py:535 msgid "" "[]\n" "\n" @@ -219,7 +228,7 @@ msgstr "" "wahrscheinlich wird der Befehl sowieso nicht im Kanal selbst gesendet, wenn " "du den Befehl braucht." -#: plugin.py:526 +#: plugin.py:557 msgid "" "takes no arguments\n" "\n" @@ -230,11 +239,11 @@ msgstr "" "\n" "Identifiziert mit dem NickServ mit dem momentanen Nick." -#: plugin.py:535 +#: plugin.py:566 msgid "I don't have a configured password for my current nick." msgstr "Du hast kein Passwort für meinen momentanen Nick konfiguriert." -#: plugin.py:538 +#: plugin.py:569 msgid "" "You must set supybot.plugins.Services.NickServ before I'm able to do " "identify." @@ -242,7 +251,7 @@ msgstr "" "Du musst supybot.plugins.Services.NickServ setzen, damit es mich möglich ist " "mich zu identifizieren." -#: plugin.py:544 +#: plugin.py:575 msgid "" "[]\n" "\n" @@ -255,11 +264,11 @@ msgstr "" "'Ghost' den Bot Nick und nimmt ihn sich. Falls kein Nick angegeben wirde, " "wird 'ghost' für den konfigurierten Nick gesendet." -#: plugin.py:553 +#: plugin.py:584 msgid "I cowardly refuse to ghost myself." msgstr "Ich verweigere es auf mich selbst 'ghost' anzuwenden." -#: plugin.py:558 +#: plugin.py:589 msgid "" "You must set supybot.plugins.Services.NickServ before I'm able to ghost a " "nick." @@ -267,7 +276,7 @@ msgstr "" "Du musst supybot.plugins.Services.NickServ setzen, erst dann ist es mir " "möglich 'ghost' auf einen Nick anzuwenden." -#: plugin.py:563 +#: plugin.py:594 msgid "" "\n" "\n" @@ -275,7 +284,7 @@ msgid "" " on Atheme, use: @nickserv REGISTER ." msgstr "" -#: plugin.py:572 +#: plugin.py:603 #, fuzzy msgid "" "You must set supybot.plugins.Services.NickServ before I'm able to message " @@ -284,7 +293,7 @@ msgstr "" "Du musst supybot.plugins.Services.NickServ setzen, erst dann ist es mir " "möglich 'ghost' auf einen Nick anzuwenden." -#: plugin.py:577 +#: plugin.py:608 msgid "" "\n" "\n" @@ -292,7 +301,7 @@ msgid "" " on Atheme, use: @chanserv REGISTER <#channel>." msgstr "" -#: plugin.py:586 +#: plugin.py:617 #, fuzzy msgid "" "You must set supybot.plugins.Services.ChanServ before I'm able to message " @@ -301,7 +310,7 @@ msgstr "" "Du musst supybot.plugins.Services.ChanServ setzen, damit es mir möglich ist " "den %s Befehl auszuführen." -#: plugin.py:593 +#: plugin.py:624 msgid "" " []\n" "\n" @@ -315,11 +324,11 @@ msgstr "" "nicht angegeben wurde, wird der aus der Liste der konfigurierten " "Nicks entfernt." -#: plugin.py:605 +#: plugin.py:636 msgid "That nick was not configured with a password." msgstr "Für diesen Nick wurde kein Passwort konfiguriert." -#: plugin.py:618 +#: plugin.py:649 msgid "" "takes no arguments\n" "\n" @@ -333,27 +342,27 @@ msgstr "" "Gibt die Nicks aus, für die dieses Plugin konfiguriert wurde um sich zu " "identifizieren und 'ghost' zu benutzen." -#: plugin.py:628 +#: plugin.py:659 msgid "I'm not currently configured for any nicks." msgstr "Ich habe zur Zeit keine Nicks konfiguriert." -#: plugin.py:635 +#: plugin.py:666 msgid "Experimental IRC extensions are not enabled for this bot." msgstr "" -#: plugin.py:641 +#: plugin.py:672 msgid "This network does not support draft/account-registration." msgstr "" -#: plugin.py:647 +#: plugin.py:678 msgid "This network does not support labeled-response." msgstr "" -#: plugin.py:653 +#: plugin.py:684 msgid "This bot is already authenticated on the network." msgstr "" -#: plugin.py:658 +#: plugin.py:689 msgid "" "[] []\n" "\n" @@ -366,11 +375,11 @@ msgid "" " your email address." msgstr "" -#: plugin.py:672 +#: plugin.py:703 msgid "This network requires an email address to register." msgstr "" -#: plugin.py:686 +#: plugin.py:717 msgid "" "[] \n" "\n" diff --git a/plugins/Services/locales/fi.po b/plugins/Services/locales/fi.po index 619d59f12..d42911105 100644 --- a/plugins/Services/locales/fi.po +++ b/plugins/Services/locales/fi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2011-08-13 23:02+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -38,15 +38,16 @@ msgstr "Minkä niminen ChanServisi on?" msgid "What is your NickServ named?" msgstr "Minkä niminen NickServisi on?" -#: config.py:70 +#: config.py:71 +#, fuzzy msgid "" -"Determines what nicks the bot will use with\n" +"Space-separated list of nicks the bot will use with\n" " services." msgstr "" "Määrittää mitä nimimerkkiä botti käyttää\n" " palvelujen kanssa." -#: config.py:77 +#: config.py:78 msgid "" "Determines what networks this plugin\n" " will be disabled on." @@ -54,11 +55,11 @@ msgstr "" "Määrittää missä verkoissa tämä\n" " lisäosa on poistettu käytöstä." -#: config.py:77 +#: config.py:78 msgid "QuakeNet" msgstr "QuakeNet" -#: config.py:81 +#: config.py:82 msgid "" "Determines whether the bot will not join any\n" " channels until it is identified. This may be useful, for instances, if\n" @@ -71,7 +72,7 @@ msgstr "" " liittymässä +r kanaville, jotka eivät salli sinun liittyvän, paitsi jos " "olet tunnistautunut." -#: config.py:86 +#: config.py:87 #, fuzzy msgid "" "Determines how many seconds the bot will\n" @@ -80,7 +81,15 @@ msgstr "" "Määrittää monta sekuntia botti odottaa\n" " GHOSTaus yritysten välillä." -#: config.py:89 +#: config.py:90 +msgid "" +"Determines the NickServ command to use for GHOST. If the network\n" +" you're using runs Anope, set this to \"RECOVER\". If the network you're " +"using runs Atheme,\n" +" set this to \"GHOST\" or \"REGAIN\"." +msgstr "" + +#: config.py:94 msgid "" "Determines what nick the 'NickServ' service\n" " has." @@ -88,7 +97,7 @@ msgstr "" "Määrittää mikä nimimerkki 'NickServ' palvelulla\n" " on." -#: config.py:93 +#: config.py:98 msgid "" "Determines what nick the 'ChanServ' service\n" " has." @@ -96,7 +105,7 @@ msgstr "" "Määrittää mikä nimimerkki 'ChanServ' palvelulla\n" " on." -#: config.py:96 +#: config.py:101 msgid "" "Determines what password the bot will use with\n" " ChanServ." @@ -104,7 +113,7 @@ msgstr "" "Määrittää mitä salasanaa botti käyttää\n" " ChanServin kanssa." -#: config.py:99 +#: config.py:104 msgid "" "Determines whether the bot will request to get\n" " opped by the ChanServ when it joins the channel." @@ -112,7 +121,7 @@ msgstr "" "Määrittää pyytääkö botti ChanServin oppaamaksi\n" " tulemista, kun se liittyy kanavalle." -#: config.py:102 +#: config.py:107 msgid "" "Determines whether the bot will request to get\n" " half-opped by the ChanServ when it joins the channel." @@ -120,7 +129,7 @@ msgstr "" "Määrittää pyytääkö botti tulla ChanServin puolioppaamaksi, kun\n" " se liittyy kanavalle." -#: config.py:105 +#: config.py:110 msgid "" "Determines whether the bot will request to get\n" " voiced by the ChanServ when it joins the channel." @@ -128,7 +137,7 @@ msgstr "" "Määrittää pyytääkö botti ChanServiltä äänen, kun\n" " se liittyy kanavalle." -#: plugin.py:54 +#: plugin.py:55 msgid "" "This plugin handles dealing with Services on networks that provide them.\n" " Basically, you should use the \"password\" command to tell the bot a " @@ -152,7 +161,7 @@ msgstr "" " Muiden komentojen, kuten identify, op, jne. ei\n" " pitäisi olla vaadittuja, jos botti on määritetty hyvin." -#: plugin.py:441 +#: plugin.py:472 msgid "" "You must set supybot.plugins.Services.ChanServ before I'm able to send the " "%s command." @@ -160,7 +169,7 @@ msgstr "" "Sinun täytyy asettaa supybot.plugins.Services.ChanServ ennen kuin pystyn " "lähettämään komennon %s." -#: plugin.py:447 +#: plugin.py:478 msgid "" "[]\n" "\n" @@ -175,11 +184,11 @@ msgstr "" " jos viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:453 +#: plugin.py:484 msgid "I'm already opped in %s." msgstr "Minut on jo opattu kanavalla %s." -#: plugin.py:460 +#: plugin.py:491 msgid "" "[]\n" "\n" @@ -194,11 +203,11 @@ msgstr "" " viestiä ei lähetetä kanavalla itsellään.\n" " " -#: plugin.py:466 +#: plugin.py:497 msgid "I'm already voiced in %s." msgstr "Minulla on jo ääni kanavalla %s." -#: plugin.py:483 +#: plugin.py:514 msgid "" "[]\n" "\n" @@ -219,7 +228,7 @@ msgstr "" " itsellään.\n" " " -#: plugin.py:504 +#: plugin.py:535 msgid "" "[]\n" "\n" @@ -240,7 +249,7 @@ msgstr "" " itsellään.\n" " " -#: plugin.py:526 +#: plugin.py:557 msgid "" "takes no arguments\n" "\n" @@ -252,11 +261,11 @@ msgstr "" " Tunnistautuu NickServille käyttämällä nykyistä nimimerkkiä.\n" " " -#: plugin.py:535 +#: plugin.py:566 msgid "I don't have a configured password for my current nick." msgstr "Minulla ei ole määritettyä salasanaa nimimerkilleni." -#: plugin.py:538 +#: plugin.py:569 msgid "" "You must set supybot.plugins.Services.NickServ before I'm able to do " "identify." @@ -264,7 +273,7 @@ msgstr "" "Sinun täytyy asettaa supybot.plugins.Services.NickServ ennen kuin pystyn " "tunnistautumaan." -#: plugin.py:544 +#: plugin.py:575 msgid "" "[]\n" "\n" @@ -279,11 +288,11 @@ msgstr "" " ghostaa botin määritetyn nimimerkin ja ottaa sen.\n" " " -#: plugin.py:553 +#: plugin.py:584 msgid "I cowardly refuse to ghost myself." msgstr "Minä pelkurimaisesti kieltäydyn ghostaamasta itseäni." -#: plugin.py:558 +#: plugin.py:589 msgid "" "You must set supybot.plugins.Services.NickServ before I'm able to ghost a " "nick." @@ -291,7 +300,7 @@ msgstr "" "Sinun täytyy asettaa supybot.plugins.Services.NickServ ennen kuin pystyn " "ghostaamaan nimimerkin." -#: plugin.py:563 +#: plugin.py:594 msgid "" "\n" "\n" @@ -299,7 +308,7 @@ msgid "" " on Atheme, use: @nickserv REGISTER ." msgstr "" -#: plugin.py:572 +#: plugin.py:603 #, fuzzy msgid "" "You must set supybot.plugins.Services.NickServ before I'm able to message " @@ -308,7 +317,7 @@ msgstr "" "Sinun täytyy asettaa supybot.plugins.Services.NickServ ennen kuin pystyn " "ghostaamaan nimimerkin." -#: plugin.py:577 +#: plugin.py:608 msgid "" "\n" "\n" @@ -316,7 +325,7 @@ msgid "" " on Atheme, use: @chanserv REGISTER <#channel>." msgstr "" -#: plugin.py:586 +#: plugin.py:617 #, fuzzy msgid "" "You must set supybot.plugins.Services.ChanServ before I'm able to message " @@ -325,7 +334,7 @@ msgstr "" "Sinun täytyy asettaa supybot.plugins.Services.ChanServ ennen kuin pystyn " "lähettämään komennon %s." -#: plugin.py:593 +#: plugin.py:624 msgid "" " []\n" "\n" @@ -341,11 +350,11 @@ msgstr "" " ole annettu, poistaa määritetyistä nimimerkeistä.\n" " " -#: plugin.py:605 +#: plugin.py:636 msgid "That nick was not configured with a password." msgstr "Tuota nimimerkkiä ei ole määritetty salasanan kanssa." -#: plugin.py:618 +#: plugin.py:649 msgid "" "takes no arguments\n" "\n" @@ -361,27 +370,27 @@ msgstr "" " ghostaamaan.\n" " " -#: plugin.py:628 +#: plugin.py:659 msgid "I'm not currently configured for any nicks." msgstr "Minulle ei ole tällä hetkellä määritetty yhtään nimimerkkiä." -#: plugin.py:635 +#: plugin.py:666 msgid "Experimental IRC extensions are not enabled for this bot." msgstr "" -#: plugin.py:641 +#: plugin.py:672 msgid "This network does not support draft/account-registration." msgstr "" -#: plugin.py:647 +#: plugin.py:678 msgid "This network does not support labeled-response." msgstr "" -#: plugin.py:653 +#: plugin.py:684 msgid "This bot is already authenticated on the network." msgstr "" -#: plugin.py:658 +#: plugin.py:689 msgid "" "[] []\n" "\n" @@ -394,11 +403,11 @@ msgid "" " your email address." msgstr "" -#: plugin.py:672 +#: plugin.py:703 msgid "This network requires an email address to register." msgstr "" -#: plugin.py:686 +#: plugin.py:717 msgid "" "[] \n" "\n" diff --git a/plugins/Services/locales/fr.po b/plugins/Services/locales/fr.po index 1c95d7ef5..6ab93dc8f 100644 --- a/plugins/Services/locales/fr.po +++ b/plugins/Services/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: Valentin Lorentz \n" "Language-Team: Limnoria \n" @@ -37,23 +37,24 @@ msgstr "Comment est nommé ChanServ ?" msgid "What is your NickServ named?" msgstr "Comment est nommé NickServ ?" -#: config.py:70 +#: config.py:71 +#, fuzzy msgid "" -"Determines what nicks the bot will use with\n" +"Space-separated list of nicks the bot will use with\n" " services." msgstr "Détermine quels nicks le bot utilisera avec les services." -#: config.py:77 +#: config.py:78 msgid "" "Determines what networks this plugin\n" " will be disabled on." msgstr "Détermine sur quels réseaux ce plugin sera désactivé." -#: config.py:77 +#: config.py:78 msgid "QuakeNet" msgstr "QuakeNet" -#: config.py:81 +#: config.py:82 msgid "" "Determines whether the bot will not join any\n" " channels until it is identified. This may be useful, for instances, if\n" @@ -66,7 +67,7 @@ msgstr "" "rejoindre des canaux en +r (=des canaux que l'on ne peut joindre sans être " "identifié)" -#: config.py:86 +#: config.py:87 #, fuzzy msgid "" "Determines how many seconds the bot will\n" @@ -74,25 +75,33 @@ msgid "" msgstr "" "Détermine le nombre de secondes entre deux tentatives successives de GHOST." -#: config.py:89 +#: config.py:90 +msgid "" +"Determines the NickServ command to use for GHOST. If the network\n" +" you're using runs Anope, set this to \"RECOVER\". If the network you're " +"using runs Atheme,\n" +" set this to \"GHOST\" or \"REGAIN\"." +msgstr "" + +#: config.py:94 msgid "" "Determines what nick the 'NickServ' service\n" " has." msgstr "Détermine quel nick NickServ a." -#: config.py:93 +#: config.py:98 msgid "" "Determines what nick the 'ChanServ' service\n" " has." msgstr "Détermine quel nick ChanServ a." -#: config.py:96 +#: config.py:101 msgid "" "Determines what password the bot will use with\n" " ChanServ." msgstr "Détermine quel mot de passe le bot utilisera avec ChanServ." -#: config.py:99 +#: config.py:104 msgid "" "Determines whether the bot will request to get\n" " opped by the ChanServ when it joins the channel." @@ -100,7 +109,7 @@ msgstr "" "Détermine si le bot demandera à être oppé par ChanServ lorsqu'il rejoint le " "canal." -#: config.py:102 +#: config.py:107 msgid "" "Determines whether the bot will request to get\n" " half-opped by the ChanServ when it joins the channel." @@ -108,7 +117,7 @@ msgstr "" "Détermine si le bot demandera à être oppé par NickServ lorsqu'il rejoint le " "canal." -#: config.py:105 +#: config.py:110 msgid "" "Determines whether the bot will request to get\n" " voiced by the ChanServ when it joins the channel." @@ -116,7 +125,7 @@ msgstr "" "Détermine si le bot demandera à être voicé par ChanServ lorsqu'il rejoint le " "canal." -#: plugin.py:54 +#: plugin.py:55 msgid "" "This plugin handles dealing with Services on networks that provide them.\n" " Basically, you should use the \"password\" command to tell the bot a " @@ -139,7 +148,7 @@ msgstr "" "commandes, comme 'identify', 'op', ... ne sont pas nécessaires quand le bot " "est configuré correctement." -#: plugin.py:441 +#: plugin.py:472 msgid "" "You must set supybot.plugins.Services.ChanServ before I'm able to send the " "%s command." @@ -147,7 +156,7 @@ msgstr "" "vous devez définir supybot.plugins.Services.ChanServ avant que je ne puisse " "envoyer la commande %s" -#: plugin.py:447 +#: plugin.py:478 msgid "" "[]\n" "\n" @@ -160,11 +169,11 @@ msgstr "" "Demande à être opé par ChanServ sur le . n'est nécessaire que " "si la commande n'est pas envoyée sur le canal lui-même." -#: plugin.py:453 +#: plugin.py:484 msgid "I'm already opped in %s." msgstr "Je suis déjà opé sur %s." -#: plugin.py:460 +#: plugin.py:491 msgid "" "[]\n" "\n" @@ -177,11 +186,11 @@ msgstr "" " Demande à être voicé par ChanServ sur le . n'est nécessaire " "que si la commande n'est pas envoyée sur le canal lui-même." -#: plugin.py:466 +#: plugin.py:497 msgid "I'm already voiced in %s." msgstr "Je suis déjà voicé sur %s." -#: plugin.py:483 +#: plugin.py:514 msgid "" "[]\n" "\n" @@ -200,7 +209,7 @@ msgstr "" "n'avez probablement pas besoin d'utiliser cette commande sur le canal en " "question." -#: plugin.py:504 +#: plugin.py:535 msgid "" "[]\n" "\n" @@ -219,7 +228,7 @@ msgstr "" "n'avez probablement pas besoin d'utiliser cette commande sur le canal en " "question." -#: plugin.py:526 +#: plugin.py:557 msgid "" "takes no arguments\n" "\n" @@ -230,11 +239,11 @@ msgstr "" "\n" "S'identifie auprès de NickServ, en utilisant le nick actuel." -#: plugin.py:535 +#: plugin.py:566 msgid "I don't have a configured password for my current nick." msgstr "Je n'ai pas de mot de passe configuré pour mon nick actuel." -#: plugin.py:538 +#: plugin.py:569 msgid "" "You must set supybot.plugins.Services.NickServ before I'm able to do " "identify." @@ -242,7 +251,7 @@ msgstr "" "Vous devez définir supybot.plugins.Services.NickServ avant que je ne puisse " "m'identifier" -#: plugin.py:544 +#: plugin.py:575 msgid "" "[]\n" "\n" @@ -255,11 +264,11 @@ msgstr "" "Ghost le nick donné du bot et le prend. Si aucun nick n'est donné, utilise " "celui configuré." -#: plugin.py:553 +#: plugin.py:584 msgid "I cowardly refuse to ghost myself." msgstr "Je suis trop couard pour me ghoster moi-même." -#: plugin.py:558 +#: plugin.py:589 msgid "" "You must set supybot.plugins.Services.NickServ before I'm able to ghost a " "nick." @@ -267,7 +276,7 @@ msgstr "" "Vous devez définir supybot.plugins.Services.NickServ avant que je ne puisse " "ghoster un nick." -#: plugin.py:563 +#: plugin.py:594 msgid "" "\n" "\n" @@ -275,7 +284,7 @@ msgid "" " on Atheme, use: @nickserv REGISTER ." msgstr "" -#: plugin.py:572 +#: plugin.py:603 #, fuzzy msgid "" "You must set supybot.plugins.Services.NickServ before I'm able to message " @@ -284,7 +293,7 @@ msgstr "" "Vous devez définir supybot.plugins.Services.NickServ avant que je ne puisse " "ghoster un nick." -#: plugin.py:577 +#: plugin.py:608 msgid "" "\n" "\n" @@ -292,7 +301,7 @@ msgid "" " on Atheme, use: @chanserv REGISTER <#channel>." msgstr "" -#: plugin.py:586 +#: plugin.py:617 #, fuzzy msgid "" "You must set supybot.plugins.Services.ChanServ before I'm able to message " @@ -301,7 +310,7 @@ msgstr "" "vous devez définir supybot.plugins.Services.ChanServ avant que je ne puisse " "envoyer la commande %s" -#: plugin.py:593 +#: plugin.py:624 msgid "" " []\n" "\n" @@ -315,11 +324,11 @@ msgstr "" "Défini le NickServ pour le . Si le n'est " "pas donné, supprime de la liste des nis, configurés." -#: plugin.py:605 +#: plugin.py:636 msgid "That nick was not configured with a password." msgstr "Ce nick n'est pas configuré avec un mot de passe." -#: plugin.py:618 +#: plugin.py:649 msgid "" "takes no arguments\n" "\n" @@ -333,27 +342,27 @@ msgstr "" "Retourne les nicks pour lesquels ce plugin est configuré pour s'identifier " "et ghoster." -#: plugin.py:628 +#: plugin.py:659 msgid "I'm not currently configured for any nicks." msgstr "Je ne suis actuellement configuré pour aucun nick." -#: plugin.py:635 +#: plugin.py:666 msgid "Experimental IRC extensions are not enabled for this bot." msgstr "" -#: plugin.py:641 +#: plugin.py:672 msgid "This network does not support draft/account-registration." msgstr "" -#: plugin.py:647 +#: plugin.py:678 msgid "This network does not support labeled-response." msgstr "" -#: plugin.py:653 +#: plugin.py:684 msgid "This bot is already authenticated on the network." msgstr "" -#: plugin.py:658 +#: plugin.py:689 msgid "" "[] []\n" "\n" @@ -366,11 +375,11 @@ msgid "" " your email address." msgstr "" -#: plugin.py:672 +#: plugin.py:703 msgid "This network requires an email address to register." msgstr "" -#: plugin.py:686 +#: plugin.py:717 msgid "" "[] \n" "\n" diff --git a/plugins/Services/locales/it.po b/plugins/Services/locales/it.po index 09e69d2d0..4e622ab01 100644 --- a/plugins/Services/locales/it.po +++ b/plugins/Services/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2011-07-10 12:57+0200\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -33,23 +33,24 @@ msgstr "Come si chiama ChanServ?" msgid "What is your NickServ named?" msgstr "Come si chiama NickServ?" -#: config.py:70 +#: config.py:71 +#, fuzzy msgid "" -"Determines what nicks the bot will use with\n" +"Space-separated list of nicks the bot will use with\n" " services." msgstr "Determina quali nick il bot userà con i servizi." -#: config.py:77 +#: config.py:78 msgid "" "Determines what networks this plugin\n" " will be disabled on." msgstr "Determina su quali reti sarà disattivato questo plugin." -#: config.py:77 +#: config.py:78 msgid "QuakeNet" msgstr "QuakeNet" -#: config.py:81 +#: config.py:82 msgid "" "Determines whether the bot will not join any\n" " channels until it is identified. This may be useful, for instances, if\n" @@ -62,7 +63,7 @@ msgstr "" " entrare in un canale con un mode +r (su Freenode, +j su Azzurra) che\n" " non permette il join a utenti non identificati." -#: config.py:86 +#: config.py:87 #, fuzzy msgid "" "Determines how many seconds the bot will\n" @@ -71,25 +72,33 @@ msgstr "" "Determina quanti secondi il bot aspetterà tra un tentativo di GHOST e " "l'altro." -#: config.py:89 +#: config.py:90 +msgid "" +"Determines the NickServ command to use for GHOST. If the network\n" +" you're using runs Anope, set this to \"RECOVER\". If the network you're " +"using runs Atheme,\n" +" set this to \"GHOST\" or \"REGAIN\"." +msgstr "" + +#: config.py:94 msgid "" "Determines what nick the 'NickServ' service\n" " has." msgstr "Determina quale nick ha il servizio \"NickServ\"." -#: config.py:93 +#: config.py:98 msgid "" "Determines what nick the 'ChanServ' service\n" " has." msgstr "Determina quale nick ha il servizio \"ChanServ\"." -#: config.py:96 +#: config.py:101 msgid "" "Determines what password the bot will use with\n" " ChanServ." msgstr "Determina quale password il bot userà con ChanServ." -#: config.py:99 +#: config.py:104 msgid "" "Determines whether the bot will request to get\n" " opped by the ChanServ when it joins the channel." @@ -97,7 +106,7 @@ msgstr "" "Determina se il bot richiederà lo stato di op da ChanServ quando entra nel " "canale." -#: config.py:102 +#: config.py:107 msgid "" "Determines whether the bot will request to get\n" " half-opped by the ChanServ when it joins the channel." @@ -105,14 +114,14 @@ msgstr "" "Determina se il bot richiederà lo stato di halfop da ChanServ quando entra " "nel canale." -#: config.py:105 +#: config.py:110 msgid "" "Determines whether the bot will request to get\n" " voiced by the ChanServ when it joins the channel." msgstr "" "Determina se il bot richiederà il voice da ChanServ quando entra nel canale." -#: plugin.py:54 +#: plugin.py:55 msgid "" "This plugin handles dealing with Services on networks that provide them.\n" " Basically, you should use the \"password\" command to tell the bot a " @@ -140,7 +149,7 @@ msgstr "" "comandi\n" " come \"identify\", \"op\", ecc. non dovrebbero essere necessari." -#: plugin.py:441 +#: plugin.py:472 msgid "" "You must set supybot.plugins.Services.ChanServ before I'm able to send the " "%s command." @@ -148,7 +157,7 @@ msgstr "" "È necessario impostare la variabile supybot.plugins.Services.ChanServ " "affinché possa inviare il comando %s." -#: plugin.py:447 +#: plugin.py:478 msgid "" "[]\n" "\n" @@ -163,11 +172,11 @@ msgstr "" "stesso.\n" " " -#: plugin.py:453 +#: plugin.py:484 msgid "I'm already opped in %s." msgstr "Sono già op in %s." -#: plugin.py:460 +#: plugin.py:491 msgid "" "[]\n" "\n" @@ -182,11 +191,11 @@ msgstr "" "stesso.\n" " " -#: plugin.py:466 +#: plugin.py:497 msgid "I'm already voiced in %s." msgstr "Ho già il voice in %s." -#: plugin.py:483 +#: plugin.py:514 msgid "" "[]\n" "\n" @@ -207,7 +216,7 @@ msgstr "" "canale.\n" " " -#: plugin.py:504 +#: plugin.py:535 msgid "" "[]\n" "\n" @@ -228,7 +237,7 @@ msgstr "" " che se serve questo comando non lo si stia inviando in canale.\n" " " -#: plugin.py:526 +#: plugin.py:557 msgid "" "takes no arguments\n" "\n" @@ -240,11 +249,11 @@ msgstr "" " Si identifica con NickServ utilizzando l'attuale nick in uso.\n" " " -#: plugin.py:535 +#: plugin.py:566 msgid "I don't have a configured password for my current nick." msgstr "Non ho una password configurata per il mio attuale nick." -#: plugin.py:538 +#: plugin.py:569 msgid "" "You must set supybot.plugins.Services.NickServ before I'm able to do " "identify." @@ -252,7 +261,7 @@ msgstr "" "È necessario impostare la variabile supybot.plugins.Services.NickServ " "affinché possa identificarmi." -#: plugin.py:544 +#: plugin.py:575 msgid "" "[]\n" "\n" @@ -267,12 +276,12 @@ msgstr "" " Se non è specificato alcun nick, riprende quello configurato.\n" " " -#: plugin.py:553 +#: plugin.py:584 msgid "I cowardly refuse to ghost myself." msgstr "" "Codardamente mi rifiuto di terminare una connessione \"fantasma\" (ghost)." -#: plugin.py:558 +#: plugin.py:589 msgid "" "You must set supybot.plugins.Services.NickServ before I'm able to ghost a " "nick." @@ -280,7 +289,7 @@ msgstr "" "È necessario impostare la variabile supybot.plugins.Services.NickServ " "affinché possa riprendermi il nick (ghost)." -#: plugin.py:563 +#: plugin.py:594 msgid "" "\n" "\n" @@ -288,7 +297,7 @@ msgid "" " on Atheme, use: @nickserv REGISTER ." msgstr "" -#: plugin.py:572 +#: plugin.py:603 #, fuzzy msgid "" "You must set supybot.plugins.Services.NickServ before I'm able to message " @@ -297,7 +306,7 @@ msgstr "" "È necessario impostare la variabile supybot.plugins.Services.NickServ " "affinché possa riprendermi il nick (ghost)." -#: plugin.py:577 +#: plugin.py:608 msgid "" "\n" "\n" @@ -305,7 +314,7 @@ msgid "" " on Atheme, use: @chanserv REGISTER <#channel>." msgstr "" -#: plugin.py:586 +#: plugin.py:617 #, fuzzy msgid "" "You must set supybot.plugins.Services.ChanServ before I'm able to message " @@ -314,7 +323,7 @@ msgstr "" "È necessario impostare la variabile supybot.plugins.Services.ChanServ " "affinché possa inviare il comando %s." -#: plugin.py:593 +#: plugin.py:624 msgid "" " []\n" "\n" @@ -329,11 +338,11 @@ msgstr "" " non è specificata, rimuove dai nick configurati.\n" " " -#: plugin.py:605 +#: plugin.py:636 msgid "That nick was not configured with a password." msgstr "Questo nick non è stato configurato con una password." -#: plugin.py:618 +#: plugin.py:649 msgid "" "takes no arguments\n" "\n" @@ -348,27 +357,27 @@ msgstr "" "l'identificazione e il ghost.\n" " " -#: plugin.py:628 +#: plugin.py:659 msgid "I'm not currently configured for any nicks." msgstr "Al momento non sono configurato per alcun nick." -#: plugin.py:635 +#: plugin.py:666 msgid "Experimental IRC extensions are not enabled for this bot." msgstr "" -#: plugin.py:641 +#: plugin.py:672 msgid "This network does not support draft/account-registration." msgstr "" -#: plugin.py:647 +#: plugin.py:678 msgid "This network does not support labeled-response." msgstr "" -#: plugin.py:653 +#: plugin.py:684 msgid "This bot is already authenticated on the network." msgstr "" -#: plugin.py:658 +#: plugin.py:689 msgid "" "[] []\n" "\n" @@ -381,11 +390,11 @@ msgid "" " your email address." msgstr "" -#: plugin.py:672 +#: plugin.py:703 msgid "This network requires an email address to register." msgstr "" -#: plugin.py:686 +#: plugin.py:717 msgid "" "[] \n" "\n" diff --git a/plugins/Services/messages.pot b/plugins/Services/messages.pot index 97c61cc85..36304bc3b 100644 --- a/plugins/Services/messages.pot +++ b/plugins/Services/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -35,23 +35,23 @@ msgstr "" msgid "What is your NickServ named?" msgstr "" -#: config.py:70 +#: config.py:71 msgid "" -"Determines what nicks the bot will use with\n" +"Space-separated list of nicks the bot will use with\n" " services." msgstr "" -#: config.py:77 +#: config.py:78 msgid "" "Determines what networks this plugin\n" " will be disabled on." msgstr "" -#: config.py:77 +#: config.py:78 msgid "QuakeNet" msgstr "" -#: config.py:81 +#: config.py:82 msgid "" "Determines whether the bot will not join any\n" " channels until it is identified. This may be useful, for instances, if\n" @@ -59,49 +59,56 @@ msgid "" " joining +r channels that won't allow you to join unless you identify." msgstr "" -#: config.py:86 +#: config.py:87 msgid "" "Determines how many seconds the bot will\n" " wait between successive GHOST attempts. Set this to 0 to disable GHOST." msgstr "" -#: config.py:89 +#: config.py:90 +msgid "" +"Determines the NickServ command to use for GHOST. If the network\n" +" you're using runs Anope, set this to \"RECOVER\". If the network you're using runs Atheme,\n" +" set this to \"GHOST\" or \"REGAIN\"." +msgstr "" + +#: config.py:94 msgid "" "Determines what nick the 'NickServ' service\n" " has." msgstr "" -#: config.py:93 +#: config.py:98 msgid "" "Determines what nick the 'ChanServ' service\n" " has." msgstr "" -#: config.py:96 +#: config.py:101 msgid "" "Determines what password the bot will use with\n" " ChanServ." msgstr "" -#: config.py:99 +#: config.py:104 msgid "" "Determines whether the bot will request to get\n" " opped by the ChanServ when it joins the channel." msgstr "" -#: config.py:102 +#: config.py:107 msgid "" "Determines whether the bot will request to get\n" " half-opped by the ChanServ when it joins the channel." msgstr "" -#: config.py:105 +#: config.py:110 msgid "" "Determines whether the bot will request to get\n" " voiced by the ChanServ when it joins the channel." msgstr "" -#: plugin.py:54 +#: plugin.py:55 #, docstring msgid "" "This plugin handles dealing with Services on networks that provide them.\n" @@ -114,11 +121,11 @@ msgid "" " necessary if the bot is properly configured." msgstr "" -#: plugin.py:441 +#: plugin.py:472 msgid "You must set supybot.plugins.Services.ChanServ before I'm able to send the %s command." msgstr "" -#: plugin.py:447 +#: plugin.py:478 #, docstring msgid "" "[]\n" @@ -128,11 +135,11 @@ msgid "" " " msgstr "" -#: plugin.py:453 +#: plugin.py:484 msgid "I'm already opped in %s." msgstr "" -#: plugin.py:460 +#: plugin.py:491 #, docstring msgid "" "[]\n" @@ -142,11 +149,11 @@ msgid "" " " msgstr "" -#: plugin.py:466 +#: plugin.py:497 msgid "I'm already voiced in %s." msgstr "" -#: plugin.py:483 +#: plugin.py:514 #, docstring msgid "" "[]\n" @@ -158,7 +165,7 @@ msgid "" " " msgstr "" -#: plugin.py:504 +#: plugin.py:535 #, docstring msgid "" "[]\n" @@ -170,7 +177,7 @@ msgid "" " " msgstr "" -#: plugin.py:526 +#: plugin.py:557 #, docstring msgid "" "takes no arguments\n" @@ -179,15 +186,15 @@ msgid "" " " msgstr "" -#: plugin.py:535 +#: plugin.py:566 msgid "I don't have a configured password for my current nick." msgstr "" -#: plugin.py:538 +#: plugin.py:569 msgid "You must set supybot.plugins.Services.NickServ before I'm able to do identify." msgstr "" -#: plugin.py:544 +#: plugin.py:575 #, docstring msgid "" "[]\n" @@ -197,15 +204,15 @@ msgid "" " " msgstr "" -#: plugin.py:553 +#: plugin.py:584 msgid "I cowardly refuse to ghost myself." msgstr "" -#: plugin.py:558 +#: plugin.py:589 msgid "You must set supybot.plugins.Services.NickServ before I'm able to ghost a nick." msgstr "" -#: plugin.py:563 +#: plugin.py:594 #, docstring msgid "" "\n" @@ -214,11 +221,11 @@ msgid "" " on Atheme, use: @nickserv REGISTER ." msgstr "" -#: plugin.py:572 +#: plugin.py:603 msgid "You must set supybot.plugins.Services.NickServ before I'm able to message NickServ" msgstr "" -#: plugin.py:577 +#: plugin.py:608 #, docstring msgid "" "\n" @@ -227,11 +234,11 @@ msgid "" " on Atheme, use: @chanserv REGISTER <#channel>." msgstr "" -#: plugin.py:586 +#: plugin.py:617 msgid "You must set supybot.plugins.Services.ChanServ before I'm able to message ChanServ" msgstr "" -#: plugin.py:593 +#: plugin.py:624 #, docstring msgid "" " []\n" @@ -241,11 +248,11 @@ msgid "" " " msgstr "" -#: plugin.py:605 +#: plugin.py:636 msgid "That nick was not configured with a password." msgstr "" -#: plugin.py:618 +#: plugin.py:649 #, docstring msgid "" "takes no arguments\n" @@ -255,27 +262,27 @@ msgid "" " " msgstr "" -#: plugin.py:628 +#: plugin.py:659 msgid "I'm not currently configured for any nicks." msgstr "" -#: plugin.py:635 +#: plugin.py:666 msgid "Experimental IRC extensions are not enabled for this bot." msgstr "" -#: plugin.py:641 +#: plugin.py:672 msgid "This network does not support draft/account-registration." msgstr "" -#: plugin.py:647 +#: plugin.py:678 msgid "This network does not support labeled-response." msgstr "" -#: plugin.py:653 +#: plugin.py:684 msgid "This bot is already authenticated on the network." msgstr "" -#: plugin.py:658 +#: plugin.py:689 #, docstring msgid "" "[] []\n" @@ -287,11 +294,11 @@ msgid "" " your email address." msgstr "" -#: plugin.py:672 +#: plugin.py:703 msgid "This network requires an email address to register." msgstr "" -#: plugin.py:686 +#: plugin.py:717 #, docstring msgid "" "[] \n" diff --git a/plugins/Services/plugin.py b/plugins/Services/plugin.py index b07ba088e..40c677159 100644 --- a/plugins/Services/plugin.py +++ b/plugins/Services/plugin.py @@ -179,7 +179,11 @@ class Services(callbacks.Plugin): if nick not in self.registryValue('nicks', network=irc.network): return nickserv = self.registryValue('NickServ', network=irc.network) - password = self._getNickServPassword(nick, irc.network) + try: + password = self._getNickServPassword(nick, irc.network) + except Exception: + self.log.exception('Could not get NickServ password for %s', nick) + return ghostDelay = self.registryValue('ghostDelay', network=irc.network) if not ghostDelay: return diff --git a/plugins/ShrinkUrl/README.rst b/plugins/ShrinkUrl/README.rst index ce91aefc3..6ee2d60d8 100644 --- a/plugins/ShrinkUrl/README.rst +++ b/plugins/ShrinkUrl/README.rst @@ -21,17 +21,17 @@ Commands .. _command-shrinkurl-tiny: -tiny +``tiny `` Returns a TinyURL.com version of .. _command-shrinkurl-ur1: -ur1 +``ur1 `` Returns an ur1 version of . .. _command-shrinkurl-x0: -x0 +``x0 `` Returns an x0.no version of . .. _conf-ShrinkUrl: diff --git a/plugins/ShrinkUrl/messages.pot b/plugins/ShrinkUrl/messages.pot index 36e541da6..b6bea623c 100644 --- a/plugins/ShrinkUrl/messages.pot +++ b/plugins/ShrinkUrl/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Status/README.rst b/plugins/Status/README.rst index e42f88859..7d2d3ad0f 100644 --- a/plugins/Status/README.rst +++ b/plugins/Status/README.rst @@ -22,52 +22,52 @@ Commands .. _command-status-cmd: -cmd takes no arguments +``cmd takes no arguments`` Returns some interesting command-related statistics. .. _command-status-commands: -commands takes no arguments +``commands takes no arguments`` Returns a list of the commands offered by the bot. .. _command-status-cpu: -cpu takes no arguments +``cpu takes no arguments`` Returns some interesting CPU-related statistics on the bot. .. _command-status-net: -net takes no arguments +``net takes no arguments`` Returns some interesting network-related statistics. .. _command-status-network: -network takes no arguments +``network takes no arguments`` Returns the network the bot is on. .. _command-status-processes: -processes takes no arguments +``processes takes no arguments`` Returns the number of processes that have been spawned, and list of ones that are still active. .. _command-status-server: -server takes no arguments +``server takes no arguments`` Returns the server the bot is on. .. _command-status-status: -status takes no arguments +``status takes no arguments`` Returns the status of the bot. .. _command-status-threads: -threads takes no arguments +``threads takes no arguments`` Returns the current threads that are active. .. _command-status-uptime: -uptime takes no arguments +``uptime takes no arguments`` Returns the amount of time the bot has been running. .. _conf-Status: diff --git a/plugins/Status/locales/de.po b/plugins/Status/locales/de.po index d98017988..d0fbd1cdc 100644 --- a/plugins/Status/locales/de.po +++ b/plugins/Status/locales/de.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Supybot\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-04-27 15:46+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: German \n" @@ -53,19 +53,21 @@ msgstr "" "\n" "Gibt den Status des Bots aus." -#: plugin.py:83 -msgid "%s as %L" -msgstr "%s als %L" +#: plugin.py:109 +msgid "" +"I am connected to %s as %s: Channels: %s, Ops: %s, Half-Ops: %s, Voiced: %s, " +"Regular: %s" +msgstr "" -#: plugin.py:84 -msgid "I am connected to %L." -msgstr "Ich bin verbunden zu %L." - -#: plugin.py:86 +#: plugin.py:121 msgid "I am currently in code profiling mode." msgstr "Momentan bin ich im quelltextanalyse Modus." -#: plugin.py:92 +#: plugin.py:122 +msgid "%L" +msgstr "" + +#: plugin.py:128 msgid "" "takes no arguments\n" "\n" @@ -76,11 +78,11 @@ msgstr "" "\n" "Gibt aus wieviele Threads momentan aktiv sind." -#: plugin.py:98 +#: plugin.py:134 msgid "I have spawned %n; %n %b still currently active: %L." msgstr "Ich habe %n erzeugt. %n %b sind jetzt noch Aktiv: %L." -#: plugin.py:105 +#: plugin.py:141 #, fuzzy msgid "" "takes no arguments\n" @@ -93,7 +95,7 @@ msgstr "" "\n" "Gibt aus wieviele Threads momentan aktiv sind." -#: plugin.py:120 +#: plugin.py:156 msgid "" "takes no arguments\n" "\n" @@ -104,11 +106,11 @@ msgstr "" "\n" "Gibt einige interessante Netzwerk bezogene Statistiken aus." -#: plugin.py:128 +#: plugin.py:164 msgid "an indeterminate amount of time" msgstr "eine unbestimmte Zeit" -#: plugin.py:129 +#: plugin.py:165 msgid "" "I have received %s messages for a total of %S. I have sent %s messages for " "a total of %S. I have been connected to %s for %s." @@ -116,7 +118,7 @@ msgstr "" "Ich habe %s Nachrichten empfangen, im totalen %S. Ich habe %s Nachrichten " "gesendet, im totalen %S. Ich bin mit %s verbunden, seit %s." -#: plugin.py:138 +#: plugin.py:174 msgid "" "takes no arguments\n" "\n" @@ -127,7 +129,7 @@ msgstr "" "\n" "Gibt einige interessante CPU bezogene Statistiken des Bots aus." -#: plugin.py:148 +#: plugin.py:184 msgid "" "My children have taken %.2f seconds of user time and %.2f seconds of system " "time for a total of %.2f seconds of CPU time." @@ -135,7 +137,7 @@ msgstr "" "Meine Kindsprozesse haben %.2f Sekunden an Nutzerzeit und %.2f Systemzeit " "gebraucht, im totalen %.2f Sekunden der CPU Zeit." -#: plugin.py:155 +#: plugin.py:191 msgid "" "I have taken %.2f seconds of user time and %.2f seconds of system time, for " "a total of %.2f seconds of CPU time. %s" @@ -143,20 +145,20 @@ msgstr "" "Ich habe %.2f Sekunden an benutzer Zeit und %.2f Sekunden an Systemzeit " "benötigt, in allen %.2f CPU Zeit. %s" -#: plugin.py:177 +#: plugin.py:213 msgid "Unable to run ps command." msgstr "Ich kann den Befehl ps nicht ausführen." -#: plugin.py:184 +#: plugin.py:220 msgid " I'm taking up %S of memory." msgstr " Ich verbrauche %S Speicher." -#: plugin.py:187 +#: plugin.py:223 #, fuzzy msgid " I'm taking up an unknown amount of memory." msgstr " Ich verbrauche %S Speicher." -#: plugin.py:195 +#: plugin.py:231 msgid "" "takes no arguments\n" "\n" @@ -167,11 +169,11 @@ msgstr "" "\n" "Gibt einige interessante befehlbezogene Statistiken aus." -#: plugin.py:205 +#: plugin.py:241 msgid "I offer a total of %n in %n. I have processed %n." msgstr "Ich biete %n in %n an. Ich habe %n bearbeitet." -#: plugin.py:214 +#: plugin.py:250 msgid "" "takes no arguments\n" "\n" @@ -182,7 +184,7 @@ msgstr "" "\n" "Gibt eine Liste der Befehle zurück, die der Bot anbietet." -#: plugin.py:228 +#: plugin.py:264 msgid "" "takes no arguments\n" "\n" @@ -193,11 +195,11 @@ msgstr "" "\n" "Gibt aus wie lange der Bot schon läuft." -#: plugin.py:232 +#: plugin.py:268 msgid "I have been running for %s." msgstr "Ich laufe seit %s." -#: plugin.py:239 +#: plugin.py:275 msgid "" "takes no arguments\n" "\n" @@ -208,7 +210,7 @@ msgstr "" "\n" "Gibt den Server aus mit dem der Bot verbunden ist." -#: plugin.py:248 +#: plugin.py:284 #, fuzzy msgid "" "takes no arguments\n" @@ -219,3 +221,9 @@ msgstr "" "hat keine Arguments\n" "\n" "Gibt den Server aus mit dem der Bot verbunden ist." + +#~ msgid "%s as %L" +#~ msgstr "%s als %L" + +#~ msgid "I am connected to %L." +#~ msgstr "Ich bin verbunden zu %L." diff --git a/plugins/Status/locales/fi.po b/plugins/Status/locales/fi.po index b34eafc36..a919e48b7 100644 --- a/plugins/Status/locales/fi.po +++ b/plugins/Status/locales/fi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Status plugin for Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-12-20 11:37+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -61,19 +61,21 @@ msgstr "" " Palauttaa botin tilan.\n" " " -#: plugin.py:83 -msgid "%s as %L" -msgstr "%s verkossa %L" +#: plugin.py:109 +msgid "" +"I am connected to %s as %s: Channels: %s, Ops: %s, Half-Ops: %s, Voiced: %s, " +"Regular: %s" +msgstr "" -#: plugin.py:84 -msgid "I am connected to %L." -msgstr "Olen yhdistänyt verkkoon %L" - -#: plugin.py:86 +#: plugin.py:121 msgid "I am currently in code profiling mode." msgstr "Olen tällä hetkellä koodin profilointi tilassa." -#: plugin.py:92 +#: plugin.py:122 +msgid "%L" +msgstr "" + +#: plugin.py:128 msgid "" "takes no arguments\n" "\n" @@ -85,11 +87,11 @@ msgstr "" " Palauttaa botin tämänhetkiset ketjut, jotka ovat aktiivisia.\n" " " -#: plugin.py:98 +#: plugin.py:134 msgid "I have spawned %n; %n %b still currently active: %L." msgstr "Minä olen ilmestyttänyt %n; %n %b yhä aktiivinen: %L." -#: plugin.py:105 +#: plugin.py:141 msgid "" "takes no arguments\n" "\n" @@ -104,7 +106,7 @@ msgstr "" " aktiivisia..\n" " " -#: plugin.py:120 +#: plugin.py:156 msgid "" "takes no arguments\n" "\n" @@ -117,11 +119,11 @@ msgstr "" "tilastotietoja.\n" " " -#: plugin.py:128 +#: plugin.py:164 msgid "an indeterminate amount of time" msgstr "määrittämätön määrä aikaa" -#: plugin.py:129 +#: plugin.py:165 msgid "" "I have received %s messages for a total of %S. I have sent %s messages for " "a total of %S. I have been connected to %s for %s." @@ -130,7 +132,7 @@ msgstr "" "lähettänyt %s viestiä määrän %S edestä. Olen ollut yhdistettynä palvelimeen " "%s ajan %s." -#: plugin.py:138 +#: plugin.py:174 msgid "" "takes no arguments\n" "\n" @@ -143,7 +145,7 @@ msgstr "" "tilastotietoja botista.\n" " " -#: plugin.py:148 +#: plugin.py:184 msgid "" "My children have taken %.2f seconds of user time and %.2f seconds of system " "time for a total of %.2f seconds of CPU time." @@ -151,7 +153,7 @@ msgstr "" "Minun lapseni ovat vieneet %.2f käyttäjän aikaa ja %.2f sekuntia " "järjestelmän aikaa. Lapseni ovat ottaneet yhteensä %.2f sekuntia CPU aikaa." -#: plugin.py:155 +#: plugin.py:191 msgid "" "I have taken %.2f seconds of user time and %.2f seconds of system time, for " "a total of %.2f seconds of CPU time. %s" @@ -159,20 +161,20 @@ msgstr "" "Olen ottanut %.2f sekuntia käyttäjän aikaa %.2f sekuntia järjestelmän aikaa. " "Olen ottanut yhteensä %.2f sekuntia CPU ajasta. %s" -#: plugin.py:177 +#: plugin.py:213 msgid "Unable to run ps command." msgstr "ps komentoa ei pystytä suorittamaan." -#: plugin.py:184 +#: plugin.py:220 msgid " I'm taking up %S of memory." msgstr " Muistinkäyttöni on yhteensä %S." -#: plugin.py:187 +#: plugin.py:223 #, fuzzy msgid " I'm taking up an unknown amount of memory." msgstr " Muistinkäyttöni on yhteensä %S." -#: plugin.py:195 +#: plugin.py:231 msgid "" "takes no arguments\n" "\n" @@ -185,11 +187,11 @@ msgstr "" "tilastotietoja.\n" " " -#: plugin.py:205 +#: plugin.py:241 msgid "I offer a total of %n in %n. I have processed %n." msgstr "Tarjoan yhteensä %n määrän %n sisässä. Olen käsitellyt %n." -#: plugin.py:214 +#: plugin.py:250 msgid "" "takes no arguments\n" "\n" @@ -201,7 +203,7 @@ msgstr "" " Palauttaa listan komennoista, jotka botti tarjoaa.\n" " " -#: plugin.py:228 +#: plugin.py:264 msgid "" "takes no arguments\n" "\n" @@ -213,11 +215,11 @@ msgstr "" " Palauttaa ajan, jonka botti on ollut käynnissä.\n" " " -#: plugin.py:232 +#: plugin.py:268 msgid "I have been running for %s." msgstr "Olen ollut käynnissä ajan %s." -#: plugin.py:239 +#: plugin.py:275 msgid "" "takes no arguments\n" "\n" @@ -229,7 +231,7 @@ msgstr "" " Palauttaa palvelimen, jolla botti on.\n" " " -#: plugin.py:248 +#: plugin.py:284 msgid "" "takes no arguments\n" "\n" @@ -240,3 +242,9 @@ msgstr "" "\n" " Palauttaa verkon, jossa botti on.\n" " " + +#~ msgid "%s as %L" +#~ msgstr "%s verkossa %L" + +#~ msgid "I am connected to %L." +#~ msgstr "Olen yhdistänyt verkkoon %L" diff --git a/plugins/Status/locales/fr.po b/plugins/Status/locales/fr.po index 835086a62..8f69669f9 100644 --- a/plugins/Status/locales/fr.po +++ b/plugins/Status/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Limnoria \n" @@ -52,19 +52,21 @@ msgstr "" "\n" "Retourne le status du bot." -#: plugin.py:83 -msgid "%s as %L" -msgstr "%s en tant que %L" +#: plugin.py:109 +msgid "" +"I am connected to %s as %s: Channels: %s, Ops: %s, Half-Ops: %s, Voiced: %s, " +"Regular: %s" +msgstr "" -#: plugin.py:84 -msgid "I am connected to %L." -msgstr "Je suis connecté à %L" - -#: plugin.py:86 +#: plugin.py:121 msgid "I am currently in code profiling mode." msgstr "Je suis actuellement en mode de profiling du code." -#: plugin.py:92 +#: plugin.py:122 +msgid "%L" +msgstr "" + +#: plugin.py:128 msgid "" "takes no arguments\n" "\n" @@ -75,11 +77,11 @@ msgstr "" "\n" "Retourne les threads actifs." -#: plugin.py:98 +#: plugin.py:134 msgid "I have spawned %n; %n %b still currently active: %L." msgstr "J'ai lancé %n ; %n %b encore actuellement en vie : %L." -#: plugin.py:105 +#: plugin.py:141 msgid "" "takes no arguments\n" "\n" @@ -92,7 +94,7 @@ msgstr "" "Retourne le nombre de processus qui ont été lancés, et la liste de ceux qui " "sont encore actifs." -#: plugin.py:120 +#: plugin.py:156 msgid "" "takes no arguments\n" "\n" @@ -103,11 +105,11 @@ msgstr "" "\n" "Retourne quelques statistiques intéressantes liées au réseau." -#: plugin.py:128 +#: plugin.py:164 msgid "an indeterminate amount of time" msgstr "une durée indéterminée" -#: plugin.py:129 +#: plugin.py:165 msgid "" "I have received %s messages for a total of %S. I have sent %s messages for " "a total of %S. I have been connected to %s for %s." @@ -115,7 +117,7 @@ msgstr "" "J'ai reçu %s message pour un total de %S. J'ai envoyé %s messages pour un " "total de %S. J'ai été connecté à %s pendant %s." -#: plugin.py:138 +#: plugin.py:174 msgid "" "takes no arguments\n" "\n" @@ -126,7 +128,7 @@ msgstr "" "\n" "Retourne quelques statistiques intéressantes reliées au CPU." -#: plugin.py:148 +#: plugin.py:184 msgid "" "My children have taken %.2f seconds of user time and %.2f seconds of system " "time for a total of %.2f seconds of CPU time." @@ -134,7 +136,7 @@ msgstr "" "Mes enfants ont pris %.2f secondes du temps utilisateur et %.2f secondes du " "temps système, pour un total de %.2f secondes de temps CPU." -#: plugin.py:155 +#: plugin.py:191 msgid "" "I have taken %.2f seconds of user time and %.2f seconds of system time, for " "a total of %.2f seconds of CPU time. %s" @@ -142,20 +144,20 @@ msgstr "" "J'ai pris %.2f secondes du temps utilisateur et %.2f secondes du temps " "système, pour un total de %.2f secondes de temps CPU. %s" -#: plugin.py:177 +#: plugin.py:213 msgid "Unable to run ps command." msgstr "Impossible de lancer la commande ps." -#: plugin.py:184 +#: plugin.py:220 msgid " I'm taking up %S of memory." msgstr " Je prend plus de %S de mémoire." -#: plugin.py:187 +#: plugin.py:223 #, fuzzy msgid " I'm taking up an unknown amount of memory." msgstr " Je prend plus de %S de mémoire." -#: plugin.py:195 +#: plugin.py:231 msgid "" "takes no arguments\n" "\n" @@ -166,11 +168,11 @@ msgstr "" "\n" "Retourne quelques statistiques intéressantes liées aux commandes." -#: plugin.py:205 +#: plugin.py:241 msgid "I offer a total of %n in %n. I have processed %n." msgstr "J'offre un total de %n dans %n plugins. J'ai géré %n." -#: plugin.py:214 +#: plugin.py:250 msgid "" "takes no arguments\n" "\n" @@ -181,7 +183,7 @@ msgstr "" "\n" "Retourne une liste des commandes offertes par le bot." -#: plugin.py:228 +#: plugin.py:264 msgid "" "takes no arguments\n" "\n" @@ -192,11 +194,11 @@ msgstr "" "\n" "Retourne la durée durant laquelle le bot est lancée." -#: plugin.py:232 +#: plugin.py:268 msgid "I have been running for %s." msgstr "Je suis lancé depuis %s." -#: plugin.py:239 +#: plugin.py:275 msgid "" "takes no arguments\n" "\n" @@ -207,7 +209,7 @@ msgstr "" "\n" "Retourne le(s) serveur(s) sur le(s)quel(s) le bot est." -#: plugin.py:248 +#: plugin.py:284 msgid "" "takes no arguments\n" "\n" @@ -217,3 +219,9 @@ msgstr "" "ne prend pas d'argument\n" "\n" "Retourne le(s) serveur(s) sur le(s)quel(s) le bot est." + +#~ msgid "%s as %L" +#~ msgstr "%s en tant que %L" + +#~ msgid "I am connected to %L." +#~ msgstr "Je suis connecté à %L" diff --git a/plugins/Status/locales/it.po b/plugins/Status/locales/it.po index 294af11ef..2227c1001 100644 --- a/plugins/Status/locales/it.po +++ b/plugins/Status/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2012-03-16 12:41+0100\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -50,19 +50,21 @@ msgstr "" " Riporta lo stato del bot.\n" " " -#: plugin.py:83 -msgid "%s as %L" -msgstr "%s come %L" +#: plugin.py:109 +msgid "" +"I am connected to %s as %s: Channels: %s, Ops: %s, Half-Ops: %s, Voiced: %s, " +"Regular: %s" +msgstr "" -#: plugin.py:84 -msgid "I am connected to %L." -msgstr "Sono connesso a %L." - -#: plugin.py:86 +#: plugin.py:121 msgid "I am currently in code profiling mode." msgstr "Sto analizzando i dati." -#: plugin.py:92 +#: plugin.py:122 +msgid "%L" +msgstr "" + +#: plugin.py:128 msgid "" "takes no arguments\n" "\n" @@ -74,11 +76,11 @@ msgstr "" " Riporta gli attuali thread attivi.\n" " " -#: plugin.py:98 +#: plugin.py:134 msgid "I have spawned %n; %n %b still currently active: %L." msgstr "Ho avviato %n; %n %b attualmente ancora attivi: %L." -#: plugin.py:105 +#: plugin.py:141 #, fuzzy msgid "" "takes no arguments\n" @@ -92,7 +94,7 @@ msgstr "" " Riporta gli attuali thread attivi.\n" " " -#: plugin.py:120 +#: plugin.py:156 msgid "" "takes no arguments\n" "\n" @@ -104,11 +106,11 @@ msgstr "" " Riporta alcune statistiche interessanti riguardanti la rete.\n" " " -#: plugin.py:128 +#: plugin.py:164 msgid "an indeterminate amount of time" msgstr "una quantità di tempo indeterminato" -#: plugin.py:129 +#: plugin.py:165 msgid "" "I have received %s messages for a total of %S. I have sent %s messages for " "a total of %S. I have been connected to %s for %s." @@ -116,7 +118,7 @@ msgstr "" "Ho ricevuto %s messaggi per un totale di %S. Ho inviato %s messaggi per un " "totale di %S. Sono connesso a %s da %s." -#: plugin.py:138 +#: plugin.py:174 msgid "" "takes no arguments\n" "\n" @@ -128,7 +130,7 @@ msgstr "" " Riporta alcune statistiche interessanti riguardanti la CPU.\n" " " -#: plugin.py:148 +#: plugin.py:184 msgid "" "My children have taken %.2f seconds of user time and %.2f seconds of system " "time for a total of %.2f seconds of CPU time." @@ -137,7 +139,7 @@ msgstr "" "e %.2f secondi a livello di sistema per un totale di %.2f secondi di tempo " "di CPU." -#: plugin.py:155 +#: plugin.py:191 msgid "" "I have taken %.2f seconds of user time and %.2f seconds of system time, for " "a total of %.2f seconds of CPU time. %s" @@ -145,20 +147,20 @@ msgstr "" "Ho impiegato %.2f secondi di tempo a livello utente e %.2f secondi a livello " "di sistema per un totale di %.2f secondi di tempo di CPU. %s" -#: plugin.py:177 +#: plugin.py:213 msgid "Unable to run ps command." msgstr "Impossibile eseguire il comando ps." -#: plugin.py:184 +#: plugin.py:220 msgid " I'm taking up %S of memory." msgstr " Sto impiegando il %S di memoria. " -#: plugin.py:187 +#: plugin.py:223 #, fuzzy msgid " I'm taking up an unknown amount of memory." msgstr " Sto impiegando il %S di memoria. " -#: plugin.py:195 +#: plugin.py:231 msgid "" "takes no arguments\n" "\n" @@ -170,11 +172,11 @@ msgstr "" " Riporta alcune statistiche interessanti riguardanti i comandi.\n" " " -#: plugin.py:205 +#: plugin.py:241 msgid "I offer a total of %n in %n. I have processed %n." msgstr "Offro un totale di %n in %n. Ho elaborato %n." -#: plugin.py:214 +#: plugin.py:250 msgid "" "takes no arguments\n" "\n" @@ -186,7 +188,7 @@ msgstr "" " Restituisce un elenco dei comandi offerti dal bot.\n" " " -#: plugin.py:228 +#: plugin.py:264 msgid "" "takes no arguments\n" "\n" @@ -198,11 +200,11 @@ msgstr "" " Riporta da quanto tempo il bot è in esecuzione.\n" " " -#: plugin.py:232 +#: plugin.py:268 msgid "I have been running for %s." msgstr "Sono in funzione da %s." -#: plugin.py:239 +#: plugin.py:275 msgid "" "takes no arguments\n" "\n" @@ -214,7 +216,7 @@ msgstr "" " Restituisce i server ai quali è connesso il bot.\n" " " -#: plugin.py:248 +#: plugin.py:284 msgid "" "takes no arguments\n" "\n" @@ -225,3 +227,9 @@ msgstr "" "\n" " Restituisce la network alla quale è connesso il bot.\n" " " + +#~ msgid "%s as %L" +#~ msgstr "%s come %L" + +#~ msgid "I am connected to %L." +#~ msgstr "Sono connesso a %L." diff --git a/plugins/Status/messages.pot b/plugins/Status/messages.pot index 21f7b8f1e..53397a344 100644 --- a/plugins/Status/messages.pot +++ b/plugins/Status/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -49,19 +49,19 @@ msgid "" " " msgstr "" -#: plugin.py:83 -msgid "%s as %L" +#: plugin.py:109 +msgid "I am connected to %s as %s: Channels: %s, Ops: %s, Half-Ops: %s, Voiced: %s, Regular: %s" msgstr "" -#: plugin.py:84 -msgid "I am connected to %L." -msgstr "" - -#: plugin.py:86 +#: plugin.py:121 msgid "I am currently in code profiling mode." msgstr "" -#: plugin.py:92 +#: plugin.py:122 +msgid "%L" +msgstr "" + +#: plugin.py:128 #, docstring msgid "" "takes no arguments\n" @@ -70,11 +70,11 @@ msgid "" " " msgstr "" -#: plugin.py:98 +#: plugin.py:134 msgid "I have spawned %n; %n %b still currently active: %L." msgstr "" -#: plugin.py:105 +#: plugin.py:141 #, docstring msgid "" "takes no arguments\n" @@ -84,7 +84,7 @@ msgid "" " " msgstr "" -#: plugin.py:120 +#: plugin.py:156 #, docstring msgid "" "takes no arguments\n" @@ -93,15 +93,15 @@ msgid "" " " msgstr "" -#: plugin.py:128 +#: plugin.py:164 msgid "an indeterminate amount of time" msgstr "" -#: plugin.py:129 +#: plugin.py:165 msgid "I have received %s messages for a total of %S. I have sent %s messages for a total of %S. I have been connected to %s for %s." msgstr "" -#: plugin.py:138 +#: plugin.py:174 #, docstring msgid "" "takes no arguments\n" @@ -110,27 +110,27 @@ msgid "" " " msgstr "" -#: plugin.py:148 +#: plugin.py:184 msgid "My children have taken %.2f seconds of user time and %.2f seconds of system time for a total of %.2f seconds of CPU time." msgstr "" -#: plugin.py:155 +#: plugin.py:191 msgid "I have taken %.2f seconds of user time and %.2f seconds of system time, for a total of %.2f seconds of CPU time. %s" msgstr "" -#: plugin.py:177 +#: plugin.py:213 msgid "Unable to run ps command." msgstr "" -#: plugin.py:184 +#: plugin.py:220 msgid " I'm taking up %S of memory." msgstr "" -#: plugin.py:187 +#: plugin.py:223 msgid " I'm taking up an unknown amount of memory." msgstr "" -#: plugin.py:195 +#: plugin.py:231 #, docstring msgid "" "takes no arguments\n" @@ -139,11 +139,11 @@ msgid "" " " msgstr "" -#: plugin.py:205 +#: plugin.py:241 msgid "I offer a total of %n in %n. I have processed %n." msgstr "" -#: plugin.py:214 +#: plugin.py:250 #, docstring msgid "" "takes no arguments\n" @@ -152,7 +152,7 @@ msgid "" " " msgstr "" -#: plugin.py:228 +#: plugin.py:264 #, docstring msgid "" "takes no arguments\n" @@ -161,11 +161,11 @@ msgid "" " " msgstr "" -#: plugin.py:232 +#: plugin.py:268 msgid "I have been running for %s." msgstr "" -#: plugin.py:239 +#: plugin.py:275 #, docstring msgid "" "takes no arguments\n" @@ -174,7 +174,7 @@ msgid "" " " msgstr "" -#: plugin.py:248 +#: plugin.py:284 #, docstring msgid "" "takes no arguments\n" diff --git a/plugins/String/README.rst b/plugins/String/README.rst index a0c79664e..09f746d7f 100644 --- a/plugins/String/README.rst +++ b/plugins/String/README.rst @@ -20,67 +20,67 @@ Commands .. _command-string-chr: -chr +``chr `` Returns the unicode character associated with codepoint .. _command-string-decode: -decode +``decode `` Returns an un-encoded form of the given text; the valid encodings are available in the documentation of the Python codecs module: . .. _command-string-encode: -encode +``encode `` Returns an encoded form of the given text; the valid encodings are available in the documentation of the Python codecs module: . .. _command-string-len: -len +``len `` Returns the length of . .. _command-string-levenshtein: -levenshtein +``levenshtein `` Returns the levenshtein distance (also known as the "edit distance" between and ) .. _command-string-md5: -md5 +``md5 `` Returns the md5 hash of a given string. .. _command-string-ord: -ord +``ord `` Returns the unicode codepoint of characters in . .. _command-string-re: -re +``re `` If is of the form m/regexp/flags, returns the portion of that matches the regexp. If is of the form s/regexp/replacement/flags, returns the result of applying such a regexp to . .. _command-string-sha: -sha +``sha `` Returns the SHA1 hash of a given string. .. _command-string-soundex: -soundex [] +``soundex []`` Returns the Soundex hash to a given length. The length defaults to 4, since that's the standard length for a soundex hash. For unlimited length, use 0. Maximum length 1024. .. _command-string-unicodename: -unicodename +``unicodename `` Returns the name of characters in . This will error if any character is not a valid Unicode character. .. _command-string-unicodesearch: -unicodesearch +``unicodesearch `` Searches for a unicode character from its . .. _command-string-xor: -xor +``xor `` Returns XOR-encrypted with . .. _conf-String: diff --git a/plugins/String/locales/fi.po b/plugins/String/locales/fi.po index b5215da5f..4d490ba9c 100644 --- a/plugins/String/locales/fi.po +++ b/plugins/String/locales/fi.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: String plugin for Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2014-12-20 12:20+0200\n" "Last-Translator: Mikaela Suomalainen \n" "Language-Team: \n" @@ -66,9 +66,9 @@ msgstr "" #: plugin.py:55 #, fuzzy msgid "" -"\n" +"\n" "\n" -" Returns the unicode codepoint of .\n" +" Returns the unicode codepoint of characters in .\n" " " msgstr "" "\n" @@ -96,27 +96,28 @@ msgstr "Tuo numero ei kartoitu 8-bittiseen merkkiin." #: plugin.py:74 msgid "" -"\n" +"\n" "\n" -" Returns the name of the given unicode ." +" Returns the name of characters in .\n" +" This will error if any character is not a valid Unicode character." msgstr "" -#: plugin.py:82 -msgid "No name found for this character." +#: plugin.py:83 +msgid "No name found for character %r at position %d." msgstr "" -#: plugin.py:86 +#: plugin.py:89 msgid "" "\n" "\n" " Searches for a unicode character from its ." msgstr "" -#: plugin.py:92 +#: plugin.py:95 msgid "No character found with this name." msgstr "" -#: plugin.py:96 +#: plugin.py:99 msgid "" " \n" "\n" @@ -133,11 +134,11 @@ msgstr "" " .\n" " " -#: plugin.py:112 plugin.py:151 +#: plugin.py:115 plugin.py:154 msgid "encoding" msgstr "salaus" -#: plugin.py:133 +#: plugin.py:136 msgid "" " \n" "\n" @@ -155,11 +156,11 @@ msgstr "" " .\n" " " -#: plugin.py:157 +#: plugin.py:160 msgid "base64 string" msgstr "base64 merkkiketju" -#: plugin.py:158 +#: plugin.py:161 msgid "" "Base64 strings must be a multiple of 4 in length, padded with '=' if " "necessary." @@ -167,12 +168,12 @@ msgstr "" "Base64 merkkiketjujen täytyy olla kerrollisia 4:llä, pehmustettuna '='-" "merkillä jos vaadittu." -#: plugin.py:176 +#: plugin.py:179 msgid "" " \n" "\n" -" Returns the levenshtein distance (also known as the \"edit distance" -"\"\n" +" Returns the levenshtein distance (also known as the \"edit " +"distance\"\n" " between and )\n" " " msgstr "" @@ -183,7 +184,7 @@ msgstr "" " ja välillä.)\n" " " -#: plugin.py:183 +#: plugin.py:186 msgid "" "Levenshtein distance is a complicated algorithm, try it with some smaller " "inputs." @@ -191,7 +192,7 @@ msgstr "" "Levenshtein etäisyys on monimutkainen algoritmi, kokeile sitä pienemmillä " "sisäänmenoilla." -#: plugin.py:190 +#: plugin.py:193 #, fuzzy msgid "" " []\n" @@ -210,7 +211,7 @@ msgstr "" " käytä 0:aa.\n" " " -#: plugin.py:203 +#: plugin.py:206 msgid "" "\n" "\n" @@ -222,7 +223,7 @@ msgstr "" " Palauttaa pituuden.\n" " " -#: plugin.py:211 +#: plugin.py:214 msgid "" " \n" "\n" @@ -243,11 +244,11 @@ msgstr "" " .\n" " " -#: plugin.py:219 +#: plugin.py:223 msgid "You probably don't want to match the empty string." msgstr "Et luultavasti halua täsmätä tyhjään merkkiketjuun." -#: plugin.py:236 +#: plugin.py:240 #, fuzzy msgid "" " \n" @@ -260,7 +261,7 @@ msgstr "" " Palauttaa pituuden.\n" " " -#: plugin.py:246 +#: plugin.py:250 #, fuzzy msgid "" "\n" @@ -273,7 +274,7 @@ msgstr "" " Palauttaa pituuden.\n" " " -#: plugin.py:254 +#: plugin.py:258 #, fuzzy msgid "" "\n" diff --git a/plugins/String/locales/fr.po b/plugins/String/locales/fr.po index 5e339969f..c65e893c4 100644 --- a/plugins/String/locales/fr.po +++ b/plugins/String/locales/fr.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Limnoria \n" @@ -57,9 +57,9 @@ msgstr "" #: plugin.py:55 #, fuzzy msgid "" -"\n" +"\n" "\n" -" Returns the unicode codepoint of .\n" +" Returns the unicode codepoint of characters in .\n" " " msgstr "" "\n" @@ -85,27 +85,28 @@ msgstr "Ce nombre ne correspond pas à un caractère 8 bits." #: plugin.py:74 msgid "" -"\n" +"\n" "\n" -" Returns the name of the given unicode ." +" Returns the name of characters in .\n" +" This will error if any character is not a valid Unicode character." msgstr "" -#: plugin.py:82 -msgid "No name found for this character." +#: plugin.py:83 +msgid "No name found for character %r at position %d." msgstr "" -#: plugin.py:86 +#: plugin.py:89 msgid "" "\n" "\n" " Searches for a unicode character from its ." msgstr "" -#: plugin.py:92 +#: plugin.py:95 msgid "No character found with this name." msgstr "" -#: plugin.py:96 +#: plugin.py:99 msgid "" " \n" "\n" @@ -120,11 +121,11 @@ msgstr "" "disponibles dans la documentation du module codec de Python : http://docs." "python.org/library/codecs.html#standard-encodings" -#: plugin.py:112 plugin.py:151 +#: plugin.py:115 plugin.py:154 msgid "encoding" msgstr "encodage" -#: plugin.py:133 +#: plugin.py:136 msgid "" " \n" "\n" @@ -140,11 +141,11 @@ msgstr "" "disponibles dans la documentation du module codec de Python : http://docs." "python.org/library/codecs.html#standard-encodings" -#: plugin.py:157 +#: plugin.py:160 msgid "base64 string" msgstr "chaîne base64" -#: plugin.py:158 +#: plugin.py:161 msgid "" "Base64 strings must be a multiple of 4 in length, padded with '=' if " "necessary." @@ -152,12 +153,12 @@ msgstr "" "Les chaînes base64 doivent avoir une longueur multiple de 4, entourées de " "'=' si nécessaire." -#: plugin.py:176 +#: plugin.py:179 msgid "" " \n" "\n" -" Returns the levenshtein distance (also known as the \"edit distance" -"\"\n" +" Returns the levenshtein distance (also known as the \"edit " +"distance\"\n" " between and )\n" " " msgstr "" @@ -166,7 +167,7 @@ msgstr "" "Retourne la distance levenhtein (aussi connue sous le nom de \"distance " "d'édition) entre les deux chaînes." -#: plugin.py:183 +#: plugin.py:186 msgid "" "Levenshtein distance is a complicated algorithm, try it with some smaller " "inputs." @@ -174,7 +175,7 @@ msgstr "" "La distance levenshtein est un algorithme compliqué ; essayez avec des " "données plus petites." -#: plugin.py:190 +#: plugin.py:193 msgid "" " []\n" "\n" @@ -190,7 +191,7 @@ msgstr "" "de 4, c'est le standard pour un hash soundex. Pour une longueur illimitée, " "utilisez 0. La longueur maximum est 1024." -#: plugin.py:203 +#: plugin.py:206 msgid "" "\n" "\n" @@ -201,7 +202,7 @@ msgstr "" "\n" "Retourne la longueur du ." -#: plugin.py:211 +#: plugin.py:214 msgid "" " \n" "\n" @@ -218,13 +219,13 @@ msgstr "" "régulière> est de la forme de s/regexp/remplacement/flags, retourne le " "résultat de l'application de l'expression régulière sur le ." -#: plugin.py:219 +#: plugin.py:223 msgid "You probably don't want to match the empty string." msgstr "" "Vous ne voulez probablement appliquer une expression régulière sur une " "chaîne vide." -#: plugin.py:236 +#: plugin.py:240 #, fuzzy msgid "" " \n" @@ -236,7 +237,7 @@ msgstr "" "\n" "Retourne la longueur du ." -#: plugin.py:246 +#: plugin.py:250 #, fuzzy msgid "" "\n" @@ -248,7 +249,7 @@ msgstr "" "\n" "Retourne la longueur du ." -#: plugin.py:254 +#: plugin.py:258 #, fuzzy msgid "" "\n" diff --git a/plugins/String/locales/it.po b/plugins/String/locales/it.po index 60bcd04ca..7ce2a03fe 100644 --- a/plugins/String/locales/it.po +++ b/plugins/String/locales/it.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: Limnoria\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: 2011-07-07 11:35+0200\n" "Last-Translator: skizzhg \n" "Language-Team: Italian \n" @@ -54,9 +54,9 @@ msgstr "" #: plugin.py:55 #, fuzzy msgid "" -"\n" +"\n" "\n" -" Returns the unicode codepoint of .\n" +" Returns the unicode codepoint of characters in .\n" " " msgstr "" "\n" @@ -84,27 +84,28 @@ msgstr "Questo numero non corrisponde a un carattere 8-bit." #: plugin.py:74 msgid "" -"\n" +"\n" "\n" -" Returns the name of the given unicode ." +" Returns the name of characters in .\n" +" This will error if any character is not a valid Unicode character." msgstr "" -#: plugin.py:82 -msgid "No name found for this character." +#: plugin.py:83 +msgid "No name found for character %r at position %d." msgstr "" -#: plugin.py:86 +#: plugin.py:89 msgid "" "\n" "\n" " Searches for a unicode character from its ." msgstr "" -#: plugin.py:92 +#: plugin.py:95 msgid "No character found with this name." msgstr "" -#: plugin.py:96 +#: plugin.py:99 msgid "" " \n" "\n" @@ -121,11 +122,11 @@ msgstr "" " .\n" " " -#: plugin.py:112 plugin.py:151 +#: plugin.py:115 plugin.py:154 msgid "encoding" msgstr "codifica" -#: plugin.py:133 +#: plugin.py:136 msgid "" " \n" "\n" @@ -144,11 +145,11 @@ msgstr "" " .\n" " " -#: plugin.py:157 +#: plugin.py:160 msgid "base64 string" msgstr "stringa base64" -#: plugin.py:158 +#: plugin.py:161 msgid "" "Base64 strings must be a multiple of 4 in length, padded with '=' if " "necessary." @@ -156,12 +157,12 @@ msgstr "" "Le stringhe in base64 devono avere una lunghezza in multipli di 4, " "circondate da \"=\" se necessario." -#: plugin.py:176 +#: plugin.py:179 msgid "" " \n" "\n" -" Returns the levenshtein distance (also known as the \"edit distance" -"\"\n" +" Returns the levenshtein distance (also known as the \"edit " +"distance\"\n" " between and )\n" " " msgstr "" @@ -172,14 +173,14 @@ msgstr "" " modifica\" tra e )\n" " " -#: plugin.py:183 +#: plugin.py:186 msgid "" "Levenshtein distance is a complicated algorithm, try it with some smaller " "inputs." msgstr "" "La distanza levenshtein è un algoritmo complesso, prova a inserire meno dati." -#: plugin.py:190 +#: plugin.py:193 #, fuzzy msgid "" " []\n" @@ -199,7 +200,7 @@ msgstr "" " Per lunghezze illimitate usa 0.\n" " " -#: plugin.py:203 +#: plugin.py:206 msgid "" "\n" "\n" @@ -211,7 +212,7 @@ msgstr "" " Riporta la lunghezza di .\n" " " -#: plugin.py:211 +#: plugin.py:214 msgid "" " \n" "\n" @@ -228,11 +229,11 @@ msgstr "" " il risultato dell'applicare la regexp a .\n" " " -#: plugin.py:219 +#: plugin.py:223 msgid "You probably don't want to match the empty string." msgstr "È probabile che tu non voglia confrontare una stringa vuota." -#: plugin.py:236 +#: plugin.py:240 #, fuzzy msgid "" " \n" @@ -245,7 +246,7 @@ msgstr "" " Riporta la lunghezza di .\n" " " -#: plugin.py:246 +#: plugin.py:250 #, fuzzy msgid "" "\n" @@ -258,7 +259,7 @@ msgstr "" " Riporta la lunghezza di .\n" " " -#: plugin.py:254 +#: plugin.py:258 #, fuzzy msgid "" "\n" diff --git a/plugins/String/messages.pot b/plugins/String/messages.pot index 474b0fd7f..d9cc09889 100644 --- a/plugins/String/messages.pot +++ b/plugins/String/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -44,9 +44,9 @@ msgstr "" #: plugin.py:55 #, docstring msgid "" -"\n" +"\n" "\n" -" Returns the unicode codepoint of .\n" +" Returns the unicode codepoint of characters in .\n" " " msgstr "" @@ -66,16 +66,17 @@ msgstr "" #: plugin.py:74 #, docstring msgid "" -"\n" +"\n" "\n" -" Returns the name of the given unicode ." +" Returns the name of characters in .\n" +" This will error if any character is not a valid Unicode character." msgstr "" -#: plugin.py:82 -msgid "No name found for this character." +#: plugin.py:83 +msgid "No name found for character %r at position %d." msgstr "" -#: plugin.py:86 +#: plugin.py:89 #, docstring msgid "" "\n" @@ -83,11 +84,11 @@ msgid "" " Searches for a unicode character from its ." msgstr "" -#: plugin.py:92 +#: plugin.py:95 msgid "No character found with this name." msgstr "" -#: plugin.py:96 +#: plugin.py:99 #, docstring msgid "" " \n" @@ -98,11 +99,11 @@ msgid "" " " msgstr "" -#: plugin.py:112 plugin.py:151 +#: plugin.py:115 plugin.py:154 msgid "encoding" msgstr "" -#: plugin.py:133 +#: plugin.py:136 #, docstring msgid "" " \n" @@ -113,15 +114,15 @@ msgid "" " " msgstr "" -#: plugin.py:157 +#: plugin.py:160 msgid "base64 string" msgstr "" -#: plugin.py:158 +#: plugin.py:161 msgid "Base64 strings must be a multiple of 4 in length, padded with '=' if necessary." msgstr "" -#: plugin.py:176 +#: plugin.py:179 #, docstring msgid "" " \n" @@ -131,11 +132,11 @@ msgid "" " " msgstr "" -#: plugin.py:183 +#: plugin.py:186 msgid "Levenshtein distance is a complicated algorithm, try it with some smaller inputs." msgstr "" -#: plugin.py:190 +#: plugin.py:193 #, docstring msgid "" " []\n" @@ -146,7 +147,7 @@ msgid "" " " msgstr "" -#: plugin.py:203 +#: plugin.py:206 #, docstring msgid "" "\n" @@ -155,7 +156,7 @@ msgid "" " " msgstr "" -#: plugin.py:211 +#: plugin.py:214 #, docstring msgid "" " \n" @@ -167,11 +168,11 @@ msgid "" " " msgstr "" -#: plugin.py:219 +#: plugin.py:223 msgid "You probably don't want to match the empty string." msgstr "" -#: plugin.py:236 +#: plugin.py:240 #, docstring msgid "" " \n" @@ -180,7 +181,7 @@ msgid "" " " msgstr "" -#: plugin.py:246 +#: plugin.py:250 #, docstring msgid "" "\n" @@ -189,7 +190,7 @@ msgid "" " " msgstr "" -#: plugin.py:254 +#: plugin.py:258 #, docstring msgid "" "\n" diff --git a/plugins/Success/README.rst b/plugins/Success/README.rst index 755a74328..70373b8ff 100644 --- a/plugins/Success/README.rst +++ b/plugins/Success/README.rst @@ -26,32 +26,32 @@ Commands .. _command-success-add: -add [] +``add [] `` Adds to the success database for . is only necessary if the message isn't sent in the channel itself. .. _command-success-change: -change [] +``change [] `` Changes the success with id according to the regular expression . is only necessary if the message isn't sent in the channel itself. .. _command-success-get: -get [] +``get [] `` Gets the success with id from the success database for . is only necessary if the message isn't sent in the channel itself. .. _command-success-remove: -remove [] +``remove [] `` Removes the success with id from the success database for . is only necessary if the message isn't sent in the channel itself. .. _command-success-search: -search [] [--{regexp,by} ] [] +``search [] [--{regexp,by} ] []`` Searches for successes matching the criteria given. .. _command-success-stats: -stats [] +``stats []`` Returns the number of successes in the database for . is only necessary if the message isn't sent in the channel itself. .. _conf-Success: diff --git a/plugins/Success/messages.pot b/plugins/Success/messages.pot index 66e15de2a..dfd2a24ec 100644 --- a/plugins/Success/messages.pot +++ b/plugins/Success/messages.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2022-02-06 00:12+0100\n" +"POT-Creation-Date: 2024-12-06 11:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Time/README.rst b/plugins/Time/README.rst index 3ceb79bb8..f4c88f900 100644 --- a/plugins/Time/README.rst +++ b/plugins/Time/README.rst @@ -20,42 +20,42 @@ Commands .. _command-time-at: -at [