mirror of
https://github.com/progval/Limnoria.git
synced 2025-05-05 19:13:41 -05:00
Merge branch 'master' into pyproject
This commit is contained in:
commit
e9f8fb3da9
34
.github/workflows/test.yml
vendored
34
.github/workflows/test.yml
vendored
@ -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: |
|
||||
|
435
RELNOTES
435
RELNOTES
@ -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.<network>.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
|
||||
<http://cvs.sourceforge.net/viewcvs.py/supybot/supybot/src/template.py?r1=1.20&r2=1.21>
|
||||
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.
|
@ -23,52 +23,52 @@ Commands
|
||||
|
||||
.. _command-admin-acmd:
|
||||
|
||||
acmd <command> [<arg> ...]
|
||||
``acmd <command> [<arg> ...]``
|
||||
Perform <command> (with associated <arg>s on all channels on current network.
|
||||
|
||||
.. _command-admin-capability.add:
|
||||
|
||||
capability add <name|hostmask> <capability>
|
||||
``capability add <name|hostmask> <capability>``
|
||||
Gives the user specified by <name> (or the user to whom <hostmask> currently maps) the specified capability <capability>
|
||||
|
||||
.. _command-admin-capability.remove:
|
||||
|
||||
capability remove <name|hostmask> <capability>
|
||||
``capability remove <name|hostmask> <capability>``
|
||||
Takes from the user specified by <name> (or the user to whom <hostmask> currently maps) the specified capability <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 <hostmask|nick> [<expires>]
|
||||
``ignore add <hostmask|nick> [<expires>]``
|
||||
This will set a persistent ignore on <hostmask> or the hostmask currently associated with <nick>. <expires> 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 <hostmask|nick>
|
||||
``ignore remove <hostmask|nick>``
|
||||
This will remove the persistent ignore on <hostmask> or the hostmask currently associated with <nick>.
|
||||
|
||||
.. _command-admin-join:
|
||||
|
||||
join <channel> [<key>]
|
||||
``join <channel> [<key>]``
|
||||
Tell the bot to join the given channel. If <key> is given, it is used when attempting to join the channel.
|
||||
|
||||
.. _command-admin-nick:
|
||||
|
||||
nick [<nick>] [<network>]
|
||||
``nick [<nick>] [<network>]``
|
||||
Changes the bot's nick to <nick>. If no nick is given, returns the bot's current nick.
|
||||
|
||||
.. _conf-Admin:
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -77,47 +77,47 @@ Commands
|
||||
|
||||
.. _command-aka-add:
|
||||
|
||||
add [--channel <#channel>] <name> <command>
|
||||
``add [--channel <#channel>] <name> <command>``
|
||||
Defines an alias <name> that executes <command>. The <command> 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>] <name>
|
||||
``remove [--channel <#channel>] <name>``
|
||||
Removes the given alias, if unlocked.
|
||||
|
||||
.. _command-aka-lock:
|
||||
|
||||
lock [--channel <#channel>] <alias>
|
||||
``lock [--channel <#channel>] <alias>``
|
||||
Locks an alias so that no one else can change it.
|
||||
|
||||
.. _command-aka-unlock:
|
||||
|
||||
unlock [--channel <#channel>] <alias>
|
||||
``unlock [--channel <#channel>] <alias>``
|
||||
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>] <alias>
|
||||
``show [--channel <#channel>] <alias>``
|
||||
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 <channel>. If <channel> 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>] <name> <command>
|
||||
``set [--channel <#channel>] <name> <command>``
|
||||
Overwrites an existing alias <name> to execute <command> instead. The <command> 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>] <query>
|
||||
``search [--channel <#channel>] <query>``
|
||||
Searches Akas defined for <channel>. If <channel> is not specified, searches all global Akas.
|
||||
|
||||
.. _conf-Aka:
|
||||
|
@ -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 <mikaela.suomalainen@outlook.com>\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"
|
||||
" <jamessan> @aka add trout \"reply action slaps $1 with a large trout"
|
||||
"\"\n"
|
||||
" <jamessan> @aka add trout \"reply action slaps $1 with a large "
|
||||
"trout\"\n"
|
||||
" <bot> jamessan: The operation succeeded.\n"
|
||||
" <jamessan> @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 ""
|
||||
"<a global alias,%s %n>\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 ""
|
||||
"<an alias on %s,%s %n>\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>] <name> <command>\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>] <name> <command>\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>] <name>\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>] <alias>\n"
|
||||
"\n"
|
||||
@ -281,7 +273,7 @@ msgstr ""
|
||||
" Lukitsee aliaksen estäen muita muokkaamasta sitä.\n"
|
||||
" "
|
||||
|
||||
#: plugin.py:874
|
||||
#: plugin.py:870
|
||||
msgid ""
|
||||
"[--channel <#channel>] <alias>\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>] <alias>\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>] <query>\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 ""
|
||||
|
||||
|
404
plugins/Aka/locales/ru.po
Normal file
404
plugins/Aka/locales/ru.po
Normal file
@ -0,0 +1,404 @@
|
||||
# Aka plugin for Limnoria
|
||||
# Copyright (C) 2024 Limnoria
|
||||
# ssdaniel24 <bo7oaonteg2m__at__mailDOTru>, 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 <bo7oaonteg2m__at__mailDOTru>\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"
|
||||
" <jamessan> @load Alias\n"
|
||||
" <bot> jamessan: The operation succeeded.\n"
|
||||
" <jamessan> @load Aka\n"
|
||||
" <bot> jamessan: The operation succeeded.\n"
|
||||
"\n"
|
||||
" Then we import the Alias database to Aka in case it exists and unload\n"
|
||||
" Alias::\n"
|
||||
"\n"
|
||||
" <jamessan> @importaliasdatabase\n"
|
||||
" <bot> jamessan: The operation succeeded.\n"
|
||||
" <jamessan> @unload Alias\n"
|
||||
" <bot> jamessan: The operation succeeded.\n"
|
||||
"\n"
|
||||
" And now we will finally add the Aka ``alias`` itself::\n"
|
||||
"\n"
|
||||
" <jamessan> @aka add \"alias\" \"aka $1 $*\"\n"
|
||||
" <bot> 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"
|
||||
" <jamessan> @aka add trout \"reply action slaps $1 with a large "
|
||||
"trout\"\n"
|
||||
" <bot> jamessan: The operation succeeded.\n"
|
||||
" <jamessan> @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"
|
||||
" <jamessan> @load Alias\n"
|
||||
" <bot> jamessan: The operation succeeded.\n"
|
||||
" <jamessan> @load Aka\n"
|
||||
" <bot> jamessan: The operation succeeded.\n"
|
||||
"\n"
|
||||
"После этого импортируем базу данных плагина Alias в Aka, если та существует, "
|
||||
"и отключим плагин Alias::\n"
|
||||
"\n"
|
||||
"<jamessan> @importaliasdatabase\n"
|
||||
"<bot> jamessan: The operation succeeded.\n"
|
||||
"<jamessan> @unload Alias\n"
|
||||
"<bot> jamessan: The operation succeeded.\n"
|
||||
"\n"
|
||||
"И наконец добавим псевдоним команды из плагина Alias, чтобы оставить "
|
||||
"обратную совместимость:\n"
|
||||
"\n"
|
||||
"<jamessan> @aka add \"alias\" \"aka $1 $*\"\n"
|
||||
"<bot> jamessan: The operation succeeded.\n"
|
||||
"\n"
|
||||
"Теперь вы можете использовать плагин Aka как вы использовали до этого плагин "
|
||||
"Alias.\n"
|
||||
"\n"
|
||||
"Дать леща\n"
|
||||
"^^^^^^^^^\n"
|
||||
"\n"
|
||||
"Добавляем псевдоним (чтобы дать кому-то леща), который принимает одно слово "
|
||||
"как аргумент::\n"
|
||||
"\n"
|
||||
"<jamessan> @aka add trout \"reply action с размаху даёт леща $1\"\n"
|
||||
"<bot> jamessan: The operation succeeded.\n"
|
||||
"<jamessan> @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 ""
|
||||
"<a global alias,%s %n>\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 ""
|
||||
"<an alias on %s,%s %n>\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>] <name> <command>\n"
|
||||
"\n"
|
||||
" Defines an alias <name> that executes <command>. The <command>\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>] <name> <command>\n"
|
||||
"\n"
|
||||
" Overwrites an existing alias <name> to execute <command> instead. "
|
||||
"The\n"
|
||||
" <command> 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>] <name>\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>] <alias>\n"
|
||||
"\n"
|
||||
" Locks an alias so that no one else can change it.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"[--channel <#канал>] <псевдоним>\n"
|
||||
"\n"
|
||||
"Блокирует данный псевдоним, чтобы никто не мог его изменить."
|
||||
|
||||
#: plugin.py:870
|
||||
msgid ""
|
||||
"[--channel <#channel>] <alias>\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>] <alias>\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 <channel>. If <channel> 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>] <query>\n"
|
||||
"\n"
|
||||
" Searches Akas defined for <channel>. If <channel> is not specified,\n"
|
||||
" searches all global Akas."
|
||||
msgstr ""
|
||||
"[--channel <#канал>] <запрос>\n"
|
||||
"\n"
|
||||
"Производит поиск среди псевдонимов, определённых в данном <канале>, по "
|
||||
"данному <запросу>. Если <канал> не дан в аргументах, то поиск производится "
|
||||
"по всем глобальным псевдонимам."
|
||||
|
||||
#: plugin.py:1000
|
||||
msgid "No matching Akas were found."
|
||||
msgstr "Не найдено ни одного совпадающего псевдонима."
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\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"
|
||||
" <jamessan> @aka add trout \"reply action slaps $1 with a large trout\"\n"
|
||||
" <bot> 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 ""
|
||||
"<a global alias,%s %n>\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 ""
|
||||
"<an alias on %s,%s %n>\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>] <name> <command>\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>] <name> <command>\n"
|
||||
@ -197,7 +193,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:819
|
||||
#: plugin.py:815
|
||||
#, docstring
|
||||
msgid ""
|
||||
"[--channel <#channel>] <name>\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>] <alias>\n"
|
||||
@ -222,7 +218,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:874
|
||||
#: plugin.py:870
|
||||
#, docstring
|
||||
msgid ""
|
||||
"[--channel <#channel>] <alias>\n"
|
||||
@ -231,7 +227,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:897
|
||||
#: plugin.py:893
|
||||
#, docstring
|
||||
msgid ""
|
||||
"[--channel <#channel>] <alias>\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>] <query>\n"
|
||||
@ -283,7 +279,7 @@ msgid ""
|
||||
" searches all global Akas."
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:1004
|
||||
#: plugin.py:1000
|
||||
msgid "No matching Akas were found."
|
||||
msgstr ""
|
||||
|
||||
|
@ -43,27 +43,27 @@ Commands
|
||||
|
||||
.. _command-alias-add:
|
||||
|
||||
add <name> <command>
|
||||
``add <name> <command>``
|
||||
Defines an alias <name> that executes <command>. The <command> 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 <alias>
|
||||
``lock <alias>``
|
||||
Locks an alias so that no one else can change it.
|
||||
|
||||
.. _command-alias-remove:
|
||||
|
||||
remove <name>
|
||||
``remove <name>``
|
||||
Removes the given alias, if unlocked.
|
||||
|
||||
.. _command-alias-unlock:
|
||||
|
||||
unlock <alias>
|
||||
``unlock <alias>``
|
||||
Unlocks an alias so that people can define new aliases over it.
|
||||
|
||||
.. _conf-Alias:
|
||||
|
@ -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 <mikaela.suomalainen@outlook.com>\n"
|
||||
"Language-Team: German <fbesser@gmail.com>\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"
|
||||
" <jamessan> @alias add trout \"action slaps $1 with a large trout\"\n"
|
||||
" <bot> jamessan: The operation succeeded.\n"
|
||||
" <jamessan> @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 ""
|
||||
"<alias>\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 ""
|
||||
"<alias>\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 ""
|
||||
"<name> <command>\n"
|
||||
@ -140,7 +141,7 @@ msgstr ""
|
||||
"Standardform \"Befehl Argument [verschachtelter Befehl Argument\" angegeben "
|
||||
"werden."
|
||||
|
||||
#: plugin.py:449
|
||||
#: plugin.py:451
|
||||
msgid ""
|
||||
"<name>\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."
|
||||
|
@ -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 <mikaela.suomalainen@outlook.com>\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"
|
||||
" <jamessan> @alias add trout \"action slaps $1 with a large trout\"\n"
|
||||
" <bot> jamessan: The operation succeeded.\n"
|
||||
" <jamessan> @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 ""
|
||||
"<alias>\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 ""
|
||||
"<alias>\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 ""
|
||||
"<name> <command>\n"
|
||||
"\n"
|
||||
@ -156,7 +157,7 @@ msgstr ""
|
||||
"parametrejä.\n"
|
||||
" "
|
||||
|
||||
#: plugin.py:449
|
||||
#: plugin.py:451
|
||||
msgid ""
|
||||
"<name>\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."
|
||||
|
@ -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 <progval@gmail.com>\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"
|
||||
" <jamessan> @alias add trout \"action slaps $1 with a large trout\"\n"
|
||||
" <bot> jamessan: The operation succeeded.\n"
|
||||
" <jamessan> @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 ""
|
||||
"<alias>\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 ""
|
||||
"<alias>\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 ""
|
||||
"<name> <command>\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 ""
|
||||
"<name>\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."
|
||||
|
@ -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 <mikaela.suomalainen@outlook.com>\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"
|
||||
" <jamessan> @alias add trout \"action slaps $1 with a large trout\"\n"
|
||||
" <bot> jamessan: The operation succeeded.\n"
|
||||
" <jamessan> @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 ""
|
||||
"<alias>\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 ""
|
||||
"<alias>\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 ""
|
||||
"<name> <command>\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 ""
|
||||
"<name>\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."
|
||||
|
@ -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 <skizzhg@gmx.com>\n"
|
||||
"Language-Team: Italian <skizzhg@gmx.com>\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"
|
||||
" <jamessan> @alias add trout \"action slaps $1 with a large trout\"\n"
|
||||
" <bot> jamessan: The operation succeeded.\n"
|
||||
" <jamessan> @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 ""
|
||||
"<alias>\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 ""
|
||||
"<alias>\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 ""
|
||||
"<name> <command>\n"
|
||||
"\n"
|
||||
@ -147,7 +148,7 @@ msgstr ""
|
||||
" rimanenti\" e non può essere combinato con quelli opzionali.\n"
|
||||
" "
|
||||
|
||||
#: plugin.py:449
|
||||
#: plugin.py:451
|
||||
msgid ""
|
||||
"<name>\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."
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\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"
|
||||
" <jamessan> @alias add trout \"action slaps $1 with a large trout\"\n"
|
||||
" <bot> jamessan: The operation succeeded.\n"
|
||||
" <jamessan> @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 ""
|
||||
"<alias>\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 ""
|
||||
"<alias>\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 ""
|
||||
"<name> <command>\n"
|
||||
@ -119,7 +121,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:449
|
||||
#: plugin.py:451
|
||||
#, docstring
|
||||
msgid ""
|
||||
"<name>\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 ""
|
||||
|
||||
|
@ -53,22 +53,22 @@ Commands
|
||||
|
||||
.. _command-anonymous-do:
|
||||
|
||||
do <channel> <action>
|
||||
``do <channel> <action>``
|
||||
Performs <action> in <channel>.
|
||||
|
||||
.. _command-anonymous-react:
|
||||
|
||||
react <channel> <reaction> <nick>
|
||||
``react <channel> <reaction> <nick>``
|
||||
Sends the <reaction> to <nick>'s last message. <reaction> 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 <channel> <text>
|
||||
``say <channel> <text>``
|
||||
Sends <text> to <channel>.
|
||||
|
||||
.. _command-anonymous-tell:
|
||||
|
||||
tell <nick> <text>
|
||||
``tell <nick> <text>``
|
||||
Sends <text> to <nick>. Can only be used if supybot.plugins.Anonymous.allowPrivateTarget is True.
|
||||
|
||||
.. _conf-Anonymous:
|
||||
|
250
plugins/Anonymous/locales/ru.po
Normal file
250
plugins/Anonymous/locales/ru.po
Normal file
@ -0,0 +1,250 @@
|
||||
# Anonymous plugin for Limnoria
|
||||
# Copyright (C) 2024 Limnoria
|
||||
# ssdaniel24 <bo7oaonteg2m__at__mailDOTru>, 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 <bo7oaonteg2m__at__mailDOTru>\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 <operator nick> Hi, my owner is <your nick> :)\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 <your nick> :)`` 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 ""
|
||||
"<channel> <text>\n"
|
||||
"\n"
|
||||
" Sends <text> to <channel>.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<канал> <текст>\n"
|
||||
"\n"
|
||||
"Отправляет <текст> в <канал>."
|
||||
|
||||
#: plugin.py:124
|
||||
msgid ""
|
||||
"<nick> <text>\n"
|
||||
"\n"
|
||||
" Sends <text> to <nick>. 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 ""
|
||||
"<channel> <action>\n"
|
||||
"\n"
|
||||
" Performs <action> in <channel>.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<канал> <действие>\n"
|
||||
"\n"
|
||||
"Выполняет <действие> в <канале>."
|
||||
|
||||
#: plugin.py:148
|
||||
msgid ""
|
||||
"<channel> <reaction> <nick>\n"
|
||||
"\n"
|
||||
" Sends the <reaction> to <nick>'s last message.\n"
|
||||
" <reaction> 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 сообщения."
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -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:
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -25,17 +25,17 @@ Commands
|
||||
|
||||
.. _command-badwords-add:
|
||||
|
||||
add <word> [<word> ...]
|
||||
``add <word> [<word> ...]``
|
||||
Adds all <word>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 <word> [<word> ...]
|
||||
``remove <word> [<word> ...]``
|
||||
Removes <word>s from the list of words being censored.
|
||||
|
||||
.. _conf-BadWords:
|
||||
|
@ -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 <mikaela.suomalainen@outlook.com>\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 ""
|
||||
"<word> [<word> ...]\n"
|
||||
"\n"
|
||||
@ -186,7 +195,7 @@ msgstr ""
|
||||
" Lisää kaikki <sana>(t) sensuroitaviin sanoihin.\n"
|
||||
" "
|
||||
|
||||
#: plugin.py:162
|
||||
#: plugin.py:163
|
||||
msgid ""
|
||||
"<word> [<word> ...]\n"
|
||||
"\n"
|
||||
|
@ -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 <progval@gmail.com>\n"
|
||||
"Language-Team: Limnoria <progval@gmail.com>\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 ""
|
||||
"<word> [<word> ...]\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 ""
|
||||
"<word> [<word> ...]\n"
|
||||
"\n"
|
||||
|
@ -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 <skizzhg@gmx.com>\n"
|
||||
"Language-Team: Italian <skizzhg@gmx.com>\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 ""
|
||||
"<word> [<word> ...]\n"
|
||||
"\n"
|
||||
@ -179,7 +188,7 @@ msgstr ""
|
||||
" Aggiunge <parola> all'elenco di quelle da censurare.\n"
|
||||
" "
|
||||
|
||||
#: plugin.py:162
|
||||
#: plugin.py:163
|
||||
msgid ""
|
||||
"<word> [<word> ...]\n"
|
||||
"\n"
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\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 ""
|
||||
"<word> [<word> ...]\n"
|
||||
@ -134,7 +134,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:162
|
||||
#: plugin.py:163
|
||||
#, docstring
|
||||
msgid ""
|
||||
"<word> [<word> ...]\n"
|
||||
|
@ -23,197 +23,197 @@ Commands
|
||||
|
||||
.. _command-channel-alert:
|
||||
|
||||
alert [<channel>] <text>
|
||||
``alert [<channel>] <text>``
|
||||
Sends <text> to all the users in <channel> who have the <channel>,op capability.
|
||||
|
||||
.. _command-channel-ban.add:
|
||||
|
||||
ban add [<channel>] <nick|hostmask> [<expires>]
|
||||
``ban add [<channel>] <nick|hostmask> [<expires>]``
|
||||
If you have the #channel,op capability, this will effect a persistent ban from interacting with the bot on the given <hostmask> (or the current hostmask associated with <nick>). Other plugins may enforce this ban by actually banning users with matching hostmasks when they join. <expires> is an optional argument specifying when (in "seconds from now") the ban should expire; if none is given, the ban will never automatically expire. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-ban.hostmask:
|
||||
|
||||
ban hostmask [<channel>] <banmask>
|
||||
``ban hostmask [<channel>] <banmask>``
|
||||
Bans the <banmask> from the <channel>.
|
||||
|
||||
.. _command-channel-ban.list:
|
||||
|
||||
ban list [<channel>] [<mask>]
|
||||
``ban list [<channel>] [<mask>]``
|
||||
If you have the #channel,op capability, this will show you the current persistent bans on the <channel> 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 [<channel>] <hostmask>
|
||||
``ban remove [<channel>] <hostmask>``
|
||||
If you have the #channel,op capability, this will remove the persistent ban on <hostmask>. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-capability.add:
|
||||
|
||||
capability add [<channel>] <nick|username> <capability> [<capability> ...]
|
||||
``capability add [<channel>] <nick|username> <capability> [<capability> ...]``
|
||||
If you have the #channel,op capability, this will give the <username> (or the user to whom <nick> maps) the capability <capability> in the channel. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-capability.list:
|
||||
|
||||
capability list [<channel>]
|
||||
``capability list [<channel>]``
|
||||
Returns the capabilities present on the <channel>. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-capability.remove:
|
||||
|
||||
capability remove [<channel>] <name|hostmask> <capability> [<capability> ...]
|
||||
``capability remove [<channel>] <name|hostmask> <capability> [<capability> ...]``
|
||||
If you have the #channel,op capability, this will take from the user currently identified as <name> (or the user to whom <hostmask> maps) the capability <capability> in the channel. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-capability.set:
|
||||
|
||||
capability set [<channel>] <capability> [<capability> ...]
|
||||
``capability set [<channel>] <capability> [<capability> ...]``
|
||||
If you have the #channel,op capability, this will add the channel capability <capability> for all users in the channel. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-capability.setdefault:
|
||||
|
||||
capability setdefault [<channel>] {True|False}
|
||||
``capability setdefault [<channel>] {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. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-capability.unset:
|
||||
|
||||
capability unset [<channel>] <capability> [<capability> ...]
|
||||
``capability unset [<channel>] <capability> [<capability> ...]``
|
||||
If you have the #channel,op capability, this will unset the channel capability <capability> so each user's specific capability or the channel default capability will take precedence. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-cycle:
|
||||
|
||||
cycle [<channel>] [<reason>]
|
||||
``cycle [<channel>] [<reason>]``
|
||||
If you have the #channel,op capability, this will cause the bot to "cycle", or PART and then JOIN the channel. <channel> is only necessary if the message isn't sent in the channel itself. If <reason> 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 [<channel>] [<nick> ...]
|
||||
``dehalfop [<channel>] [<nick> ...]``
|
||||
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 [<channel>] [<nick> ...]
|
||||
``deop [<channel>] [<nick> ...]``
|
||||
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 [<channel>] [<nick> ...]
|
||||
``devoice [<channel>] [<nick> ...]``
|
||||
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 [<channel>] [<plugin>] [<command>]
|
||||
``disable [<channel>] [<plugin>] [<command>]``
|
||||
If you have the #channel,op capability, this will disable the <command> in <channel>. If <plugin> is provided, <command> will be disabled only for that plugin. If only <plugin> is provided, all commands in the given plugin will be disabled. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-enable:
|
||||
|
||||
enable [<channel>] [<plugin>] [<command>]
|
||||
``enable [<channel>] [<plugin>] [<command>]``
|
||||
If you have the #channel,op capability, this will enable the <command> in <channel> if it has been disabled. If <plugin> is provided, <command> will be enabled only for that plugin. If only <plugin> is provided, all commands in the given plugin will be enabled. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-halfop:
|
||||
|
||||
halfop [<channel>] [<nick> ...]
|
||||
``halfop [<channel>] [<nick> ...]``
|
||||
If you have the #channel,halfop capability, this will give all the <nick>s you provide halfops. If you don't provide any <nick>s, this will give you halfops. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-iban:
|
||||
|
||||
iban [<channel>] [--{exact,nick,user,host}] <nick> [<seconds>]
|
||||
If you have the #channel,op capability, this will ban <nick> 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. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
``iban [<channel>] [--{exact,nick,user,host}] <nick> [<seconds>]``
|
||||
If you have the #channel,op capability, this will ban <nick> 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. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-ignore.add:
|
||||
|
||||
ignore add [<channel>] <nick|hostmask> [<expires>]
|
||||
``ignore add [<channel>] <nick|hostmask> [<expires>]``
|
||||
If you have the #channel,op capability, this will set a persistent ignore on <hostmask> or the hostmask currently associated with <nick>. <expires> 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. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-ignore.list:
|
||||
|
||||
ignore list [<channel>]
|
||||
``ignore list [<channel>]``
|
||||
Lists the hostmasks that the bot is ignoring on the given channel. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-ignore.remove:
|
||||
|
||||
ignore remove [<channel>] <nick|hostmask>
|
||||
``ignore remove [<channel>] <nick|hostmask>``
|
||||
If you have the #channel,op capability, this will remove the persistent ignore on <hostmask> in the channel. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-invite:
|
||||
|
||||
invite [<channel>] <nick>
|
||||
``invite [<channel>] <nick>``
|
||||
If you have the #channel,op capability, this will invite <nick> to join <channel>. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-kban:
|
||||
|
||||
kban [<channel>] [--{exact,nick,user,host,account}] <nick> [<seconds>] [<reason>]
|
||||
If you have the #channel,op capability, this will kickban <nick> 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. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
``kban [<channel>] [--{exact,nick,user,host,account}] <nick> [<seconds>] [<reason>]``
|
||||
If you have the #channel,op capability, this will kickban <nick> 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. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-key:
|
||||
|
||||
key [<channel>] [<key>]
|
||||
``key [<channel>] [<key>]``
|
||||
Sets the keyword in <channel> to <key>. If <key> is not given, removes the keyword requirement to join <channel>. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-kick:
|
||||
|
||||
kick [<channel>] <nick>[, <nick>, ...] [<reason>]
|
||||
``kick [<channel>] <nick>[, <nick>, ...] [<reason>]``
|
||||
Kicks <nick>(s) from <channel> for <reason>. If <reason> isn't given, uses the nick of the person making the command as the reason. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-limit:
|
||||
|
||||
limit [<channel>] [<limit>]
|
||||
``limit [<channel>] [<limit>]``
|
||||
Sets the channel limit to <limit>. If <limit> is 0, or isn't given, removes the channel limit. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-listbans:
|
||||
|
||||
listbans [<channel>]
|
||||
``listbans [<channel>]``
|
||||
List all bans on the channel. If <channel> is not given, it defaults to the current channel.
|
||||
|
||||
.. _command-channel-lobotomy.add:
|
||||
|
||||
lobotomy add [<channel>]
|
||||
``lobotomy add [<channel>]``
|
||||
If you have the #channel,op capability, this will "lobotomize" the bot, making it silent and unanswering to all requests made in the channel. <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 [<channel>]
|
||||
``lobotomy remove [<channel>]``
|
||||
If you have the #channel,op capability, this will unlobotomize the bot, making it respond to requests made in the channel again. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-mode:
|
||||
|
||||
mode [<channel>] <mode> [<arg> ...]
|
||||
``mode [<channel>] <mode> [<arg> ...]``
|
||||
Sets the mode in <channel> to <mode>, sending the arguments given. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-moderate:
|
||||
|
||||
moderate [<channel>]
|
||||
``moderate [<channel>]``
|
||||
Sets +m on <channel>, making it so only ops and voiced users can send messages to the channel. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-nicks:
|
||||
|
||||
nicks [<channel>] [--count]
|
||||
``nicks [<channel>] [--count]``
|
||||
Returns the nicks in <channel>. <channel> 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 [<channel>] [<nick> ...]
|
||||
``op [<channel>] [<nick> ...]``
|
||||
If you have the #channel,op capability, this will give all the <nick>s you provide ops. If you don't provide any <nick>s, this will op you. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-part:
|
||||
|
||||
part [<channel>] [<reason>]
|
||||
``part [<channel>] [<reason>]``
|
||||
Tells the bot to part the list of channels you give it. <channel> is only necessary if you want the bot to part a channel other than the current channel. If <reason> 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 [<channel>] [<hostmask|--all>]
|
||||
``unban [<channel>] [<hostmask|--all>]``
|
||||
Unbans <hostmask> on <channel>. If <hostmask> is not given, unbans any hostmask currently banned on <channel> that matches your current hostmask. Especially useful for unbanning yourself when you get unexpectedly (or accidentally) banned from the channel. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-unmoderate:
|
||||
|
||||
unmoderate [<channel>]
|
||||
``unmoderate [<channel>]``
|
||||
Sets -m on <channel>, making it so everyone can send messages to the channel. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-channel-voice:
|
||||
|
||||
voice [<channel>] [<nick> ...]
|
||||
``voice [<channel>] [<nick> ...]``
|
||||
If you have the #channel,voice capability, this will voice all the <nick>s you provide. If you don't provide any <nick>s, this will voice you. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _conf-Channel:
|
||||
|
@ -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 <mikaela.suomalainen@outlook.com>\n"
|
||||
"Language-Team: \n"
|
||||
@ -352,8 +352,10 @@ msgid "kick someone"
|
||||
msgstr "jemanden kicken"
|
||||
|
||||
#: plugin.py:316
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"[<channel>] [--{exact,nick,user,host}] <nick> [<seconds>] [<reason>]\n"
|
||||
"[<channel>] [--{exact,nick,user,host,account}] <nick> [<seconds>] "
|
||||
"[<reason>]\n"
|
||||
"\n"
|
||||
" If you have the #channel,op capability, this will kickban <nick> "
|
||||
"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. <reason> is a reason to give "
|
||||
"for\n"
|
||||
" the kick.\n"
|
||||
" <channel> 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"
|
||||
" <channel> is only necessary if the message isn't sent in the channel "
|
||||
"itself.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"[<Kanal>] [--{exact,nick,user,host}] <Nick> [<Sekunden>] [<Begründung>]\n"
|
||||
@ -382,11 +384,11 @@ msgstr ""
|
||||
"den Kick. <Kanal> 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 ""
|
||||
"[<channel>] [--{exact,nick,user,host}] <nick> [<seconds>]\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. <channel> 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"
|
||||
" <channel> is only necessary if the message isn't sent in the channel "
|
||||
"itself.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"[<Kanal>] [--{exact,nick,user,host}] <Nick> [<Sekunden>] [<Begründung>]\n"
|
||||
@ -414,28 +418,28 @@ msgstr ""
|
||||
"den Kick. <Kanal> 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 ""
|
||||
"[<channel>] [<hostmask|--all>]\n"
|
||||
@ -457,19 +461,19 @@ msgstr ""
|
||||
"entbannen, falls du versehentlich im Kanal gebannt wurdest. <Kanal> 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 ""
|
||||
"[<channel>]\n"
|
||||
"\n"
|
||||
@ -477,11 +481,11 @@ msgid ""
|
||||
" If <channel> 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 ""
|
||||
"[<channel>] <nick>\n"
|
||||
"\n"
|
||||
@ -496,19 +500,19 @@ msgstr ""
|
||||
"<Kanal> zu betreten. <Kanal> 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 ""
|
||||
"[<channel>]\n"
|
||||
"\n"
|
||||
@ -528,7 +532,7 @@ msgstr ""
|
||||
"im Kanal getätigt werden. <Kanal> ist nur notwendig, wenn die Nachricht "
|
||||
"nicht im Kanal selbst gesendet wurde."
|
||||
|
||||
#: plugin.py:538
|
||||
#: plugin.py:567
|
||||
msgid ""
|
||||
"[<channel>]\n"
|
||||
"\n"
|
||||
@ -547,7 +551,7 @@ msgstr ""
|
||||
"Kanal. <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 ""
|
||||
"[<channel>] <nick|hostmask> [<expires>]\n"
|
||||
"\n"
|
||||
@ -595,7 +599,7 @@ msgstr ""
|
||||
"falls nicht angegeben wird der Ban niemals automatisch ablaufen. <Kanal> ist "
|
||||
"nur notwendig, wenn die Nachricht nicht im Kanal selbst gesendet wurde."
|
||||
|
||||
#: plugin.py:605
|
||||
#: plugin.py:639
|
||||
msgid ""
|
||||
"[<channel>] <hostmask>\n"
|
||||
"\n"
|
||||
@ -611,11 +615,11 @@ msgstr ""
|
||||
"<Hostmaske> aufgehoben. <Kanal> 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 ""
|
||||
"[<channel>] [<mask>]\n"
|
||||
@ -633,19 +637,19 @@ msgstr ""
|
||||
"<Hostmaske> aufgehoben. <Kanal> 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 ""
|
||||
"[<channel>] <nick|hostmask> [<expires>]\n"
|
||||
"\n"
|
||||
@ -669,7 +673,7 @@ msgstr ""
|
||||
"Ignorierung niemals automatisch ablaufen. <Kanal> ist nur notwendig, wenn "
|
||||
"die Nachricht nicht im Kanal selbst gesendet wurde."
|
||||
|
||||
#: plugin.py:672
|
||||
#: plugin.py:706
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"[<channel>] <nick|hostmask>\n"
|
||||
@ -686,11 +690,11 @@ msgstr ""
|
||||
"von <Hostmaske> im Kanal entfernen. <Kanal> 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 ""
|
||||
"[<channel>]\n"
|
||||
"\n"
|
||||
@ -705,11 +709,11 @@ msgstr ""
|
||||
"Listet die Hostmasken auf, die der Bot im gegeben Kanal ignoriert. <Kanal> "
|
||||
"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 ""
|
||||
"[<channel>] <nick|username> <capability> [<capability> ...]\n"
|
||||
@ -727,7 +731,7 @@ msgstr ""
|
||||
"<Kanal> ist nur notwendig, wenn die Nachricht nicht im Kanal selbst gesendet "
|
||||
"wurde."
|
||||
|
||||
#: plugin.py:725
|
||||
#: plugin.py:759
|
||||
msgid ""
|
||||
"[<channel>] <name|hostmask> <capability> [<capability> ...]\n"
|
||||
"\n"
|
||||
@ -746,11 +750,11 @@ msgstr ""
|
||||
"auf des Benutzers auf den die <Hostmaske> zutrifft). <Kanal> 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 ""
|
||||
"[<channel>] {True|False}\n"
|
||||
"\n"
|
||||
@ -770,7 +774,7 @@ msgstr ""
|
||||
"angegeben Antwort setzen. <Kanal> ist nur notwendig, wenn die Nachricht "
|
||||
"nicht im Kanal selbst gesendet wurde."
|
||||
|
||||
#: plugin.py:771
|
||||
#: plugin.py:805
|
||||
msgid ""
|
||||
"[<channel>] <capability> [<capability> ...]\n"
|
||||
"\n"
|
||||
@ -787,7 +791,7 @@ msgstr ""
|
||||
"<Fähigkeit> für alle Benutzer hinzugefügt. <Kanal> ist nur notwendig, wenn "
|
||||
"die Nachricht nicht im Kanal selbst gesendet wurde."
|
||||
|
||||
#: plugin.py:786
|
||||
#: plugin.py:820
|
||||
msgid ""
|
||||
"[<channel>] <capability> [<capability> ...]\n"
|
||||
"\n"
|
||||
@ -807,15 +811,15 @@ msgstr ""
|
||||
"vorrang haben. <Kanal> 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 ""
|
||||
"[<channel>]\n"
|
||||
"\n"
|
||||
@ -828,7 +832,7 @@ msgstr ""
|
||||
"Gibt die Fähigkeiten zurück, die es im <Kanal> gibt. <Kanal> ist nur "
|
||||
"notwendig, falls die Nachricht nicht im Kanal selbt gegeben wurde."
|
||||
|
||||
#: plugin.py:824
|
||||
#: plugin.py:858
|
||||
msgid ""
|
||||
"[<channel>] [<plugin>] [<command>]\n"
|
||||
"\n"
|
||||
@ -849,15 +853,15 @@ msgstr ""
|
||||
"angegeben wurde, werden alle Befehle des Plugins deaktiviert. <Kanal> 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 ""
|
||||
"[<channel>] [<plugin>] [<command>]\n"
|
||||
"\n"
|
||||
@ -879,11 +883,11 @@ msgstr ""
|
||||
"wurde, werden alle Befehle des Plugins aktiviert. <Kanal> 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 ""
|
||||
"[<channel>] [--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 ""
|
||||
"[<channel>] <text>\n"
|
||||
"\n"
|
||||
@ -932,7 +936,7 @@ msgstr ""
|
||||
"\n"
|
||||
"Sendet <Text an alle Nutzer im <Kanal>, die die <Kanal>,op Fähigkeit haben."
|
||||
|
||||
#: plugin.py:973
|
||||
#: plugin.py:1007
|
||||
msgid ""
|
||||
"[<channel>] [<reason>]\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."
|
||||
|
@ -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 <mikaela.suomalainen@outlook.com>\n"
|
||||
"Language-Team: suomi <>\n"
|
||||
@ -384,8 +384,10 @@ msgid "kick someone"
|
||||
msgstr "potki joku"
|
||||
|
||||
#: plugin.py:316
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"[<channel>] [--{exact,nick,user,host}] <nick> [<seconds>] [<reason>]\n"
|
||||
"[<channel>] [--{exact,nick,user,host,account}] <nick> [<seconds>] "
|
||||
"[<reason>]\n"
|
||||
"\n"
|
||||
" If you have the #channel,op capability, this will kickban <nick> "
|
||||
"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. <reason> is a reason to give "
|
||||
"for\n"
|
||||
" the kick.\n"
|
||||
" <channel> 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"
|
||||
" <channel> is only necessary if the message isn't sent in the channel "
|
||||
"itself.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"[<kanava>] [--{exact,nick,user,host}] <nimimerkki> [<sekuntit>] [<syy>]\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 ""
|
||||
"[<channel>] [--{exact,nick,user,host}] <nick> [<seconds>]\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. <channel> 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"
|
||||
" <channel> is only necessary if the message isn't sent in the channel "
|
||||
"itself.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"[<kanava>] [--{exact,nick,user,host}] <nimimerkki> [<sekuntit>]\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 ""
|
||||
"[<channel>] [<hostmask|--all>]\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 ""
|
||||
"[<channel>]\n"
|
||||
"\n"
|
||||
@ -532,11 +537,11 @@ msgstr ""
|
||||
" Luettelee kaikki kanavan porttikiellot.\n"
|
||||
" Jos <kanavaa> 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 ""
|
||||
"[<channel>] <nick>\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 ""
|
||||
"[<channel>]\n"
|
||||
"\n"
|
||||
@ -587,7 +592,7 @@ msgstr ""
|
||||
" kanavalla itsellään.\n"
|
||||
" "
|
||||
|
||||
#: plugin.py:538
|
||||
#: plugin.py:567
|
||||
msgid ""
|
||||
"[<channel>]\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 ""
|
||||
"[<channel>] <nick|hostmask> [<expires>]\n"
|
||||
"\n"
|
||||
@ -665,7 +670,7 @@ msgstr ""
|
||||
" kanavalla itsellään.\n"
|
||||
" "
|
||||
|
||||
#: plugin.py:605
|
||||
#: plugin.py:639
|
||||
msgid ""
|
||||
"[<channel>] <hostmask>\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 ""
|
||||
"[<channel>] [<mask>]\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 ""
|
||||
"[<channel>] <nick|hostmask> [<expires>]\n"
|
||||
"\n"
|
||||
@ -748,7 +753,7 @@ msgstr ""
|
||||
" kanavalla itsellään.\n"
|
||||
" "
|
||||
|
||||
#: plugin.py:672
|
||||
#: plugin.py:706
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"[<channel>] <nick|hostmask>\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 ""
|
||||
"[<channel>]\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 ""
|
||||
"[<channel>] <nick|username> <capability> [<capability> ...]\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 ""
|
||||
"[<channel>] <name|hostmask> <capability> [<capability> ...]\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 ""
|
||||
"[<channel>] {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 ""
|
||||
"[<channel>] <capability> [<capability> ...]\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 ""
|
||||
"[<channel>] <capability> [<capability> ...]\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 ""
|
||||
"[<channel>]\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 ""
|
||||
"[<channel>] [<plugin>] [<command>]\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 ""
|
||||
"[<channel>] [<plugin>] [<command>]\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 ""
|
||||
"[<channel>] [--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 ""
|
||||
"[<channel>] <text>\n"
|
||||
"\n"
|
||||
@ -1037,7 +1042,7 @@ msgstr ""
|
||||
" valtuus.\n"
|
||||
" "
|
||||
|
||||
#: plugin.py:973
|
||||
#: plugin.py:1007
|
||||
msgid ""
|
||||
"[<channel>] [<reason>]\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."
|
||||
|
@ -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 <progval@gmail.com>\n"
|
||||
"Language-Team: Limnoria <progval@gmail.com>\n"
|
||||
@ -348,8 +348,10 @@ msgid "kick someone"
|
||||
msgstr "kicker quelqu'un"
|
||||
|
||||
#: plugin.py:316
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"[<channel>] [--{exact,nick,user,host}] <nick> [<seconds>] [<reason>]\n"
|
||||
"[<channel>] [--{exact,nick,user,host,account}] <nick> [<seconds>] "
|
||||
"[<reason>]\n"
|
||||
"\n"
|
||||
" If you have the #channel,op capability, this will kickban <nick> "
|
||||
"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. <reason> is a reason to give "
|
||||
"for\n"
|
||||
" the kick.\n"
|
||||
" <channel> 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"
|
||||
" <channel> is only necessary if the message isn't sent in the channel "
|
||||
"itself.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"[<canal>] [--{exact,nick,user,host}] <nick> [<secondes>] [<raison>]\n"
|
||||
@ -377,11 +379,11 @@ msgstr ""
|
||||
"<raison> est une raison que vous donnez pour le kick. <canal> 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 ""
|
||||
"[<channel>] [--{exact,nick,user,host}] <nick> [<seconds>]\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. <channel> 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"
|
||||
" <channel> is only necessary if the message isn't sent in the channel "
|
||||
"itself.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"[<canal>] [--{exact,nick,user,host}] <nick> [<secondes>]\n"
|
||||
@ -408,27 +412,27 @@ msgstr ""
|
||||
"raison que vous donnez pour le kick. <canal> 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 ""
|
||||
"[<channel>] [<hostmask|--all>]\n"
|
||||
"\n"
|
||||
@ -449,19 +453,19 @@ msgstr ""
|
||||
"manière inatendue ou accidentelle d'un canal. <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 ""
|
||||
"[<channel>]\n"
|
||||
"\n"
|
||||
@ -471,11 +475,11 @@ msgstr ""
|
||||
"[<canal>]Liste tous les bannissements du salon. Si <canal> 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 ""
|
||||
"[<channel>] <nick>\n"
|
||||
"\n"
|
||||
@ -490,19 +494,19 @@ msgstr ""
|
||||
"<canal>. <canal> 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 ""
|
||||
"[<channel>]\n"
|
||||
"\n"
|
||||
@ -522,7 +526,7 @@ msgstr ""
|
||||
"canal. <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 ""
|
||||
"[<channel>]\n"
|
||||
"\n"
|
||||
@ -541,7 +545,7 @@ msgstr ""
|
||||
"sur le canal. <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 ""
|
||||
"[<channel>] <nick|hostmask> [<expires>]\n"
|
||||
"\n"
|
||||
@ -586,7 +590,7 @@ msgstr ""
|
||||
"masque d'hôte lorsqu'ils entrent. <expiration> est un argument option, "
|
||||
"correspondant à la durée, en secondes, que doit avoir le bannissement."
|
||||
|
||||
#: plugin.py:605
|
||||
#: plugin.py:639
|
||||
msgid ""
|
||||
"[<channel>] <hostmask>\n"
|
||||
"\n"
|
||||
@ -602,11 +606,11 @@ msgstr ""
|
||||
"persistant sur le <masque d'hôte>. <canal> 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 ""
|
||||
"[<channel>] [<mask>]\n"
|
||||
@ -624,19 +628,19 @@ msgstr ""
|
||||
"persistant sur le <masque d'hôte>. <canal> 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 ""
|
||||
"[<channel>] <nick|hostmask> [<expires>]\n"
|
||||
"\n"
|
||||
@ -660,7 +664,7 @@ msgstr ""
|
||||
"n'expirera jamais. <canal> 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 ""
|
||||
"[<channel>] <nick|hostmask>\n"
|
||||
@ -677,11 +681,11 @@ msgstr ""
|
||||
"persistant du <masque d'hôte> sur le canal. <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 ""
|
||||
"[<channel>]\n"
|
||||
"\n"
|
||||
@ -696,11 +700,11 @@ msgstr ""
|
||||
"Liste les masques d'hôte que le bot ignore sur le canal donné. <canal> 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 ""
|
||||
"[<channel>] <nick|username> <capability> [<capability> ...]\n"
|
||||
"\n"
|
||||
@ -716,7 +720,7 @@ msgstr ""
|
||||
"ayant actuellement le <nick>) la <capacité> sur le canal. <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 ""
|
||||
"[<channel>] <name|hostmask> <capability> [<capability> ...]\n"
|
||||
"\n"
|
||||
@ -735,11 +739,11 @@ msgstr ""
|
||||
"op. <canal> 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 ""
|
||||
"[<channel>] {True|False}\n"
|
||||
"\n"
|
||||
@ -759,7 +763,7 @@ msgstr ""
|
||||
"<canal> 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 ""
|
||||
"[<channel>] <capability> [<capability> ...]\n"
|
||||
"\n"
|
||||
@ -776,7 +780,7 @@ msgstr ""
|
||||
"tous les utilisateurs du canal. <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 ""
|
||||
"[<channel>] <capability> [<capability> ...]\n"
|
||||
"\n"
|
||||
@ -795,15 +799,15 @@ msgstr ""
|
||||
"utilisateurs du canal aient la <capacité> de canal. <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 ""
|
||||
"[<channel>]\n"
|
||||
"\n"
|
||||
@ -816,7 +820,7 @@ msgstr ""
|
||||
"Retourne les capacité présentes sur le <canal>. <canal> 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 ""
|
||||
"[<channel>] [<plugin>] [<command>]\n"
|
||||
"\n"
|
||||
@ -836,15 +840,15 @@ msgstr ""
|
||||
"désactivées. <canal> 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 ""
|
||||
"[<channel>] [<plugin>] [<command>]\n"
|
||||
"\n"
|
||||
@ -865,11 +869,11 @@ msgstr ""
|
||||
"la commande de ce plugin sera activée. <canal> 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 ""
|
||||
"[<channel>] [--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 ""
|
||||
"[<channel>] <text>\n"
|
||||
"\n"
|
||||
@ -919,7 +923,7 @@ msgstr ""
|
||||
"Envoie le <texte> à tous les utilisateurs sur <canal> qui ont la capacité "
|
||||
"#canal,op."
|
||||
|
||||
#: plugin.py:973
|
||||
#: plugin.py:1007
|
||||
msgid ""
|
||||
"[<channel>] [<reason>]\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."
|
||||
|
@ -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 <mikaela.suomalainen@outlook.com>\n"
|
||||
"Language-Team: \n"
|
||||
@ -354,8 +354,10 @@ msgid "kick someone"
|
||||
msgstr "kirúgni valakit"
|
||||
|
||||
#: plugin.py:316
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"[<channel>] [--{exact,nick,user,host}] <nick> [<seconds>] [<reason>]\n"
|
||||
"[<channel>] [--{exact,nick,user,host,account}] <nick> [<seconds>] "
|
||||
"[<reason>]\n"
|
||||
"\n"
|
||||
" If you have the #channel,op capability, this will kickban <nick> "
|
||||
"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. <reason> is a reason to give "
|
||||
"for\n"
|
||||
" the kick.\n"
|
||||
" <channel> 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"
|
||||
" <channel> is only necessary if the message isn't sent in the channel "
|
||||
"itself.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"[<csatorna>] [--{exact,nick,user,host}] <név> [<másodpercek>] [<ok>]\n"
|
||||
@ -382,11 +384,11 @@ msgstr ""
|
||||
"tiltja ki, és --host csak a hosztot tiltja ki. Kombinálhatod az opciókat "
|
||||
"ahogy szeretnéd. <ok> 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 ""
|
||||
"[<channel>] [--{exact,nick,user,host}] <nick> [<seconds>]\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. <channel> 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"
|
||||
" <channel> is only necessary if the message isn't sent in the channel "
|
||||
"itself.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"[<csatorna>] [--{exact,nick,user,host}] <név> [<másodpercek>] [<ok>]\n"
|
||||
@ -412,28 +416,28 @@ msgstr ""
|
||||
"tiltja ki, és --host csak a hosztot tiltja ki. Kombinálhatod az opciókat "
|
||||
"ahogy szeretnéd. <ok> 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 ""
|
||||
"[<channel>] [<hostmask|--all>]\n"
|
||||
@ -455,19 +459,19 @@ msgstr ""
|
||||
"véletlenül) ki lettél tiltva a csatornáról. <csatorna> 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 ""
|
||||
"[<channel>]\n"
|
||||
"\n"
|
||||
@ -475,11 +479,11 @@ msgid ""
|
||||
" If <channel> 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 ""
|
||||
"[<channel>] <nick>\n"
|
||||
"\n"
|
||||
@ -493,19 +497,19 @@ msgstr ""
|
||||
"Ha rendelkezel a #csatorna,op képességgel, meghívja <név>-et <csatorna>-ra. "
|
||||
"<csatorna> 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 ""
|
||||
"[<channel>]\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. "
|
||||
"<csatorna> csak akkor szükséges, ha az üzenet nem a csatornában van elküldve."
|
||||
|
||||
#: plugin.py:538
|
||||
#: plugin.py:567
|
||||
msgid ""
|
||||
"[<channel>]\n"
|
||||
"\n"
|
||||
@ -542,7 +546,7 @@ msgstr ""
|
||||
"így az újra válaszol a csatornában vérgehajtott kérésekre. <csatorna> 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 ""
|
||||
"[<channel>] <nick|hostmask> [<expires>]\n"
|
||||
"\n"
|
||||
@ -590,7 +594,7 @@ msgstr ""
|
||||
"lejárni. <csatorna> csak akkor szükséges, ha az üzenet nem a csaotnában van "
|
||||
"elküldve."
|
||||
|
||||
#: plugin.py:605
|
||||
#: plugin.py:639
|
||||
msgid ""
|
||||
"[<channel>] <hostmask>\n"
|
||||
"\n"
|
||||
@ -606,11 +610,11 @@ msgstr ""
|
||||
"ról. <csatorna> 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 ""
|
||||
"[<channel>] [<mask>]\n"
|
||||
@ -628,19 +632,19 @@ msgstr ""
|
||||
"ról. <csatorna> 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 ""
|
||||
"[<channel>] <nick|hostmask> [<expires>]\n"
|
||||
"\n"
|
||||
@ -663,7 +667,7 @@ msgstr ""
|
||||
"mellőzés soha nem fog automatikusan lejárni. <csatorna> csak akkor "
|
||||
"szükséges, ha az üzenet nem a csatornában van elküldve."
|
||||
|
||||
#: plugin.py:672
|
||||
#: plugin.py:706
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"[<channel>] <nick|hostmask>\n"
|
||||
@ -680,11 +684,11 @@ msgstr ""
|
||||
"<hoszt>-ról a csatornában. <csatorna> 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 ""
|
||||
"[<channel>]\n"
|
||||
"\n"
|
||||
@ -699,11 +703,11 @@ msgstr ""
|
||||
"Kiírja a hosztokat, amelyeket a bot mellőz a megadott csatornában. "
|
||||
"<csatorna> 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 ""
|
||||
"[<channel>] <nick|username> <capability> [<capability> ...]\n"
|
||||
@ -721,7 +725,7 @@ msgstr ""
|
||||
"csatornában. <csatorna> csak akkor szükséges, ha az üzenet nem a csatornában "
|
||||
"van elküldve."
|
||||
|
||||
#: plugin.py:725
|
||||
#: plugin.py:759
|
||||
msgid ""
|
||||
"[<channel>] <name|hostmask> <capability> [<capability> ...]\n"
|
||||
"\n"
|
||||
@ -740,11 +744,11 @@ msgstr ""
|
||||
"illeszkedik) a <képesség> képességet a csatornában. <csatorna> csak akkor "
|
||||
"szükséges, ha az üzenet nem a csatornában van elküldve."
|
||||
|
||||
#: plugin.py: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 ""
|
||||
"[<channel>] {True|False}\n"
|
||||
"\n"
|
||||
@ -764,7 +768,7 @@ msgstr ""
|
||||
"megadott értékre állítja. <csatorna> csak akkor szükséges, ha az üzenet nem "
|
||||
"a csatornában van elküldve."
|
||||
|
||||
#: plugin.py:771
|
||||
#: plugin.py:805
|
||||
msgid ""
|
||||
"[<channel>] <capability> [<capability> ...]\n"
|
||||
"\n"
|
||||
@ -781,7 +785,7 @@ msgstr ""
|
||||
"csatorna képességeihez. <csatorna> csak akkor szükséges, ha az üzenet nem, a "
|
||||
"csatornában van elküldve."
|
||||
|
||||
#: plugin.py:786
|
||||
#: plugin.py:820
|
||||
msgid ""
|
||||
"[<channel>] <capability> [<capability> ...]\n"
|
||||
"\n"
|
||||
@ -801,15 +805,15 @@ msgstr ""
|
||||
"alapértelmezett képességei lesznek előnyben. <csatorna> 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 ""
|
||||
"[<channel>]\n"
|
||||
"\n"
|
||||
@ -822,7 +826,7 @@ msgstr ""
|
||||
"Kiírja <csatorna> képességeit. <csatorna> csak akkor szükséges, ha az üzenet "
|
||||
"nem a csatornában van elküldve."
|
||||
|
||||
#: plugin.py:824
|
||||
#: plugin.py:858
|
||||
msgid ""
|
||||
"[<channel>] [<plugin>] [<command>]\n"
|
||||
"\n"
|
||||
@ -843,15 +847,15 @@ msgstr ""
|
||||
"le lesz tiltva a megadott bővítményben. <csatorna> 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 ""
|
||||
"[<channel>] [<plugin>] [<command>]\n"
|
||||
"\n"
|
||||
@ -871,11 +875,11 @@ msgstr ""
|
||||
"<csatorna>-ban ha le lett tiltva. Ha <bővítmény> meg van adva, <parancs> "
|
||||
"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 ""
|
||||
"[<channel>] [--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 ""
|
||||
"[<channel>] <text>\n"
|
||||
"\n"
|
||||
@ -925,7 +929,7 @@ msgstr ""
|
||||
"operátor státuszt. <csatorna> csak akkor szükséges, ha az üzenet nem a "
|
||||
"csatornában van elküldve."
|
||||
|
||||
#: plugin.py:973
|
||||
#: plugin.py:1007
|
||||
msgid ""
|
||||
"[<channel>] [<reason>]\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."
|
||||
|
@ -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 <skizzhg@gmx.com>\n"
|
||||
"Language-Team: Italian <skizzhg@gmx.com>\n"
|
||||
@ -377,8 +377,10 @@ msgid "kick someone"
|
||||
msgstr "cacciare (kick) qualcuno"
|
||||
|
||||
#: plugin.py:316
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"[<channel>] [--{exact,nick,user,host}] <nick> [<seconds>] [<reason>]\n"
|
||||
"[<channel>] [--{exact,nick,user,host,account}] <nick> [<seconds>] "
|
||||
"[<reason>]\n"
|
||||
"\n"
|
||||
" If you have the #channel,op capability, this will kickban <nick> "
|
||||
"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. <reason> is a reason to give "
|
||||
"for\n"
|
||||
" the kick.\n"
|
||||
" <channel> 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"
|
||||
" <channel> is only necessary if the message isn't sent in the channel "
|
||||
"itself.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"[<canale>] [--{exact,nick,user,host}] <nick> [<secondi>] [<motivo>]\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 ""
|
||||
"[<channel>] [--{exact,nick,user,host}] <nick> [<seconds>]\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. <channel> 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"
|
||||
" <channel> is only necessary if the message isn't sent in the channel "
|
||||
"itself.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"[<canale>] [--{exact,nick,user,host}] <nick> [<secondi>] [<motivo>]\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 ""
|
||||
"[<channel>] [<hostmask|--all>]\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 ""
|
||||
"[<channel>]\n"
|
||||
"\n"
|
||||
@ -515,11 +519,11 @@ msgid ""
|
||||
" If <channel> 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 ""
|
||||
"[<channel>] <nick>\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 ""
|
||||
"[<channel>]\n"
|
||||
"\n"
|
||||
@ -571,7 +575,7 @@ msgstr ""
|
||||
"canale stesso.\n"
|
||||
" "
|
||||
|
||||
#: plugin.py:538
|
||||
#: plugin.py:567
|
||||
msgid ""
|
||||
"[<channel>]\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 ""
|
||||
"[<channel>] <nick|hostmask> [<expires>]\n"
|
||||
"\n"
|
||||
@ -647,7 +651,7 @@ msgstr ""
|
||||
"canale stesso.\n"
|
||||
" "
|
||||
|
||||
#: plugin.py:605
|
||||
#: plugin.py:639
|
||||
msgid ""
|
||||
"[<channel>] <hostmask>\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 ""
|
||||
"[<channel>] [<mask>]\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 ""
|
||||
"[<channel>] <nick|hostmask> [<expires>]\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 ""
|
||||
"[<channel>] <nick|hostmask>\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 ""
|
||||
"[<channel>]\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 ""
|
||||
"[<channel>] <nick|username> <capability> [<capability> ...]\n"
|
||||
"\n"
|
||||
@ -792,7 +796,7 @@ msgstr ""
|
||||
"stesso.\n"
|
||||
" "
|
||||
|
||||
#: plugin.py:725
|
||||
#: plugin.py:759
|
||||
msgid ""
|
||||
"[<channel>] <name|hostmask> <capability> [<capability> ...]\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 ""
|
||||
"[<channel>] {True|False}\n"
|
||||
"\n"
|
||||
@ -841,7 +845,7 @@ msgstr ""
|
||||
"stesso.\n"
|
||||
" "
|
||||
|
||||
#: plugin.py:771
|
||||
#: plugin.py:805
|
||||
msgid ""
|
||||
"[<channel>] <capability> [<capability> ...]\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 ""
|
||||
"[<channel>] <capability> [<capability> ...]\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 ""
|
||||
"[<channel>]\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 ""
|
||||
"[<channel>] [<plugin>] [<command>]\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 ""
|
||||
"[<channel>] [<plugin>] [<command>]\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 ""
|
||||
"[<channel>] [--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 ""
|
||||
"[<channel>] <text>\n"
|
||||
"\n"
|
||||
@ -1024,7 +1028,7 @@ msgstr ""
|
||||
"<canale>,op.\n"
|
||||
" "
|
||||
|
||||
#: plugin.py:973
|
||||
#: plugin.py:1007
|
||||
msgid ""
|
||||
"[<channel>] [<reason>]\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."
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -265,25 +265,25 @@ msgstr ""
|
||||
#: plugin.py:316
|
||||
#, docstring
|
||||
msgid ""
|
||||
"[<channel>] [--{exact,nick,user,host}] <nick> [<seconds>] [<reason>]\n"
|
||||
"[<channel>] [--{exact,nick,user,host,account}] <nick> [<seconds>] [<reason>]\n"
|
||||
"\n"
|
||||
" If you have the #channel,op capability, this will kickban <nick> 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. <reason> is a reason to give for\n"
|
||||
" the kick.\n"
|
||||
" <channel> 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"
|
||||
" <channel> 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 ""
|
||||
"[<channel>] [--{exact,nick,user,host}] <nick> [<seconds>]\n"
|
||||
@ -291,33 +291,35 @@ msgid ""
|
||||
" If you have the #channel,op capability, this will ban <nick> 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. <channel> 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"
|
||||
" <channel> 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 ""
|
||||
"[<channel>] [<hostmask|--all>]\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 ""
|
||||
"[<channel>]\n"
|
||||
@ -351,11 +353,11 @@ msgid ""
|
||||
" If <channel> 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 ""
|
||||
"[<channel>] <nick>\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 ""
|
||||
"[<channel>]\n"
|
||||
@ -390,7 +392,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:538
|
||||
#: plugin.py:567
|
||||
#, docstring
|
||||
msgid ""
|
||||
"[<channel>]\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 ""
|
||||
"[<channel>] <nick|hostmask> [<expires>]\n"
|
||||
@ -436,7 +438,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:605
|
||||
#: plugin.py:639
|
||||
#, docstring
|
||||
msgid ""
|
||||
"[<channel>] <hostmask>\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 ""
|
||||
"[<channel>] [<mask>]\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 ""
|
||||
"[<channel>] <nick|hostmask> [<expires>]\n"
|
||||
@ -491,7 +493,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:672
|
||||
#: plugin.py:706
|
||||
#, docstring
|
||||
msgid ""
|
||||
"[<channel>] <nick|hostmask>\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 ""
|
||||
"[<channel>]\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 ""
|
||||
"[<channel>] <nick|username> <capability> [<capability> ...]\n"
|
||||
@ -533,7 +535,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:725
|
||||
#: plugin.py:759
|
||||
#, docstring
|
||||
msgid ""
|
||||
"[<channel>] <name|hostmask> <capability> [<capability> ...]\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 ""
|
||||
"[<channel>] {True|False}\n"
|
||||
@ -561,7 +563,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:771
|
||||
#: plugin.py:805
|
||||
#, docstring
|
||||
msgid ""
|
||||
"[<channel>] <capability> [<capability> ...]\n"
|
||||
@ -572,7 +574,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:786
|
||||
#: plugin.py:820
|
||||
#, docstring
|
||||
msgid ""
|
||||
"[<channel>] <capability> [<capability> ...]\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 ""
|
||||
"[<channel>]\n"
|
||||
@ -602,7 +604,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:824
|
||||
#: plugin.py:858
|
||||
#, docstring
|
||||
msgid ""
|
||||
"[<channel>] [<plugin>] [<command>]\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 ""
|
||||
"[<channel>] [<plugin>] [<command>]\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 ""
|
||||
"[<channel>] [--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 ""
|
||||
"[<channel>] <text>\n"
|
||||
@ -680,7 +682,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:973
|
||||
#: plugin.py:1007
|
||||
#, docstring
|
||||
msgid ""
|
||||
"[<channel>] [<reason>]\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 ""
|
||||
|
||||
|
@ -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.
|
||||
<channel> 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.
|
||||
<channel> 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):
|
||||
"""[<channel>] <nick|hostmask> [<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):
|
||||
|
@ -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!*@*')
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -23,17 +23,17 @@ Commands
|
||||
|
||||
.. _command-channelstats-channelstats:
|
||||
|
||||
channelstats [<channel>]
|
||||
``channelstats [<channel>]``
|
||||
Returns the statistics for <channel>. <channel> is only necessary if the message isn't sent on the channel itself.
|
||||
|
||||
.. _command-channelstats-rank:
|
||||
|
||||
rank [<channel>] <stat expression>
|
||||
``rank [<channel>] <stat expression>``
|
||||
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 [<channel>] [<name>]
|
||||
``stats [<channel>] [<name>]``
|
||||
Returns the statistics for <name> on <channel>. <channel> is only necessary if the message isn't sent on the channel itself. If <name> isn't given, it defaults to the user sending the command.
|
||||
|
||||
.. _conf-ChannelStats:
|
||||
|
@ -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)
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -26,92 +26,92 @@ Commands
|
||||
|
||||
.. _command-conditional-cand:
|
||||
|
||||
cand <cond1> [<cond2> ... <condN>]
|
||||
``cand <cond1> [<cond2> ... <condN>]``
|
||||
Returns true if all conditions supplied evaluate to true.
|
||||
|
||||
.. _command-conditional-ceq:
|
||||
|
||||
ceq <item1> <item2>
|
||||
``ceq <item1> <item2>``
|
||||
Does a string comparison on <item1> and <item2>. Returns true if they are equal.
|
||||
|
||||
.. _command-conditional-cerror:
|
||||
|
||||
cerror <testcommand>
|
||||
``cerror <testcommand>``
|
||||
Runs <testcommand> and returns true if it raises an error; false otherwise.
|
||||
|
||||
.. _command-conditional-cif:
|
||||
|
||||
cif <condition> <ifcommand> <elsecommand>
|
||||
``cif <condition> <ifcommand> <elsecommand>``
|
||||
Runs <ifcommand> if <condition> evaluates to true, runs <elsecommand> if it evaluates to false. Use other logical operators defined in this plugin and command nesting to your advantage here.
|
||||
|
||||
.. _command-conditional-cor:
|
||||
|
||||
cor <cond1> [<cond2> ... <condN>]
|
||||
``cor <cond1> [<cond2> ... <condN>]``
|
||||
Returns true if any one of conditions supplied evaluates to true.
|
||||
|
||||
.. _command-conditional-cxor:
|
||||
|
||||
cxor <cond1> [<cond2> ... <condN>]
|
||||
``cxor <cond1> [<cond2> ... <condN>]``
|
||||
Returns true if only one of conditions supplied evaluates to true.
|
||||
|
||||
.. _command-conditional-ge:
|
||||
|
||||
ge <item1> <item2>
|
||||
``ge <item1> <item2>``
|
||||
Does a string comparison on <item1> and <item2>. Returns true if <item1> is greater than or equal to <item2>.
|
||||
|
||||
.. _command-conditional-gt:
|
||||
|
||||
gt <item1> <item2>
|
||||
``gt <item1> <item2>``
|
||||
Does a string comparison on <item1> and <item2>. Returns true if <item1> is greater than <item2>.
|
||||
|
||||
.. _command-conditional-le:
|
||||
|
||||
le <item1> <item2>
|
||||
``le <item1> <item2>``
|
||||
Does a string comparison on <item1> and <item2>. Returns true if <item1> is less than or equal to <item2>.
|
||||
|
||||
.. _command-conditional-lt:
|
||||
|
||||
lt <item1> <item2>
|
||||
``lt <item1> <item2>``
|
||||
Does a string comparison on <item1> and <item2>. Returns true if <item1> is less than <item2>.
|
||||
|
||||
.. _command-conditional-match:
|
||||
|
||||
match [--case-insensitive] <item1> <item2>
|
||||
``match [--case-insensitive] <item1> <item2>``
|
||||
Determines if <item1> is a substring of <item2>. Returns true if <item1> is contained in <item2>. Will only match case if --case-insensitive is not given.
|
||||
|
||||
.. _command-conditional-nceq:
|
||||
|
||||
nceq <item1> <item2>
|
||||
``nceq <item1> <item2>``
|
||||
Does a numeric comparison on <item1> and <item2>. Returns true if they are equal.
|
||||
|
||||
.. _command-conditional-ne:
|
||||
|
||||
ne <item1> <item2>
|
||||
``ne <item1> <item2>``
|
||||
Does a string comparison on <item1> and <item2>. Returns true if they are not equal.
|
||||
|
||||
.. _command-conditional-nge:
|
||||
|
||||
nge <item1> <item2>
|
||||
``nge <item1> <item2>``
|
||||
Does a numeric comparison on <item1> and <item2>. Returns true if <item1> is greater than or equal to <item2>.
|
||||
|
||||
.. _command-conditional-ngt:
|
||||
|
||||
ngt <item1> <item2>
|
||||
``ngt <item1> <item2>``
|
||||
Does a numeric comparison on <item1> and <item2>. Returns true if <item1> is greater than <item2>.
|
||||
|
||||
.. _command-conditional-nle:
|
||||
|
||||
nle <item1> <item2>
|
||||
``nle <item1> <item2>``
|
||||
Does a numeric comparison on <item1> and <item2>. Returns true if <item1> is less than or equal to <item2>.
|
||||
|
||||
.. _command-conditional-nlt:
|
||||
|
||||
nlt <item1> <item2>
|
||||
``nlt <item1> <item2>``
|
||||
Does a numeric comparison on <item1> and <item2>. Returns true if <item1> is less than <item2>.
|
||||
|
||||
.. _command-conditional-nne:
|
||||
|
||||
nne <item1> <item2>
|
||||
``nne <item1> <item2>``
|
||||
Does a numeric comparison on <item1> and <item2>. Returns true if they are not equal.
|
||||
|
||||
.. _conf-Conditional:
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -21,72 +21,72 @@ Commands
|
||||
|
||||
.. _command-config-channel:
|
||||
|
||||
channel [<network>] [<channel>] <name> [<value>]
|
||||
``channel [<network>] [<channel>] <name> [<value>]``
|
||||
If <value> is given, sets the channel configuration variable for <name> to <value> for <channel> on the <network>. Otherwise, returns the current channel configuration value of <name>. <channel> 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. <network> defaults to the current network.
|
||||
|
||||
.. _command-config-config:
|
||||
|
||||
config <name> [<value>]
|
||||
``config <name> [<value>]``
|
||||
If <value> is given, sets the value of <name> to <value>. Otherwise, returns the current value of <name>. You may omit the leading "supybot." in the name if you so choose.
|
||||
|
||||
.. _command-config-default:
|
||||
|
||||
default <name>
|
||||
``default <name>``
|
||||
Returns the default value of the configuration variable <name>.
|
||||
|
||||
.. _command-config-export:
|
||||
|
||||
export <filename>
|
||||
``export <filename>``
|
||||
Exports the public variables of your configuration to <filename>. 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 <name>
|
||||
``help <name>``
|
||||
Returns the description of the configuration variable <name>.
|
||||
|
||||
.. _command-config-list:
|
||||
|
||||
list <group>
|
||||
``list <group>``
|
||||
Returns the configuration variables available under the given configuration <group>. 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>] <name> [<value>]
|
||||
``network [<network>] <name> [<value>]``
|
||||
If <value> is given, sets the network configuration variable for <name> to <value> for <network>. Otherwise, returns the current network configuration value of <name>. <network> 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 [<network>] [<channel>] <name>
|
||||
``reset channel [<network>] [<channel>] <name>``
|
||||
Resets the channel-specific value of variable <name>, so that it will match the network-specific value (or the global one if the latter isn't set). <network> and <channel> default to the current network and channel.
|
||||
|
||||
.. _command-config-reset.network:
|
||||
|
||||
reset network [<network>] [<channel>] <name>
|
||||
``reset network [<network>] [<channel>] <name>``
|
||||
Resets the network-specific value of variable <name>, so that it will match the global. <network> defaults to the current network and channel.
|
||||
|
||||
.. _command-config-search:
|
||||
|
||||
search <word>
|
||||
``search <word>``
|
||||
Searches for <word> in the current configuration variables.
|
||||
|
||||
.. _command-config-searchhelp:
|
||||
|
||||
searchhelp <phrase>
|
||||
``searchhelp <phrase>``
|
||||
Searches for <phrase> in the help of current configuration variables.
|
||||
|
||||
.. _command-config-searchvalues:
|
||||
|
||||
searchvalues <word>
|
||||
``searchvalues <word>``
|
||||
Searches for <word> in the values of current configuration variables.
|
||||
|
||||
.. _command-config-setdefault:
|
||||
|
||||
setdefault <name>
|
||||
``setdefault <name>``
|
||||
Resets the configuration variable <name> 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:
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -25,7 +25,7 @@ Commands
|
||||
|
||||
.. _command-ctcp-version:
|
||||
|
||||
version [<channel>] [--nicks]
|
||||
``version [<channel>] [--nicks]``
|
||||
Sends a CTCP VERSION to <channel>, 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:
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -25,7 +25,7 @@ Commands
|
||||
|
||||
.. _command-ddg-search:
|
||||
|
||||
search <text>
|
||||
``search <text>``
|
||||
Searches for <text> on DuckDuckGo's web search.
|
||||
|
||||
.. _conf-DDG:
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -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 - '
|
||||
|
@ -23,52 +23,52 @@ Commands
|
||||
|
||||
.. _command-debug-channeldb:
|
||||
|
||||
channeldb [<channel>]
|
||||
``channeldb [<channel>]``
|
||||
Returns the result of the channeldb converter.
|
||||
|
||||
.. _command-debug-collect:
|
||||
|
||||
collect [<times>]
|
||||
``collect [<times>]``
|
||||
Does <times> gc collections, returning the number of objects collected each time. <times> 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 <expression>
|
||||
``eval <expression>``
|
||||
Evaluates <expression> (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 <statement>
|
||||
``exec <statement>``
|
||||
Execs <code>. Returns success if it didn't raise any exceptions.
|
||||
|
||||
.. _command-debug-exn:
|
||||
|
||||
exn <exception name>
|
||||
``exn <exception name>``
|
||||
Raises the exception matching <exception name>.
|
||||
|
||||
.. _command-debug-sendquote:
|
||||
|
||||
sendquote <raw IRC message>
|
||||
``sendquote <raw IRC message>``
|
||||
Sends (not queues) the raw IRC message given.
|
||||
|
||||
.. _command-debug-settrace:
|
||||
|
||||
settrace [<filename>]
|
||||
``settrace [<filename>]``
|
||||
Starts tracing function calls to <filename>. If <filename> is not given, sys.stdout is used. This causes much output.
|
||||
|
||||
.. _command-debug-simpleeval:
|
||||
|
||||
simpleeval <expression>
|
||||
``simpleeval <expression>``
|
||||
Evaluates the given expression.
|
||||
|
||||
.. _command-debug-unsettrace:
|
||||
|
||||
unsettrace takes no arguments
|
||||
``unsettrace takes no arguments``
|
||||
Stops tracing function calls on stdout.
|
||||
|
||||
.. _conf-Debug:
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\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 ""
|
||||
"<expression>\n"
|
||||
@ -38,7 +46,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:117
|
||||
#: plugin.py:115
|
||||
#, docstring
|
||||
msgid ""
|
||||
"<statement>\n"
|
||||
@ -47,7 +55,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:127
|
||||
#: plugin.py:125
|
||||
#, docstring
|
||||
msgid ""
|
||||
"<expression>\n"
|
||||
@ -56,7 +64,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:139
|
||||
#: plugin.py:137
|
||||
#, docstring
|
||||
msgid ""
|
||||
"<exception name>\n"
|
||||
@ -65,7 +73,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:152
|
||||
#: plugin.py:150
|
||||
#, docstring
|
||||
msgid ""
|
||||
"<raw IRC message>\n"
|
||||
@ -74,7 +82,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:161
|
||||
#: plugin.py:159
|
||||
#, docstring
|
||||
msgid ""
|
||||
"[<filename>]\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 ""
|
||||
"[<channel>]\n"
|
||||
@ -102,7 +110,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:194
|
||||
#: plugin.py:192
|
||||
#, docstring
|
||||
msgid ""
|
||||
"[<times>]\n"
|
||||
@ -112,7 +120,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:207
|
||||
#: plugin.py:205
|
||||
#, docstring
|
||||
msgid ""
|
||||
"takes no arguments\n"
|
||||
|
@ -26,22 +26,22 @@ Commands
|
||||
|
||||
.. _command-dict-dict:
|
||||
|
||||
dict [<dictionary>] <word>
|
||||
``dict [<dictionary>] <word>``
|
||||
Looks up the definition of <word> 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 <word> [<word> ...]
|
||||
``synonym <word> [<word> ...]``
|
||||
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:
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -29,32 +29,32 @@ Commands
|
||||
|
||||
.. _command-dunno-add:
|
||||
|
||||
add [<channel>] <text>
|
||||
``add [<channel>] <text>``
|
||||
Adds <text> to the dunno database for <channel>. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-dunno-change:
|
||||
|
||||
change [<channel>] <id> <regexp>
|
||||
``change [<channel>] <id> <regexp>``
|
||||
Changes the dunno with id <id> according to the regular expression <regexp>. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-dunno-get:
|
||||
|
||||
get [<channel>] <id>
|
||||
``get [<channel>] <id>``
|
||||
Gets the dunno with id <id> from the dunno database for <channel>. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-dunno-remove:
|
||||
|
||||
remove [<channel>] <id>
|
||||
``remove [<channel>] <id>``
|
||||
Removes the dunno with id <id> from the dunno database for <channel>. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-dunno-search:
|
||||
|
||||
search [<channel>] [--{regexp,by} <value>] [<glob>]
|
||||
``search [<channel>] [--{regexp,by} <value>] [<glob>]``
|
||||
Searches for dunnos matching the criteria given.
|
||||
|
||||
.. _command-dunno-stats:
|
||||
|
||||
stats [<channel>]
|
||||
``stats [<channel>]``
|
||||
Returns the number of dunnos in the database for <channel>. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _conf-Dunno:
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -21,57 +21,57 @@ Commands
|
||||
|
||||
.. _command-factoids-alias:
|
||||
|
||||
alias [<channel>] <oldkey> <newkey> [<number>]
|
||||
``alias [<channel>] <oldkey> <newkey> [<number>]``
|
||||
Adds a new key <newkey> for factoid associated with <oldkey>. <number> is only necessary if there's more than one factoid associated with <oldkey>. 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 [<channel>] <key> <number> <regexp>
|
||||
``change [<channel>] <key> <number> <regexp>``
|
||||
Changes the factoid #<number> associated with <key> according to <regexp>.
|
||||
|
||||
.. _command-factoids-forget:
|
||||
|
||||
forget [<channel>] <key> [<number>|*]
|
||||
``forget [<channel>] <key> [<number>|*]``
|
||||
Removes a key-fact relationship for key <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 <key>. If as a result, the key (factoid) remains without any relationships to a factoid (key), it shall be removed from the database. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-factoids-info:
|
||||
|
||||
info [<channel>] <key>
|
||||
``info [<channel>] <key>``
|
||||
Gives information about the factoid(s) associated with <key>. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-factoids-learn:
|
||||
|
||||
learn [<channel>] <key> is <value>
|
||||
``learn [<channel>] <key> is <value>``
|
||||
Associates <key> with <value>. <channel> 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 [<channel>] <key>
|
||||
``lock [<channel>] <key>``
|
||||
Locks the factoid(s) associated with <key> so that they cannot be removed or added to. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-factoids-random:
|
||||
|
||||
random [<channel>]
|
||||
``random [<channel>]``
|
||||
Returns random factoids from the database for <channel>. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-factoids-rank:
|
||||
|
||||
rank [<channel>] [--plain] [--alpha] [<number>]
|
||||
``rank [<channel>] [--plain] [--alpha] [<number>]``
|
||||
Returns a list of top-ranked factoid keys, sorted by usage count (rank). If <number> 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. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-factoids-search:
|
||||
|
||||
search [<channel>] [--values] [--regexp <value>] [--author <username>] [<glob> ...]
|
||||
``search [<channel>] [--values] [--regexp <value>] [--author <username>] [<glob> ...]``
|
||||
Searches the keyspace for keys matching <glob>. 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 [<channel>] <key>
|
||||
``unlock [<channel>] <key>``
|
||||
Unlocks the factoid(s) associated with <key> so that they can be removed or added to. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-factoids-whatis:
|
||||
|
||||
whatis [<channel>] [--raw] <key> [<number>]
|
||||
``whatis [<channel>] [--raw] <key> [<number>]``
|
||||
Looks up the value of <key> 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. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _conf-Factoids:
|
||||
|
@ -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 <mikaela.suomalainen@outlook.com>\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."
|
||||
|
||||
|
@ -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 <progval@gmail.com>\n"
|
||||
@ -410,11 +410,11 @@ msgstr ""
|
||||
"est donné, recherche parmi les valeurs, plutôt que parmi les clefs. <canal> "
|
||||
"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."
|
||||
|
@ -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 <skizzhg@gmx.com>\n"
|
||||
"Language-Team: Italian <skizzhg@gmx.com>\n"
|
||||
@ -213,8 +213,8 @@ msgstr ""
|
||||
" <numero> è necessario solo se c'è più di un factoid associato a "
|
||||
"<chiave vecchia>.\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."
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\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 ""
|
||||
|
||||
|
@ -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.'))
|
||||
|
@ -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')
|
||||
|
@ -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 <url>
|
||||
``status <url>``
|
||||
Shows the content of the status at <url>.
|
||||
|
||||
.. _command-fediverse-statuses:
|
||||
|
||||
statuses <@user@instance>
|
||||
``statuses <@user@instance>``
|
||||
Returned the last statuses of @user@instance.
|
||||
|
||||
.. _conf-Fediverse:
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\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 "<error: %s>"
|
||||
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 ""
|
||||
"<url>\n"
|
||||
@ -134,7 +138,7 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:429
|
||||
#: plugin.py:473
|
||||
msgid "Could not get status: %s"
|
||||
msgstr ""
|
||||
|
||||
|
@ -31,147 +31,147 @@ Commands
|
||||
|
||||
.. _command-filter-aol:
|
||||
|
||||
aol <text>
|
||||
``aol <text>``
|
||||
Returns <text> as if an AOL user had said it.
|
||||
|
||||
.. _command-filter-binary:
|
||||
|
||||
binary <text>
|
||||
``binary <text>``
|
||||
Returns the binary representation of <text>.
|
||||
|
||||
.. _command-filter-caps:
|
||||
|
||||
caps <text>
|
||||
``caps <text>``
|
||||
EVERYONE LOVES CAPS LOCK.
|
||||
|
||||
.. _command-filter-capwords:
|
||||
|
||||
capwords <text>
|
||||
``capwords <text>``
|
||||
Capitalises the first letter of each word.
|
||||
|
||||
.. _command-filter-colorize:
|
||||
|
||||
colorize <text>
|
||||
``colorize <text>``
|
||||
Returns <text> with each character randomly colorized.
|
||||
|
||||
.. _command-filter-gnu:
|
||||
|
||||
gnu <text>
|
||||
``gnu <text>``
|
||||
Returns <text> as GNU/RMS would say it.
|
||||
|
||||
.. _command-filter-hebrew:
|
||||
|
||||
hebrew <text>
|
||||
``hebrew <text>``
|
||||
Removes all the vowels from <text>. (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 <text>
|
||||
``hexlify <text>``
|
||||
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 <text>
|
||||
``jeffk <text>``
|
||||
Returns <text> as if JeffK had said it himself.
|
||||
|
||||
.. _command-filter-leet:
|
||||
|
||||
leet <text>
|
||||
``leet <text>``
|
||||
Returns the l33tspeak version of <text>
|
||||
|
||||
.. _command-filter-morse:
|
||||
|
||||
morse <text>
|
||||
``morse <text>``
|
||||
Gives the Morse code equivalent of a given string.
|
||||
|
||||
.. _command-filter-outfilter:
|
||||
|
||||
outfilter [<channel>] [<command>]
|
||||
``outfilter [<channel>] [<command>]``
|
||||
Sets the outFilter of this plugin to be <command>. If no command is given, unsets the outFilter. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-filter-rainbow:
|
||||
|
||||
rainbow <text>
|
||||
``rainbow <text>``
|
||||
Returns <text> colorized like a rainbow.
|
||||
|
||||
.. _command-filter-reverse:
|
||||
|
||||
reverse <text>
|
||||
``reverse <text>``
|
||||
Reverses <text>.
|
||||
|
||||
.. _command-filter-rot13:
|
||||
|
||||
rot13 <text>
|
||||
``rot13 <text>``
|
||||
Rotates <text> 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 <text>
|
||||
``scramble <text>``
|
||||
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 <text>
|
||||
``shrink <text>``
|
||||
Returns <text> with each word longer than supybot.plugins.Filter.shrink.minimum being shrunken (i.e., like "internationalization" becomes "i18n").
|
||||
|
||||
.. _command-filter-spellit:
|
||||
|
||||
spellit <text>
|
||||
``spellit <text>``
|
||||
Returns <text>, phonetically spelled out.
|
||||
|
||||
.. _command-filter-squish:
|
||||
|
||||
squish <text>
|
||||
``squish <text>``
|
||||
Removes all the spaces from <text>.
|
||||
|
||||
.. _command-filter-stripcolor:
|
||||
|
||||
stripcolor <text>
|
||||
``stripcolor <text>``
|
||||
Returns <text> stripped of all color codes.
|
||||
|
||||
.. _command-filter-stripformatting:
|
||||
|
||||
stripformatting <text>
|
||||
``stripformatting <text>``
|
||||
Strips bold, underline, and colors from <text>.
|
||||
|
||||
.. _command-filter-supa1337:
|
||||
|
||||
supa1337 <text>
|
||||
``supa1337 <text>``
|
||||
Replies with an especially k-rad translation of <text>.
|
||||
|
||||
.. _command-filter-unbinary:
|
||||
|
||||
unbinary <text>
|
||||
``unbinary <text>``
|
||||
Returns the character representation of binary <text>. Assumes ASCII, 8 digits per character.
|
||||
|
||||
.. _command-filter-undup:
|
||||
|
||||
undup <text>
|
||||
``undup <text>``
|
||||
Returns <text>, with all consecutive duplicated letters removed.
|
||||
|
||||
.. _command-filter-unhexlify:
|
||||
|
||||
unhexlify <hexstring>
|
||||
``unhexlify <hexstring>``
|
||||
Returns the string corresponding to <hexstring>. Obviously, <hexstring> must be a string of hexadecimal digits.
|
||||
|
||||
.. _command-filter-uniud:
|
||||
|
||||
uniud <text>
|
||||
``uniud <text>``
|
||||
Returns <text> rotated 180 degrees. Only really works for ASCII printable characters.
|
||||
|
||||
.. _command-filter-unmorse:
|
||||
|
||||
unmorse <Morse code text>
|
||||
``unmorse <Morse code text>``
|
||||
Does the reverse of the morse command.
|
||||
|
||||
.. _command-filter-uwu:
|
||||
|
||||
uwu <text>
|
||||
``uwu <text>``
|
||||
Returns <text> in uwu-speak.
|
||||
|
||||
.. _command-filter-vowelrot:
|
||||
|
||||
vowelrot <text>
|
||||
``vowelrot <text>``
|
||||
Returns <text> with vowels rotated
|
||||
|
||||
.. _conf-Filter:
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -24,82 +24,82 @@ Commands
|
||||
|
||||
.. _command-format-bold:
|
||||
|
||||
bold <text>
|
||||
``bold <text>``
|
||||
Returns <text> bolded.
|
||||
|
||||
.. _command-format-capitalize:
|
||||
|
||||
capitalize <text>
|
||||
``capitalize <text>``
|
||||
Returns <text> capitalized.
|
||||
|
||||
.. _command-format-color:
|
||||
|
||||
color <foreground> [<background>] <text>
|
||||
``color <foreground> [<background>] <text>``
|
||||
Returns <text> with foreground color <foreground> and background color <background> (if given)
|
||||
|
||||
.. _command-format-concat:
|
||||
|
||||
concat <string 1> <string 2>
|
||||
``concat <string 1> <string 2>``
|
||||
Concatenates two strings. Do keep in mind that this is *not* the same thing as join "", since if <string 2> contains spaces, they won't be removed by concat.
|
||||
|
||||
.. _command-format-cut:
|
||||
|
||||
cut <size> <text>
|
||||
``cut <size> <text>``
|
||||
Cuts <text> down to <size> by chopping off the rightmost characters in excess of <size>. If <size> is a negative number, it chops that many characters off the end of <text>.
|
||||
|
||||
.. _command-format-field:
|
||||
|
||||
field <number> <text>
|
||||
``field <number> <text>``
|
||||
Returns the <number>th space-separated field of <text>. I.e., if text is "foo bar baz" and <number> is 2, "bar" is returned.
|
||||
|
||||
.. _command-format-format:
|
||||
|
||||
format <format string> [<arg> ...]
|
||||
``format <format string> [<arg> ...]``
|
||||
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 <separator> <string 1> [<string> ...]
|
||||
``join <separator> <string 1> [<string> ...]``
|
||||
Joins all the arguments together with <separator>.
|
||||
|
||||
.. _command-format-lower:
|
||||
|
||||
lower <text>
|
||||
``lower <text>``
|
||||
Returns <text> lowercased.
|
||||
|
||||
.. _command-format-replace:
|
||||
|
||||
replace <substring to translate> <substring to replace it with> <text>
|
||||
``replace <substring to translate> <substring to replace it with> <text>``
|
||||
Replaces all non-overlapping occurrences of <substring to translate> with <substring to replace it with> in <text>.
|
||||
|
||||
.. _command-format-repr:
|
||||
|
||||
repr <text>
|
||||
``repr <text>``
|
||||
Returns <text> surrounded by double quotes.
|
||||
|
||||
.. _command-format-reverse:
|
||||
|
||||
reverse <text>
|
||||
``reverse <text>``
|
||||
Returns <text> in reverse-video.
|
||||
|
||||
.. _command-format-title:
|
||||
|
||||
title <text>
|
||||
``title <text>``
|
||||
Returns <text> titlecased.
|
||||
|
||||
.. _command-format-translate:
|
||||
|
||||
translate <chars to translate> <chars to replace those with> <text>
|
||||
``translate <chars to translate> <chars to replace those with> <text>``
|
||||
Replaces <chars to translate> with <chars to replace those with> in <text>. The first and second arguments must necessarily be the same length.
|
||||
|
||||
.. _command-format-underline:
|
||||
|
||||
underline <text>
|
||||
``underline <text>``
|
||||
Returns <text> underlined.
|
||||
|
||||
.. _command-format-upper:
|
||||
|
||||
upper <text>
|
||||
``upper <text>``
|
||||
Returns <text> uppercased.
|
||||
|
||||
.. _conf-Format:
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -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::
|
||||
|
||||
<Mikaela> +gpg add 0x0C207F07B2F32B67 pool.sks-keyservers.net
|
||||
<Yvzabevn> 1 key imported, 0 unchanged, 0 not imported.
|
||||
|
||||
Now I can get token to sign so I can identify::
|
||||
|
||||
<Guest45020> +gpg gettoken
|
||||
<Yvzabevn> 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::
|
||||
|
||||
<Guest45020> +gpg auth http://sprunge.us/DUdd
|
||||
<Yvzabevn> You are now authenticated as Mikaela.
|
||||
|
||||
.. _commands-GPG:
|
||||
|
||||
Commands
|
||||
@ -20,27 +50,27 @@ Commands
|
||||
|
||||
.. _command-gpg-key.add:
|
||||
|
||||
key add <key id> <key server>
|
||||
``key add <key id> <key server>``
|
||||
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 <fingerprint>
|
||||
``key remove <fingerprint>``
|
||||
Remove a GPG key from your account.
|
||||
|
||||
.. _command-gpg-signing.auth:
|
||||
|
||||
signing auth <url>
|
||||
``signing auth <url>``
|
||||
Check the GPG signature at the <url> 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:
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\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"
|
||||
" <Mikaela> +gpg add 0x0C207F07B2F32B67 pool.sks-keyservers.net\n"
|
||||
" <Yvzabevn> 1 key imported, 0 unchanged, 0 not imported.\n"
|
||||
"\n"
|
||||
" Now I can get token to sign so I can identify::\n"
|
||||
"\n"
|
||||
" <Guest45020> +gpg gettoken\n"
|
||||
" <Yvzabevn> 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"
|
||||
" <Guest45020> +gpg auth http://sprunge.us/DUdd\n"
|
||||
" <Yvzabevn> You are now authenticated as Mikaela.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:96
|
||||
#: plugin.py:127
|
||||
#, docstring
|
||||
msgid ""
|
||||
"<key id> <key server>\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 ""
|
||||
"<fingerprint>\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 ""
|
||||
"<url>\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 ""
|
||||
|
||||
|
@ -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::
|
||||
|
||||
<Mikaela> +gpg add 0x0C207F07B2F32B67 pool.sks-keyservers.net
|
||||
<Yvzabevn> 1 key imported, 0 unchanged, 0 not imported.
|
||||
|
||||
Now I can get token to sign so I can identify::
|
||||
|
||||
<Guest45020> +gpg gettoken
|
||||
<Yvzabevn> 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::
|
||||
|
||||
<Guest45020> +gpg auth http://sprunge.us/DUdd
|
||||
<Yvzabevn> You are now authenticated as Mikaela.
|
||||
"""
|
||||
class key(callbacks.Commands):
|
||||
@check_gpg_available
|
||||
def add(self, irc, msg, args, user, keyid, keyserver):
|
||||
|
@ -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 <dice>d<sides>
|
||||
``dice <dice>d<sides>``
|
||||
Rolls a die with <sides> number of sides <dice> times. For example, 2d6 will roll 2 six-sided dice; 10d10 will roll 10 ten-sided dice.
|
||||
|
||||
.. _command-games-eightball:
|
||||
|
||||
eightball [<question>]
|
||||
``eightball [<question>]``
|
||||
Ask a question and the answer shall be provided.
|
||||
|
||||
.. _command-games-monologue:
|
||||
|
||||
monologue [<channel>]
|
||||
``monologue [<channel>]``
|
||||
Returns the number of consecutive lines you've sent in <channel> without being interrupted by someone else (i.e. how long your current 'monologue' is). <channel> 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:
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\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 ""
|
||||
"<location name to search>\n"
|
||||
|
@ -45,17 +45,17 @@ Commands
|
||||
|
||||
.. _command-google-google:
|
||||
|
||||
google <search> [--{filter,language} <value>]
|
||||
``google <search> [--{filter,language} <value>]``
|
||||
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] <search>
|
||||
``lucky [--snippet] <search>``
|
||||
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 <source language> [to] <target language> <text>
|
||||
``translate <source language> [to] <target language> <text>``
|
||||
Returns <text> translated from <source language> into <target language>. <source language> and <target language> take language codes (not language names), which are listed here: https://cloud.google.com/translate/docs/languages
|
||||
|
||||
.. _conf-Google:
|
||||
|
@ -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 <mikaela.suomalainen@outlook.com>\n"
|
||||
"Language-Team: \n"
|
||||
@ -215,44 +215,12 @@ msgstr ""
|
||||
" hyväksyy suodatus tason ('active', 'moderate', 'off').\n"
|
||||
" "
|
||||
|
||||
#: plugin.py:236
|
||||
msgid ""
|
||||
"<url>\n"
|
||||
"\n"
|
||||
" Returns a link to the cached version of <url> if it is available.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<url>\n"
|
||||
"\n"
|
||||
" Palauttaa linkin <url:in> 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 ""
|
||||
"<search string> <search string> [<search string> ...]\n"
|
||||
"\n"
|
||||
" Returns the results of each search, in order, from greatest number\n"
|
||||
" of results to least.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<hakumerkkijono> <hakumerkkijono> [<hakumerkkijono> ...]\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 ""
|
||||
"<source language> [to] <target language> <text>\n"
|
||||
@ -268,37 +236,65 @@ msgstr ""
|
||||
" Kääntää <tekstin> <lähdekielestä> <kohdekieleksi>.\n"
|
||||
" "
|
||||
|
||||
#: plugin.py:325
|
||||
#: plugin.py:279
|
||||
msgid "^google\\s+(.*)$"
|
||||
msgstr "^google\\s+(.*)$"
|
||||
|
||||
#: plugin.py:347
|
||||
msgid ""
|
||||
"<expression>\n"
|
||||
"\n"
|
||||
" Uses Google's calculator to calculate the value of <expression>.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<lauseke>\n"
|
||||
"\n"
|
||||
" Käyttää Googlen laskinta laskeakseen <lausekkeen> arvon.\n"
|
||||
" "
|
||||
#~ msgid ""
|
||||
#~ "<url>\n"
|
||||
#~ "\n"
|
||||
#~ " Returns a link to the cached version of <url> if it is "
|
||||
#~ "available.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "<url>\n"
|
||||
#~ "\n"
|
||||
#~ " Palauttaa linkin <url:in> välimuistissa olevaan versioon, jos se "
|
||||
#~ "on saatavilla.\n"
|
||||
#~ " "
|
||||
|
||||
#: plugin.py:378
|
||||
msgid ""
|
||||
"<phone number>\n"
|
||||
"\n"
|
||||
" Looks <phone number> up on Google.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<puhelinnumero>\n"
|
||||
"\n"
|
||||
" Etsii <puhelinnumeroa> 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 ""
|
||||
#~ "<search string> <search string> [<search string> ...]\n"
|
||||
#~ "\n"
|
||||
#~ " Returns the results of each search, in order, from greatest "
|
||||
#~ "number\n"
|
||||
#~ " of results to least.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "<hakumerkkijono> <hakumerkkijono> [<hakumerkkijono> ...]\n"
|
||||
#~ "\n"
|
||||
#~ " Palauttaa tulokset jokaiselle haulle järjestyksessä suurimmasta "
|
||||
#~ "numerosta\n"
|
||||
#~ " pienimpään.\n"
|
||||
#~ " "
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<expression>\n"
|
||||
#~ "\n"
|
||||
#~ " Uses Google's calculator to calculate the value of <expression>.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "<lauseke>\n"
|
||||
#~ "\n"
|
||||
#~ " Käyttää Googlen laskinta laskeakseen <lausekkeen> arvon.\n"
|
||||
#~ " "
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<phone number>\n"
|
||||
#~ "\n"
|
||||
#~ " Looks <phone number> up on Google.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "<puhelinnumero>\n"
|
||||
#~ "\n"
|
||||
#~ " Etsii <puhelinnumeroa> 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"
|
||||
|
@ -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 <progval@gmail.com>\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 ""
|
||||
"<url>\n"
|
||||
"\n"
|
||||
" Returns a link to the cached version of <url> if it is available.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<url>\n"
|
||||
"\n"
|
||||
"Retourne un lien vers la version en cache de l'<url>, 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 ""
|
||||
"<search string> <search string> [<search string> ...]\n"
|
||||
"\n"
|
||||
" Returns the results of each search, in order, from greatest number\n"
|
||||
" of results to least.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<chaîne 1> <chaîne 2> [<chaîne 3> ...]\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 ""
|
||||
"<source language> [to] <target language> <text>\n"
|
||||
@ -250,35 +222,60 @@ msgstr ""
|
||||
"Retourne le <texte>, traduire de la <langue de départ> vers la <langue "
|
||||
"finale>."
|
||||
|
||||
#: plugin.py:325
|
||||
#: plugin.py:279
|
||||
msgid "^google\\s+(.*)$"
|
||||
msgstr "^google\\s+(.*)$"
|
||||
|
||||
#: plugin.py:347
|
||||
msgid ""
|
||||
"<expression>\n"
|
||||
"\n"
|
||||
" Uses Google's calculator to calculate the value of <expression>.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<expression>\n"
|
||||
"\n"
|
||||
"Utilise la calculatrice Google pour calculer la valeur de l'<expression>."
|
||||
#~ msgid ""
|
||||
#~ "<url>\n"
|
||||
#~ "\n"
|
||||
#~ " Returns a link to the cached version of <url> if it is "
|
||||
#~ "available.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "<url>\n"
|
||||
#~ "\n"
|
||||
#~ "Retourne un lien vers la version en cache de l'<url>, si elle est "
|
||||
#~ "disponible."
|
||||
|
||||
#: plugin.py:378
|
||||
msgid ""
|
||||
"<phone number>\n"
|
||||
"\n"
|
||||
" Looks <phone number> up on Google.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<numéro de téléphone>\n"
|
||||
"\n"
|
||||
"Recherche le <numéro de téléphone> 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 ""
|
||||
#~ "<search string> <search string> [<search string> ...]\n"
|
||||
#~ "\n"
|
||||
#~ " Returns the results of each search, in order, from greatest "
|
||||
#~ "number\n"
|
||||
#~ " of results to least.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "<chaîne 1> <chaîne 2> [<chaîne 3> ...]\n"
|
||||
#~ "\n"
|
||||
#~ "Retourne les résultats de chaque recherche, dans l'ordre, par ordre "
|
||||
#~ "croissant du nombre de résultats."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<expression>\n"
|
||||
#~ "\n"
|
||||
#~ " Uses Google's calculator to calculate the value of <expression>.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "<expression>\n"
|
||||
#~ "\n"
|
||||
#~ "Utilise la calculatrice Google pour calculer la valeur de l'<expression>."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<phone number>\n"
|
||||
#~ "\n"
|
||||
#~ " Looks <phone number> up on Google.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "<numéro de téléphone>\n"
|
||||
#~ "\n"
|
||||
#~ "Recherche le <numéro de téléphone> 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 !"
|
||||
|
@ -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 <skizzhg@gmx.com>\n"
|
||||
"Language-Team: Italian <skizzhg@gmx.com>\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 ""
|
||||
"<url>\n"
|
||||
"\n"
|
||||
" Returns a link to the cached version of <url> if it is available.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<url>\n"
|
||||
"\n"
|
||||
" Restituisce un link della versione in cache di <url>, 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 ""
|
||||
"<search string> <search string> [<search string> ...]\n"
|
||||
"\n"
|
||||
" Returns the results of each search, in order, from greatest number\n"
|
||||
" of results to least.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<stringa di ricerca> <stringa di ricerca> [<stringa di ricerca> ...]\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 ""
|
||||
"<source language> [to] <target language> <text>\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 ""
|
||||
"<expression>\n"
|
||||
"\n"
|
||||
" Uses Google's calculator to calculate the value of <expression>.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<espressione>\n"
|
||||
"\n"
|
||||
" Utilizza la calcolatrice di Google per calcolare il valore di "
|
||||
"<espressione>.\n"
|
||||
" "
|
||||
#~ msgid ""
|
||||
#~ "<url>\n"
|
||||
#~ "\n"
|
||||
#~ " Returns a link to the cached version of <url> if it is "
|
||||
#~ "available.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "<url>\n"
|
||||
#~ "\n"
|
||||
#~ " Restituisce un link della versione in cache di <url>, se "
|
||||
#~ "disponibile.\n"
|
||||
#~ " "
|
||||
|
||||
#: plugin.py:378
|
||||
msgid ""
|
||||
"<phone number>\n"
|
||||
"\n"
|
||||
" Looks <phone number> up on Google.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<numero telefonico>\n"
|
||||
"\n"
|
||||
" Cerca <numero telefonico> 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 ""
|
||||
#~ "<search string> <search string> [<search string> ...]\n"
|
||||
#~ "\n"
|
||||
#~ " Returns the results of each search, in order, from greatest "
|
||||
#~ "number\n"
|
||||
#~ " of results to least.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "<stringa di ricerca> <stringa di ricerca> [<stringa di ricerca> ...]\n"
|
||||
#~ "\n"
|
||||
#~ " Restituisce i risultati di ogni ricerca in ordine decrescente in "
|
||||
#~ "base al numero di risultati.\n"
|
||||
#~ " "
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<expression>\n"
|
||||
#~ "\n"
|
||||
#~ " Uses Google's calculator to calculate the value of <expression>.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "<espressione>\n"
|
||||
#~ "\n"
|
||||
#~ " Utilizza la calcolatrice di Google per calcolare il valore di "
|
||||
#~ "<espressione>.\n"
|
||||
#~ " "
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<phone number>\n"
|
||||
#~ "\n"
|
||||
#~ " Looks <phone number> up on Google.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "<numero telefonico>\n"
|
||||
#~ "\n"
|
||||
#~ " Cerca <numero telefonico> 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!"
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -168,34 +168,11 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:236
|
||||
#, docstring
|
||||
msgid ""
|
||||
"<url>\n"
|
||||
"\n"
|
||||
" Returns a link to the cached version of <url> 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 ""
|
||||
"<search string> <search string> [<search string> ...]\n"
|
||||
"\n"
|
||||
" Returns the results of each search, in order, from greatest number\n"
|
||||
" of results to least.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:309
|
||||
#: plugin.py:263
|
||||
msgid "No translations found."
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:313
|
||||
#: plugin.py:267
|
||||
#, docstring
|
||||
msgid ""
|
||||
"<source language> [to] <target language> <text>\n"
|
||||
@ -207,30 +184,8 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:325
|
||||
#: plugin.py:279
|
||||
#, docstring
|
||||
msgid "^google\\s+(.*)$"
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:347
|
||||
#, docstring
|
||||
msgid ""
|
||||
"<expression>\n"
|
||||
"\n"
|
||||
" Uses Google's calculator to calculate the value of <expression>.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:378
|
||||
#, docstring
|
||||
msgid ""
|
||||
"<phone number>\n"
|
||||
"\n"
|
||||
" Looks <phone number> up on Google.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:392
|
||||
msgid "Google's phonebook didn't come up with anything."
|
||||
msgstr ""
|
||||
|
||||
|
@ -20,32 +20,32 @@ Commands
|
||||
|
||||
.. _command-hashes-algorithms:
|
||||
|
||||
algorithms <takes no arguments>
|
||||
``algorithms <takes no arguments>``
|
||||
Returns the list of available algorithms.
|
||||
|
||||
.. _command-hashes-md5:
|
||||
|
||||
md5 <text>
|
||||
``md5 <text>``
|
||||
Returns the md5 hash of a given string.
|
||||
|
||||
.. _command-hashes-mkhash:
|
||||
|
||||
mkhash <algorithm> <text>
|
||||
``mkhash <algorithm> <text>``
|
||||
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 <text>
|
||||
``sha <text>``
|
||||
Returns the SHA1 hash of a given string.
|
||||
|
||||
.. _command-hashes-sha256:
|
||||
|
||||
sha256 <text>
|
||||
``sha256 <text>``
|
||||
Returns a SHA256 hash of the given string.
|
||||
|
||||
.. _command-hashes-sha512:
|
||||
|
||||
sha512 <text>
|
||||
``sha512 <text>``
|
||||
Returns a SHA512 hash of the given string.
|
||||
|
||||
.. _conf-Hashes:
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -22,27 +22,27 @@ Commands
|
||||
|
||||
.. _command-herald-add:
|
||||
|
||||
add [<channel>] <user|nick> <msg>
|
||||
``add [<channel>] <user|nick> <msg>``
|
||||
Sets the herald message for <user> (or the user <nick|hostmask> is currently identified or recognized as) to <msg>. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-herald-change:
|
||||
|
||||
change [<channel>] [<user|nick>] <regexp>
|
||||
``change [<channel>] [<user|nick>] <regexp>``
|
||||
Changes the herald message for <user>, or the user <nick|hostmask> is currently identified or recognized as, according to <regexp>. If <user> is not given, defaults to the calling user. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-herald-default:
|
||||
|
||||
default [<channel>] [--remove|<msg>]
|
||||
``default [<channel>] [--remove|<msg>]``
|
||||
If <msg> is given, sets the default herald to <msg>. A <msg> of "" will remove the default herald. If <msg> is not given, returns the current default herald. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-herald-get:
|
||||
|
||||
get [<channel>] [<user|nick>]
|
||||
``get [<channel>] [<user|nick>]``
|
||||
Returns the current herald message for <user> (or the user <nick|hostmask> is currently identified or recognized as). If <user> is not given, defaults to the user giving the command. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-herald-remove:
|
||||
|
||||
remove [<channel>] [<user|nick>]
|
||||
``remove [<channel>] [<user|nick>]``
|
||||
Removes the herald message set for <user>, or the user <nick|hostmask> is currently identified or recognized as. If <user> is not given, defaults to the user giving the command. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _conf-Herald:
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -22,17 +22,17 @@ Commands
|
||||
|
||||
.. _command-internet-dns:
|
||||
|
||||
dns <host|ip>
|
||||
``dns <host|ip>``
|
||||
Returns the ip of <host> or the reverse DNS hostname of <ip>.
|
||||
|
||||
.. _command-internet-hexip:
|
||||
|
||||
hexip <ip>
|
||||
``hexip <ip>``
|
||||
Returns the hexadecimal IP for that IP.
|
||||
|
||||
.. _command-internet-whois:
|
||||
|
||||
whois <domain>
|
||||
``whois <domain>``
|
||||
Returns WHOIS information on the registration of <domain>.
|
||||
|
||||
.. _conf-Internet:
|
||||
|
@ -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 <mikaela.suomalainen@outlook.com>\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 ""
|
||||
"<host|ip>\n"
|
||||
"\n"
|
||||
@ -39,11 +39,11 @@ msgstr ""
|
||||
" Palauttaa <isännän> ip:een tai <ip:een> 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 ""
|
||||
"<domain>\n"
|
||||
"\n"
|
||||
@ -55,35 +55,35 @@ msgstr ""
|
||||
" Palauttaa WHOIS tiedot <verkkotunnusten> 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 " <registered at %s>"
|
||||
msgstr " <rekisteröity aikaan %s>"
|
||||
|
||||
#: plugin.py:177
|
||||
#: plugin.py:176
|
||||
msgid " <registered by %s>"
|
||||
msgstr " <rekisteröinyt %s>"
|
||||
|
||||
#: 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 ""
|
||||
"<ip>\n"
|
||||
"\n"
|
||||
|
@ -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 <progval@gmail.com>\n"
|
||||
"Language-Team: Limnoria <progval@gmail.com>\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 ""
|
||||
"<host|ip>\n"
|
||||
"\n"
|
||||
@ -30,11 +30,11 @@ msgstr ""
|
||||
"\n"
|
||||
"Retourne l'ip de l'<hôte>, ou le reverse DNS de l'<ip>"
|
||||
|
||||
#: 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 ""
|
||||
"<domain>\n"
|
||||
"\n"
|
||||
@ -45,35 +45,35 @@ msgstr ""
|
||||
"\n"
|
||||
"Retourne les informations du WHOIS sur le <domaine>."
|
||||
|
||||
#: 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 " <registered at %s>"
|
||||
msgstr " <enregistré le %s>"
|
||||
|
||||
#: plugin.py:177
|
||||
#: plugin.py:176
|
||||
msgid " <registered by %s>"
|
||||
msgstr " <enregistré par %s>"
|
||||
|
||||
#: 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 ""
|
||||
"<ip>\n"
|
||||
"\n"
|
||||
|
@ -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 <skizzhg@gmx.com>\n"
|
||||
"Language-Team: Italian <skizzhg@gmx.com>\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 ""
|
||||
"<host|ip>\n"
|
||||
"\n"
|
||||
@ -28,11 +28,11 @@ msgstr ""
|
||||
" Restituisce l'ip di <host> o il DNS inverso di <ip>.\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 ""
|
||||
"<domain>\n"
|
||||
"\n"
|
||||
@ -44,35 +44,35 @@ msgstr ""
|
||||
" Restituisce le informazioni WHOIS sulla registrazione di <dominio>.\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 " <registered at %s>"
|
||||
msgstr " <registrato il %s>"
|
||||
|
||||
#: plugin.py:177
|
||||
#: plugin.py:176
|
||||
msgid " <registered by %s>"
|
||||
msgstr " <registrato da %s>"
|
||||
|
||||
#: 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 ""
|
||||
"<ip>\n"
|
||||
"\n"
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\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 ""
|
||||
"<host|ip>\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 ""
|
||||
"<domain>\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 " <registered at %s>"
|
||||
msgstr ""
|
||||
|
||||
#: plugin.py:177
|
||||
#: plugin.py:176
|
||||
msgid " <registered by %s>"
|
||||
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 ""
|
||||
"<ip>\n"
|
||||
|
@ -33,27 +33,27 @@ Commands
|
||||
|
||||
.. _command-karma-clear:
|
||||
|
||||
clear [<channel>] [<name>]
|
||||
``clear [<channel>] [<name>]``
|
||||
Resets the karma of <name> to 0. If <name> is not given, resets everything.
|
||||
|
||||
.. _command-karma-dump:
|
||||
|
||||
dump [<channel>] <filename>
|
||||
``dump [<channel>] <filename>``
|
||||
Dumps the Karma database for <channel> to <filename> in the bot's data directory. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-karma-karma:
|
||||
|
||||
karma [<channel>] [<thing> ...]
|
||||
``karma [<channel>] [<thing> ...]``
|
||||
Returns the karma of <thing>. If <thing> is not given, returns the top N karmas, where N is determined by the config variable supybot.plugins.Karma.rankingDisplay. If one <thing> is given, returns the details of its karma; if more than one <thing> is given, returns the total karma of each of the things. <channel> is only necessary if the message isn't sent on the channel itself.
|
||||
|
||||
.. _command-karma-load:
|
||||
|
||||
load [<channel>] <filename>
|
||||
``load [<channel>] <filename>``
|
||||
Loads the Karma database for <channel> from <filename> in the bot's data directory. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-karma-most:
|
||||
|
||||
most [<channel>] {increased,decreased,active}
|
||||
``most [<channel>] {increased,decreased,active}``
|
||||
Returns the most increased, the most decreased, or the most active (the sum of increased and decreased) karma things. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _conf-Karma:
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -28,37 +28,37 @@ Commands
|
||||
|
||||
.. _command-lart-add:
|
||||
|
||||
add [<channel>] <text>
|
||||
``add [<channel>] <text>``
|
||||
Adds <text> to the lart database for <channel>. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-lart-change:
|
||||
|
||||
change [<channel>] <id> <regexp>
|
||||
``change [<channel>] <id> <regexp>``
|
||||
Changes the lart with id <id> according to the regular expression <regexp>. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-lart-get:
|
||||
|
||||
get [<channel>] <id>
|
||||
``get [<channel>] <id>``
|
||||
Gets the lart with id <id> from the lart database for <channel>. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-lart-lart:
|
||||
|
||||
lart [<channel>] [<id>] <who|what> [for <reason>]
|
||||
``lart [<channel>] [<id>] <who|what> [for <reason>]``
|
||||
Uses the Luser Attitude Readjustment Tool on <who|what> (for <reason>, if given). If <id> is given, uses that specific lart. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-lart-remove:
|
||||
|
||||
remove [<channel>] <id>
|
||||
``remove [<channel>] <id>``
|
||||
Removes the lart with id <id> from the lart database for <channel>. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _command-lart-search:
|
||||
|
||||
search [<channel>] [--{regexp,by} <value>] [<glob>]
|
||||
``search [<channel>] [--{regexp,by} <value>] [<glob>]``
|
||||
Searches for larts matching the criteria given.
|
||||
|
||||
.. _command-lart-stats:
|
||||
|
||||
stats [<channel>]
|
||||
``stats [<channel>]``
|
||||
Returns the number of larts in the database for <channel>. <channel> is only necessary if the message isn't sent in the channel itself.
|
||||
|
||||
.. _conf-Lart:
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -48,22 +48,22 @@ Commands
|
||||
|
||||
.. _command-later-notes:
|
||||
|
||||
notes [<nick>]
|
||||
``notes [<nick>]``
|
||||
If <nick> is given, replies with what notes are waiting on <nick>, otherwise, replies with the nicks that have notes waiting for them.
|
||||
|
||||
.. _command-later-remove:
|
||||
|
||||
remove <nick>
|
||||
``remove <nick>``
|
||||
Removes the notes waiting on <nick>.
|
||||
|
||||
.. _command-later-tell:
|
||||
|
||||
tell <nick1[,nick2[,...]]> <text>
|
||||
``tell <nick1[,nick2[,...]]> <text>``
|
||||
Tells each <nickX> <text> the next time <nickX> is seen. <nickX> can contain wildcard characters, and the first matching nick will be given the note.
|
||||
|
||||
.. _command-later-undo:
|
||||
|
||||
undo <nick>
|
||||
``undo <nick>``
|
||||
Removes the latest note you sent to <nick>.
|
||||
|
||||
.. _conf-Later:
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -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 <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\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 ""
|
||||
|
||||
|
@ -22,32 +22,32 @@ Commands
|
||||
|
||||
.. _command-math-base:
|
||||
|
||||
base <fromBase> [<toBase>] <number>
|
||||
``base <fromBase> [<toBase>] <number>``
|
||||
Converts <number> from base <fromBase> to base <toBase>. If <toBase> is left out, it converts to decimal.
|
||||
|
||||
.. _command-math-calc:
|
||||
|
||||
calc <math expression>
|
||||
``calc <math expression>``
|
||||
Returns the value of the evaluated <math expression>. 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 [<number>] <unit> to <other unit>
|
||||
``convert [<number>] <unit> to <other unit>``
|
||||
Converts from <unit> to <other unit>. If number isn't given, it defaults to 1. For unit information, see 'units' command.
|
||||
|
||||
.. _command-math-icalc:
|
||||
|
||||
icalc <math expression>
|
||||
``icalc <math expression>``
|
||||
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 math expression>
|
||||
``rpn <rpn math expression>``
|
||||
Returns the value of an RPN expression.
|
||||
|
||||
.. _command-math-units:
|
||||
|
||||
units [<type>]
|
||||
``units [<type>]``
|
||||
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:
|
||||
|
@ -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 <mikaela.suomalainen@outlook.com>\n"
|
||||
"Language-Team: \n"
|
||||
@ -117,7 +117,7 @@ msgstr ""
|
||||
" 'trusted' valtuuden.\n"
|
||||
" "
|
||||
|
||||
#: plugin.py:187
|
||||
#: plugin.py:198
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"<rpn math expression>\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 ""
|
||||
"[<number>] <unit> to <other unit>\n"
|
||||
"\n"
|
||||
@ -157,7 +157,7 @@ msgstr ""
|
||||
" on oletuksena 1. Yksikkö tiedoille, katso 'units' komento.\n"
|
||||
" "
|
||||
|
||||
#: plugin.py:266
|
||||
#: plugin.py:277
|
||||
msgid ""
|
||||
" [<type>]\n"
|
||||
"\n"
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user