Compare commits

..

108 Commits
3.3.2 ... 3.3.6

Author SHA1 Message Date
Kowlin
b92d61e154 Update version to 3.3.6 (#3798) 2020-04-27 20:06:42 +02:00
jack1142
70ff884ebb Red 3.3.6 - Changelog (#3738)
* Add 3.3.6 section

* PR 3746

* commit b8ac70e

* PR 3747

* PR 3759 (issue 3758)

* PR 3764

* PR 3766

* PR 3767

* PR 3776

* PR 3757

* PR 3773 (issue 3772)

* PR 3740

* PR 3774

* PR 3784 (issue 3778)

* PR 3782

* PR 3783

* PR 3783

* PR 3718

* PR 3742

* PR 3791

* PR 3792

* PR 3794

* PR 3780

* PR 3790

* PR 3795

* PR 3714 (issue 3115)

* PR 3788

* Add release date
2020-04-27 19:58:41 +02:00
TrustyJAID
6f6c536236 [Alias] Create caching to call config less frequently (#3788) 2020-04-27 02:25:41 +02:00
jack1142
a1095285e4 Fix migrations from JSON driver (#3714) 2020-04-27 01:32:52 +02:00
Neuro Assassin
00d20f14b9 Add [p]cc raw command giving raw (escaped) response (#3795) 2020-04-27 01:31:43 +02:00
jack1142
560e0f7334 Add docs for updating Red (#3790)
* wip

* Add 3.0.2 or older instructions

* rephrase

* emphasis

* another rephrase

* Add 3.2.0+ instructions for Linux & Mac

* change indents
2020-04-26 19:35:59 +02:00
Draper
fc2dce6882 [Driver] Ensure JSON driver has a singular lock per cog name (#3780) 2020-04-26 18:21:48 +02:00
Draper
bd3d0dd64d Show current driver in [p]debuginfo (#3794)
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-04-26 16:07:57 +02:00
jack1142
f824d09ed3 Update install docs to include Ubuntu 20.04 (#3792) 2020-04-25 01:54:07 +02:00
aikaterna
d7c5f86ce7 [Audio] Update Lavalink.jar version (#3791) 2020-04-24 19:15:19 +02:00
PredaaA
c760b43e5a Allow to disable escaping in chat formatting utils (#3742)
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-04-24 18:17:19 +02:00
jack1142
b1fe807b47 Don't run command checks on each message starting with a prefix (#3718) 2020-04-24 18:12:25 +02:00
jack1142
0d6a7eb797 Stop fetching bans when checking for tempban expiration (#3783) 2020-04-24 18:11:41 +02:00
Kowlin
bf6390d72e Fix Owner ID failsafe (#3782)
* Fix Owner ID failsafe

* Update redbot/core/bot.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Let's go with a different approach (first commit)

* Let's go with a different approach (last commit)

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-04-24 18:03:58 +02:00
jack1142
e595f1859a Handle the ints for user objects in Modlog appropriately (#3784) 2020-04-24 04:08:08 +02:00
jack1142
06930ebe2c Patched the Patch where the Patch patched too much 2020-04-24 03:33:12 +02:00
jack1142
08c96a6794 Change pyenv instructions to update pyenv when it's already installed (#3740)
* Change pyenv instructions to update pyenv when it's already installed

* Use latest Python version
2020-04-24 03:30:11 +02:00
github-actions[bot]
61db89e89d Automated Crowdin downstream (#3785)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2020-04-23 14:44:20 +02:00
Draper
a2c0e4ca2e Fix sleeping and improve documentation for AsyncIter (#3776)
* welp

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* moar docs

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* moar docs

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* Remove unnecessary items in `:exclude-members:`

* Make whitespace in docstrings consistent

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-04-21 13:45:03 +02:00
jack1142
b08a950c37 Stop using localised display name in stream url (#3773) 2020-04-20 20:03:34 +02:00
Draper
ad979180e5 Make the largest loops lazier and async to avoid blocking (#3767)
* lets reduce config calls here

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* Lets normalize how we name config attributes across the bot.

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* ....

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* Just a tiny PR improving config call in a lot of places (Specially events and Help)

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* stop using `bot.guilds` in `on_command_add`

* Just a tiny PR improving config call in a lot of places (Specially events and Help)

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* missed this one

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* nothing to see here

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* lets reduce config calls here

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* Just a tiny PR improving config call in a lot of places (Specially events and Help)

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* stop using `bot.guilds` in `on_command_add`

* missed this one

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* welp

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* welp

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* welp

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* jack

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* Update redbot/cogs/mod/kickban.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/filter/filter.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* jack

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* make all large loops async to avoid blocking larger bots

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* ...

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* okay now working AsyncGen

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* may or may not have forgotten black

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* Apply suggestions from code review

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* jack's review

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* DOCS

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* DOCS

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* Apply suggestions from code review

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* jack

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* Apply suggestions from code review

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/core/utils/__init__.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/core/utils/__init__.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* avoid loop if possible and if not only iterate once

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-04-20 19:56:28 +02:00
jack1142
465812b673 Add a command to remove bot's avatar (#3757)
* Add a command to remove bot's avatar

* blah
2020-04-20 19:40:14 +02:00
Draper
f59e77002b Optimize config calls in few places (#3766)
* Just a tiny PR improving config call in a lot of places (Specially events and Help)

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* missed this one

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* welp

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* welp

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* welp

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* jack

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* Update redbot/cogs/mod/kickban.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* jack

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-04-20 19:29:36 +02:00
Draper
e4018ec677 Normalize names of attributes with Config instances (#3765)
* Lets normalize how we name config attributes across the bot.

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* ....

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* nothing to see here

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
2020-04-20 19:12:57 +02:00
Draper
df7ca65108 Reduce calls to config in the on_command_add event (#3764)
* lets reduce config calls here

Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>

* stop using `bot.guilds` in `on_command_add`

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-04-20 19:10:58 +02:00
github-actions[bot]
d12fcac9af Automated Crowdin downstream (#3761)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2020-04-18 17:16:57 +02:00
Ryan
66fc28ec1b [Trivia] Correct spelling of compact disc in games.yaml (#3759) 2020-04-15 00:08:17 +02:00
Kowlin
10ad2a559a [Core] Support setting avatar via attachment (#3747)
* [Core] Support avatars via attachments

* Fix the thing I was actually annoyed about.

* Updated error texts

* English is a damn annoying language.
2020-04-13 02:27:55 +02:00
MiniJennJenn
b8ac70e59a Update leagueoflegends.yaml 2020-04-12 17:41:42 -04:00
jack1142
7492636818 Fix ignored channels list in [p]ignore (#3746)
* Fix ignored channels list

* Update settings_caches.py

* Update core_commands.py
2020-04-12 00:09:05 +02:00
github-actions[bot]
36a0eabf4a Automated Crowdin downstream (#3739)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2020-04-09 21:27:35 +02:00
jack1142
cf4fdbbab1 dev bump (#3736) 2020-04-09 00:39:48 +02:00
Kowlin
f1b6b5f6f9 Update changelog_3_3_0.rst (#3737) 2020-04-09 00:32:20 +02:00
Kowlin
e06b3fceb5 Version bump (#3735) 2020-04-09 00:26:43 +02:00
jack1142
4628dd07e4 Red 3.3.5 - Changelog (#3727)
* Add 3.3.5 section

* PR 3730

* PR 3734

* Remove empty sections and add release date
2020-04-09 00:24:09 +02:00
jack1142
55a3d9b157 Properly check for command's existence in [p]alias add (#3734) 2020-04-09 00:19:14 +02:00
jack1142
c70c1d97e5 Revert "[CI] Less weekly churn from automated tasks (#3548)" (#3732)
This reverts commit f6c85cd37a.
2020-04-08 17:25:30 +02:00
Kowlin
da4e4d4ad0 Stop Outdated field from showing in [p]info when up-to-date (#3730)
* Oudated-B-Gone!

* Meh

* mehhh
2020-04-07 10:01:51 +02:00
Kowlin
3d9ee3f2b4 Dev version bump, for realzies (#3726)
* Damn tests that keep breaking if you forget a single damn number!

Who designed this shit?!

* Update __init__.py
2020-04-05 04:10:32 +02:00
Kowlin
b9331ffa55 Update __init__.py (#3725) 2020-04-05 04:05:53 +02:00
jack1142
2b0935c4aa Red 3.3.4 - Changelog (#3706)
* Add 3.3.4 section

* PR 3710 (issue 3545)

* PR 3708

* PR 3717

* PR 3723

* PR 3707

* Add release date, remove unused section
2020-04-05 03:58:39 +02:00
Kowlin
9d7047864e Version bump (#3724) 2020-04-05 03:57:50 +02:00
jack1142
20d507dbef Fix bank check (used in Bank, Economy and Trivia cogs) 2020-04-05 03:49:02 +02:00
jack1142
be7d1d2cd2 Bump deps (includes d.py bump) (#3723) 2020-04-05 03:34:53 +02:00
github-actions[bot]
587968710f Automated Crowdin downstream (#3719)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2020-04-04 06:28:55 +02:00
jack1142
a0b30bb3ae Fix Flame's irk with code blocks in windows install guide (#3722)
* Update install_windows.rst

* God, I'm an idiot
2020-04-04 03:08:39 +02:00
kennnyshiwa
60e954634d Include domains added in #3717 in filter_invites's docstring (#3721) 2020-04-02 20:17:46 +02:00
kennnyshiwa
ffecf1ed15 Fix redbot.core.utils.common_filters.INVITE_URL_RE regex (#3717)
* Fix invite_url_re

Found that the regex used previously could falsely catch strings such as discord member and discord gggggg which aren't invites and shouldn't be caught, testing with this regex string still catches all invite url variations while allowing these other previously caught strings to keep working

* Update redbot/core/utils/common_filters.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-04-02 09:11:12 +02:00
jack1142
b7a142c21e Include versions for pre-requirements in Windows install guide (#3708)
* Update install_windows.rst

* Update install_linux_mac.rst
2020-03-30 10:00:01 +02:00
jack1142
5716cebb0f Send error in [p]alias add when target command doesn't exist (#3710) 2020-03-30 06:48:51 +02:00
jack1142
ff68538085 Bump version to 3.3.4.dev1 (#3705) 2020-03-29 00:02:01 +01:00
Kowlin
7c251b8017 Bump version to 3.3.3 (#3703)
* Bump version to 3.3.3

* Update manager.py
2020-03-28 23:51:09 +01:00
jack1142
bf5917177a Red 3.3.3 - Changelog (#3660)
* Add 3.3.3 section

* PR 3630 (issue 3628)

* PR 3589 (issue 3145)

* PR 3631

* PR 3627

* PR 3504 (issue 3465)

* PR 3632 (issue 3626)

* PR 2929 (issue 2800)

* PR 3646 (issue 3590)

* PR 2382

* PR 3659

* PR 3653 (issue 3633)

* PR 3668 (issue 3583)

* PR 3663

* PR 3666 (issue 3584)

* PR 3656

* PR 3644

* PR 3420 (issue 3307)

* PR 3643 (issue 3642)

* PR 3638 (issue 3636)

* PR 3665 (issue 2988)

* PR 3667 (issue 3044)

* PR 3689 (issue 3685)

* PR 3688

* PR 3675 (issue 3436)

* PR 3695 (issue 2826)

* PR 3027

* PR 3637 (issue 3639)

* PR 3674 (issue 3443)

* PR 3690

* PR 3673 (issue 3507)

* PR 3652 (issue 3645)

* PR 2573

* PR 3657

* PR 3678 (issue 3448)

* PR 3684

* PR 3700

* PR 3669

* PR 3649 (issue 3648)

* PR 3676 (issue 3596)

* PR 3677 (issue 3588)

* PR 3672 (issue 3233)

* PR 3704

* Add release date
2020-03-28 23:50:50 +01:00
jack1142
dacfb931bb remove dis (#3704) 2020-03-28 23:45:37 +01:00
jack1142
97d77f5c51 Make checks in Bank, Economy and Trivia cogs Permissions-friendly (#3672)
* Create converters.py

* Update trivia.py

* Create checks.py

* Update checks.py

* Update checks.py

* Update trivia.py

* Update checks.py

* Update checks.py

* Update trivia.py

* Update bank.py

* Update economy.py

* Update trivia.py

* Update checks.py

* Update checks.py

* Update __init__.py
2020-03-28 23:24:12 +01:00
jack1142
fce8186759 Add [p]set regionalformat command to set regional formatting (#3677)
* Add `[p]set region` command to set regional formatting

* Add Babel to intersphinx

* rename 'region' to 'regional format`
2020-03-28 23:23:02 +01:00
jack1142
d35f6abca0 Use Babel in [p]set locale to allow any valid locale (#3676)
* Use Babel in `[p]set locale` to allow any valid locale

* Remove `[p]listlocales` and link to Crowdin in `[p]set locale`

* import babel.Locale as BabelLocale to avoid confousion
2020-03-28 23:11:25 +01:00
jack1142
cf31c22e5d Revert "Add changelog label to merged PRs (#3664)" (#3702)
This reverts commit 3d7ff7a149.
2020-03-28 23:06:41 +01:00
jack1142
3f7c2e8842 Update dev_commands.py (#3649) 2020-03-28 23:05:50 +01:00
PredaaA
ecdcc27749 Fix count of streaming members and a typo in [p]serverinfo (#3701) 2020-03-28 20:15:16 +01:00
kennnyshiwa
497d244f95 Show member's activities in [p]userinfo command (#3669)
* [mod] status improvements in userinfo command

Adds support for statues in the userinfo command including custom status, playing and listening improvements

* fix style

* maybe fix style now

* Update redbot/cogs/mod/names.py

Co-Authored-By: Draper <27962761+Drapersniper@users.noreply.github.com>

* fix spaces

* address review and add emojis

* fix broken variable

* Update redbot/cogs/mod/names.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/mod/names.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/mod/names.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/mod/names.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/mod/names.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update names.py

* Update names.py

* Update redbot/cogs/mod/names.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update names.py

* Update redbot/cogs/mod/names.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/mod/names.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

Co-authored-by: Draper <27962761+Drapersniper@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-03-28 19:44:56 +01:00
jack1142
a738736d6b Update __init__.py (#3700) 2020-03-28 19:30:16 +01:00
jack1142
a4ce2d01ce Use choco upgrade, not choco install (#3684)
* Use `choco upgrade`, not `choco install` and add `--version` for Python

* Update install_windows.rst

* actually, nah
2020-03-28 16:08:25 +01:00
jack1142
41c2b76d8d Make [p]cog checkforupdates indicate when cog can't be updated on current Red/Python version 2020-03-28 15:53:10 +01:00
jack1142
35ebc4899e Log failures when requesting Twitch bearer token (#3657)
* [Streams] Log failures when requesting Twitch bearer token

* Oops

* Style
2020-03-28 15:51:36 +01:00
jack1142
9552d210f5 Remove towncrier (#3661) 2020-03-28 02:46:15 +01:00
Neuro Assassin
9370b5110e Add [p]cc search command (#2573)
* Add search command for Custom Commands

* Spelling mistake

* Create 2573.feature.rst

* Remove `bot.db` usage, improve returned message

* remove towncrier entry

* Fix CI errors

* Fix more CI errors

* Add `@staticmethod` decorator

Co-authored-by: Toby Harradine <Tobotimus@users.noreply.github.com>
Co-authored-by: Michael H <michael@michaelhall.tech>
Co-authored-by: Kowlin <Kowlin@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-03-28 02:11:36 +01:00
jack1142
7009be8922 white/blacklist commands now properly require at least one user passed (#3652) 2020-03-28 01:38:46 +01:00
jack1142
c1a96c83fb Update _internal_utils.py (#3673) 2020-03-28 01:37:59 +01:00
jack1142
5d66e4eaf8 Update streamtypes.py (#3690) 2020-03-28 01:35:51 +01:00
jack1142
ed267d17f2 [ModLog] Keep last known username in case's data (#3674) 2020-03-28 01:34:40 +01:00
jack1142
6e91ebeb3d Use surrogateescape when decoding subprocess's stream (#3639)
* use surrogateescape when decoding subprocess's stream

* stop using surrogateescape for logging
2020-03-28 01:14:54 +01:00
jack1142
d70c6e1734 Update mod.py (#3683) 2020-03-28 01:05:25 +01:00
PredaaA
4de4c32c0e Bump Red-Lavalink (#3687) 2020-03-28 00:46:09 +01:00
Jeremiah Boby
637ae34839 Print quickstart guide at the end of redbot-setup (#3027)
* Print quickstart guide during setup

Resolves #3025

* Refer users to stable documentation
2020-03-26 22:33:57 +01:00
jack1142
d23144bc61 [Docs] Fix Mac instructions in the install guide (#3675)
* Update install_linux_mac.rst

* Address review

* Use new Homebrew installer

* Add python@3.8 to PATH
2020-03-26 22:33:12 +01:00
FancyJesse
e90868072e [Cleanup] Add [p]cleanup spam command (#3688)
* Added `[p]cleanup spam` function

* formatting

* accepts number and considers command message to total counts

* use existing kwarg instead

Safer to use the before kwarg as other messages might get included accidentally between invoking and executing

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* safer way to compare embeds and skip attachment only msgs

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* keeps the original message before the spam starts

* now asks if its ok to delete 100+ spam msgs if found

* unnecessary calculations, just add after

* code styling and reverted history oldest_first option

* switched to recommended logging formatting, thank you jack1142

* now using `get_messages_for_deletion()`, added needed limit kwarg

* ugh forgot to swap em

* duh

* small string clarification

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-03-26 22:32:10 +01:00
Kowlin
980d2a8dc3 Removal of Dispatch, since its not working. (#3696)
* Removal of Dispatch, since its not working.

* Add changelog behavior
2020-03-26 14:13:30 +01:00
github-actions[bot]
eef5ddb416 Automated Crowdin downstream (#3697)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2020-03-26 14:06:51 +01:00
jack1142
3d7ff7a149 Add changelog label to merged PRs (#3664) 2020-03-26 13:56:10 +01:00
Stonedestroyer
287edb755d Fix misleading error appearing when repo name is already taken (#3695)
* Error string change

* String
2020-03-26 13:26:05 +01:00
Dav
8c612a96c8 [Streams] Make preview picture for stream alerts bigger (#3689) 2020-03-25 11:22:33 +01:00
jack1142
efe67e2acc [Image] Add [count] argument to [p]imgur commands (#3667)
* Update image.py

* Update image.py

* welp

* Update image.py

* Add `count` arg to `[p]imgur subreddit`

* me dumb (a little)
2020-03-24 00:42:27 +01:00
jack1142
2cdf3c16ab Make command errors translatable (#3665)
* Make command errors translatable

* style

* moar style

* Update events.py

* Separate strings to make it better for translators
2020-03-24 00:35:32 +01:00
PredaaA
a88b2af4a9 [General] Fix streaming count in serverinfo command. (#3680)
* [General] Fix streaming count on serverinfo command.

* Update general.py

* Update general.py

* is
2020-03-21 22:23:56 +01:00
TrustyJAID
b9f07e8684 [Mod] Move deletedelay to core (#3638)
* Move deletedelay to core

* line lengths

* address review

* move settings change

* fine...
2020-03-21 18:39:58 +01:00
TrustyJAID
d957e44e1e Fix issues with the black/whitelist cache (#3643)
* Fix issues with the black/whitelist cache

* Address review

* address review

* or
2020-03-21 18:14:49 +01:00
Stonedestroyer
15e3437001 [Trivia] Commands for managing custom trivia lists (#3420)
* Trivia upload

* Second push

* Black

* A bit further

* Logic fix

* Getting closer

* Almost there

* Abomination ready for review.

Abomination ready for review.

* Upload trivia review

* Black

* Fix debug

* Delete a trivia

* List cleaned.

* Make it nicer

* Pass black

* Unlink file

* Translation

* Thanks Jack

* Beautify

* Black

* Fix

* Handling empty custom lists

* Use existing fileobject.

* Black

* Test

* Change up

* Black

* Changelog

* Typo error

* Fix up issues.

* Fixes stuff.

* Styling

* Add reactions

* Reactions

* Add safe handling of reactions

* Style

* Fix grammar and remove obsolete code

* Timeout

* Fix

* Requested changes

* Styling

* Fixes

* Typehint

* Remove

* mistake

* Constant

* Style

* return
2020-03-21 16:30:33 +01:00
jack1142
eebea59fe3 Remove usage of loop arg in calls to start_adding_reactions (#3644)
* fix stacklevels of warnings

* stop using loop arg when calling start_adding_reactions

* [Audio] Stop using loop arg when calling start_adding_reactions
2020-03-20 20:44:57 +01:00
jack1142
5074f2dbab Improve error message for OSError in [p]repo add (#3656)
* Update downloader.py

* Update downloader.py
2020-03-20 20:40:59 +01:00
github-actions[bot]
0f364a6d13 Automated Crowdin downstream (#3671)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2020-03-19 23:38:27 +01:00
jack1142
d9db03bca3 Tell the command caller when bot was unable to send warn (#3653) 2020-03-19 08:23:07 +01:00
jack1142
b9e2e1098f [Trivia] Forbid use of non-finite numbers in [p]triviaset subcommands (#3668)
* Update trivia.py

* style
2020-03-19 08:21:54 +01:00
jack1142
a126da5f23 Prevent PyPI's unavailability from causing command failure (#3663) 2020-03-19 08:19:01 +01:00
jack1142
23eae27a8f Update session.py (#3666) 2020-03-19 08:17:32 +01:00
github-actions[bot]
3e1bb88ab7 Automated Crowdin downstream (#3650)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2020-03-18 20:48:15 +01:00
PredaaA
4de7ce32dd [General] Add shard ID to serverinfo if bot uses multiple shards (#3659)
* [General] Add shard ID on serverinfo if there is over than two shards

* Update general.py

* Update general.py

* Update general.py

* Update general.py
2020-03-16 01:42:35 +01:00
PredaaA
6128d54601 [General] Add toggle to [p]serverinfo that shows more details (#2382)
* Improvements of "serverinfo" command

- Added some more informations about the server.
  (Verification level, AFK channel and timeout, custom emojis and special features).
- Added custom texts for Region (and Verification levels).
- Added more details about members (Number of humans, bots, and all status).
- Show special features only if the server has one.
- Show "Verified" logo only if the server is verified.
- And changed the footer by adding how many time the bot as join the server.

* Black formatting for serverinfo

* Black formatting fix and Sinbad suggestions

* Fix the discord.errors.NotFound on server command

Added exception on server command for the phrase "To leave a server, just type its number.".

* Update core_commands.py

* Delete core_commands.py

* Create core_commands.py

* Update core_commands.py

* Update core_commands.py

* Delete core_commands.py

* Create core_commands.py

* Update core_commands.py

* Update core_commands.py

* Little changes on serverinfo command

- Adding "lurkers" check, for the new feature that are on bot which allow users to join a server in read-only (Works only on verified servers for now)
- Adding streaming status.
- Adding mobile status with suggestion of Sinbad.

* Black style fix

* Add verbose for serverinfo and disable lurkers

I've added a bool that are False by default and sent the original serverinfo command, and if set to True send my edited version.
And I've disabled the lurkers detection until this bug (https://github.com/discordapp/discord-api-docs/issues/855) isn't fixed.

* Add of India region

* Code cleanup

* Emojis are not needed to be translated

* Update serverinfo

* Changelog.

* Update 2382.enhancement.rst

* Adress Jack's requests changes.

* oops

* Put guild description first + few last nitpicks

Co-authored-by: PredaMart <46051820+PredaMart@users.noreply.github.com>
Co-authored-by: Toby Harradine <Tobotimus@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
2020-03-15 23:46:21 +01:00
Dav
4d81887bcf [Core] Unify commands that set bot's activity status (#3646)
* alias [p]set game

* Implement suggestions
2020-03-12 22:46:19 +01:00
Ianardo DiCaprio
2e5dc82692 [Warnings] Add setting for warn channel and DMing warns toggle (#2929)
* Initial Commit

* Add changelog

* Review changes

* Changed to use contextlib.suppress

* Update warnings.py

* Update redbot/cogs/warnings/warnings.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/warnings/warnings.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/warnings/warnings.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/warnings/warnings.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/warnings/warnings.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/warnings/warnings.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/warnings/warnings.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/warnings/warnings.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Update redbot/cogs/warnings/warnings.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Rename 2932.bugfix.rst.txt to 2932.bugfix.rst

* Rename 2929.enhance.rst.txt to 2929.enhance.rst

* Update redbot/cogs/warnings/warnings.py

Co-Authored-By: Draper <27962761+Drapersniper@users.noreply.github.com>

* Update redbot/cogs/warnings/warnings.py

Co-Authored-By: Draper <27962761+Drapersniper@users.noreply.github.com>

* Update redbot/cogs/warnings/warnings.py

Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>

* Rename 2929.enhance.rst to 2929.feature.rst

* Update warnings.py

* Add files via upload

* Update warnings.py

* Black

* Update warnings.py

* black

* Update warnings.py

* Update warnings.py

* Delete 2932.bugfix.rst

Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
Co-authored-by: Draper <27962761+Drapersniper@users.noreply.github.com>
2020-03-12 21:17:59 +01:00
jack1142
4afe1ff569 Use correct prefixes when sending messages to owners (#3632)
* use correct prefixes when sending messages to owners

* make internal util for this instead

* oops

* fix circular import

* let's add back the actual fix I made this PR for...

* fix wrong logger name

* improve log message
2020-03-12 17:31:33 +01:00
Kowlin
3ff127d514 Automated Crowdin downstream (#3640) 2020-03-05 22:01:26 +01:00
Kowlin
ea3ca66303 Handle users leaving the server while we're applying mutes (#3627)
* Handle when users leave a server while we're applying mutes

Goddamn guilds with >100 text channels >.<

* Damn you tox.

* Damn you Bread.

* Fixed a bug whereby Guild would always return a success

Also handled error checking on NotFound so that the propper handling can be done.

* Fixed flake8 compile error (whoops)

* Revert "Fixed flake8 compile error (whoops)"

This reverts commit ec8b672347.

* Revert "Fixed a bug whereby Guild would always return a success"

This reverts commit 8d08ac31af.

* Apply the lost commits that we actually want

Since cherry picking is hard.

* Isn't the English language FUN!?

* *sigh*
2020-03-01 21:11:46 +01:00
jack1142
279f0e4f6c Update streamtypes.py (#3631) 2020-02-29 17:47:50 +01:00
Stonedestroyer
61fc00dc08 [Permissions] Alwaysavailable error message (#3504)
* [Permissions] Fix message for always available commands.

* Changelog
2020-02-29 16:29:31 +01:00
jack1142
d6f9ddc3af Check permissions before trying to clear reactions (#3589) 2020-02-29 16:00:19 +01:00
Stonedestroyer
b52c838018 Fix game command empty argument. (#3630) 2020-02-29 15:35:44 +01:00
jack1142
e0de25ed65 dev bump (#3624) 2020-02-28 22:23:59 +01:00
900 changed files with 62974 additions and 46682 deletions

View File

@@ -35,9 +35,6 @@ jobs:
- name: Download translations
run: |
make download_translations
- name: Remove files from PR which only have a date changed
run: |
git checkout HEAD -- $(git diff HEAD --numstat | awk 'BEGIN {ORS=" "} $1 == "1" && $2 == "1" && $3 ~ /.po$/ {print $3}')
- name: Create Pull Request
uses: peter-evans/create-pull-request@v2
with:
@@ -47,12 +44,5 @@ jobs:
body: |
This is an automated PR.
Please ensure that there are no errors or invalid files are in the PR.
labels: "Automated PR, Category: i18n"
labels: "Automated PR, Category: i18n, Changelog Entry: Skipped"
branch: "automated/i18n"
- name: Repository Dispatch
uses: peter-evans/repository-dispatch@v1
with:
token: ${{ secrets.cogcreators_bot_repo_scoped }}
repository: Cog-Creators/Red-DiscordBot
event-type: dispatched_test
client-payload: '{"ref": "automated/i18n"}'

1
.gitignore vendored
View File

@@ -6,6 +6,7 @@
!/tests/cogs/dataconverter/data/**/*.json
Pipfile
Pipfile.lock
.directory
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm

View File

@@ -11,9 +11,8 @@
* [4.4 Make](#44-make)
* [4.5 Keeping your dependencies up to date](#45-keeping-your-dependencies-up-to-date)
* [4.6 To contribute changes](#46-to-contribute-changes)
* [4.7 Using towncrier](#47-using-towncrier)
* [4.8 How To Report A Bug](#48-how-to-report-a-bug)
* [4.9 How To Suggest A Feature Or Enhancement](#49-how-to-suggest-a-feature-or-enhancement)
* [4.7 How To Report A Bug](#47-how-to-report-a-bug)
* [4.8 How To Suggest A Feature Or Enhancement](#48-how-to-suggest-a-feature-or-enhancement)
* [5. Code Review Process](#5-code-review-process)
* [5.1 Issues](#51-issues)
* [5.2 Pull Requests](#52-pull-requests)
@@ -116,39 +115,17 @@ Whenever you pull from upstream (V3/develop on the main repository) and you noti
1. Create a new branch on your fork
2. Make the changes
3. If you like the changes and think the main Red project could use it:
* Create a towncrier entry for the changes. (See next section for details)
* Run tests with `tox` to ensure your code is up to scratch
* Create a Pull Request on GitHub with your changes
- If you are contributing a behavior change, please keep in mind that behavior changes
are conditional on them being appropriate for the project's current goals.
If you would like to reduce the risk of putting in effort for something we aren't
going to use, open an issue discussing it first.
### 4.7 Using towncrier
Red uses towncrier to create changelogs.
To create a towncrier entry for your PR, create a file in `changelog.d` for it. If the changes are for a specific cog, place the file in the related subdirectory.
The filename should be of the format `issuenumber.changetype(.count).rst`, where `(.count)` is an optional
part of the filename should multiple entries for the same issue number and type be necessary.
If there is not an issue associated with your PR,
you may use the PR number in place of the issue number.
Valid changetypes are:
* breaking : Breaking changes
* dep : Changes to dependencies
* enhance : Enhancements
* feature : New features
* bugfix : Bugfixes
* docs : documentation improvements and additions
* removal : removal of something
* misc : any changes which don't have a user facing change, and don't belong in the changelog for users
The contents of the file should be a short, human readable description of the impact of the changes made,
not the technical details of the change.
### 4.8 How To Report A Bug
### 4.7 How To Report A Bug
Please see our **ISSUES.MD** for more information.
### 4.9 How To Suggest A Feature Or Enhancement
### 4.8 How To Suggest A Feature Or Enhancement
The goal of Red is to be as useful to as many people as possible, this means that all features must be useful to anyone and any server that uses Red.
If you find yourself wanting a feature that Red does not already have, you're probably not alone. There's bound to be a great number of users out there needing the same thing and a lot of the features that Red has today have been added because of the needs of our users. Open an issue on our issues list and describe the feature you would like to see, how you would use it, how it should work, and why it would be useful to the Red community as a whole.

View File

@@ -27,8 +27,3 @@ newenv:
$(MAKE) syncenv
syncenv:
.venv/bin/pip install -Ur ./tools/dev-requirements.txt
# Changelog check
checkchangelog:
bash tools/check_changelog_entries.sh
$(PYTHON) -m towncrier --draft

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
Use websockets 8.1

View File

@@ -1,4 +0,0 @@
Add caching for ignored channels/guilds.
Add caching for white/blacklist.
Add consume-rest for white/blacklist commands.
Allow ignoring channel categories.

View File

@@ -1 +0,0 @@
Show DeprecationWarning's

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
``[p]remove`` command now accepts an URL or Index, if an URL is used it will remove all tracks in the queue with that URL.

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
Changes next_payday to last_payday. last_payday stores the latest time the command runned successfully, allows the command to dynamicly change with the PAYDAY_TIME variable, by checking if last_payday + PAYDAY_TIME >= current time.

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
Move ignore commands and checks into core.

View File

@@ -1,2 +0,0 @@
Allow mentions in hackban and ban commands.
Have the correct lower bound on length of a snowflake for the converter.

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
Added ``[p]streamset timer`` command, which can be used to control how often the cog checks for livestreams.

View File

@@ -1 +0,0 @@
Changed the YouTube streams logic to use an RSS instead of the search endpoint, significantly reducing quota usage.

View File

@@ -1 +0,0 @@
Use new Twitch API and Bearer tokens. Escape markdown and mass mentions for "streamer_name is live!" messages, and use humanize_number for every numbers.

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
!.gitignore

View File

@@ -1 +0,0 @@
Don't use `inspect.getsource` to check for ``is_owner`` check.

View File

@@ -1,5 +1,283 @@
.. 3.3.x Changelogs
Redbot 3.3.6 (2020-04-27)
=========================
| Thanks to all these amazing people that contributed to this release:
| :ghuser:`aikaterna`, :ghuser:`Drapersniper`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`MiniJennJenn`, :ghuser:`NeuroAssassin`, :ghuser:`PredaaA`, :ghuser:`TrustyJAID`, :ghuser:`yamikaitou`
End-user changelog
------------------
Core Bot
********
- Converting from and to Postgres driver with ``redbot-setup convert`` have been fixed (:issue:`3714`, :issue:`3115`)
- Fixed big delays in commands that happened when the bot was owner-less (or if it only used co-owners feature) and command caller wasn't the owner (:issue:`3782`)
- Various optimizations
- Reduced calls to data backend when loading bot's commands (:issue:`3764`)
- Reduced calls to data backend when showing help for cogs/commands (:issue:`3766`)
- Improved performance for bots with big amount of guilds (:issue:`3767`)
- Mod cog no longer fetches guild's bans every 60 seconds when handling unbanning for tempbans (:issue:`3783`)
- Reduced the bot load for messages starting with a prefix when fuzzy search is disabled (:issue:`3718`)
- Aliases in Alias cog are now cached for better performance (:issue:`3788`)
Core Commands
*************
- ``[p]set avatar`` now supports setting avatar using attachment (:issue:`3747`)
- Added ``[p]set avatar remove`` subcommand for removing bot's avatar (:issue:`3757`)
- Fixed list of ignored channels that is shown in ``[p]ignore``/``[p]unignore`` (:issue:`3746`)
Audio
*****
- Age-restricted tracks, live streams, and mix playlists from YouTube should work in Audio again (:issue:`3791`)
- Soundcloud's sets and playlists with more than 50 tracks should work in Audio again (:issue:`3791`)
CustomCommands
**************
- Added ``[p]cc raw`` command that gives you the raw response of a custom command for ease of copy pasting (:issue:`3795`)
Modlog
******
- Fixed ``AttributeError`` for cases whose moderator doesn't share the server with the bot (:issue:`3784`, :issue:`3778`)
Streams
*******
- Fixed incorrect stream URLs for Twitch channels that have localised display name (:issue:`3773`, :issue:`3772`)
Trivia
******
- Fixed the error in ``[p]trivia stop`` that happened when there was no ongoing trivia session in the channel (:issue:`3774`)
Trivia Lists
************
- Updated ``leagueoflegends`` list with new changes to League of Legends (`b8ac70e <https://github.com/Cog-Creators/Red-DiscordBot/commit/b8ac70e59aa1328f246784f14f992d6ffe00d778>`_)
Developer changelog
-------------------
Utility Functions
*****************
- Added `redbot.core.utils.AsyncIter` utility class which allows you to wrap regular iterable into async iterator yielding items and sleeping for ``delay`` seconds every ``steps`` items (:issue:`3767`, :issue:`3776`)
- `bold()`, `italics()`, `strikethrough()`, and `underline()` now accept ``escape_formatting`` argument that can be used to disable escaping of markdown formatting in passed text (:issue:`3742`)
Documentation changes
---------------------
- Added `document about updating Red <update_red>` (:issue:`3790`)
- ``pyenv`` instructions will now update ``pyenv`` if it's already installed (:issue:`3740`)
- Updated Python version in ``pyenv`` instructions (:issue:`3740`)
- Updated install docs to include Ubuntu 20.04 (:issue:`3792`)
Miscellaneous
-------------
- **Config** - JSON driver will now properly have only one lock per cog name (:issue:`3780`)
- **Core Commands** - ``[p]debuginfo`` now shows used storage type (:issue:`3794`)
- **Trivia** - Corrected spelling of Compact Disc in ``games`` list (:issue:`3759`, :issue:`3758`)
Redbot 3.3.5 (2020-04-09)
=========================
| Thanks to all these amazing people that contributed to this release:
| :ghuser:`jack1142`, :ghuser:`Kowlin`
End-user changelog
------------------
Core Bot
********
- "Outdated" field no longer shows in ``[p]info`` when Red is up-to-date (:issue:`3730`)
Alias
*****
- Fixed regression in ``[p]alias add`` that caused it to reject commands containing arguments (:issue:`3734`)
Redbot 3.3.4 (2020-04-05)
=========================
| Thanks to all these amazing people that contributed to this release:
| :ghuser:`jack1142`, :ghuser:`kennnyshiwa`
End-user changelog
------------------
Core Bot
********
- Fixed checks related to bank's global state that were used in commands in Bank, Economy and Trivia cogs (:issue:`3707`)
Alias
*****
- ``[p]alias add`` now sends an error when command user tries to alias doesn't exist (:issue:`3710`, :issue:`3545`)
Developer changelog
-------------------
Core Bot
********
- Bump dependencies, including update to discord.py 1.3.3 (:issue:`3723`)
Utility Functions
*****************
- `redbot.core.utils.common_filters.filter_invites` now filters ``discord.io/discord.li`` invites links (:issue:`3717`)
- Fixed false-positives in `redbot.core.utils.common_filters.filter_invites` (:issue:`3717`)
Documentation changes
---------------------
- Versions of pre-requirements are now included in Windows install guide (:issue:`3708`)
Redbot 3.3.3 (2020-03-28)
=========================
| Thanks to all these amazing people that contributed to this release:
| :ghuser:`AnonGuy`, :ghuser:`Dav-Git`, :ghuser:`FancyJesse`, :ghuser:`Ianardo-DiCaprio`, :ghuser:`jack1142`, :ghuser:`kennnyshiwa`, :ghuser:`Kowlin`, :ghuser:`NeuroAssassin`, :ghuser:`PredaaA`, :ghuser:`Stonedestroyer`, :ghuser:`TrustyJAID`
End-user changelog
------------------
Core Bot
********
- Delete delay for command messages has been moved from Mod cog to Core (:issue:`3638`, :issue:`3636`)
- Fixed various bugs with blacklist and whitelist (:issue:`3643`, :issue:`3642`)
- Added ``[p]set regionalformat`` command that allows users to set regional formatting that is different from bot's locale (:issue:`3677`, :issue:`3588`)
- ``[p]set locale`` allows any valid locale now, not just locales for which Red has translations (:issue:`3676`, :issue:`3596`)
- Permissions for commands in Bank, Economy and Trivia cogs can now be overriden by Permissions cog (:issue:`3672`, :issue:`3233`)
- Outages of ``pypi.org`` no longer prevent the bot from starting (:issue:`3663`)
- Fixed formatting of help strings in fuzzy search results (:issue:`3673`, :issue:`3507`)
- Fixed few deprecation warnings related to menus and uvloop (:issue:`3644`, :issue:`3700`)
Core Commands
*************
- ``[p]set game`` no longer errors when trying to clear the status (:issue:`3630`, :issue:`3628`)
- All owner notifcations in Core now use proper prefixes in messages (:issue:`3632`)
- Added ``[p]set playing`` and ``[p]set streaming`` aliases for respectively ``[p]set game`` and ``[p]set stream`` (:issue:`3646`, :issue:`3590`)
ModLog
******
- Modlog's cases now keep last known username to prevent losing that information from case's message on edit (:issue:`3674`, :issue:`3443`)
CustomCom
*********
- Added ``[p]cc search`` command that allows users to search through created custom commands (:issue:`2573`)
Cleanup
*******
- Added ``[p]cleanup spam`` command that deletes duplicate messages from the last X messages and keeps only one copy (:issue:`3688`)
- Removed regex support in ``[p]cleanup self`` (:issue:`3704`)
Downloader
**********
- ``[p]cog checkforupdates`` now includes information about cogs that can't be installed due to Red/Python version requirements (:issue:`3678`, :issue:`3448`)
General
*******
- Added more detailed mode to ``[p]serverinfo`` command that can be accessed with ``[p]serverinfo 1`` (:issue:`2382`, :issue:`3659`)
Image
*****
- Users can now specify how many images should be returned in ``[p]imgur search`` and ``[p]imgur subreddit`` using ``[count]`` argument (:issue:`3667`, :issue:`3044`)
- ``[p]imgur search`` and ``[p]imgur subreddit`` now return one image by default (:issue:`3667`, :issue:`3044`)
Mod
***
- ``[p]userinfo`` now shows user's activities (:issue:`3669`)
- ``[p]userinfo`` now shows status icon near the username (:issue:`3669`)
- Muting no longer fails if user leaves while applying overwrite (:issue:`3627`)
- Fixed error that happened when Mod cog was loaded for the first time during bot startup (:issue:`3632`, :issue:`3626`)
Permissions
***********
- Commands for setting default rules now error when user tries to deny access to command designated as being always available (:issue:`3504`, :issue:`3465`)
Streams
*******
- Fixed an error that happened when no game was set on Twitch stream (:issue:`3631`)
- Preview picture for YouTube stream alerts is now bigger (:issue:`3689`, :issue:`3685`)
- YouTube channels with a livestream that doesn't have any current viewer are now properly showing as streaming (:issue:`3690`)
- Failures in Twitch API authentication are now logged (:issue:`3657`)
Trivia
******
- Added ``[p]triviaset custom upload/delete/list`` commands for managing custom trivia lists from Discord (:issue:`3420`, :issue:`3307`)
- Trivia sessions no longer error on payout when winner's balance would exceed max balance (:issue:`3666`, :issue:`3584`)
Warnings
********
- Sending warnings to warned user can now be disabled with ``[p]warnset toggledm`` command (:issue:`2929`, :issue:`2800`)
- Added ``[p]warnset warnchannel`` command that allows to set a channel where warnings should be sent to instead of the channel command was called in (:issue:`2929`, :issue:`2800`)
- Added ``[p]warnset togglechannel`` command that allows to disable sending warn message in guild channel (:issue:`2929`, :issue:`2800`)
- ``[p]warn`` now tells the moderator when bot wasn't able to send the warning to the user (:issue:`3653`, :issue:`3633`)
Developer changelog
-------------------
Core Bot
********
- Deprecation warnings issued by Red now use correct stack level so that the cog developers can find the cause of them (:issue:`3644`)
Dev Cog
*******
- Add ``__name__`` to environment's globals (:issue:`3649`, :issue:`3648`)
Documentation changes
---------------------
- Fixed install instructions for Mac in `install_linux_mac` (:issue:`3675`, :issue:`3436`)
- Windows install instructions now use ``choco upgrade`` commands instead of ``choco install`` to ensure up-to-date packages (:issue:`3684`)
Miscellaneous
-------------
- **Core Bot** - Command errors (i.e. command on cooldown, dm-only and guild-only commands, etc) can now be translated (:issue:`3665`, :issue:`2988`)
- **Core Bot** - ``redbot-setup`` now prints link to Getting started guide at the end of the setup (:issue:`3027`)
- **Core Bot** - Whitelist and blacklist commands now properly require passing at least one user (or role in case of local whitelist/blacklist) (:issue:`3652`, :issue:`3645`)
- **Downloader** - Fix misleading error appearing when repo name is already taken in ``[p]repo add`` (:issue:`3695`)
- **Downloader** - Improved error messages for unexpected errors in ``[p]repo add`` (:issue:`3656`)
- **Downloader** - Prevent encoding errors from crashing ``[p]cog update`` (:issue:`3639`, :issue:`3637`)
- **Trivia** - Non-finite numbers can no longer be passed to ``[p]triviaset timelimit``, ``[p]triviaset stopafter`` and ``[p]triviaset payout`` (:issue:`3668`, :issue:`3583`)
- **Utility Functions** - `redbot.core.utils.menus.menu()` now checks permissions *before* trying to clear reactions (:issue:`3589`, :issue:`3145`)
Redbot 3.3.2 (2020-02-28)
=========================

View File

@@ -217,6 +217,7 @@ intersphinx_mapping = {
"python": ("https://docs.python.org/3", None),
"dpy": (f"https://discordpy.readthedocs.io/en/v{dpy_version}/", None),
"motor": ("https://motor.readthedocs.io/en/stable/", None),
"babel": ("http://babel.pocoo.org/en/stable/", None),
}
# Extlinks

View File

@@ -202,15 +202,15 @@ the built-in Economy credits::
class Pets:
def __init__(self):
self.conf = Config.get_conf(self, 1234567890)
self.config = Config.get_conf(self, 1234567890)
# Here we'll assign some default costs for the pets
self.conf.register_global(
self.config.register_global(
dog=100,
cat=100,
bird=50
)
self.conf.register_user(
self.config.register_user(
pets={}
)
@@ -229,7 +229,7 @@ And now that the cog is set up we'll need to create some commands that allow use
# We will need to use "get_raw"
try:
cost = await self.conf.get_raw(pet_type)
cost = await self.config.get_raw(pet_type)
except KeyError:
# KeyError is thrown whenever the data you try to access does not
# exist in the registered defaults or in the saved data.
@@ -241,15 +241,15 @@ assign a new pet to the user. This is very easily done using the V3 bank API and
# continued
if await bank.can_spend(ctx.author, cost):
await self.conf.user(ctx.author).pets.set_raw(
await self.config.user(ctx.author).pets.set_raw(
pet_name, value={'cost': cost, 'hunger': 0}
)
# this is equivalent to doing the following
pets = await self.conf.user(ctx.author).pets()
pets = await self.config.user(ctx.author).pets()
pets[pet_name] = {'cost': cost, 'hunger': 0}
await self.conf.user(ctx.author).pets.set(pets)
await self.config.user(ctx.author).pets.set(pets)
Since the pets can get hungry we're gonna need a command that let's pet owners check how hungry their pets are::
@@ -257,7 +257,7 @@ Since the pets can get hungry we're gonna need a command that let's pet owners c
@commands.command()
async def hunger(self, ctx, pet_name: str):
try:
hunger = await self.conf.user(ctx.author).pets.get_raw(pet_name, 'hunger')
hunger = await self.config.user(ctx.author).pets.get_raw(pet_name, 'hunger')
except KeyError:
# Remember, this is thrown if something in the provided identifiers
# is not found in the saved data or the defaults.
@@ -274,7 +274,7 @@ We're responsible pet owners here, so we've also got to have a way to feed our p
# This is a bit more complicated because we need to check if the pet is
# owned first.
try:
pet = await self.conf.user(ctx.author).pets.get_raw(pet_name)
pet = await self.config.user(ctx.author).pets.get_raw(pet_name)
except KeyError:
# If the given pet name doesn't exist in our data
await ctx.send("You don't own that pet!")
@@ -285,12 +285,12 @@ We're responsible pet owners here, so we've also got to have a way to feed our p
# Determine the new hunger and make sure it doesn't go negative
new_hunger = max(hunger - food, 0)
await self.conf.user(ctx.author).pets.set_raw(
await self.config.user(ctx.author).pets.set_raw(
pet_name, 'hunger', value=new_hunger
)
# We could accomplish the same thing a slightly different way
await self.conf.user(ctx.author).pets.get_attr(pet_name).hunger.set(new_hunger)
await self.config.user(ctx.author).pets.get_attr(pet_name).hunger.set(new_hunger)
await ctx.send("Your pet is now at {}/100 hunger!".format(new_hunger)
@@ -300,7 +300,7 @@ Of course, if we're less than responsible pet owners, there are consequences::
@commands.command()
async def adopt(self, ctx, pet_name: str, *, member: discord.Member):
try:
pet = await self.conf.user(member).pets.get_raw(pet_name)
pet = await self.config.user(member).pets.get_raw(pet_name)
except KeyError:
await ctx.send("That person doesn't own that pet!")
return
@@ -310,15 +310,15 @@ Of course, if we're less than responsible pet owners, there are consequences::
await ctx.send("That pet is too well taken care of to be adopted.")
return
await self.conf.user(member).pets.clear_raw(pet_name)
await self.config.user(member).pets.clear_raw(pet_name)
# this is equivalent to doing the following
pets = await self.conf.user(member).pets()
pets = await self.config.user(member).pets()
del pets[pet_name]
await self.conf.user(member).pets.set(pets)
await self.config.user(member).pets.set(pets)
await self.conf.user(ctx.author).pets.set_raw(pet_name, value=pet)
await self.config.user(ctx.author).pets.set_raw(pet_name, value=pet)
await ctx.send(
"Your request to adopt this pet has been granted due to "
"how poorly it was taken care of."
@@ -351,15 +351,15 @@ much the same way they would in V2. The following examples will demonstrate how
class ExampleCog:
def __init__(self):
self.conf = Config.get_conf(self, 1234567890)
self.config = Config.get_conf(self, 1234567890)
self.data = {}
async def load_data(self):
self.data = await self.conf.custom("V2", "V2").all()
self.data = await self.config.custom("V2", "V2").all()
async def save_data(self):
await self.conf.custom("V2", "V2").set(self.data)
await self.config.custom("V2", "V2").set(self.data)
async def setup(bot):
@@ -407,13 +407,13 @@ API Reference
includes keys within a `dict` when one is being set, as well as keys in nested dictionaries
within that `dict`. For example::
>>> conf = Config.get_conf(self, identifier=999)
>>> conf.register_global(foo={})
>>> await conf.foo.set_raw(123, value=True)
>>> await conf.foo()
>>> config = Config.get_conf(self, identifier=999)
>>> config.register_global(foo={})
>>> await config.foo.set_raw(123, value=True)
>>> await config.foo()
{'123': True}
>>> await conf.foo.set({123: True, 456: {789: False}}
>>> await conf.foo()
>>> await config.foo.set({123: True, 456: {789: False}}
>>> await config.foo()
{'123': True, '456': {'789': False}}
.. automodule:: redbot.core.config

View File

@@ -10,6 +10,18 @@ General Utility
.. automodule:: redbot.core.utils
:members: deduplicate_iterables, bounded_gather, bounded_gather_iter
.. autoclass:: AsyncIter
:members:
:special-members: __await__
:exclude-members: enumerate, filter
.. automethod:: enumerate
:async-for:
.. automethod:: filter
:async-for:
Chat Formatting
===============

View File

@@ -14,6 +14,7 @@ Welcome to Red - Discord Bot's documentation!
install_windows
install_linux_mac
update_red
about_venv
autostart_systemd
autostart_pm2

View File

@@ -20,7 +20,7 @@ The pre-requirements are:
- Python 3.8.1 or greater
- Pip 18.1 or greater
- Git 2.11+
- Java Runtime Environment 11 or later (for audio support)
- Java Runtime Environment 11 (for audio support)
We also recommend installing some basic compiler tools, in case our dependencies don't provide
pre-built "wheels" for your architecture.
@@ -163,20 +163,18 @@ following, then press Enter:
.. code-block:: none
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
After the installation, install the required packages by pasting the commands and pressing enter,
one-by-one:
.. code-block:: none
brew install python --with-brewed-openssl
brew install python@3.8
echo 'export PATH="/usr/local/opt/python@3.8/bin:$PATH"' >> ~/.profile
source ~/.profile
brew install git
brew tap caskroom/versions
brew cask install homebrew/cask-versions/adoptopenjdk11
It's possible you will have network issues. If so, go in your Applications folder, inside it, go in
the Python 3.8 folder then double click ``Install certificates.command``.
brew cask install adoptopenjdk/openjdk/adoptopenjdk11
Continue by `creating-venv-linux`.
@@ -241,9 +239,9 @@ Continue by `creating-venv-linux`.
.. _install-ubuntu:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ubuntu LTS versions (18.04 and 16.04)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ubuntu LTS versions (20.04, 18.04, and 16.04)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
@@ -315,7 +313,7 @@ virtual environment.
.. code-block:: none
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
command -v pyenv && pyenv update || curl https://pyenv.run | bash
After this command, you may see a warning about 'pyenv' not being in the load path. Follow the
instructions given to fix that, then close and reopen your shell.
@@ -324,7 +322,7 @@ Then run the following command:
.. code-block:: none
CONFIGURE_OPTS=--enable-optimizations pyenv install 3.8.1 -v
CONFIGURE_OPTS=--enable-optimizations pyenv install 3.8.2 -v
This may take a long time to complete, depending on your hardware. For some machines (such as
Raspberry Pis and micro-tier VPSes), it may take over an hour; in this case, you may wish to remove
@@ -336,7 +334,7 @@ After that is finished, run:
.. code-block:: none
pyenv global 3.8.1
pyenv global 3.8.2
Pyenv is now installed and your system should be configured to run Python 3.8.

View File

@@ -26,15 +26,15 @@ Then run each of the following commands:
Set-ExecutionPolicy Bypass -Scope Process -Force
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
choco install git --params "/GitOnlyOnPath /WindowsTerminal" -y
choco install visualstudio2019-workload-vctools -y
choco install python3 -y
choco upgrade git --params "/GitOnlyOnPath /WindowsTerminal" -y
choco upgrade visualstudio2019-workload-vctools -y
choco upgrade python3 -y
For Audio support, you should also run the following command before exiting:
.. code-block:: none
choco install adoptopenjdk11jre -y
choco upgrade adoptopenjdk11jre -y
From here, exit the prompt then continue onto `creating-venv-windows`.
@@ -50,16 +50,16 @@ Manually installing dependencies
* `MSVC Build tools <https://www.visualstudio.com/downloads/#build-tools-for-visual-studio-2019>`_
* `Python <https://www.python.org/downloads/>`_ - Red needs Python 3.8.1 or greater
* `Python 3.8.1 <https://www.python.org/downloads/>`_ - Red needs Python 3.8.1 or greater
.. attention:: Please make sure that the box to add Python to PATH is CHECKED, otherwise
you may run into issues when trying to run Red.
* `Git <https://git-scm.com/download/win>`_
* `Git 2.11+ <https://git-scm.com/download/win>`_
.. attention:: Please choose the option to "Git from the command line and also from 3rd-party software" in Git's setup.
* `Java <https://adoptopenjdk.net/?variant=openjdk11&jvmVariant=hotspot>`_ - needed for Audio
* `Java 11 <https://adoptopenjdk.net/?variant=openjdk11&jvmVariant=hotspot>`_ - needed for Audio
.. _creating-venv-windows:
@@ -85,11 +85,15 @@ Start with opening a command prompt (open Start, search for "command prompt", th
These commands will not work in PowerShell - you have to use command prompt as said above.
Then create your virtual environment with the following command::
Then create your virtual environment with the following command
.. code-block:: none
py -3.8 -m venv "%userprofile%\redenv"
And activate it with the following command::
And activate it with the following command
.. code-block:: none
"%userprofile%\redenv\Scripts\activate.bat"

124
docs/update_red.rst Normal file
View File

@@ -0,0 +1,124 @@
============
Updating Red
============
Updating to the latest version of Red has several benefits:
- New features and improvements are added.
- Bugs are fixed.
- Your bot is safe from security vulnerabilities that have been found.
Here are some things to consider to help make your upgrade as smooth as possible.
.. note::
If you're developing for Red, you should also look for "Breaking changes" sections in release notes for each minor (X.Y.0) version that's been released since you last updated Red.
Updating differs depending on the version you currently have. Next sections will explain how to upgrade to latest version of Red (|version|) from the version that is in the header of the section.
Red 3.2.0 or newer
******************
Windows
-------
If you have Red 3.2.0 or newer, all you have to do to upgrade Red is running 2 commands.
1. Activate your venv with the following command:
.. code:: none
"%userprofile%\redenv\Scripts\activate.bat"
2. Update Red with this command:
.. code:: none
python -m pip install -U Red-DiscordBot
.. attention::
If you're using PostgreSQL data backend, replace ``Red-DiscordBot`` in the second command with ``Red-DiscordBot[postgres]``
Linux & Mac
-----------
If you have Red 3.2.0 or newer, all you have to do to upgrade Red is running 2 commands.
1. Activate your virtual environment.
If you used ``venv`` for your virtual environment, use:
.. code:: none
source ~/redenv/bin/activate
If you used ``pyenv`` for your virtual environment, use:
.. code:: none
pyenv shell <name>
2. Update Red with this command:
.. code:: none
python -m pip install -U Red-DiscordBot
.. attention::
If you're using PostgreSQL data backend, replace ``Red-DiscordBot`` in the second command with ``Red-DiscordBot[postgres]``
Red 3.1.X
*********
If you have Red 3.1.X, you will need to follow the install instructions for your operating system:
- `Windows <install_windows>`
- `Linux & Mac <install_linux_mac>`
Follow every step to ensure you have all dependencies up-to-date and only skip ``redbot-setup`` step as you already have a bot instance.
If you already have Red installed in a virtual environment, you will need to delete it before starting this process.
.. attention::
Red 3.2 dropped support for the MongoDB driver
- If you were not using the MongoDB driver, this does not affect you.
- If you were using a 3rd party cog which required MongoDB, it probably still does.
- If you were using the MongoDB driver, **prior to launching your instance after update**,
you will need to run the following commands to convert:
.. code::
python -m pip install dnspython~=1.16.0 motor~=2.0.0 pymongo~=3.8.0
redbot-setup convert [instancename] json
Red 3.0.2 and older
*******************
.. important::
Red 3.2 dropped support for the MongoDB driver
- If you were not using the MongoDB driver, this does not affect you.
- If you were using a 3rd party cog which required MongoDB, it probably still does.
- If you were using the MongoDB driver, **prior to updating**, you will need to convert your data to JSON backend,
using following command:
.. code::
redbot-setup --edit
If you have Red 3.0.2 or older, you will need to follow the install instructions for your operating system:
- `Windows <install_windows>`
- `Linux & Mac <install_linux_mac>`
Follow every step to ensure you have all dependencies up-to-date and only skip ``redbot-setup`` step as you already have a bot instance.
If you already have Red installed in a virtual environment, you will need to delete it before starting this process.

View File

@@ -34,12 +34,6 @@ goto syncenv
.\.venv\Scripts\python -m pip install -Ur .\tools\dev-requirements.txt
exit /B %ERRORLEVEL%
:checkchangelog
REM This should be written for windows at some point I guess.
REM If we can swith to powershell, it can make this much easier.
echo This doesn^'t do anything on windows ^(yet^)
exit /b 0
:help
echo Usage:
echo make ^<command^>

View File

@@ -16,129 +16,3 @@
| dist
)/
'''
[tool.towncrier]
package = "redbot"
filename = "CHANGELOG.rst"
directory = "changelog.d"
issue_format = "`#{issue} <https://github.com/Cog-Creators/Red-DiscordBot/issues/{issue}>`_"
[[tool.towncrier.section]]
path = ""
name = "Core Bot Changes"
[[tool.towncrier.section]]
path = "admin"
name = "Admin"
[[tool.towncrier.section]]
path = "alias"
name = "Alias"
[[tool.towncrier.section]]
path = "audio"
name = "Audio"
[[tool.towncrier.section]]
path = "bank"
name = "Bank"
[[tool.towncrier.section]]
path = "cleanup"
name = "Cleanup"
[[tool.towncrier.section]]
path = "customcom"
name = "CustomCom"
[[tool.towncrier.section]]
path = "downloader"
name = "Downloader"
[[tool.towncrier.section]]
path = "economy"
name = "Economy"
[[tool.towncrier.section]]
path = "filter"
name = "Filter"
[[tool.towncrier.section]]
path = "general"
name = "General"
[[tool.towncrier.section]]
path = "image"
name = "Image"
[[tool.towncrier.section]]
path = "mod"
name = "Mod"
[[tool.towncrier.section]]
path = "modlog"
name = "ModLog"
[[tool.towncrier.section]]
path = "mutes"
name = "Mutes"
[[tool.towncrier.section]]
path = "permissions"
name = "Permissions"
[[tool.towncrier.section]]
path = "reports"
name = "Reports"
[[tool.towncrier.section]]
path = "streams"
name = "Streams"
[[tool.towncrier.section]]
path = "trivia"
name = "Trivia"
[[tool.towncrier.section]]
path = "warnings"
name = "Warnings"
[[tool.towncrier.type]]
directory = "breaking"
name = "Breaking Changes"
showcontent = true
[[tool.towncrier.type]]
directory = "bugfix"
name = "Bug Fixes"
showcontent = true
[[tool.towncrier.type]]
directory = "enhance"
name = "Enhancements"
showcontent = true
[[tool.towncrier.type]]
directory = "feature"
name = "New Feature"
showcontent = true
[[tool.towncrier.type]]
directory = "removal"
name = "Removals"
showcontent = true
[[tool.towncrier.type]]
directory = "misc"
name = "Miscellaneous changes"
showcontent = false
[[tool.towncrier.type]]
directory = "dep"
name = "Changes to dependencies"
showcontent = true
[[tool.towncrier.type]]
directory = "docs"
name = "Documentation Changes"
showcontent = true

View File

@@ -191,7 +191,7 @@ def _update_event_loop_policy():
_asyncio.set_event_loop_policy(_uvloop.EventLoopPolicy())
__version__ = "3.3.2"
__version__ = "3.3.6"
version_info = VersionInfo.from_str(__version__)
# Filter fuzzywuzzy slow sequence matcher warning
@@ -215,9 +215,11 @@ if "--debug" not in _sys.argv:
_warnings.filterwarnings("ignore", category=DeprecationWarning, module="aiohttp", lineno=21)
# DeprecationWarning: rename klass to create_protocol
# warnings.warn("rename klass to create_protocol", DeprecationWarning)
#
# discord.py is using deprecated kwarg name when making websockets connection
# https://github.com/Rapptz/discord.py/issues/2574
_warnings.filterwarnings(
"ignore", category=DeprecationWarning, module="websockets", lineno=407
)
# DeprecationWarning: The loop argument is deprecated since Python 3.8, and scheduled for removal in Python 3.10.
# transport, protocol = await self._create_connection()
_warnings.filterwarnings(
"ignore", category=DeprecationWarning, module="websockets", lineno=535
)

View File

@@ -70,11 +70,11 @@ class Admin(commands.Cog):
"""A collection of server administration utilities."""
def __init__(self):
self.conf = Config.get_conf(self, 8237492837454039, force_registration=True)
self.config = Config.get_conf(self, 8237492837454039, force_registration=True)
self.conf.register_global(serverlocked=False)
self.config.register_global(serverlocked=False)
self.conf.register_guild(
self.config.register_guild(
announce_ignore=False,
announce_channel=None, # Integer ID
selfroles=[], # List of integer ID's
@@ -290,7 +290,7 @@ class Admin(commands.Cog):
async def announce(self, ctx: commands.Context, *, message: str):
"""Announce a message to all servers the bot is in."""
if not self.is_announcing():
announcer = Announcer(ctx, message, config=self.conf)
announcer = Announcer(ctx, message, config=self.config)
announcer.start()
self.__current_announcer = announcer
@@ -325,7 +325,7 @@ class Admin(commands.Cog):
"""
if channel is None:
channel = ctx.channel
await self.conf.guild(ctx.guild).announce_channel.set(channel.id)
await self.config.guild(ctx.guild).announce_channel.set(channel.id)
await ctx.send(
_("The announcement channel has been set to {channel.mention}").format(channel=channel)
)
@@ -333,8 +333,8 @@ class Admin(commands.Cog):
@announceset.command(name="ignore")
async def announceset_ignore(self, ctx):
"""Toggle announcements being enabled this server."""
ignored = await self.conf.guild(ctx.guild).announce_ignore()
await self.conf.guild(ctx.guild).announce_ignore.set(not ignored)
ignored = await self.config.guild(ctx.guild).announce_ignore()
await self.config.guild(ctx.guild).announce_ignore.set(not ignored)
if ignored:
await ctx.send(
_("The server {guild.name} will receive announcements.").format(guild=ctx.guild)
@@ -352,14 +352,14 @@ class Admin(commands.Cog):
:param guild:
:return:
"""
selfrole_ids = set(await self.conf.guild(guild).selfroles())
selfrole_ids = set(await self.config.guild(guild).selfroles())
guild_roles = guild.roles
valid_roles = tuple(r for r in guild_roles if r.id in selfrole_ids)
valid_role_ids = set(r.id for r in valid_roles)
if selfrole_ids != valid_role_ids:
await self.conf.guild(guild).selfroles.set(list(valid_role_ids))
await self.config.guild(guild).selfroles.set(list(valid_role_ids))
# noinspection PyTypeChecker
return valid_roles
@@ -427,7 +427,7 @@ class Admin(commands.Cog):
).format(role=role)
)
return
async with self.conf.guild(ctx.guild).selfroles() as curr_selfroles:
async with self.config.guild(ctx.guild).selfroles() as curr_selfroles:
if role.id not in curr_selfroles:
curr_selfroles.append(role.id)
await ctx.send(_("Added."))
@@ -449,7 +449,7 @@ class Admin(commands.Cog):
).format(role=role)
)
return
async with self.conf.guild(ctx.guild).selfroles() as curr_selfroles:
async with self.config.guild(ctx.guild).selfroles() as curr_selfroles:
curr_selfroles.remove(role.id)
await ctx.send(_("Removed."))
@@ -458,8 +458,8 @@ class Admin(commands.Cog):
@checks.is_owner()
async def serverlock(self, ctx: commands.Context):
"""Lock a bot to its current servers only."""
serverlocked = await self.conf.serverlocked()
await self.conf.serverlocked.set(not serverlocked)
serverlocked = await self.config.serverlocked()
await self.config.serverlocked.set(not serverlocked)
if serverlocked:
await ctx.send(_("The bot is no longer serverlocked."))
@@ -468,7 +468,7 @@ class Admin(commands.Cog):
# region Event Handlers
async def on_guild_join(self, guild: discord.Guild):
if await self.conf.serverlocked():
if await self.config.serverlocked():
await guild.leave()

View File

@@ -3,6 +3,7 @@ import asyncio
import discord
from redbot.core import commands
from redbot.core.i18n import Translator
from redbot.core.utils import AsyncIter
from redbot.core.utils.chat_formatting import humanize_list, inline
_ = Translator("Announcer", __file__)
@@ -55,7 +56,7 @@ class Announcer:
async def announcer(self):
guild_list = self.ctx.bot.guilds
failed = []
for g in guild_list:
async for g in AsyncIter(guild_list, delay=0.5):
if not self.active:
return
@@ -68,7 +69,6 @@ class Announcer:
await channel.send(self.message)
except discord.Forbidden:
failed.append(str(g.id))
await asyncio.sleep(0.5)
if failed:
msg = (

View File

@@ -14,8 +14,7 @@ class SelfRole(commands.Converter):
role_converter = commands.RoleConverter()
role = await role_converter.convert(ctx, arg)
conf = admin.conf
selfroles = await conf.guild(ctx.guild).selfroles()
selfroles = await admin.config.guild(ctx.guild).selfroles()
if role.id not in selfroles:
raise commands.BadArgument(_("The provided role is not a valid selfrole."))

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:11\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Afrikaans\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: af\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: af_ZA\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:11\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: ar\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: ar_SA\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr "لم يتم تحميل وحدة الأدمن cog."
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "الرتبة المذكورة ليست على قائمة الرتب الذاتية."

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:11\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bulgarian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: bg\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: bg_BG\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:11\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Catalan\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: ca\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: ca_ES\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:12\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Czech\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: cs\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: cs_CZ\n"
#: redbot/cogs/admin/admin.py:17
@@ -21,31 +19,31 @@ msgstr "Pokusil jsem se udělat něco, co mi Discord odepřel. Tvůj příkaz se
#: redbot/cogs/admin/admin.py:22
msgid "I can not give {role.name} to {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr ""
msgstr "Nemohu dát {role.name} uživateli {member.display_name}, protože tato role je vyšší nebo rovna mé nejvyšší roli v Discord hierarchii."
#: redbot/cogs/admin/admin.py:28
msgid "I can not remove {role.name} from {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr ""
msgstr "Nemohu odebrat {role.name} uživateli {member.display_name}, protože tato role je vyšší nebo rovna mé nejvyšší roli v Discord hierarchii."
#: redbot/cogs/admin/admin.py:34
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
msgstr ""
msgstr "Nemohu upravit {role.name}, protože tato role je vyšší, než moje nebo stejná jako nejvyšší role v Discord hierarchii."
#: redbot/cogs/admin/admin.py:40
msgid "I can not let you give {role.name} to {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
msgstr "Nemohu ti dovolit dát {role.name} uživateli {member.display_name}, protože tato role je vyšší nebo rovna tvé nejvyšší roli v Discord hierarchii."
#: redbot/cogs/admin/admin.py:46
msgid "I can not let you remove {role.name} from {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
msgstr "Nemohu ti dovolit odebrat {role.name} uživateli {member.display_name}, protože tato role je vyšší nebo rovna tvé nejvyšší roli v Discord hierarchii."
#: redbot/cogs/admin/admin.py:52
msgid "I can not let you edit {role.name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
msgstr "Nemohu ti dovolit upravit {role.name}, protože tato role je vyšší nebo rovna tvé nejvyšší roli v Discord hierarchii."
#: redbot/cogs/admin/admin.py:58
msgid "I need manage roles permission to do that."
msgstr ""
msgstr "K tomu potřebuji oprávnění spravovat role."
#: redbot/cogs/admin/admin.py:60
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
@@ -58,7 +56,7 @@ msgstr "Kolekce nástrojů pro správu serveru."
#: redbot/cogs/admin/admin.py:126
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
msgstr "{member.display_name} již má roli {role.name}."
#: redbot/cogs/admin/admin.py:146
msgid "I successfully added {role.name} to {member.display_name}"
@@ -66,7 +64,7 @@ msgstr "Úspěšně jsem přidal {role.name} k {member.display_name}"
#: redbot/cogs/admin/admin.py:156
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
msgstr "{member.display_name} již má roli {role.name}."
#: redbot/cogs/admin/admin.py:176
msgid "I successfully removed {role.name} from {member.display_name}"
@@ -75,12 +73,12 @@ msgstr "Úspěšně jsem odstranil {role.name} od {member.display_name}"
#: redbot/cogs/admin/admin.py:187
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgstr "\\n Přidá roli uživateli.\\n\\n Pokud role obsahuje mezery, použijte dvojí uvozovky.\\n Ponecháte-li uživatel prázdný, výchozí hodnota autorovi příkazu.\\n "
#: redbot/cogs/admin/admin.py:203
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgstr "\\n Odebrat roli uživateli.\\n\\n Pokud role obsahuje mezery, použijte dvojí uvozovky.\\n Ponecháte-li uživatel prázdný, výchozí hodnota autorovi příkazu.\\n "
#: redbot/cogs/admin/admin.py:217
#, docstring
@@ -90,7 +88,7 @@ msgstr "Upraví nastavení role."
#: redbot/cogs/admin/admin.py:224
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgstr ""
msgstr "\\n Upravit barvu role.\\n\\n Pokud role obsahuje mezery, použij dvojité uvozovky.\\n Barva musí být v hexadecimálním formátu.\\n [Výběr barev online](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Příklady:\\n `[p]editrole colour \\\"Spravce\\\" #ff0000`\\n `[p]editrole colour Spravce #ff9900`\\n "
#: redbot/cogs/admin/admin.py:253 redbot/cogs/admin/admin.py:286
msgid "Done."
@@ -99,12 +97,12 @@ msgstr "Hotovo."
#: redbot/cogs/admin/admin.py:257
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgstr ""
msgstr "\\n Upraví název role\\n\\n Použijte dvojité uvozovky, pokud role nebo název obsahuje mezery.\\n\\n Příklady:\\n `[p]editrole name \\\"Spravce\\\" Admin`\\n "
#: redbot/cogs/admin/admin.py:291
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr ""
msgstr "Oznámit zprávu na všechny servery ve kterých je bot."
#: redbot/cogs/admin/admin.py:298
msgid "The announcement has begun."
@@ -117,7 +115,7 @@ msgstr "Zrušit běžící oznámení."
#: redbot/cogs/admin/admin.py:307
msgid "There is no currently running announcement."
msgstr ""
msgstr "V současné době neexistuje žádné spuštěné oznámení."
#: redbot/cogs/admin/admin.py:310
msgid "The current announcement has been cancelled."
@@ -126,12 +124,12 @@ msgstr "Momentální oznámení bylo zrušeno."
#: redbot/cogs/admin/admin.py:316
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
msgstr "Změňte způsob odesílání oznámení v tomto klanu."
#: redbot/cogs/admin/admin.py:321
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n \\n If channel is left blank it defaults to the current channel.\\n "
msgstr ""
msgstr "\\n Změňte kanál, kde bude bot odesílat oznámení.\\n \\n Pokud je kanál ponechán prázdný, výchozí je aktuální kanál.\\n "
#: redbot/cogs/admin/admin.py:330
msgid "The announcement channel has been set to {channel.mention}"
@@ -140,35 +138,35 @@ msgstr "Kanál pro oznámení byl nastaven na {channel.mention}"
#: redbot/cogs/admin/admin.py:335
#, docstring
msgid "Toggle announcements being enabled this server."
msgstr ""
msgstr "Zapne oznamování na tomto serveru."
#: redbot/cogs/admin/admin.py:340
msgid "The server {guild.name} will receive announcements."
msgstr ""
msgstr "Server {guild.name} obdrží oznámení."
#: redbot/cogs/admin/admin.py:344
msgid "The server {guild.name} will not receive announcements."
msgstr ""
msgstr "Server {guild.name} nebude dostávat oznámení."
#: redbot/cogs/admin/admin.py:370
#, docstring
msgid "Apply selfroles."
msgstr ""
msgstr "Aplikovat self-role."
#: redbot/cogs/admin/admin.py:375
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgstr "\\n Přidá vám self-roli.\\n\\n Administrátoři serveru musí mít nastavenou roli podle nastaveného uživatele.\\n POZNÁMKA: Role je citlivá na malá a velká písmena!\\n "
#: redbot/cogs/admin/admin.py:386
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgstr "\\n Odstraní vámself-roli.\\n\\n Administrátoři serveru musí mít nastavenou roli podle nastaveného uživatele.\\n POZNÁMKA: Role je citlivá na malá a velká písmena!\\n "
#: redbot/cogs/admin/admin.py:397
#, docstring
msgid "\\n Lists all available selfroles.\\n "
msgstr ""
msgstr "\\n Seznam všech dostupných self-rolí.\\n "
#: redbot/cogs/admin/admin.py:407
msgid "Available Selfroles:\\n{selfroles}"
@@ -177,37 +175,37 @@ msgstr "Dostupné vlastní role:\\n{selfroles}"
#: redbot/cogs/admin/admin.py:413
#, docstring
msgid "Manage selfroles."
msgstr ""
msgstr "Spravovat self-role."
#: redbot/cogs/admin/admin.py:418
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgstr "\\n Přidá roli do seznamu dostupných self-rolí.\\n\\n POZNÁMKA: Role je citlivá na malá a velká písmena!\\n "
#: redbot/cogs/admin/admin.py:425
msgid "I cannot let you add {role.name} as a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
msgstr "Nemohu ti dovolit odebrat {role.name} jako self-roli uživateli, protože tato role je vyšší nebo rovna tvé nejvyšší roli v Discord hierarchii."
#: redbot/cogs/admin/admin.py:433
msgid "Added."
msgstr ""
msgstr "Přidáno."
#: redbot/cogs/admin/admin.py:436
msgid "That role is already a selfrole."
msgstr ""
msgstr "Tato role je již self-rolí."
#: redbot/cogs/admin/admin.py:440
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgstr "\\n Odstraní roli ze seznamu dostupných self-rolí.\\n\\n POZNÁMKA: Role je citlivá na malá a velká písmena!\\n "
#: redbot/cogs/admin/admin.py:447
msgid "I cannot let you remove {role.name} from being a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
msgstr "Nemohu ti dovolit odebrat {role.name} uživateli, protože tato role je vyšší nebo rovna tvé nejvyšší roli v Discord hierarchii."
#: redbot/cogs/admin/admin.py:455
msgid "Removed."
msgstr ""
msgstr "Odstraněno."
#: redbot/cogs/admin/admin.py:460
#, docstring
@@ -224,17 +222,17 @@ msgstr "Bot je nyní serverem uzamčen."
#: redbot/cogs/admin/announcer.py:75
msgid "I could not announce to the following server: "
msgstr ""
msgstr "Nemohu oznámit následujícímu serveru: "
#: redbot/cogs/admin/announcer.py:77
msgid "I could not announce to the following servers: "
msgstr ""
msgstr "Nemohu oznámit následujícím serverům: "
#: redbot/cogs/admin/converters.py:12
msgid "The Admin cog is not loaded."
msgstr "Admin cog není načten."
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""
msgstr "Daná role není platná self-role."

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:12\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Danish\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: da\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: da_DK\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-20 12:12\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: German\n"
"MIME-Version: 1.0\n"
@@ -12,40 +11,39 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: de\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: de_DE\n"
#: redbot/cogs/admin/admin.py:17
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
msgstr "Ich habe versucht etwas zu tun, für das mir Discord die Befugnis verweigerte. Dein Befehl konnte nicht erfolgreich ausgeführt werden."
msgstr "Ich habe versucht, etwas zu tun, wofür mir Discord die Erlaubnis verweigert hat. Dein Befehl wurde nicht erfolgreich ausgeführt."
#: redbot/cogs/admin/admin.py:22
msgid "I can not give {role.name} to {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr "Ich kann {role.name} nicht an {member.display_name} vergeben, da diese Rolle gleich oder höher meiner höchsten Rolle in der Discord-Hierarchie ist."
msgstr "Ich kann die Rolle „{role.name} nicht an {member.display_name} vergeben, weil diese Rolle höher oder gleich meiner höchsten Rolle in der Discord Rollen-Hierarchie ist."
#: redbot/cogs/admin/admin.py:28
msgid "I can not remove {role.name} from {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr "Ich kann {member.display_name} die Rolle {role.name} nicht entziehen, da diese gleich oder höher meiner höchsten Rolle in der Discord-Hierarchie ist."
msgstr "Ich kann {member.display_name} nicht die Rolle {role.name} entziehen, weil diese Rolle höher oder gleich meiner höchsten Rolle in der Discord Rollen-Hierarchie ist."
#: redbot/cogs/admin/admin.py:34
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
msgstr "Ich kann die Rolle \"{role.name}\" nicht bearbeiten, da diese höher oder gleich meiner höchsten Rolle in der Discord-Hierarchie ist."
msgstr "Ich kann die Rolle {role.name} nicht bearbeiten, weil diese Rolle höher oder gleich meiner höchsten Rolle in der Discord Rollen-Hierarchie ist."
#: redbot/cogs/admin/admin.py:40
msgid "I can not let you give {role.name} to {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "Ich kann dir nicht erlauben, die Rolle {role.name} an {member.display_name} zu vergeben, da diese Rolle höher oder gleich deiner höchsten Rolle in der Discord-Hierarchie ist."
msgstr "Du darfst, die Rolle {role.name}“ nicht an {member.display_name} vergeben, weil diese Rolle höher oder gleich deiner höchsten Rolle in der Discord Rollen-Hierarchie ist."
#: redbot/cogs/admin/admin.py:46
msgid "I can not let you remove {role.name} from {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "Du kannst {member.display_name} die Rolle \"{role.name}\" entziehen, da diese gleich oder über deiner höchsten Rolle in der Discord-Hierarchie ist."
msgstr "Du darfst {member.display_name} nicht die Rolle {role.name} entziehen, weil diese Rolle höher oder gleich deiner höchsten Rolle in der Discord Rollen-Hierarchie ist."
#: redbot/cogs/admin/admin.py:52
msgid "I can not let you edit {role.name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "Ich kann dir nicht erlauben, die Rolle {role.name} zu bearbeiten, da diese Rolle höher oder gleich deiner höchsten Rolle in der Discord-Hierarchie ist."
msgstr "Du darfst nicht die Rolle {role.name} bearbeiten, weil diese Rolle höher oder gleich deiner höchsten Rolle in der Discord Rollen-Hierarchie ist."
#: redbot/cogs/admin/admin.py:58
msgid "I need manage roles permission to do that."
msgstr "Ich benötige die Berechtigung \"Rollen verwalten\" um das zu tun."
msgstr "Ich braucht dafür die Bereichtigung Rollen verwalten."
#: redbot/cogs/admin/admin.py:60
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
@@ -54,43 +52,43 @@ msgstr "Ich kündige bereits etwas an. Wenn du eine andere Ankündigung machen w
#: redbot/cogs/admin/admin.py:70
#, docstring
msgid "A collection of server administration utilities."
msgstr "Eine Sammlung von administrativen Server-Verwaltungsprogramme."
msgstr "Eine Sammlung von administrativen Server-Verwaltungsprogrammen."
#: redbot/cogs/admin/admin.py:126
msgid "{member.display_name} already has the role {role.name}."
msgstr "{member.display_name} hat die Rolle {role.name} bereits."
msgstr "{member.display_name} hat die Rolle {role.name} bereits."
#: redbot/cogs/admin/admin.py:146
msgid "I successfully added {role.name} to {member.display_name}"
msgstr "Ich habe erfolgreich {role.name} zu {member.display_name} hinzugefügt"
msgstr "Ich habe {member.display_name} erfolgreich die Rolle „{role.name}“ gegeben."
#: redbot/cogs/admin/admin.py:156
msgid "{member.display_name} does not have the role {role.name}."
msgstr "{member.display_name} hat nicht die Rolle {role.name}."
msgstr "{member.display_name} hat nicht die Rolle {role.name}."
#: redbot/cogs/admin/admin.py:176
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr "Ich habe erfolgreich {role.name} von {member.display_name} entfernt"
msgstr "Ich habe die Rolle „{role.name}“ erfolgreich von {member.display_name} entfernt."
#: redbot/cogs/admin/admin.py:187
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr "\\n Füge einem Nutzer eine Rolle hinzu.\\n\\n Benutze Anführungszeichen, wenn im Namen Leerzeichen entahlten sind.\\n Wenn kein Benutzer definiert ist, wird die Rolle dem Autor hinzugefügt.\\n "
msgstr "\\n Füge einem Mitglied eine Rolle hinzu.\\n\\n Benutze (amerikanische) Anführungszeichen, wenn im Namen Leerzeichen enthalten sind.\\n Wenn keine Person definiert wurde, wird die Rolle dem Ausführer des Befehls gegeben.\\n "
#: redbot/cogs/admin/admin.py:203
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr "\\n Entferne eine Rolle von einem Nutzer.\\n\\n Benutze Anführungszeichen, wenn im Namen Leerzeichen entahlten sind.\\n Wenn kein Benutzer definiert ist, wird die Rolle vom Autor entfernt.\\n "
msgstr "\\n Füge einem Mitglied eine Rolle hinzu.\\n\\n Benutze (amerikanische) Anführungszeichen, wenn im Namen Leerzeichen enthalten sind.\\n Wenn keine Person definiert wurde, wird die Rolle von dem Ausführer des Befehls entfernt.\\n "
#: redbot/cogs/admin/admin.py:217
#, docstring
msgid "Edit role settings."
msgstr "Bearbeiten der Rollen Einstellungen."
msgstr "Rolleneinstellungen bearbeiten."
#: redbot/cogs/admin/admin.py:224
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgstr "\\n Bearbeite die Farbe einer Rolle.\\n\\n Verwende Anführungszeichen, wenn die Rolle Leerzeichen enthält.\\n Die Farbe muss im Hexadezimalformat angegeben werden.\\n [Online Farbwähler](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Beispiele:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgstr "\\n Bearbeite die Farbe einer Rolle.\\n\\n Verwende (amerikanische) Anführungszeichen, wenn die Rolle Leerzeichen enthält.\\n Die Farbe muss im Hexadezimalformat angegeben werden.\\n [Online Farbwähler](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Beispiele:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
#: redbot/cogs/admin/admin.py:253 redbot/cogs/admin/admin.py:286
msgid "Done."
@@ -99,7 +97,7 @@ msgstr "Erledigt."
#: redbot/cogs/admin/admin.py:257
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgstr "\\n Bearbeite den Namen einer Rolle.\\n\\n Verwende Anführungszeichen, wenn die Rolle Leerzeichen enthält.\\n\\n Beispiel:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgstr "\\n Bearbeite den Namen einer Rolle.\\n\\n Verwende (amerikanische) Anführungszeichen, wenn die Rolle Leerzeichen enthält.\\n\\n Beispiel:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
#: redbot/cogs/admin/admin.py:291
#, docstring
@@ -117,7 +115,7 @@ msgstr "Breche eine laufende Ankündigung ab."
#: redbot/cogs/admin/admin.py:307
msgid "There is no currently running announcement."
msgstr "Es gibt keine laufende Ankündigung."
msgstr "Es gibt keine derzeit laufende Ankündigung."
#: redbot/cogs/admin/admin.py:310
msgid "The current announcement has been cancelled."
@@ -131,11 +129,11 @@ msgstr "Ändere, wie Ankündigungen in diesem Server gesendet werden."
#: redbot/cogs/admin/admin.py:321
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n \\n If channel is left blank it defaults to the current channel.\\n "
msgstr "\\n Ändert den Kanal, in den der Bot Ankündigungen sendet.\\n \\n Wenn kein Kanal angegeben wird, wird er standardmäßig auf den aktuellen Kanal gesetzt.\\n "
msgstr "\\n Ändert den Kanal, in dem der Bot Ankündigungen senden wird.\\n \\n Wenn kein Kanal angegeben wird, wird standardmäßig der aktuelle Kanal gewählt.\\n "
#: redbot/cogs/admin/admin.py:330
msgid "The announcement channel has been set to {channel.mention}"
msgstr "Der für Ankündigungen gewählte Kanal wurde festgelegt auf {channel.mention}"
msgstr "{channel.mention} wurde nun als Ankündigungskanal festgelegt."
#: redbot/cogs/admin/admin.py:335
#, docstring
@@ -153,17 +151,17 @@ msgstr "Der Server {guild.name} wird keine Ankündigunen erhalten."
#: redbot/cogs/admin/admin.py:370
#, docstring
msgid "Apply selfroles."
msgstr "Selbst-hinzufügbare Rollen anwenden."
msgstr "Selbst hinzufügbare Rollen anwenden."
#: redbot/cogs/admin/admin.py:375
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr "\\n Gib dir selbst eine Rolle.\\n\\n Server Admins müssen die Rolle für Nutzer freigeben.\\n\\n HINWEIS: Beachte Groß- und Kleinschreibung!\\n "
msgstr "\\n Gib dir selbst eine Rolle.\\n\\n Server Admins müssen die Rolle für Mitglieder freigeben.\\n\\n HINWEIS: Beachte Groß- und Kleinschreibung!\\n "
#: redbot/cogs/admin/admin.py:386
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr "\\n Entferne eine Rolle von dir selbst.\\n\\n Server Admins müssen die Rolle für Nutzer freigeben.\\n\\n HINWEIS: Beachte Groß- und Kleinschreibung!\\n "
msgstr "\\n Entferne eine Rolle von dir selbst.\\n\\n Server Admins müssen die Rolle für Mitglieder freigeben.\\n\\n HINWEIS: Beachte Groß- und Kleinschreibung!\\n "
#: redbot/cogs/admin/admin.py:397
#, docstring
@@ -172,21 +170,21 @@ msgstr "\\nGibt eine Liste verfügbarer selbst auswählbarer Rollen aus.\\n
#: redbot/cogs/admin/admin.py:407
msgid "Available Selfroles:\\n{selfroles}"
msgstr "Verfügbare, selbst auswählbare Rollen:\\n{selfroles}"
msgstr "Verfügbare selbst auswählbare Rollen:\\n{selfroles}"
#: redbot/cogs/admin/admin.py:413
#, docstring
msgid "Manage selfroles."
msgstr "Selbst-hinzufügbare Rollen verwalten."
msgstr "Selbst hinzufügbare Rollen verwalten."
#: redbot/cogs/admin/admin.py:418
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr "\\n Füge eine Rolle zur Liste der selbst-hinzufügbaren Rollen hinzu.\\n\\n HINWEIS: Beachte Groß- und Kleinschreibung!\\n "
msgstr "\\n Füge eine Rolle zur Liste der selbst hinzufügbaren Rollen hinzu.\\n\\n HINWEIS: Beachte Groß- und Kleinschreibung!\\n "
#: redbot/cogs/admin/admin.py:425
msgid "I cannot let you add {role.name} as a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "Du kannst dir nicht die Rolle {role.name} zuweisen, da diese gleich oder über deiner höchsten Rolle in der Discord-Hierarchie ist."
msgstr "Du kannst dir nicht die Rolle {role.name} zuweisen, weil diese Rolle höher oder gleich deiner höchsten Rolle in der Discord Rollen-Hierarchie ist."
#: redbot/cogs/admin/admin.py:433
msgid "Added."
@@ -194,16 +192,16 @@ msgstr "Hinzugefügt."
#: redbot/cogs/admin/admin.py:436
msgid "That role is already a selfrole."
msgstr "Diese Rolle ist bereits selbst-hinzufügbar."
msgstr "Diese Rolle ist bereits selbst hinzufügbar."
#: redbot/cogs/admin/admin.py:440
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr "\\n Entferne eine Rolle von der Liste der selbst-hinzufügbaren Rollen.\\n\\n HINWEIS: Beachte Groß- und Kleinschreibung!\\n "
msgstr "\\n Entferne eine Rolle von der Liste der selbst hinzufügbaren Rollen.\\n\\n HINWEIS: Beachte Groß- und Kleinschreibung!\\n "
#: redbot/cogs/admin/admin.py:447
msgid "I cannot let you remove {role.name} from being a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr "Ich kann dir nicht erlauben, {role.name} von der Liste der selbst-hinzufügbaren Rollen zu entfernen, weil diese Rolle höher oder gleich deiner höchsten Rolle in der Discord-Hierarchie ist."
msgstr "Du darfst nicht die Rolle „{role.name} von der Liste der selbst hinzufügbaren Rollen entfernen, weil diese Rolle höher oder gleich deiner höchsten Rolle in der Discord Rollen-Hierarchie ist."
#: redbot/cogs/admin/admin.py:455
msgid "Removed."
@@ -212,11 +210,11 @@ msgstr "Entfernt."
#: redbot/cogs/admin/admin.py:460
#, docstring
msgid "Lock a bot to its current servers only."
msgstr "Sperrt den Bot neuen Servern beizutreten."
msgstr "Der Bot kann keinem neuen Server beitreten."
#: redbot/cogs/admin/admin.py:465
msgid "The bot is no longer serverlocked."
msgstr "Der Bot ist nicht länger gesperrt neuen Servern beizutreten."
msgstr "Der Bot kann nun anderen Servern beitreten."
#: redbot/cogs/admin/admin.py:467
msgid "The bot is now serverlocked."
@@ -224,17 +222,17 @@ msgstr "Der Bot ist jetzt gesperrt neuen Servern beizutreten."
#: redbot/cogs/admin/announcer.py:75
msgid "I could not announce to the following server: "
msgstr "Ich konnte nicht in den folgenden Servern ankündigen: "
msgstr "Ich konnte die Ankündigung auf diesem Server nicht ausführen: "
#: redbot/cogs/admin/announcer.py:77
msgid "I could not announce to the following servers: "
msgstr "Ich konnte nicht in den folgenden Servern ankündigen: "
msgstr "Ich konnte die Ankündigung auf diesen Servern nicht ausführen: "
#: redbot/cogs/admin/converters.py:12
msgid "The Admin cog is not loaded."
msgstr "Das Admin-Cog ist nicht geladen."
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "Die vorausgesetzte Rolle ist keine berechtigte selbst auswählbare Rolle."
msgstr "Die angegebene Rolle ist keine gültige selbst auswählbare Rolle."

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:13\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Greek\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: el\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: el_GR\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:16\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: es-ES\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: es_ES\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr "El cog Admin no está cargado."
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "El rol proporcionado no es un selfrole válido."

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:13\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Finnish\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: fi\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: fi_FI\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-27 12:12\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: French\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: fr\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: fr_FR\n"
#: redbot/cogs/admin/admin.py:17
@@ -21,31 +19,31 @@ msgstr "J'ai tenté de faire quelque chose que pour lequel Discord m'a refusé l
#: redbot/cogs/admin/admin.py:22
msgid "I can not give {role.name} to {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr ""
msgstr "Je ne peux pas donner {role.name} à {member.display_name} car ce rôle est supérieur ou égal à mon rôle le plus élevé dans la hiérarchie Discord."
#: redbot/cogs/admin/admin.py:28
msgid "I can not remove {role.name} from {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr ""
msgstr "Je ne peux pas supprimer {role.name} de {member.display_name} car ce rôle est supérieur ou égal à mon rôle le plus élevé dans la hiérarchie Discord."
#: redbot/cogs/admin/admin.py:34
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
msgstr ""
msgstr "Je ne peux pas modifier {role.name} parce que ce rôle est supérieur ou égal à mon rôle le plus élevé dans la hiérarchie Discord."
#: redbot/cogs/admin/admin.py:40
msgid "I can not let you give {role.name} to {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
msgstr "Je ne peux pas vous laisser donner {role.name} à {member.display_name} car ce rôle est supérieur ou égal à votre rôle le plus haut dans la hiérarchie Discord."
#: redbot/cogs/admin/admin.py:46
msgid "I can not let you remove {role.name} from {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
msgstr "Je ne peux pas vous permettre de supprimer {role.name} de {member.display_name} car ce rôle est supérieur ou égal à votre rôle le plus élevé dans la hiérarchie Discord."
#: redbot/cogs/admin/admin.py:52
msgid "I can not let you edit {role.name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
msgstr "Je ne peux pas vous permettre de modifier {role.name} car ce rôle est supérieur ou égal à votre rôle le plus élevé dans la hiérarchie Discord."
#: redbot/cogs/admin/admin.py:58
msgid "I need manage roles permission to do that."
msgstr ""
msgstr "Jai besoin de la permission de gérer les rôles pour faire cela."
#: redbot/cogs/admin/admin.py:60
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
@@ -58,7 +56,7 @@ msgstr "Un ensemble d'utilitaires d'administration du serveur."
#: redbot/cogs/admin/admin.py:126
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
msgstr "{member.display_name} a déjà le rôle {role.name}."
#: redbot/cogs/admin/admin.py:146
msgid "I successfully added {role.name} to {member.display_name}"
@@ -66,7 +64,7 @@ msgstr "J'ai bien ajouté le rôle {role.name} à {member.display_name}"
#: redbot/cogs/admin/admin.py:156
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
msgstr "{member.display_name} n'a pas le rôle {role.name}."
#: redbot/cogs/admin/admin.py:176
msgid "I successfully removed {role.name} from {member.display_name}"
@@ -75,12 +73,12 @@ msgstr "J'ai bien retiré le rôle {role.name} de {member.display_name}"
#: redbot/cogs/admin/admin.py:187
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgstr "\\n Ajouter un rôle à un utilisateur.\\n\\n Utilisez des guillemets si le rôle contient des espaces.\\n Si l'utilisateur est laissé vide, c'est par défaut l'auteur de la commande.\\n "
#: redbot/cogs/admin/admin.py:203
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgstr "\\n Retirer un rôle d'un utilisateur.\\n\\n Utilisez des guillemets doubles si le rôle contient des espaces.\\n Si l'utilisateur est laissé vide, c'est par défaut l'auteur de la commande.\\n "
#: redbot/cogs/admin/admin.py:217
#, docstring
@@ -90,7 +88,7 @@ msgstr "Modifier les paramètres d'un rôle."
#: redbot/cogs/admin/admin.py:224
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgstr ""
msgstr "\\n Modifiez la couleur d'un rôle.\\n\\n Utilisez des guillemets doubles si le rôle contient des espaces.\\n La couleur doit être au format hexadécimal.\\n [Sélecteur de couleurs en ligne](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Exemples:\\n `[p]editrole color \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
#: redbot/cogs/admin/admin.py:253 redbot/cogs/admin/admin.py:286
msgid "Done."
@@ -99,7 +97,7 @@ msgstr "Fait."
#: redbot/cogs/admin/admin.py:257
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgstr ""
msgstr "\\n Modifier le nom d'un rôle.\\n\\n Utiliser des guillemets si le rôle ou le nom contient des espaces.\\n\\n Exemple:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
#: redbot/cogs/admin/admin.py:291
#, docstring
@@ -117,7 +115,7 @@ msgstr "Interrompre une annonce en cours."
#: redbot/cogs/admin/admin.py:307
msgid "There is no currently running announcement."
msgstr ""
msgstr "Il n'y a aucune annonce en cours d'exécution."
#: redbot/cogs/admin/admin.py:310
msgid "The current announcement has been cancelled."
@@ -126,12 +124,12 @@ msgstr "L'annonce actuelle a été interrompue."
#: redbot/cogs/admin/admin.py:316
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
msgstr "Change la façon dont les annonces sont envoyées dans ce serveur."
#: redbot/cogs/admin/admin.py:321
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n \\n If channel is left blank it defaults to the current channel.\\n "
msgstr ""
msgstr "\\n Changer le salon où le bot enverra des annonces.\\n \\n Si le salon est laissé vide, il est par défaut sur le salon actuel.\\n "
#: redbot/cogs/admin/admin.py:330
msgid "The announcement channel has been set to {channel.mention}"
@@ -153,17 +151,17 @@ msgstr "Le serveur {guild.name} ne recevra plus les annonces."
#: redbot/cogs/admin/admin.py:370
#, docstring
msgid "Apply selfroles."
msgstr ""
msgstr "Appliquer auto-rôles."
#: redbot/cogs/admin/admin.py:375
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgstr "\\n Ajouter un auto-rôle à vous-même.\\n\\n Les administrateurs du serveur doivent avoir configuré le rôle en tant qu'utilisable par les utilisateurs.\\n NOTE : Le rôle est sensible aux majuscules et minuscules !\\n "
#: redbot/cogs/admin/admin.py:386
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgstr "\\n Supprimez un auto-rôle de vous-même.\\n\\n Les administrateurs du serveur doivent avoir configuré le rôle en tant qu'utilisable par les utilisateurs.\\n NOTE : Le rôle est sensible aux majuscules et minuscules !\\n "
#: redbot/cogs/admin/admin.py:397
#, docstring
@@ -182,7 +180,7 @@ msgstr "Gérer les auto-roles."
#: redbot/cogs/admin/admin.py:418
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgstr "\\nAjouter un rôle à la liste des auto-rôles disponibles.\\n\\n NOTE : Le nom du rôle est sensible aux majuscules et minuscules !\\n "
#: redbot/cogs/admin/admin.py:425
msgid "I cannot let you add {role.name} as a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
@@ -234,7 +232,7 @@ msgstr "Je n'ai pas pu annoncer aux serveurs suivants : "
msgid "The Admin cog is not loaded."
msgstr "Le cog Admin n'est pas chargé."
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "Le rôle fourni n'est pas un auto-rôle valide."

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:13\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Hebrew\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: he\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: he_IL\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:13\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Hungarian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: hu\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: hu_HU\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:14\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Indonesian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: id\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: id_ID\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:14\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Italian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: it\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: it_IT\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr "Il cog Admin non è caricato."
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "Il ruolo fornito non è un ruolo autoassegnabile valido."

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:14\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Japanese\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: ja\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: ja_JP\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:14\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Korean\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: ko\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: ko_KR\n"
#: redbot/cogs/admin/admin.py:17
@@ -190,7 +188,7 @@ msgstr ""
#: redbot/cogs/admin/admin.py:433
msgid "Added."
msgstr ""
msgstr "추가됐어요."
#: redbot/cogs/admin/admin.py:436
msgid "That role is already a selfrole."
@@ -207,7 +205,7 @@ msgstr ""
#: redbot/cogs/admin/admin.py:455
msgid "Removed."
msgstr ""
msgstr "제거됐어요."
#: redbot/cogs/admin/admin.py:460
#, docstring
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:12\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Dutch\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: nl\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: nl_NL\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr "Ik kon de volgende servers niet aankondigen: "
msgid "The Admin cog is not loaded."
msgstr "De admin cog is niet geladen."
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "De ingevulde rol is geen beschikbare selfrole."

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:14\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Norwegian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: no\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: no_NO\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:14\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Polish\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: pl\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: pl_PL\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr "Moduł Admin nie jest załadowany."
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:15\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Portuguese, Brazilian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: pt-BR\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: pt_BR\n"
#: redbot/cogs/admin/admin.py:17
@@ -21,31 +19,31 @@ msgstr "Eu tentei fazer algo que o Discord me negou as permissões. Seu comando
#: redbot/cogs/admin/admin.py:22
msgid "I can not give {role.name} to {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr ""
msgstr "Não posso atribuir o cargo {role.name} para {member.display_name} porque este cargo é mais alto ou igual que o meu cargo mais alto na hierarquia do Discord."
#: redbot/cogs/admin/admin.py:28
msgid "I can not remove {role.name} from {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr ""
msgstr "Não posso remover o cargo {role.name} de {member.display_name} porque este cargo é mais alto ou igual que o meu cargo mais alto na hierarquia do Discord."
#: redbot/cogs/admin/admin.py:34
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
msgstr ""
msgstr "Não posso alterar o cargo {role.name} porque este cargo é mais alto ou igual que o meu cargo mais alto na hierarquia do Discord."
#: redbot/cogs/admin/admin.py:40
msgid "I can not let you give {role.name} to {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
msgstr "Não posso deixar você atribuir o cargo {role.name} para {member.display_name} porque este cargo é mais alto ou igual que o meu cargo mais alto na hierarquia do Discord."
#: redbot/cogs/admin/admin.py:46
msgid "I can not let you remove {role.name} from {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
msgstr "Não posso deixar você rmover o cargo {role.name} de {member.display_name} porque este cargo é mais alto ou igual que o meu cargo mais alto na hierarquia do Discord."
#: redbot/cogs/admin/admin.py:52
msgid "I can not let you edit {role.name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
msgstr "Não posso deixar você alterar o cargo {role.name} porque este cargo é mais alto ou igual que o meu cargo mais alto na hierarquia do Discord."
#: redbot/cogs/admin/admin.py:58
msgid "I need manage roles permission to do that."
msgstr ""
msgstr "Preciso da permissão para alterar os cargos para fazer isto."
#: redbot/cogs/admin/admin.py:60
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
@@ -54,11 +52,11 @@ msgstr "Eu já estou anunciando algo. Se quer fazer um anúncio diferente, por f
#: redbot/cogs/admin/admin.py:70
#, docstring
msgid "A collection of server administration utilities."
msgstr "Uma coleção de ferramentas de administração para o servidor."
msgstr "Um conjunto de ferramentas para a administração do servidor."
#: redbot/cogs/admin/admin.py:126
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
msgstr "{member.display_name} já tem o cargo {role.name}."
#: redbot/cogs/admin/admin.py:146
msgid "I successfully added {role.name} to {member.display_name}"
@@ -66,31 +64,31 @@ msgstr "Eu adicionei com sucesso {role.name} de {member.display_name}"
#: redbot/cogs/admin/admin.py:156
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
msgstr "{member.display_name} não tem o cargo {role.name}."
#: redbot/cogs/admin/admin.py:176
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr "Eu removi com sucesso {role.name} de {member.display_name}"
msgstr "Eu removi {role.name} de {member.display_name} com sucesso"
#: redbot/cogs/admin/admin.py:187
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgstr "\\n Concede um cargo a um(a) usuário(a).\\n\\n Use aspas duplas se o nome do cargo contiver espaços.\\n Se o usuário for deixado em branco, por padrão será usado a(o) autor(a) do comando.\\n "
#: redbot/cogs/admin/admin.py:203
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgstr "\\n Remove um cargo de um(a) usuário(a).\\n\\n Use aspas duplas se o nome do cargo contiver espaços.\\n Se o usuário for deixado em branco, por padrão será usado a(o) autor(a) do comando.\\n "
#: redbot/cogs/admin/admin.py:217
#, docstring
msgid "Edit role settings."
msgstr "Edite as configurações de cargo."
msgstr "Altera as configurações de cargo."
#: redbot/cogs/admin/admin.py:224
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgstr ""
msgstr "\\n Edita a cor de um cargo.\\n\\n Use aspas duplas se o cargo contiver espaços.\\n A cor precisa estar em formato hexadecimal.\\n [Seletor de cores online](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Exemplos:\\n `[p]editrole colour \\\"O Transistor\\\" #ff0000`\\n `[p]editrole colour Teste #ff9900`\\n "
#: redbot/cogs/admin/admin.py:253 redbot/cogs/admin/admin.py:286
msgid "Done."
@@ -99,142 +97,142 @@ msgstr "Concluído."
#: redbot/cogs/admin/admin.py:257
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgstr ""
msgstr "\\n Alterar o nome de um cargo.\\n\\n Use aspas duplas se o cargo ou o nome contiverem espaços.\\n\\n Exemplo:\\n `[p]editrole name \\\"O Transistor\\\" Teste`\\n "
#: redbot/cogs/admin/admin.py:291
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr ""
msgstr "Anuncia uma mensagem para todos os servidores onde o bot está."
#: redbot/cogs/admin/admin.py:298
msgid "The announcement has begun."
msgstr ""
msgstr "O anúncio começou."
#: redbot/cogs/admin/admin.py:305
#, docstring
msgid "Cancel a running announce."
msgstr ""
msgstr "Cancela um anúncio em andamento."
#: redbot/cogs/admin/admin.py:307
msgid "There is no currently running announcement."
msgstr ""
msgstr "Não existe nenhum anúncio em andamento."
#: redbot/cogs/admin/admin.py:310
msgid "The current announcement has been cancelled."
msgstr ""
msgstr "O anúncio atual foi cancelado."
#: redbot/cogs/admin/admin.py:316
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
msgstr "Altera como os anúncios são enviados nessa guilda."
#: redbot/cogs/admin/admin.py:321
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n \\n If channel is left blank it defaults to the current channel.\\n "
msgstr ""
msgstr "\\n Altera o canal para onde o bot enviará os anúncios.\\n \\n Se o canal for deixado em branco, por padrão será usado o canal atual.\\n "
#: redbot/cogs/admin/admin.py:330
msgid "The announcement channel has been set to {channel.mention}"
msgstr ""
msgstr "O canal de anúncios foi definido como {channel.mention}"
#: redbot/cogs/admin/admin.py:335
#, docstring
msgid "Toggle announcements being enabled this server."
msgstr ""
msgstr "Alterna se os anúncios estão habilitados nesse servidor."
#: redbot/cogs/admin/admin.py:340
msgid "The server {guild.name} will receive announcements."
msgstr ""
msgstr "O servidor {guild.name} receberá anúncios."
#: redbot/cogs/admin/admin.py:344
msgid "The server {guild.name} will not receive announcements."
msgstr ""
msgstr "O servidor {guild.name} não receberá anúncios."
#: redbot/cogs/admin/admin.py:370
#, docstring
msgid "Apply selfroles."
msgstr ""
msgstr "Concede cargos autoatribuíveis a si."
#: redbot/cogs/admin/admin.py:375
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgstr "\\n Concede um cargo autoatribuível a si.\\n\\n Os administradores do servidor precisarão configurar o cargo como autoatribuível.\\n NOTA: o nome do cargo diferencia entre maiúsculas e minúsculas!\\n "
#: redbot/cogs/admin/admin.py:386
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgstr "\\n Remove um cargo autoatribuível de si.\\n\\n Os administradores do servidor precisarão configurar o cargo como autoatribuível.\\n NOTA: o nome do cargo diferencia entre maiúsculas e minúsculas!\\n "
#: redbot/cogs/admin/admin.py:397
#, docstring
msgid "\\n Lists all available selfroles.\\n "
msgstr ""
msgstr "\\n Lista todos os cargos autoatribuíveis.\\n "
#: redbot/cogs/admin/admin.py:407
msgid "Available Selfroles:\\n{selfroles}"
msgstr ""
msgstr "Cargos autoatribuíveis disponíveis:\\n{selfroles}"
#: redbot/cogs/admin/admin.py:413
#, docstring
msgid "Manage selfroles."
msgstr ""
msgstr "Gerenciar cargos autoatribuíveis."
#: redbot/cogs/admin/admin.py:418
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgstr "\\n Adiciona um cargo à lista de cargos autoatribuíveis.\\n\\n NOTA: o nome do cargo diferencia entre maiúsculas e minúsculas!\\n "
#: redbot/cogs/admin/admin.py:425
msgid "I cannot let you add {role.name} as a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
msgstr "Não posso deixar você atribuir {role.name} como um cargo autoatribuível porque este cargo é mais alto ou igual ao seu mais alto cargo na hierarquia do Discord."
#: redbot/cogs/admin/admin.py:433
msgid "Added."
msgstr ""
msgstr "Adicionado."
#: redbot/cogs/admin/admin.py:436
msgid "That role is already a selfrole."
msgstr ""
msgstr "Este cargo já é autoatribuível."
#: redbot/cogs/admin/admin.py:440
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgstr "\\n Remove um cargo da lista de cargos autoatribuíveis.\\n\\n NOTA: o nome do cargo diferencia entre maiúsculas e minúsculas!\\n "
#: redbot/cogs/admin/admin.py:447
msgid "I cannot let you remove {role.name} from being a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
msgstr "Não posso deixar você remover o cargo {role.name} da lista de cargos autoatribuíveis porque este cargo é mais alto ou igual ao seu mais alto cargo na hierarquia do Discord."
#: redbot/cogs/admin/admin.py:455
msgid "Removed."
msgstr ""
msgstr "Removido."
#: redbot/cogs/admin/admin.py:460
#, docstring
msgid "Lock a bot to its current servers only."
msgstr ""
msgstr "Restringe o bot somente aos servidores atuais."
#: redbot/cogs/admin/admin.py:465
msgid "The bot is no longer serverlocked."
msgstr ""
msgstr "O bot não está mais restrito aos servidores atuais."
#: redbot/cogs/admin/admin.py:467
msgid "The bot is now serverlocked."
msgstr ""
msgstr "O está restrito aos servidores atuais."
#: redbot/cogs/admin/announcer.py:75
msgid "I could not announce to the following server: "
msgstr ""
msgstr "Não pude anunciar no seguinte servidor: "
#: redbot/cogs/admin/announcer.py:77
msgid "I could not announce to the following servers: "
msgstr ""
msgstr "Não pude anunciar nos seguintes servidores: "
#: redbot/cogs/admin/converters.py:12
msgid "The Admin cog is not loaded."
msgstr ""
msgstr "O cog 'Admin' não está carregado."
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""
msgstr "O cargo fornecido não é um cargo autoatribuível válido."

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:15\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Portuguese\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: pt-PT\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: pt_PT\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr "O cog 'Admin' não está carregado."
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "O cargo indicado não é um cargo definível válido."

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:15\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Romanian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: ro\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: ro_RO\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:15\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Russian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: ru\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: ru_RU\n"
#: redbot/cogs/admin/admin.py:17
@@ -21,27 +19,27 @@ msgstr "Я попыталась сделать что-то, в чем Discord о
#: redbot/cogs/admin/admin.py:22
msgid "I can not give {role.name} to {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr ""
msgstr "Я не могу дать {role.name} для {member.display_name}, потому что эта роль выше или равна моей самой высокой роли в иерархии Discord."
#: redbot/cogs/admin/admin.py:28
msgid "I can not remove {role.name} from {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr ""
msgstr "Я не могу убрать {role.name} у {member.display_name}, потому что эта роль выше или равна моей самой высокой роли в иерархии Discord."
#: redbot/cogs/admin/admin.py:34
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
msgstr ""
msgstr "Я не могу редактировать {role.name}, потому что эта роль выше моей или равна самой высокой роли в иерархии Discord."
#: redbot/cogs/admin/admin.py:40
msgid "I can not let you give {role.name} to {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
msgstr "Я не могу вам дать {role.name}, {member.display_name}, поскольку эта роль выше или равна вашей самой высокой роли в иерархии Discord."
#: redbot/cogs/admin/admin.py:46
msgid "I can not let you remove {role.name} from {member.display_name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
msgstr "Я не могу позволить вам удалить {role.name} у {member.display_name}, потому что эта роль выше или равна вашей самой высокой роли в иерархии Discord."
#: redbot/cogs/admin/admin.py:52
msgid "I can not let you edit {role.name} because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
msgstr "Я не могу позволить вам редактировать {role.name}, потому что эта роль больше или равна вашей самой высокой роли в иерархии Discord."
#: redbot/cogs/admin/admin.py:58
msgid "I need manage roles permission to do that."
@@ -58,7 +56,7 @@ msgstr "Набор утилит администрирования сервер
#: redbot/cogs/admin/admin.py:126
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
msgstr "{member.display_name} уже имеет роль {role.name}."
#: redbot/cogs/admin/admin.py:146
msgid "I successfully added {role.name} to {member.display_name}"
@@ -66,7 +64,7 @@ msgstr "Я успешно добавила роль {role.name} пользова
#: redbot/cogs/admin/admin.py:156
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
msgstr "{member.display_name} не имеет роли {role.name}."
#: redbot/cogs/admin/admin.py:176
msgid "I successfully removed {role.name} from {member.display_name}"
@@ -75,12 +73,12 @@ msgstr "Я успешно забрала роль {role.name} у пользов
#: redbot/cogs/admin/admin.py:187
#, docstring
msgid "\\n Add a role to a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgstr "\\n Добавить роль пользователю.\\n\\n Используйте двойные кавычки, если роль содержит пробелы.\\n Если пользователь не указан, по умолчанию используется автор команды.\\n "
#: redbot/cogs/admin/admin.py:203
#, docstring
msgid "\\n Remove a role from a user.\\n\\n Use double quotes if the role contains spaces.\\n If user is left blank it defaults to the author of the command.\\n "
msgstr ""
msgstr "\\n Удалить роль у пользователя.\\n\\n Используйте двойные кавычки, если роль содержит пробелы.\\n Если пользователь не указан, по умолчанию используется автор команды.\\n "
#: redbot/cogs/admin/admin.py:217
#, docstring
@@ -90,7 +88,7 @@ msgstr "Изменение параметров роли."
#: redbot/cogs/admin/admin.py:224
#, docstring
msgid "\\n Edit a role's colour.\\n\\n Use double quotes if the role contains spaces.\\n Colour must be in hexadecimal format.\\n [Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Examples:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
msgstr ""
msgstr "\\n Изменить цвет роли.\\n\\n Используйте двойные кавычки, если роль содержит пробелы.\\n Цвет должен быть в шестнадцатеричном формате.\\n [Онлайн-палитра цветов](http://www.w3schools.com/colors/colors_picker.asp)\\n\\n Примеры:\\n `[p]editrole colour \\\"The Transistor\\\" #ff0000`\\n `[p]editrole colour Test #ff9900`\\n "
#: redbot/cogs/admin/admin.py:253 redbot/cogs/admin/admin.py:286
msgid "Done."
@@ -99,7 +97,7 @@ msgstr "Готово."
#: redbot/cogs/admin/admin.py:257
#, docstring
msgid "\\n Edit a role's name.\\n\\n Use double quotes if the role or the name contain spaces.\\n\\n Example:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
msgstr ""
msgstr "\\n Изменить название роли.\\n\\n Используйте двойные кавычки, если роль или имя содержат пробелы.\\n\\n Примеры:\\n `[p]editrole name \\\"The Transistor\\\" Test`\\n "
#: redbot/cogs/admin/admin.py:291
#, docstring
@@ -117,7 +115,7 @@ msgstr "Отменить текущее объявление."
#: redbot/cogs/admin/admin.py:307
msgid "There is no currently running announcement."
msgstr ""
msgstr "В данный момент нет запущенных объявлений."
#: redbot/cogs/admin/admin.py:310
msgid "The current announcement has been cancelled."
@@ -126,12 +124,12 @@ msgstr "Текущее объявление было отменено."
#: redbot/cogs/admin/admin.py:316
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
msgstr "Изменить способ отправки объявлений на этом сервере."
#: redbot/cogs/admin/admin.py:321
#, docstring
msgid "\\n Change the channel where the bot will send announcements.\\n \\n If channel is left blank it defaults to the current channel.\\n "
msgstr ""
msgstr "\\n Изменить канал, в котором бот будет отправлять объявления.\\n \\n Если канал не указан, по умолчанию используется текущий канал.\\n "
#: redbot/cogs/admin/admin.py:330
msgid "The announcement channel has been set to {channel.mention}"
@@ -153,17 +151,17 @@ msgstr "Сервер {guild.name} не будет получать объявл
#: redbot/cogs/admin/admin.py:370
#, docstring
msgid "Apply selfroles."
msgstr ""
msgstr "Применить свои роли."
#: redbot/cogs/admin/admin.py:375
#, docstring
msgid "\\n Add a selfrole to yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgstr "\\n Добавить собственную роль себе.\\n\\n Администраторы сервера должны настроить роль как устанавливаемую пользователем.\\n ПРИМЕЧАНИЕ: Роль чувствительна к регистру!\\n "
#: redbot/cogs/admin/admin.py:386
#, docstring
msgid "\\n Remove a selfrole from yourself.\\n\\n Server admins must have configured the role as user settable.\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgstr "\\n Удалить собственную роль у себя.\\n\\n Администраторы сервера должны настроить роль как устанавливаемую пользователем.\\n ПРИМЕЧАНИЕ: Роль чувствительна к регистру!\\n "
#: redbot/cogs/admin/admin.py:397
#, docstring
@@ -177,37 +175,37 @@ msgstr "Доступные Собственные роли:\\n{selfroles}"
#: redbot/cogs/admin/admin.py:413
#, docstring
msgid "Manage selfroles."
msgstr ""
msgstr "Управление своими ролями."
#: redbot/cogs/admin/admin.py:418
#, docstring
msgid "\\n Add a role to the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgstr "\\n Добавить роль в список доступных своих ролей.\\n\\n ПРИМЕЧАНИЕ: Роль чувствительна к регистру!\\n "
#: redbot/cogs/admin/admin.py:425
msgid "I cannot let you add {role.name} as a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
msgstr "Я не могу позволить вам добавить {role.name} в качестве собственной роли, потому что эта роль выше или равна вашей самой высокой роли в иерархии Discord."
#: redbot/cogs/admin/admin.py:433
msgid "Added."
msgstr ""
msgstr "Добавлено."
#: redbot/cogs/admin/admin.py:436
msgid "That role is already a selfrole."
msgstr ""
msgstr "Эта роль уже является собственной ролью."
#: redbot/cogs/admin/admin.py:440
#, docstring
msgid "\\n Remove a role from the list of available selfroles.\\n\\n NOTE: The role is case sensitive!\\n "
msgstr ""
msgstr "\\n Удалить роль из списка доступных собственных ролей.\\n\\n ПРИМЕЧАНИЕ: Роль чувствительна к регистру!\\n "
#: redbot/cogs/admin/admin.py:447
msgid "I cannot let you remove {role.name} from being a selfrole because that role is higher than or equal to your highest role in the Discord hierarchy."
msgstr ""
msgstr "Я не могу позволить вам сделать {role.name} не собственной ролью, потому что эта роль выше или равна вашей самой высокой роли в иерархии Discord."
#: redbot/cogs/admin/admin.py:455
msgid "Removed."
msgstr ""
msgstr "Удалено."
#: redbot/cogs/admin/admin.py:460
#, docstring
@@ -224,17 +222,17 @@ msgstr "Бот теперь зафиксирован на сервере."
#: redbot/cogs/admin/announcer.py:75
msgid "I could not announce to the following server: "
msgstr ""
msgstr "Я не могу сделать объявление на следующем сервере: "
#: redbot/cogs/admin/announcer.py:77
msgid "I could not announce to the following servers: "
msgstr ""
msgstr "Я не могу сделать объявление на следующих серверах: "
#: redbot/cogs/admin/converters.py:12
msgid "The Admin cog is not loaded."
msgstr "Модуль Admin не загружен."
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "Предоставленная роль не является допустимой ролью."

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:16\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Slovak\n"
"MIME-Version: 1.0\n"
@@ -12,16 +11,15 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: sk\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: sk_SK\n"
#: redbot/cogs/admin/admin.py:17
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
msgstr ""
msgstr "Pokúsil som sa urobiť niečo, pre čo mi Discord odoprel povolenie. Váš príkaz sa nepodarilo úspešne dokončiť."
#: redbot/cogs/admin/admin.py:22
msgid "I can not give {role.name} to {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
msgstr ""
msgstr "Nemôžem dať {role.name} na {member.display_name} pretože táto rola je vyššia alebo rovná mojej najvyššej rolí v Discord hierarchií."
#: redbot/cogs/admin/admin.py:28
msgid "I can not remove {role.name} from {member.display_name} because that role is higher than or equal to my highest role in the Discord hierarchy."
@@ -49,20 +47,22 @@ msgstr ""
#: redbot/cogs/admin/admin.py:60
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
msgstr ""
msgstr "Už niečo oznamujem. Ak by ste chceli urobiť iné oznámenie, prosím, najskôr použite `{prefix} oznámiť zrušenie`."
#: redbot/cogs/admin/admin.py:70
#, docstring
msgid "A collection of server administration utilities."
msgstr ""
msgstr "\n"
"Zbierka obslužných programov pre správu servera."
#: redbot/cogs/admin/admin.py:126
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
msgstr "{member.display_name} už má rolu {role.name}."
#: redbot/cogs/admin/admin.py:146
msgid "I successfully added {role.name} to {member.display_name}"
msgstr ""
msgstr "\n"
"Úspešne som pridal {role.name} do {member.display_name}"
#: redbot/cogs/admin/admin.py:156
msgid "{member.display_name} does not have the role {role.name}."
@@ -234,7 +234,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:15\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Serbian (Cyrillic)\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: sr\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: sr_SP\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:16\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Swedish\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: sv-SE\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: sv_SE\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr "Admin cog är inte laddad."
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "Den angivna rollen är inte en giltig självroll."

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:16\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Turkish\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: tr\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: tr_TR\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr "The Admin eklentisi yüklenmedi."
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "Girilen selfrol geçerli değil."

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:16\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Ukrainian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: uk\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: uk_UA\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:16\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Vietnamese\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: vi\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: vi_VN\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:11\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Chinese Simplified\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: zh-CN\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: zh_CN\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:12\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Chinese Traditional, Hong Kong\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: zh-HK\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: zh_HK\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-08 18:08+0000\n"
"PO-Revision-Date: 2020-02-13 12:12\n"
"POT-Creation-Date: 2020-04-23 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Chinese Traditional\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: zh-TW\n"
"X-Crowdin-File: /cogs/admin/locales/messages.pot\n"
"Language: zh_TW\n"
#: redbot/cogs/admin/admin.py:17
@@ -234,7 +232,7 @@ msgstr ""
msgid "The Admin cog is not loaded."
msgstr ""
#: redbot/cogs/admin/converters.py:21
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""

View File

@@ -2,5 +2,7 @@ from .alias import Alias
from redbot.core.bot import Red
def setup(bot: Red):
bot.add_cog(Alias(bot))
async def setup(bot: Red):
cog = Alias(bot)
await cog.initialize()
bot.add_cog(cog)

View File

@@ -1,16 +1,15 @@
from copy import copy
from re import findall, search
from re import search
from string import Formatter
from typing import Generator, Tuple, Iterable, Optional
from typing import Dict
import discord
from discord.ext.commands.view import StringView
from redbot.core import Config, commands, checks
from redbot.core.i18n import Translator, cog_i18n
from redbot.core.utils.chat_formatting import box
from redbot.core.bot import Red
from .alias_entry import AliasEntry
from .alias_entry import AliasEntry, AliasCache, ArgParseError
_ = Translator("Alias", __file__)
@@ -26,10 +25,6 @@ class _TrackingFormatter(Formatter):
return super().get_value(key, args, kwargs)
class ArgParseError(Exception):
pass
@cog_i18n(_)
class Alias(commands.Cog):
"""Create aliases for commands.
@@ -42,51 +37,23 @@ class Alias(commands.Cog):
and append them to the stored alias.
"""
default_global_settings = {"entries": []}
default_global_settings: Dict[str, list] = {"entries": []}
default_guild_settings = {"enabled": False, "entries": []} # Going to be a list of dicts
default_guild_settings: Dict[str, list] = {"entries": []} # Going to be a list of dicts
def __init__(self, bot: Red):
super().__init__()
self.bot = bot
self._aliases = Config.get_conf(self, 8927348724)
self.config = Config.get_conf(self, 8927348724)
self._aliases.register_global(**self.default_global_settings)
self._aliases.register_guild(**self.default_guild_settings)
self.config.register_global(**self.default_global_settings)
self.config.register_guild(**self.default_guild_settings)
self._aliases: AliasCache = AliasCache(config=self.config, cache_enabled=True)
async def unloaded_aliases(self, guild: discord.Guild) -> Generator[AliasEntry, None, None]:
return (AliasEntry.from_json(d) for d in (await self._aliases.guild(guild).entries()))
async def unloaded_global_aliases(self) -> Generator[AliasEntry, None, None]:
return (AliasEntry.from_json(d) for d in (await self._aliases.entries()))
async def loaded_aliases(self, guild: discord.Guild) -> Generator[AliasEntry, None, None]:
return (
AliasEntry.from_json(d, bot=self.bot)
for d in (await self._aliases.guild(guild).entries())
)
async def loaded_global_aliases(self) -> Generator[AliasEntry, None, None]:
return (AliasEntry.from_json(d, bot=self.bot) for d in (await self._aliases.entries()))
async def is_alias(
self,
guild: Optional[discord.Guild],
alias_name: str,
server_aliases: Iterable[AliasEntry] = (),
) -> Tuple[bool, Optional[AliasEntry]]:
if not server_aliases and guild is not None:
server_aliases = await self.unloaded_aliases(guild)
global_aliases = await self.unloaded_global_aliases()
for aliases in (server_aliases, global_aliases):
for alias in aliases:
if alias.name == alias_name:
return True, alias
return False, None
async def initialize(self):
# This can be where we set the cache_enabled attribute later
if not self._aliases._loaded:
await self._aliases.load_aliases()
def is_command(self, alias_name: str) -> bool:
"""
@@ -100,56 +67,6 @@ class Alias(commands.Cog):
def is_valid_alias_name(alias_name: str) -> bool:
return not bool(search(r"\s", alias_name)) and alias_name.isprintable()
async def add_alias(
self, ctx: commands.Context, alias_name: str, command: str, global_: bool = False
) -> AliasEntry:
indices = findall(r"{(\d*)}", command)
if indices:
try:
indices = [int(a[0]) for a in indices]
except IndexError:
raise ArgParseError(_("Arguments must be specified with a number."))
low = min(indices)
indices = [a - low for a in indices]
high = max(indices)
gaps = set(indices).symmetric_difference(range(high + 1))
if gaps:
raise ArgParseError(
_("Arguments must be sequential. Missing arguments: ")
+ ", ".join(str(i + low) for i in gaps)
)
command = command.format(*(f"{{{i}}}" for i in range(-low, high + low + 1)))
alias = AliasEntry(alias_name, command, ctx.author, global_=global_)
if global_:
settings = self._aliases
else:
settings = self._aliases.guild(ctx.guild)
await settings.enabled.set(True)
async with settings.entries() as curr_aliases:
curr_aliases.append(alias.to_json())
return alias
async def delete_alias(
self, ctx: commands.Context, alias_name: str, global_: bool = False
) -> bool:
if global_:
settings = self._aliases
else:
settings = self._aliases.guild(ctx.guild)
async with settings.entries() as aliases:
for alias in aliases:
alias_obj = AliasEntry.from_json(alias)
if alias_obj.name == alias_name:
aliases.remove(alias)
return True
return False
async def get_prefix(self, message: discord.Message) -> str:
"""
Tries to determine what prefix is used in a message object.
@@ -167,57 +84,11 @@ class Alias(commands.Cog):
return p
raise ValueError(_("No prefix found."))
def get_extra_args_from_alias(
self, message: discord.Message, prefix: str, alias: AliasEntry
) -> str:
"""
When an alias is executed by a user in chat this function tries
to get any extra arguments passed in with the call.
Whitespace will be trimmed from both ends.
:param message:
:param prefix:
:param alias:
:return:
"""
known_content_length = len(prefix) + len(alias.name)
extra = message.content[known_content_length:]
view = StringView(extra)
view.skip_ws()
extra = []
while not view.eof:
prev = view.index
word = view.get_quoted_word()
if len(word) < view.index - prev:
word = "".join((view.buffer[prev], word, view.buffer[view.index - 1]))
extra.append(word)
view.skip_ws()
return extra
async def maybe_call_alias(
self, message: discord.Message, aliases: Iterable[AliasEntry] = None
):
try:
prefix = await self.get_prefix(message)
except ValueError:
return
try:
potential_alias = message.content[len(prefix) :].split(" ")[0]
except IndexError:
return False
is_alias, alias = await self.is_alias(
message.guild, potential_alias, server_aliases=aliases
)
if is_alias:
await self.call_alias(message, prefix, alias)
async def call_alias(self, message: discord.Message, prefix: str, alias: AliasEntry):
new_message = copy(message)
try:
args = self.get_extra_args_from_alias(message, prefix, alias)
except commands.BadArgument as bae:
args = alias.get_extra_args_from_alias(message, prefix)
except commands.BadArgument:
return
trackform = _TrackingFormatter()
@@ -257,8 +128,8 @@ class Alias(commands.Cog):
)
return
is_alias, something_useless = await self.is_alias(ctx.guild, alias_name)
if is_alias:
alias = await self._aliases.get_alias(ctx.guild, alias_name)
if alias:
await ctx.send(
_(
"You attempted to create a new alias"
@@ -279,13 +150,20 @@ class Alias(commands.Cog):
).format(name=alias_name)
)
return
given_command_exists = self.bot.get_command(command.split(maxsplit=1)[0]) is not None
if not given_command_exists:
await ctx.send(
_("You attempted to create a new alias for a command that doesn't exist.")
)
return
# endregion
# At this point we know we need to make a new alias
# and that the alias name is valid.
try:
await self.add_alias(ctx, alias_name, command)
await self._aliases.add_alias(ctx, alias_name, command)
except ArgParseError as e:
return await ctx.send(" ".join(e.args))
@@ -309,8 +187,8 @@ class Alias(commands.Cog):
)
return
is_alias, something_useless = await self.is_alias(ctx.guild, alias_name)
if is_alias:
alias = await self._aliases.get_alias(ctx.guild, alias_name)
if alias:
await ctx.send(
_(
"You attempted to create a new global alias"
@@ -334,7 +212,7 @@ class Alias(commands.Cog):
# endregion
try:
await self.add_alias(ctx, alias_name, command, global_=True)
await self._aliases.add_alias(ctx, alias_name, command, global_=True)
except ArgParseError as e:
return await ctx.send(" ".join(e.args))
@@ -348,8 +226,8 @@ class Alias(commands.Cog):
@commands.guild_only()
async def _help_alias(self, ctx: commands.Context, alias_name: str):
"""Try to execute help for the base command of the alias."""
is_alias, alias = await self.is_alias(ctx.guild, alias_name=alias_name)
if is_alias:
alias = await self._aliases.get_alias(ctx.guild, alias_name=alias_name)
if alias:
if self.is_command(alias.command):
base_cmd = alias.command
else:
@@ -365,9 +243,9 @@ class Alias(commands.Cog):
@commands.guild_only()
async def _show_alias(self, ctx: commands.Context, alias_name: str):
"""Show what command the alias executes."""
is_alias, alias = await self.is_alias(ctx.guild, alias_name)
alias = await self._aliases.get_alias(ctx.guild, alias_name)
if is_alias:
if alias:
await ctx.send(
_("The `{alias_name}` alias will execute the command `{command}`").format(
alias_name=alias_name, command=alias.command
@@ -381,14 +259,11 @@ class Alias(commands.Cog):
@commands.guild_only()
async def _del_alias(self, ctx: commands.Context, alias_name: str):
"""Delete an existing alias on this server."""
aliases = await self.unloaded_aliases(ctx.guild)
try:
next(aliases)
except StopIteration:
if not await self._aliases.get_guild_aliases(ctx.guild):
await ctx.send(_("There are no aliases on this server."))
return
if await self.delete_alias(ctx, alias_name):
if await self._aliases.delete_alias(ctx, alias_name):
await ctx.send(
_("Alias with the name `{name}` was successfully deleted.").format(name=alias_name)
)
@@ -399,14 +274,11 @@ class Alias(commands.Cog):
@global_.command(name="delete", aliases=["del", "remove"])
async def _del_global_alias(self, ctx: commands.Context, alias_name: str):
"""Delete an existing global alias."""
aliases = await self.unloaded_global_aliases()
try:
next(aliases)
except StopIteration:
await ctx.send(_("There are no aliases on this bot."))
if not await self._aliases.get_global_aliases():
await ctx.send(_("There are no global aliases on this bot."))
return
if await self.delete_alias(ctx, alias_name, global_=True):
if await self._aliases.delete_alias(ctx, alias_name, global_=True):
await ctx.send(
_("Alias with the name `{name}` was successfully deleted.").format(name=alias_name)
)
@@ -417,32 +289,34 @@ class Alias(commands.Cog):
@commands.guild_only()
async def _list_alias(self, ctx: commands.Context):
"""List the available aliases on this server."""
names = [_("Aliases:")] + sorted(
["+ " + a.name for a in (await self.unloaded_aliases(ctx.guild))]
)
if len(names) == 0:
await ctx.send(_("There are no aliases on this server."))
else:
guild_aliases = await self._aliases.get_guild_aliases(ctx.guild)
if not guild_aliases:
return await ctx.send(_("There are no aliases on this server."))
names = [_("Aliases:")] + sorted(["+ " + a.name for a in guild_aliases])
await ctx.send(box("\n".join(names), "diff"))
@global_.command(name="list")
async def _list_global_alias(self, ctx: commands.Context):
"""List the available global aliases on this bot."""
names = [_("Aliases:")] + sorted(
["+ " + a.name for a in await self.unloaded_global_aliases()]
)
if len(names) == 0:
await ctx.send(_("There are no aliases on this server."))
else:
global_aliases = await self._aliases.get_global_aliases()
if not global_aliases:
return await ctx.send(_("There are no global aliases."))
names = [_("Aliases:")] + sorted(["+ " + a.name for a in global_aliases])
await ctx.send(box("\n".join(names), "diff"))
@commands.Cog.listener()
async def on_message(self, message: discord.Message):
aliases = list(await self.unloaded_global_aliases())
if message.guild is not None:
aliases = aliases + list(await self.unloaded_aliases(message.guild))
if len(aliases) == 0:
async def on_message_without_command(self, message: discord.Message):
try:
prefix = await self.get_prefix(message)
except ValueError:
return
await self.maybe_call_alias(message, aliases=aliases)
try:
potential_alias = message.content[len(prefix) :].split(" ")[0]
except IndexError:
return
alias = await self._aliases.get_alias(message.guild, potential_alias)
if alias:
await self.call_alias(message, prefix, alias)

View File

@@ -1,25 +1,37 @@
from typing import Tuple
from typing import Tuple, Dict, Optional, List, Union
from re import findall
import discord
from redbot.core import commands
from discord.ext.commands.view import StringView
from redbot.core import commands, Config
from redbot.core.i18n import Translator
from redbot.core.utils import AsyncIter
_ = Translator("Alias", __file__)
class ArgParseError(Exception):
pass
class AliasEntry:
"""An object containing all required information about an alias"""
name: str
command: Union[Tuple[str], str]
creator: int
guild: Optional[int]
uses: int
def __init__(
self, name: str, command: Tuple[str], creator: discord.Member, global_: bool = False
self, name: str, command: Union[Tuple[str], str], creator: int, guild: Optional[int],
):
super().__init__()
self.has_real_data = False
self.name = name
self.command = command
self.creator = creator
self.global_ = global_
self.guild = None
if hasattr(creator, "guild"):
self.guild = creator.guild
self.guild = guild
self.uses = 0
def inc(self):
@@ -30,34 +42,182 @@ class AliasEntry:
self.uses += 1
return self.uses
def get_extra_args_from_alias(self, message: discord.Message, prefix: str) -> str:
"""
When an alias is executed by a user in chat this function tries
to get any extra arguments passed in with the call.
Whitespace will be trimmed from both ends.
:param message:
:param prefix:
:param alias:
:return:
"""
known_content_length = len(prefix) + len(self.name)
extra = message.content[known_content_length:]
view = StringView(extra)
view.skip_ws()
extra = []
while not view.eof:
prev = view.index
word = view.get_quoted_word()
if len(word) < view.index - prev:
word = "".join((view.buffer[prev], word, view.buffer[view.index - 1]))
extra.append(word)
view.skip_ws()
return extra
def to_json(self) -> dict:
try:
creator = str(self.creator.id)
guild = str(self.guild.id)
except AttributeError:
creator = self.creator
guild = self.guild
return {
"name": self.name,
"command": self.command,
"creator": creator,
"guild": guild,
"global": self.global_,
"creator": self.creator,
"guild": self.guild,
"uses": self.uses,
}
@classmethod
def from_json(cls, data: dict, bot: commands.Bot = None):
ret = cls(data["name"], data["command"], data["creator"], global_=data["global"])
if bot:
ret.has_real_data = True
ret.creator = bot.get_user(int(data["creator"]))
guild = bot.get_guild(int(data["guild"]))
ret.guild = guild
else:
ret.guild = data["guild"]
def from_json(cls, data: dict):
ret = cls(data["name"], data["command"], data["creator"], data["guild"])
ret.uses = data.get("uses", 0)
return ret
class AliasCache:
def __init__(self, config: Config, cache_enabled: bool = True):
self.config = config
self._cache_enabled = cache_enabled
self._loaded = False
self._aliases: Dict[Optional[int], Dict[str, AliasEntry]] = {None: {}}
async def load_aliases(self):
if not self._cache_enabled:
self._loaded = True
return
for alias in await self.config.entries():
self._aliases[None][alias["name"]] = AliasEntry.from_json(alias)
all_guilds = await self.config.all_guilds()
async for guild_id, guild_data in AsyncIter(all_guilds.items(), steps=100):
if guild_id not in self._aliases:
self._aliases[guild_id] = {}
for alias in guild_data["entries"]:
self._aliases[guild_id][alias["name"]] = AliasEntry.from_json(alias)
self._loaded = True
async def get_aliases(self, ctx: commands.Context) -> List[AliasEntry]:
"""Returns all possible aliases with the given context"""
global_aliases: List[AliasEntry] = []
server_aliases: List[AliasEntry] = []
global_aliases = await self.get_global_aliases()
if ctx.guild and ctx.guild.id in self._aliases:
server_aliases = await self.get_guild_aliases(ctx.guild)
return global_aliases + server_aliases
async def get_guild_aliases(self, guild: discord.Guild) -> List[AliasEntry]:
"""Returns all guild specific aliases"""
aliases: List[AliasEntry] = []
if self._cache_enabled:
if guild.id in self._aliases:
for _, alias in self._aliases[guild.id].items():
aliases.append(alias)
else:
aliases = [AliasEntry.from_json(d) for d in await self.config.guild(guild).entries()]
return aliases
async def get_global_aliases(self) -> List[AliasEntry]:
"""Returns all global specific aliases"""
aliases: List[AliasEntry] = []
if self._cache_enabled:
for _, alias in self._aliases[None].items():
aliases.append(alias)
else:
aliases = [AliasEntry.from_json(d) for d in await self.config.entries()]
return aliases
async def get_alias(
self, guild: Optional[discord.Guild], alias_name: str,
) -> Optional[AliasEntry]:
"""Returns an AliasEntry object if the provided alias_name is a registered alias"""
server_aliases: List[AliasEntry] = []
if self._cache_enabled:
if alias_name in self._aliases[None]:
return self._aliases[None][alias_name]
if guild is not None:
if guild.id in self._aliases:
if alias_name in self._aliases[guild.id]:
return self._aliases[guild.id][alias_name]
else:
if guild:
server_aliases = [
AliasEntry.from_json(d) for d in await self.config.guild(guild.id).entries()
]
global_aliases = [AliasEntry.from_json(d) for d in await self.config.entries()]
all_aliases = global_aliases + server_aliases
for alias in all_aliases:
if alias.name == alias_name:
return alias
return None
async def add_alias(
self, ctx: commands.Context, alias_name: str, command: str, global_: bool = False
) -> AliasEntry:
indices = findall(r"{(\d*)}", command)
if indices:
try:
indices = [int(a[0]) for a in indices]
except IndexError:
raise ArgParseError(_("Arguments must be specified with a number."))
low = min(indices)
indices = [a - low for a in indices]
high = max(indices)
gaps = set(indices).symmetric_difference(range(high + 1))
if gaps:
raise ArgParseError(
_("Arguments must be sequential. Missing arguments: ")
+ ", ".join(str(i + low) for i in gaps)
)
command = command.format(*(f"{{{i}}}" for i in range(-low, high + low + 1)))
if global_:
alias = AliasEntry(alias_name, command, ctx.author.id, None)
settings = self.config
if self._cache_enabled:
self._aliases[None][alias.name] = alias
else:
alias = AliasEntry(alias_name, command, ctx.author.id, ctx.guild.id)
settings = self.config.guild(ctx.guild)
if self._cache_enabled:
if ctx.guild.id not in self._aliases:
self._aliases[ctx.guild.id] = {}
self._aliases[ctx.guild.id][alias.name] = alias
async with settings.entries() as curr_aliases:
curr_aliases.append(alias.to_json())
return alias
async def delete_alias(
self, ctx: commands.Context, alias_name: str, global_: bool = False
) -> bool:
if global_:
settings = self.config
else:
settings = self.config.guild(ctx.guild)
async with settings.entries() as aliases:
for alias in aliases:
if alias["name"] == alias_name:
aliases.remove(alias)
if self._cache_enabled:
if global_:
del self._aliases[None][alias_name]
else:
del self._aliases[ctx.guild.id][alias_name]
return True
return False

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-20 12:09+0000\n"
"PO-Revision-Date: 2020-02-20 12:10\n"
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Afrikaans\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: af\n"
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
"Language: af_ZA\n"
#: redbot/cogs/alias/alias.py:35
@@ -59,90 +57,94 @@ msgstr ""
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:293
#: redbot/cogs/alias/alias.py:286
msgid "You attempted to create a new alias for a command that doesn't exist."
msgstr ""
#: redbot/cogs/alias/alias.py:300
msgid "A new alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:299
#: redbot/cogs/alias/alias.py:306
#, docstring
msgid "Add a global alias for a command."
msgstr ""
#: redbot/cogs/alias/alias.py:304
#: redbot/cogs/alias/alias.py:311
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
msgstr ""
#: redbot/cogs/alias/alias.py:315
#: redbot/cogs/alias/alias.py:322
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:326
#: redbot/cogs/alias/alias.py:333
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:342
#: redbot/cogs/alias/alias.py:349
msgid "A new global alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:350
#: redbot/cogs/alias/alias.py:357
#, docstring
msgid "Try to execute help for the base command of the alias."
msgstr ""
#: redbot/cogs/alias/alias.py:362
#: redbot/cogs/alias/alias.py:369
msgid "No such alias exists."
msgstr ""
#: redbot/cogs/alias/alias.py:367
#: redbot/cogs/alias/alias.py:374
#, docstring
msgid "Show what command the alias executes."
msgstr ""
#: redbot/cogs/alias/alias.py:372
#: redbot/cogs/alias/alias.py:379
msgid "The `{alias_name}` alias will execute the command `{command}`"
msgstr ""
#: redbot/cogs/alias/alias.py:377
#: redbot/cogs/alias/alias.py:384
msgid "There is no alias with the name `{name}`"
msgstr ""
#: redbot/cogs/alias/alias.py:383
#: redbot/cogs/alias/alias.py:390
#, docstring
msgid "Delete an existing alias on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:388 redbot/cogs/alias/alias.py:424
#: redbot/cogs/alias/alias.py:435
#: redbot/cogs/alias/alias.py:395 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:442
msgid "There are no aliases on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:393 redbot/cogs/alias/alias.py:411
#: redbot/cogs/alias/alias.py:400 redbot/cogs/alias/alias.py:418
msgid "Alias with the name `{name}` was successfully deleted."
msgstr ""
#: redbot/cogs/alias/alias.py:396 redbot/cogs/alias/alias.py:414
#: redbot/cogs/alias/alias.py:403 redbot/cogs/alias/alias.py:421
msgid "Alias with name `{name}` was not found."
msgstr ""
#: redbot/cogs/alias/alias.py:401
#: redbot/cogs/alias/alias.py:408
#, docstring
msgid "Delete an existing global alias."
msgstr ""
#: redbot/cogs/alias/alias.py:406
#: redbot/cogs/alias/alias.py:413
msgid "There are no aliases on this bot."
msgstr ""
#: redbot/cogs/alias/alias.py:419
#: redbot/cogs/alias/alias.py:426
#, docstring
msgid "List the available aliases on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:420 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:427 redbot/cogs/alias/alias.py:438
msgid "Aliases:"
msgstr ""
#: redbot/cogs/alias/alias.py:430
#: redbot/cogs/alias/alias.py:437
#, docstring
msgid "List the available global aliases on this bot."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-20 12:09+0000\n"
"PO-Revision-Date: 2020-02-20 12:10\n"
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: ar\n"
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
"Language: ar_SA\n"
#: redbot/cogs/alias/alias.py:35
@@ -59,90 +57,94 @@ msgstr ""
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:293
#: redbot/cogs/alias/alias.py:286
msgid "You attempted to create a new alias for a command that doesn't exist."
msgstr ""
#: redbot/cogs/alias/alias.py:300
msgid "A new alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:299
#: redbot/cogs/alias/alias.py:306
#, docstring
msgid "Add a global alias for a command."
msgstr ""
#: redbot/cogs/alias/alias.py:304
#: redbot/cogs/alias/alias.py:311
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
msgstr ""
#: redbot/cogs/alias/alias.py:315
#: redbot/cogs/alias/alias.py:322
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:326
#: redbot/cogs/alias/alias.py:333
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:342
#: redbot/cogs/alias/alias.py:349
msgid "A new global alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:350
#: redbot/cogs/alias/alias.py:357
#, docstring
msgid "Try to execute help for the base command of the alias."
msgstr ""
#: redbot/cogs/alias/alias.py:362
#: redbot/cogs/alias/alias.py:369
msgid "No such alias exists."
msgstr ""
#: redbot/cogs/alias/alias.py:367
#: redbot/cogs/alias/alias.py:374
#, docstring
msgid "Show what command the alias executes."
msgstr ""
#: redbot/cogs/alias/alias.py:372
#: redbot/cogs/alias/alias.py:379
msgid "The `{alias_name}` alias will execute the command `{command}`"
msgstr ""
#: redbot/cogs/alias/alias.py:377
#: redbot/cogs/alias/alias.py:384
msgid "There is no alias with the name `{name}`"
msgstr ""
#: redbot/cogs/alias/alias.py:383
#: redbot/cogs/alias/alias.py:390
#, docstring
msgid "Delete an existing alias on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:388 redbot/cogs/alias/alias.py:424
#: redbot/cogs/alias/alias.py:435
#: redbot/cogs/alias/alias.py:395 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:442
msgid "There are no aliases on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:393 redbot/cogs/alias/alias.py:411
#: redbot/cogs/alias/alias.py:400 redbot/cogs/alias/alias.py:418
msgid "Alias with the name `{name}` was successfully deleted."
msgstr ""
#: redbot/cogs/alias/alias.py:396 redbot/cogs/alias/alias.py:414
#: redbot/cogs/alias/alias.py:403 redbot/cogs/alias/alias.py:421
msgid "Alias with name `{name}` was not found."
msgstr ""
#: redbot/cogs/alias/alias.py:401
#: redbot/cogs/alias/alias.py:408
#, docstring
msgid "Delete an existing global alias."
msgstr ""
#: redbot/cogs/alias/alias.py:406
#: redbot/cogs/alias/alias.py:413
msgid "There are no aliases on this bot."
msgstr ""
#: redbot/cogs/alias/alias.py:419
#: redbot/cogs/alias/alias.py:426
#, docstring
msgid "List the available aliases on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:420 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:427 redbot/cogs/alias/alias.py:438
msgid "Aliases:"
msgstr ""
#: redbot/cogs/alias/alias.py:430
#: redbot/cogs/alias/alias.py:437
#, docstring
msgid "List the available global aliases on this bot."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-20 12:09+0000\n"
"PO-Revision-Date: 2020-02-20 12:10\n"
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bulgarian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: bg\n"
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
"Language: bg_BG\n"
#: redbot/cogs/alias/alias.py:35
@@ -59,90 +57,94 @@ msgstr ""
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:293
#: redbot/cogs/alias/alias.py:286
msgid "You attempted to create a new alias for a command that doesn't exist."
msgstr ""
#: redbot/cogs/alias/alias.py:300
msgid "A new alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:299
#: redbot/cogs/alias/alias.py:306
#, docstring
msgid "Add a global alias for a command."
msgstr ""
#: redbot/cogs/alias/alias.py:304
#: redbot/cogs/alias/alias.py:311
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
msgstr ""
#: redbot/cogs/alias/alias.py:315
#: redbot/cogs/alias/alias.py:322
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:326
#: redbot/cogs/alias/alias.py:333
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:342
#: redbot/cogs/alias/alias.py:349
msgid "A new global alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:350
#: redbot/cogs/alias/alias.py:357
#, docstring
msgid "Try to execute help for the base command of the alias."
msgstr ""
#: redbot/cogs/alias/alias.py:362
#: redbot/cogs/alias/alias.py:369
msgid "No such alias exists."
msgstr "Този псевдоним не съществува."
#: redbot/cogs/alias/alias.py:367
#: redbot/cogs/alias/alias.py:374
#, docstring
msgid "Show what command the alias executes."
msgstr ""
#: redbot/cogs/alias/alias.py:372
#: redbot/cogs/alias/alias.py:379
msgid "The `{alias_name}` alias will execute the command `{command}`"
msgstr ""
#: redbot/cogs/alias/alias.py:377
#: redbot/cogs/alias/alias.py:384
msgid "There is no alias with the name `{name}`"
msgstr ""
#: redbot/cogs/alias/alias.py:383
#: redbot/cogs/alias/alias.py:390
#, docstring
msgid "Delete an existing alias on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:388 redbot/cogs/alias/alias.py:424
#: redbot/cogs/alias/alias.py:435
#: redbot/cogs/alias/alias.py:395 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:442
msgid "There are no aliases on this server."
msgstr "Няма използвани псевдоними на този сървър."
#: redbot/cogs/alias/alias.py:393 redbot/cogs/alias/alias.py:411
#: redbot/cogs/alias/alias.py:400 redbot/cogs/alias/alias.py:418
msgid "Alias with the name `{name}` was successfully deleted."
msgstr ""
#: redbot/cogs/alias/alias.py:396 redbot/cogs/alias/alias.py:414
#: redbot/cogs/alias/alias.py:403 redbot/cogs/alias/alias.py:421
msgid "Alias with name `{name}` was not found."
msgstr ""
#: redbot/cogs/alias/alias.py:401
#: redbot/cogs/alias/alias.py:408
#, docstring
msgid "Delete an existing global alias."
msgstr ""
#: redbot/cogs/alias/alias.py:406
#: redbot/cogs/alias/alias.py:413
msgid "There are no aliases on this bot."
msgstr "Няма псевдоними положени към този бот."
#: redbot/cogs/alias/alias.py:419
#: redbot/cogs/alias/alias.py:426
#, docstring
msgid "List the available aliases on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:420 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:427 redbot/cogs/alias/alias.py:438
msgid "Aliases:"
msgstr "Псевдоними:"
#: redbot/cogs/alias/alias.py:430
#: redbot/cogs/alias/alias.py:437
#, docstring
msgid "List the available global aliases on this bot."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-20 12:09+0000\n"
"PO-Revision-Date: 2020-02-20 12:10\n"
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Catalan\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: ca\n"
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
"Language: ca_ES\n"
#: redbot/cogs/alias/alias.py:35
@@ -59,90 +57,94 @@ msgstr ""
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:293
#: redbot/cogs/alias/alias.py:286
msgid "You attempted to create a new alias for a command that doesn't exist."
msgstr ""
#: redbot/cogs/alias/alias.py:300
msgid "A new alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:299
#: redbot/cogs/alias/alias.py:306
#, docstring
msgid "Add a global alias for a command."
msgstr ""
#: redbot/cogs/alias/alias.py:304
#: redbot/cogs/alias/alias.py:311
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
msgstr ""
#: redbot/cogs/alias/alias.py:315
#: redbot/cogs/alias/alias.py:322
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:326
#: redbot/cogs/alias/alias.py:333
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:342
#: redbot/cogs/alias/alias.py:349
msgid "A new global alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:350
#: redbot/cogs/alias/alias.py:357
#, docstring
msgid "Try to execute help for the base command of the alias."
msgstr ""
#: redbot/cogs/alias/alias.py:362
#: redbot/cogs/alias/alias.py:369
msgid "No such alias exists."
msgstr ""
#: redbot/cogs/alias/alias.py:367
#: redbot/cogs/alias/alias.py:374
#, docstring
msgid "Show what command the alias executes."
msgstr ""
#: redbot/cogs/alias/alias.py:372
#: redbot/cogs/alias/alias.py:379
msgid "The `{alias_name}` alias will execute the command `{command}`"
msgstr ""
#: redbot/cogs/alias/alias.py:377
#: redbot/cogs/alias/alias.py:384
msgid "There is no alias with the name `{name}`"
msgstr ""
#: redbot/cogs/alias/alias.py:383
#: redbot/cogs/alias/alias.py:390
#, docstring
msgid "Delete an existing alias on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:388 redbot/cogs/alias/alias.py:424
#: redbot/cogs/alias/alias.py:435
#: redbot/cogs/alias/alias.py:395 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:442
msgid "There are no aliases on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:393 redbot/cogs/alias/alias.py:411
#: redbot/cogs/alias/alias.py:400 redbot/cogs/alias/alias.py:418
msgid "Alias with the name `{name}` was successfully deleted."
msgstr ""
#: redbot/cogs/alias/alias.py:396 redbot/cogs/alias/alias.py:414
#: redbot/cogs/alias/alias.py:403 redbot/cogs/alias/alias.py:421
msgid "Alias with name `{name}` was not found."
msgstr ""
#: redbot/cogs/alias/alias.py:401
#: redbot/cogs/alias/alias.py:408
#, docstring
msgid "Delete an existing global alias."
msgstr ""
#: redbot/cogs/alias/alias.py:406
#: redbot/cogs/alias/alias.py:413
msgid "There are no aliases on this bot."
msgstr ""
#: redbot/cogs/alias/alias.py:419
#: redbot/cogs/alias/alias.py:426
#, docstring
msgid "List the available aliases on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:420 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:427 redbot/cogs/alias/alias.py:438
msgid "Aliases:"
msgstr ""
#: redbot/cogs/alias/alias.py:430
#: redbot/cogs/alias/alias.py:437
#, docstring
msgid "List the available global aliases on this bot."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-20 12:09+0000\n"
"PO-Revision-Date: 2020-02-20 12:11\n"
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Czech\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: cs\n"
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
"Language: cs_CZ\n"
#: redbot/cogs/alias/alias.py:35
@@ -59,90 +57,94 @@ msgstr ""
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:293
#: redbot/cogs/alias/alias.py:286
msgid "You attempted to create a new alias for a command that doesn't exist."
msgstr ""
#: redbot/cogs/alias/alias.py:300
msgid "A new alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:299
#: redbot/cogs/alias/alias.py:306
#, docstring
msgid "Add a global alias for a command."
msgstr "Přidat globální alias pro příkaz."
#: redbot/cogs/alias/alias.py:304
#: redbot/cogs/alias/alias.py:311
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
msgstr "Pokusili jste se vytvořit nový globální alias s názvem {name}, ale toto jméno je již příkazem tohoto bota."
#: redbot/cogs/alias/alias.py:315
#: redbot/cogs/alias/alias.py:322
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:326
#: redbot/cogs/alias/alias.py:333
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:342
#: redbot/cogs/alias/alias.py:349
msgid "A new global alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:350
#: redbot/cogs/alias/alias.py:357
#, docstring
msgid "Try to execute help for the base command of the alias."
msgstr ""
#: redbot/cogs/alias/alias.py:362
#: redbot/cogs/alias/alias.py:369
msgid "No such alias exists."
msgstr "Žádný takový alias neexistuje."
#: redbot/cogs/alias/alias.py:367
#: redbot/cogs/alias/alias.py:374
#, docstring
msgid "Show what command the alias executes."
msgstr "Zobrazit příkaz ke spustitelnému aliasu."
#: redbot/cogs/alias/alias.py:372
#: redbot/cogs/alias/alias.py:379
msgid "The `{alias_name}` alias will execute the command `{command}`"
msgstr "Alias `{alias_name} provede příkaz `{command}"
#: redbot/cogs/alias/alias.py:377
#: redbot/cogs/alias/alias.py:384
msgid "There is no alias with the name `{name}`"
msgstr "Neexistuje žádný alias s názvem `{name}`"
#: redbot/cogs/alias/alias.py:383
#: redbot/cogs/alias/alias.py:390
#, docstring
msgid "Delete an existing alias on this server."
msgstr "Odstraní existující alias na tomto serveru."
#: redbot/cogs/alias/alias.py:388 redbot/cogs/alias/alias.py:424
#: redbot/cogs/alias/alias.py:435
#: redbot/cogs/alias/alias.py:395 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:442
msgid "There are no aliases on this server."
msgstr "Na tomto serveru nejsou žádné aliasy."
#: redbot/cogs/alias/alias.py:393 redbot/cogs/alias/alias.py:411
#: redbot/cogs/alias/alias.py:400 redbot/cogs/alias/alias.py:418
msgid "Alias with the name `{name}` was successfully deleted."
msgstr "Alias s názvem{name}` byl úspěšně smazán."
#: redbot/cogs/alias/alias.py:396 redbot/cogs/alias/alias.py:414
#: redbot/cogs/alias/alias.py:403 redbot/cogs/alias/alias.py:421
msgid "Alias with name `{name}` was not found."
msgstr ""
#: redbot/cogs/alias/alias.py:401
#: redbot/cogs/alias/alias.py:408
#, docstring
msgid "Delete an existing global alias."
msgstr "Odstranit existující globální alias."
#: redbot/cogs/alias/alias.py:406
#: redbot/cogs/alias/alias.py:413
msgid "There are no aliases on this bot."
msgstr ""
#: redbot/cogs/alias/alias.py:419
#: redbot/cogs/alias/alias.py:426
#, docstring
msgid "List the available aliases on this server."
msgstr "Seznam dostupných aliasů na tomto serveru."
#: redbot/cogs/alias/alias.py:420 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:427 redbot/cogs/alias/alias.py:438
msgid "Aliases:"
msgstr "Aliasy:"
#: redbot/cogs/alias/alias.py:430
#: redbot/cogs/alias/alias.py:437
#, docstring
msgid "List the available global aliases on this bot."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-20 12:09+0000\n"
"PO-Revision-Date: 2020-02-20 12:11\n"
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Danish\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: da\n"
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
"Language: da_DK\n"
#: redbot/cogs/alias/alias.py:35
@@ -59,90 +57,94 @@ msgstr ""
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:293
#: redbot/cogs/alias/alias.py:286
msgid "You attempted to create a new alias for a command that doesn't exist."
msgstr ""
#: redbot/cogs/alias/alias.py:300
msgid "A new alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:299
#: redbot/cogs/alias/alias.py:306
#, docstring
msgid "Add a global alias for a command."
msgstr ""
#: redbot/cogs/alias/alias.py:304
#: redbot/cogs/alias/alias.py:311
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
msgstr ""
#: redbot/cogs/alias/alias.py:315
#: redbot/cogs/alias/alias.py:322
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:326
#: redbot/cogs/alias/alias.py:333
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:342
#: redbot/cogs/alias/alias.py:349
msgid "A new global alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:350
#: redbot/cogs/alias/alias.py:357
#, docstring
msgid "Try to execute help for the base command of the alias."
msgstr ""
#: redbot/cogs/alias/alias.py:362
#: redbot/cogs/alias/alias.py:369
msgid "No such alias exists."
msgstr ""
#: redbot/cogs/alias/alias.py:367
#: redbot/cogs/alias/alias.py:374
#, docstring
msgid "Show what command the alias executes."
msgstr ""
#: redbot/cogs/alias/alias.py:372
#: redbot/cogs/alias/alias.py:379
msgid "The `{alias_name}` alias will execute the command `{command}`"
msgstr ""
#: redbot/cogs/alias/alias.py:377
#: redbot/cogs/alias/alias.py:384
msgid "There is no alias with the name `{name}`"
msgstr ""
#: redbot/cogs/alias/alias.py:383
#: redbot/cogs/alias/alias.py:390
#, docstring
msgid "Delete an existing alias on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:388 redbot/cogs/alias/alias.py:424
#: redbot/cogs/alias/alias.py:435
#: redbot/cogs/alias/alias.py:395 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:442
msgid "There are no aliases on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:393 redbot/cogs/alias/alias.py:411
#: redbot/cogs/alias/alias.py:400 redbot/cogs/alias/alias.py:418
msgid "Alias with the name `{name}` was successfully deleted."
msgstr ""
#: redbot/cogs/alias/alias.py:396 redbot/cogs/alias/alias.py:414
#: redbot/cogs/alias/alias.py:403 redbot/cogs/alias/alias.py:421
msgid "Alias with name `{name}` was not found."
msgstr ""
#: redbot/cogs/alias/alias.py:401
#: redbot/cogs/alias/alias.py:408
#, docstring
msgid "Delete an existing global alias."
msgstr ""
#: redbot/cogs/alias/alias.py:406
#: redbot/cogs/alias/alias.py:413
msgid "There are no aliases on this bot."
msgstr ""
#: redbot/cogs/alias/alias.py:419
#: redbot/cogs/alias/alias.py:426
#, docstring
msgid "List the available aliases on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:420 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:427 redbot/cogs/alias/alias.py:438
msgid "Aliases:"
msgstr ""
#: redbot/cogs/alias/alias.py:430
#: redbot/cogs/alias/alias.py:437
#, docstring
msgid "List the available global aliases on this bot."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-20 12:09+0000\n"
"PO-Revision-Date: 2020-02-20 12:12\n"
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: German\n"
"MIME-Version: 1.0\n"
@@ -12,17 +11,16 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: de\n"
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
"Language: de_DE\n"
#: redbot/cogs/alias/alias.py:35
#, docstring
msgid "Create aliases for commands.\\n\\n Aliases are alternative names shortcuts for commands. They\\n can act as both a lambda (storing arguments for repeated use)\\n or as simply a shortcut to saying \\\"x y z\\\".\\n\\n When run, aliases will accept any additional arguments\\n and append them to the stored alias.\\n "
msgstr "Alias für Befehle erstellen.\\n\\n Aliases sind alternative Namensverknüpfungen für Befehle.\\n können als Lambda (Speicherung von Argumenten für wiederholte Verwendung)\\n oder als einfache Verknüpfung zur Angabe von \\\"x y z\\\" fungieren.\\n\\n Wenn Sie ausgeführt werden, werden Alias zusätzliche Argumente annehmen\\n und sie an die gespeicherten Alias anhängen.\\n \\n "
msgstr "Erstelle einen Alias für einen Befehl.\\n\\n Aliases sind alternative Namen für Befehle.\\n können als Lambda (Speicherung von Argumenten für wiederholte Verwendung)\\n oder als einfache Verknüpfung zur Angabe von \\\"x y z\\\" fungieren.\\n\\n Wenn Sie ausgeführt werden, werden Alias zusätzliche Argumente annehmen\\n und sie an die gespeicherten Alias anhängen.\\n \\n "
#: redbot/cogs/alias/alias.py:111
msgid "Arguments must be specified with a number."
msgstr "Argumente müssen mit einer Nummer bestimmt werden."
msgstr "Die Argumente müssen mit einer Nummer angegeben werden."
#: redbot/cogs/alias/alias.py:118
msgid "Arguments must be sequential. Missing arguments: "
@@ -30,7 +28,7 @@ msgstr "Argumente müssen sequentiell sein. Fehlende Argumente: "
#: redbot/cogs/alias/alias.py:168
msgid "No prefix found."
msgstr "Kein Präfix wurde gefunden."
msgstr "Es wurde kein Prefix gefunden."
#: redbot/cogs/alias/alias.py:235
#, docstring
@@ -49,7 +47,7 @@ msgstr "Füge einen Alias für einen Befehl hinzu."
#: redbot/cogs/alias/alias.py:252
msgid "You attempted to create a new alias with the name {name} but that name is already a command on this bot."
msgstr "Du hast versucht, einen neuen Alias mit dem Namen {name} zu erstellen, aber dieser Name ist bereits ein Befehl für diesen Bot."
msgstr "Du hast versucht, einen neuen Alias mit dem Namen {name} zu erstellen, aber dieser Name wird bereits für einen Befehl des Bots genutzt."
#: redbot/cogs/alias/alias.py:263
msgid "You attempted to create a new alias with the name {name} but that alias already exists on this server."
@@ -59,90 +57,94 @@ msgstr "Du hast versucht einen neuen Alias mit dem Namen {name} zu erstellen, ab
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr "Du hast versucht einen neuen Alias mit dem Namen {name} zu erstellen, aber dieser Name ist ein ungültiger Alias-Name. Alias-Namen dürfen keine Leerzeichen enthalten."
#: redbot/cogs/alias/alias.py:293
msgid "A new alias with the trigger `{name}` has been created."
msgstr "Ein neuer alias mit dem Trigger `{name}` wurde erstellt."
#: redbot/cogs/alias/alias.py:286
msgid "You attempted to create a new alias for a command that doesn't exist."
msgstr ""
#: redbot/cogs/alias/alias.py:299
#: redbot/cogs/alias/alias.py:300
msgid "A new alias with the trigger `{name}` has been created."
msgstr "Ein neuer Alias mit dem Namen`{name}` wurde erstellt."
#: redbot/cogs/alias/alias.py:306
#, docstring
msgid "Add a global alias for a command."
msgstr "Füge einen globalen Alias für einen Befehl hinzu."
#: redbot/cogs/alias/alias.py:304
#: redbot/cogs/alias/alias.py:311
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
msgstr "Du hast versucht, einen neuen globalen Alias mit dem Namen {name} zu erstellen, aber dieser Name ist bereits ein Befehl für diesen Bot."
msgstr "Du hast versucht, einen neuen globalen Alias mit dem Namen {name} zu erstellen, aber dieser Name ist bereits ein Befehl für diesen Bot."
#: redbot/cogs/alias/alias.py:315
#: redbot/cogs/alias/alias.py:322
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
msgstr "Du hast versucht, einen neuen globalen Alias mit dem Namen {name} zu erstellen, dieser ist jedoch bereits auf diesem Server vorhanden."
msgstr "Du hast versucht, einen neuen globalen Alias mit dem Namen {name} zu erstellen, dieser ist jedoch bereits auf diesem Server vorhanden."
#: redbot/cogs/alias/alias.py:326
#: redbot/cogs/alias/alias.py:333
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr "Du hast versucht, einen neuen globalen Alias mit dem Namen {name} zu erstellen, dieser Name ist jedoch ein ungültiger Alias-Name. Alias-Namen dürfen keine Leerzeichen enthalten."
msgstr "Du hast versucht, einen neuen globalen Alias mit dem Namen {name} zu erstellen, dieser Name ist jedoch ein ungültiger Alias-Name. Alias-Namen dürfen keine Leerzeichen enthalten."
#: redbot/cogs/alias/alias.py:342
#: redbot/cogs/alias/alias.py:349
msgid "A new global alias with the trigger `{name}` has been created."
msgstr "Ein neuer globaler Alias mit dem Trigger `{name}` wurde erstellt."
#: redbot/cogs/alias/alias.py:350
#: redbot/cogs/alias/alias.py:357
#, docstring
msgid "Try to execute help for the base command of the alias."
msgstr "Versuche die Hilfe für den Basisbefehl des Alias auszuführen."
#: redbot/cogs/alias/alias.py:362
#: redbot/cogs/alias/alias.py:369
msgid "No such alias exists."
msgstr "So ein Alias ist nicht vorhanden."
#: redbot/cogs/alias/alias.py:367
#: redbot/cogs/alias/alias.py:374
#, docstring
msgid "Show what command the alias executes."
msgstr "Zeige den Befehl, welchen der Alias ausführt."
#: redbot/cogs/alias/alias.py:372
#: redbot/cogs/alias/alias.py:379
msgid "The `{alias_name}` alias will execute the command `{command}`"
msgstr "Der Alias '{alias_name}' führt den Befehl '{command}' aus"
#: redbot/cogs/alias/alias.py:377
#: redbot/cogs/alias/alias.py:384
msgid "There is no alias with the name `{name}`"
msgstr "Kein Alias mit dem Namen '{name}' gefunden"
#: redbot/cogs/alias/alias.py:383
#: redbot/cogs/alias/alias.py:390
#, docstring
msgid "Delete an existing alias on this server."
msgstr "Lösche einen bereits existierenden Alias auf diesem Server."
#: redbot/cogs/alias/alias.py:388 redbot/cogs/alias/alias.py:424
#: redbot/cogs/alias/alias.py:435
#: redbot/cogs/alias/alias.py:395 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:442
msgid "There are no aliases on this server."
msgstr "Es gibt keine Aliasse auf diesem Server."
#: redbot/cogs/alias/alias.py:393 redbot/cogs/alias/alias.py:411
#: redbot/cogs/alias/alias.py:400 redbot/cogs/alias/alias.py:418
msgid "Alias with the name `{name}` was successfully deleted."
msgstr "Der Alias mit dem Namen '{name}' wurde erfolgreich gelöscht."
#: redbot/cogs/alias/alias.py:396 redbot/cogs/alias/alias.py:414
#: redbot/cogs/alias/alias.py:403 redbot/cogs/alias/alias.py:421
msgid "Alias with name `{name}` was not found."
msgstr "Kein Alias mit dem Namen '{name}' gefunden."
#: redbot/cogs/alias/alias.py:401
#: redbot/cogs/alias/alias.py:408
#, docstring
msgid "Delete an existing global alias."
msgstr "Lösche einen bereits existierenden globalen Alias."
#: redbot/cogs/alias/alias.py:406
#: redbot/cogs/alias/alias.py:413
msgid "There are no aliases on this bot."
msgstr "Es gibt keine Aliasse in diesem Bot."
#: redbot/cogs/alias/alias.py:419
#: redbot/cogs/alias/alias.py:426
#, docstring
msgid "List the available aliases on this server."
msgstr "Zeige die auf diesem Server verfügbaren Alias."
#: redbot/cogs/alias/alias.py:420 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:427 redbot/cogs/alias/alias.py:438
msgid "Aliases:"
msgstr "Aliasse:"
#: redbot/cogs/alias/alias.py:430
#: redbot/cogs/alias/alias.py:437
#, docstring
msgid "List the available global aliases on this bot."
msgstr "Zeige die verfügbaren globalen Alias von diesem Bot."

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-20 12:09+0000\n"
"PO-Revision-Date: 2020-02-20 12:12\n"
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Greek\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: el\n"
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
"Language: el_GR\n"
#: redbot/cogs/alias/alias.py:35
@@ -59,90 +57,94 @@ msgstr ""
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:293
#: redbot/cogs/alias/alias.py:286
msgid "You attempted to create a new alias for a command that doesn't exist."
msgstr ""
#: redbot/cogs/alias/alias.py:300
msgid "A new alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:299
#: redbot/cogs/alias/alias.py:306
#, docstring
msgid "Add a global alias for a command."
msgstr ""
#: redbot/cogs/alias/alias.py:304
#: redbot/cogs/alias/alias.py:311
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
msgstr ""
#: redbot/cogs/alias/alias.py:315
#: redbot/cogs/alias/alias.py:322
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:326
#: redbot/cogs/alias/alias.py:333
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:342
#: redbot/cogs/alias/alias.py:349
msgid "A new global alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:350
#: redbot/cogs/alias/alias.py:357
#, docstring
msgid "Try to execute help for the base command of the alias."
msgstr ""
#: redbot/cogs/alias/alias.py:362
#: redbot/cogs/alias/alias.py:369
msgid "No such alias exists."
msgstr ""
#: redbot/cogs/alias/alias.py:367
#: redbot/cogs/alias/alias.py:374
#, docstring
msgid "Show what command the alias executes."
msgstr ""
#: redbot/cogs/alias/alias.py:372
#: redbot/cogs/alias/alias.py:379
msgid "The `{alias_name}` alias will execute the command `{command}`"
msgstr ""
#: redbot/cogs/alias/alias.py:377
#: redbot/cogs/alias/alias.py:384
msgid "There is no alias with the name `{name}`"
msgstr ""
#: redbot/cogs/alias/alias.py:383
#: redbot/cogs/alias/alias.py:390
#, docstring
msgid "Delete an existing alias on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:388 redbot/cogs/alias/alias.py:424
#: redbot/cogs/alias/alias.py:435
#: redbot/cogs/alias/alias.py:395 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:442
msgid "There are no aliases on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:393 redbot/cogs/alias/alias.py:411
#: redbot/cogs/alias/alias.py:400 redbot/cogs/alias/alias.py:418
msgid "Alias with the name `{name}` was successfully deleted."
msgstr ""
#: redbot/cogs/alias/alias.py:396 redbot/cogs/alias/alias.py:414
#: redbot/cogs/alias/alias.py:403 redbot/cogs/alias/alias.py:421
msgid "Alias with name `{name}` was not found."
msgstr ""
#: redbot/cogs/alias/alias.py:401
#: redbot/cogs/alias/alias.py:408
#, docstring
msgid "Delete an existing global alias."
msgstr ""
#: redbot/cogs/alias/alias.py:406
#: redbot/cogs/alias/alias.py:413
msgid "There are no aliases on this bot."
msgstr ""
#: redbot/cogs/alias/alias.py:419
#: redbot/cogs/alias/alias.py:426
#, docstring
msgid "List the available aliases on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:420 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:427 redbot/cogs/alias/alias.py:438
msgid "Aliases:"
msgstr ""
#: redbot/cogs/alias/alias.py:430
#: redbot/cogs/alias/alias.py:437
#, docstring
msgid "List the available global aliases on this bot."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-20 12:09+0000\n"
"PO-Revision-Date: 2020-02-20 12:15\n"
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: es-ES\n"
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
"Language: es_ES\n"
#: redbot/cogs/alias/alias.py:35
@@ -59,90 +57,94 @@ msgstr ""
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:293
#: redbot/cogs/alias/alias.py:286
msgid "You attempted to create a new alias for a command that doesn't exist."
msgstr ""
#: redbot/cogs/alias/alias.py:300
msgid "A new alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:299
#: redbot/cogs/alias/alias.py:306
#, docstring
msgid "Add a global alias for a command."
msgstr ""
#: redbot/cogs/alias/alias.py:304
#: redbot/cogs/alias/alias.py:311
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
msgstr ""
#: redbot/cogs/alias/alias.py:315
#: redbot/cogs/alias/alias.py:322
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:326
#: redbot/cogs/alias/alias.py:333
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:342
#: redbot/cogs/alias/alias.py:349
msgid "A new global alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:350
#: redbot/cogs/alias/alias.py:357
#, docstring
msgid "Try to execute help for the base command of the alias."
msgstr ""
#: redbot/cogs/alias/alias.py:362
#: redbot/cogs/alias/alias.py:369
msgid "No such alias exists."
msgstr "Un alias no existe."
#: redbot/cogs/alias/alias.py:367
#: redbot/cogs/alias/alias.py:374
#, docstring
msgid "Show what command the alias executes."
msgstr ""
#: redbot/cogs/alias/alias.py:372
#: redbot/cogs/alias/alias.py:379
msgid "The `{alias_name}` alias will execute the command `{command}`"
msgstr ""
#: redbot/cogs/alias/alias.py:377
#: redbot/cogs/alias/alias.py:384
msgid "There is no alias with the name `{name}`"
msgstr ""
#: redbot/cogs/alias/alias.py:383
#: redbot/cogs/alias/alias.py:390
#, docstring
msgid "Delete an existing alias on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:388 redbot/cogs/alias/alias.py:424
#: redbot/cogs/alias/alias.py:435
#: redbot/cogs/alias/alias.py:395 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:442
msgid "There are no aliases on this server."
msgstr "No hay los aliases en este servidor."
#: redbot/cogs/alias/alias.py:393 redbot/cogs/alias/alias.py:411
#: redbot/cogs/alias/alias.py:400 redbot/cogs/alias/alias.py:418
msgid "Alias with the name `{name}` was successfully deleted."
msgstr ""
#: redbot/cogs/alias/alias.py:396 redbot/cogs/alias/alias.py:414
#: redbot/cogs/alias/alias.py:403 redbot/cogs/alias/alias.py:421
msgid "Alias with name `{name}` was not found."
msgstr ""
#: redbot/cogs/alias/alias.py:401
#: redbot/cogs/alias/alias.py:408
#, docstring
msgid "Delete an existing global alias."
msgstr ""
#: redbot/cogs/alias/alias.py:406
#: redbot/cogs/alias/alias.py:413
msgid "There are no aliases on this bot."
msgstr "No hay el los alias dentro de este bot."
#: redbot/cogs/alias/alias.py:419
#: redbot/cogs/alias/alias.py:426
#, docstring
msgid "List the available aliases on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:420 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:427 redbot/cogs/alias/alias.py:438
msgid "Aliases:"
msgstr "Alias:"
#: redbot/cogs/alias/alias.py:430
#: redbot/cogs/alias/alias.py:437
#, docstring
msgid "List the available global aliases on this bot."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-20 12:09+0000\n"
"PO-Revision-Date: 2020-02-20 12:11\n"
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Finnish\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: fi\n"
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
"Language: fi_FI\n"
#: redbot/cogs/alias/alias.py:35
@@ -59,90 +57,94 @@ msgstr ""
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:293
#: redbot/cogs/alias/alias.py:286
msgid "You attempted to create a new alias for a command that doesn't exist."
msgstr ""
#: redbot/cogs/alias/alias.py:300
msgid "A new alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:299
#: redbot/cogs/alias/alias.py:306
#, docstring
msgid "Add a global alias for a command."
msgstr ""
#: redbot/cogs/alias/alias.py:304
#: redbot/cogs/alias/alias.py:311
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
msgstr ""
#: redbot/cogs/alias/alias.py:315
#: redbot/cogs/alias/alias.py:322
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:326
#: redbot/cogs/alias/alias.py:333
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:342
#: redbot/cogs/alias/alias.py:349
msgid "A new global alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:350
#: redbot/cogs/alias/alias.py:357
#, docstring
msgid "Try to execute help for the base command of the alias."
msgstr ""
#: redbot/cogs/alias/alias.py:362
#: redbot/cogs/alias/alias.py:369
msgid "No such alias exists."
msgstr ""
#: redbot/cogs/alias/alias.py:367
#: redbot/cogs/alias/alias.py:374
#, docstring
msgid "Show what command the alias executes."
msgstr ""
#: redbot/cogs/alias/alias.py:372
#: redbot/cogs/alias/alias.py:379
msgid "The `{alias_name}` alias will execute the command `{command}`"
msgstr ""
#: redbot/cogs/alias/alias.py:377
#: redbot/cogs/alias/alias.py:384
msgid "There is no alias with the name `{name}`"
msgstr ""
#: redbot/cogs/alias/alias.py:383
#: redbot/cogs/alias/alias.py:390
#, docstring
msgid "Delete an existing alias on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:388 redbot/cogs/alias/alias.py:424
#: redbot/cogs/alias/alias.py:435
#: redbot/cogs/alias/alias.py:395 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:442
msgid "There are no aliases on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:393 redbot/cogs/alias/alias.py:411
#: redbot/cogs/alias/alias.py:400 redbot/cogs/alias/alias.py:418
msgid "Alias with the name `{name}` was successfully deleted."
msgstr ""
#: redbot/cogs/alias/alias.py:396 redbot/cogs/alias/alias.py:414
#: redbot/cogs/alias/alias.py:403 redbot/cogs/alias/alias.py:421
msgid "Alias with name `{name}` was not found."
msgstr ""
#: redbot/cogs/alias/alias.py:401
#: redbot/cogs/alias/alias.py:408
#, docstring
msgid "Delete an existing global alias."
msgstr ""
#: redbot/cogs/alias/alias.py:406
#: redbot/cogs/alias/alias.py:413
msgid "There are no aliases on this bot."
msgstr ""
#: redbot/cogs/alias/alias.py:419
#: redbot/cogs/alias/alias.py:426
#, docstring
msgid "List the available aliases on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:420 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:427 redbot/cogs/alias/alias.py:438
msgid "Aliases:"
msgstr ""
#: redbot/cogs/alias/alias.py:430
#: redbot/cogs/alias/alias.py:437
#, docstring
msgid "List the available global aliases on this bot."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-20 12:09+0000\n"
"PO-Revision-Date: 2020-02-20 12:12\n"
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: French\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: fr\n"
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
"Language: fr_FR\n"
#: redbot/cogs/alias/alias.py:35
@@ -59,90 +57,94 @@ msgstr "Tu as tenté de créer un nouvel alias nommé {name}, mais cet alias exi
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr "Tu as tenté de créer un nouvel alias nommé {name}, mais ce nom d'alias est invalide. Les noms d'alias ne peuvent pas contenir d'espaces."
#: redbot/cogs/alias/alias.py:293
#: redbot/cogs/alias/alias.py:286
msgid "You attempted to create a new alias for a command that doesn't exist."
msgstr ""
#: redbot/cogs/alias/alias.py:300
msgid "A new alias with the trigger `{name}` has been created."
msgstr "Un nouvel alias avec le déclencheur `{name}` a bien été créé."
#: redbot/cogs/alias/alias.py:299
#: redbot/cogs/alias/alias.py:306
#, docstring
msgid "Add a global alias for a command."
msgstr "Ajouter un alias global à une commande."
#: redbot/cogs/alias/alias.py:304
#: redbot/cogs/alias/alias.py:311
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
msgstr "Tu as tenté de créer un nouvel alias global nommé {name}, mais une commande existe déjà avec ce nom sur ce bot."
#: redbot/cogs/alias/alias.py:315
#: redbot/cogs/alias/alias.py:322
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
msgstr "Tu as tenté de créer un nouvel alias global nommé {name}, mais cet alias existe déjà sur ce serveur."
#: redbot/cogs/alias/alias.py:326
#: redbot/cogs/alias/alias.py:333
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr "Tu as tenté de créer un nouvel alias global nommé {name}, mais ce nom d'alias est invalide. Les noms d'alias ne peuvent pas contenir d'espaces."
#: redbot/cogs/alias/alias.py:342
#: redbot/cogs/alias/alias.py:349
msgid "A new global alias with the trigger `{name}` has been created."
msgstr "Un nouvel alias global avec le déclencheur `{name}` a bien été créé."
#: redbot/cogs/alias/alias.py:350
#: redbot/cogs/alias/alias.py:357
#, docstring
msgid "Try to execute help for the base command of the alias."
msgstr "Tente d'exécuter l'aide pour la commande de base de l'alias."
#: redbot/cogs/alias/alias.py:362
#: redbot/cogs/alias/alias.py:369
msgid "No such alias exists."
msgstr "Cet alias n'existe pas."
#: redbot/cogs/alias/alias.py:367
#: redbot/cogs/alias/alias.py:374
#, docstring
msgid "Show what command the alias executes."
msgstr "Affiche la commande que l'alias exécute."
#: redbot/cogs/alias/alias.py:372
#: redbot/cogs/alias/alias.py:379
msgid "The `{alias_name}` alias will execute the command `{command}`"
msgstr "L'alias `{alias_name}` exécute la commande `{command}`"
#: redbot/cogs/alias/alias.py:377
#: redbot/cogs/alias/alias.py:384
msgid "There is no alias with the name `{name}`"
msgstr "Il n'y a pas d'alias nommé `{name}`"
#: redbot/cogs/alias/alias.py:383
#: redbot/cogs/alias/alias.py:390
#, docstring
msgid "Delete an existing alias on this server."
msgstr "Supprime un alias de ce serveur."
#: redbot/cogs/alias/alias.py:388 redbot/cogs/alias/alias.py:424
#: redbot/cogs/alias/alias.py:435
#: redbot/cogs/alias/alias.py:395 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:442
msgid "There are no aliases on this server."
msgstr "Il n'y a pas d'alias sur ce serveur."
#: redbot/cogs/alias/alias.py:393 redbot/cogs/alias/alias.py:411
#: redbot/cogs/alias/alias.py:400 redbot/cogs/alias/alias.py:418
msgid "Alias with the name `{name}` was successfully deleted."
msgstr "L'alias nommé `{name}` a bien été supprimé."
#: redbot/cogs/alias/alias.py:396 redbot/cogs/alias/alias.py:414
#: redbot/cogs/alias/alias.py:403 redbot/cogs/alias/alias.py:421
msgid "Alias with name `{name}` was not found."
msgstr "L'alias nommé `{name}` n'a pas été trouvé."
#: redbot/cogs/alias/alias.py:401
#: redbot/cogs/alias/alias.py:408
#, docstring
msgid "Delete an existing global alias."
msgstr "Supprime un alias global existant."
#: redbot/cogs/alias/alias.py:406
#: redbot/cogs/alias/alias.py:413
msgid "There are no aliases on this bot."
msgstr "Il n'y a pas d'alias sur ce bot."
#: redbot/cogs/alias/alias.py:419
#: redbot/cogs/alias/alias.py:426
#, docstring
msgid "List the available aliases on this server."
msgstr "Liste les alias disponibles sur ce serveur."
#: redbot/cogs/alias/alias.py:420 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:427 redbot/cogs/alias/alias.py:438
msgid "Aliases:"
msgstr "Alias:"
#: redbot/cogs/alias/alias.py:430
#: redbot/cogs/alias/alias.py:437
#, docstring
msgid "List the available global aliases on this bot."
msgstr "Liste les alias globaux disponibles sur ce bot."

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-20 12:09+0000\n"
"PO-Revision-Date: 2020-02-20 12:12\n"
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Hebrew\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: he\n"
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
"Language: he_IL\n"
#: redbot/cogs/alias/alias.py:35
@@ -59,90 +57,94 @@ msgstr ""
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:293
#: redbot/cogs/alias/alias.py:286
msgid "You attempted to create a new alias for a command that doesn't exist."
msgstr ""
#: redbot/cogs/alias/alias.py:300
msgid "A new alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:299
#: redbot/cogs/alias/alias.py:306
#, docstring
msgid "Add a global alias for a command."
msgstr ""
#: redbot/cogs/alias/alias.py:304
#: redbot/cogs/alias/alias.py:311
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
msgstr ""
#: redbot/cogs/alias/alias.py:315
#: redbot/cogs/alias/alias.py:322
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:326
#: redbot/cogs/alias/alias.py:333
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:342
#: redbot/cogs/alias/alias.py:349
msgid "A new global alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:350
#: redbot/cogs/alias/alias.py:357
#, docstring
msgid "Try to execute help for the base command of the alias."
msgstr ""
#: redbot/cogs/alias/alias.py:362
#: redbot/cogs/alias/alias.py:369
msgid "No such alias exists."
msgstr ""
#: redbot/cogs/alias/alias.py:367
#: redbot/cogs/alias/alias.py:374
#, docstring
msgid "Show what command the alias executes."
msgstr ""
#: redbot/cogs/alias/alias.py:372
#: redbot/cogs/alias/alias.py:379
msgid "The `{alias_name}` alias will execute the command `{command}`"
msgstr ""
#: redbot/cogs/alias/alias.py:377
#: redbot/cogs/alias/alias.py:384
msgid "There is no alias with the name `{name}`"
msgstr ""
#: redbot/cogs/alias/alias.py:383
#: redbot/cogs/alias/alias.py:390
#, docstring
msgid "Delete an existing alias on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:388 redbot/cogs/alias/alias.py:424
#: redbot/cogs/alias/alias.py:435
#: redbot/cogs/alias/alias.py:395 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:442
msgid "There are no aliases on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:393 redbot/cogs/alias/alias.py:411
#: redbot/cogs/alias/alias.py:400 redbot/cogs/alias/alias.py:418
msgid "Alias with the name `{name}` was successfully deleted."
msgstr ""
#: redbot/cogs/alias/alias.py:396 redbot/cogs/alias/alias.py:414
#: redbot/cogs/alias/alias.py:403 redbot/cogs/alias/alias.py:421
msgid "Alias with name `{name}` was not found."
msgstr ""
#: redbot/cogs/alias/alias.py:401
#: redbot/cogs/alias/alias.py:408
#, docstring
msgid "Delete an existing global alias."
msgstr ""
#: redbot/cogs/alias/alias.py:406
#: redbot/cogs/alias/alias.py:413
msgid "There are no aliases on this bot."
msgstr ""
#: redbot/cogs/alias/alias.py:419
#: redbot/cogs/alias/alias.py:426
#, docstring
msgid "List the available aliases on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:420 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:427 redbot/cogs/alias/alias.py:438
msgid "Aliases:"
msgstr ""
#: redbot/cogs/alias/alias.py:430
#: redbot/cogs/alias/alias.py:437
#, docstring
msgid "List the available global aliases on this bot."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-20 12:09+0000\n"
"PO-Revision-Date: 2020-02-20 12:12\n"
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Hungarian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: hu\n"
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
"Language: hu_HU\n"
#: redbot/cogs/alias/alias.py:35
@@ -59,90 +57,94 @@ msgstr ""
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:293
#: redbot/cogs/alias/alias.py:286
msgid "You attempted to create a new alias for a command that doesn't exist."
msgstr ""
#: redbot/cogs/alias/alias.py:300
msgid "A new alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:299
#: redbot/cogs/alias/alias.py:306
#, docstring
msgid "Add a global alias for a command."
msgstr ""
#: redbot/cogs/alias/alias.py:304
#: redbot/cogs/alias/alias.py:311
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
msgstr ""
#: redbot/cogs/alias/alias.py:315
#: redbot/cogs/alias/alias.py:322
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:326
#: redbot/cogs/alias/alias.py:333
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:342
#: redbot/cogs/alias/alias.py:349
msgid "A new global alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:350
#: redbot/cogs/alias/alias.py:357
#, docstring
msgid "Try to execute help for the base command of the alias."
msgstr ""
#: redbot/cogs/alias/alias.py:362
#: redbot/cogs/alias/alias.py:369
msgid "No such alias exists."
msgstr "Nem létezik ilyen rövidítés."
#: redbot/cogs/alias/alias.py:367
#: redbot/cogs/alias/alias.py:374
#, docstring
msgid "Show what command the alias executes."
msgstr ""
#: redbot/cogs/alias/alias.py:372
#: redbot/cogs/alias/alias.py:379
msgid "The `{alias_name}` alias will execute the command `{command}`"
msgstr ""
#: redbot/cogs/alias/alias.py:377
#: redbot/cogs/alias/alias.py:384
msgid "There is no alias with the name `{name}`"
msgstr ""
#: redbot/cogs/alias/alias.py:383
#: redbot/cogs/alias/alias.py:390
#, docstring
msgid "Delete an existing alias on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:388 redbot/cogs/alias/alias.py:424
#: redbot/cogs/alias/alias.py:435
#: redbot/cogs/alias/alias.py:395 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:442
msgid "There are no aliases on this server."
msgstr "Nincsenek rövidítések ezen a szerveren."
#: redbot/cogs/alias/alias.py:393 redbot/cogs/alias/alias.py:411
#: redbot/cogs/alias/alias.py:400 redbot/cogs/alias/alias.py:418
msgid "Alias with the name `{name}` was successfully deleted."
msgstr ""
#: redbot/cogs/alias/alias.py:396 redbot/cogs/alias/alias.py:414
#: redbot/cogs/alias/alias.py:403 redbot/cogs/alias/alias.py:421
msgid "Alias with name `{name}` was not found."
msgstr ""
#: redbot/cogs/alias/alias.py:401
#: redbot/cogs/alias/alias.py:408
#, docstring
msgid "Delete an existing global alias."
msgstr ""
#: redbot/cogs/alias/alias.py:406
#: redbot/cogs/alias/alias.py:413
msgid "There are no aliases on this bot."
msgstr "Nincsenek rövidítések ennél a botnál."
#: redbot/cogs/alias/alias.py:419
#: redbot/cogs/alias/alias.py:426
#, docstring
msgid "List the available aliases on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:420 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:427 redbot/cogs/alias/alias.py:438
msgid "Aliases:"
msgstr "Rövidítések:"
#: redbot/cogs/alias/alias.py:430
#: redbot/cogs/alias/alias.py:437
#, docstring
msgid "List the available global aliases on this bot."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-20 12:09+0000\n"
"PO-Revision-Date: 2020-02-20 12:13\n"
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Indonesian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: id\n"
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
"Language: id_ID\n"
#: redbot/cogs/alias/alias.py:35
@@ -59,90 +57,94 @@ msgstr ""
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:293
#: redbot/cogs/alias/alias.py:286
msgid "You attempted to create a new alias for a command that doesn't exist."
msgstr ""
#: redbot/cogs/alias/alias.py:300
msgid "A new alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:299
#: redbot/cogs/alias/alias.py:306
#, docstring
msgid "Add a global alias for a command."
msgstr ""
#: redbot/cogs/alias/alias.py:304
#: redbot/cogs/alias/alias.py:311
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
msgstr ""
#: redbot/cogs/alias/alias.py:315
#: redbot/cogs/alias/alias.py:322
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:326
#: redbot/cogs/alias/alias.py:333
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr ""
#: redbot/cogs/alias/alias.py:342
#: redbot/cogs/alias/alias.py:349
msgid "A new global alias with the trigger `{name}` has been created."
msgstr ""
#: redbot/cogs/alias/alias.py:350
#: redbot/cogs/alias/alias.py:357
#, docstring
msgid "Try to execute help for the base command of the alias."
msgstr ""
#: redbot/cogs/alias/alias.py:362
#: redbot/cogs/alias/alias.py:369
msgid "No such alias exists."
msgstr "Alias tersebut tidak ditemukan."
#: redbot/cogs/alias/alias.py:367
#: redbot/cogs/alias/alias.py:374
#, docstring
msgid "Show what command the alias executes."
msgstr ""
#: redbot/cogs/alias/alias.py:372
#: redbot/cogs/alias/alias.py:379
msgid "The `{alias_name}` alias will execute the command `{command}`"
msgstr ""
#: redbot/cogs/alias/alias.py:377
#: redbot/cogs/alias/alias.py:384
msgid "There is no alias with the name `{name}`"
msgstr ""
#: redbot/cogs/alias/alias.py:383
#: redbot/cogs/alias/alias.py:390
#, docstring
msgid "Delete an existing alias on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:388 redbot/cogs/alias/alias.py:424
#: redbot/cogs/alias/alias.py:435
#: redbot/cogs/alias/alias.py:395 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:442
msgid "There are no aliases on this server."
msgstr "Tidak ada alias pada server ini."
#: redbot/cogs/alias/alias.py:393 redbot/cogs/alias/alias.py:411
#: redbot/cogs/alias/alias.py:400 redbot/cogs/alias/alias.py:418
msgid "Alias with the name `{name}` was successfully deleted."
msgstr ""
#: redbot/cogs/alias/alias.py:396 redbot/cogs/alias/alias.py:414
#: redbot/cogs/alias/alias.py:403 redbot/cogs/alias/alias.py:421
msgid "Alias with name `{name}` was not found."
msgstr ""
#: redbot/cogs/alias/alias.py:401
#: redbot/cogs/alias/alias.py:408
#, docstring
msgid "Delete an existing global alias."
msgstr ""
#: redbot/cogs/alias/alias.py:406
#: redbot/cogs/alias/alias.py:413
msgid "There are no aliases on this bot."
msgstr "Tidak ada alias pada bot ini."
#: redbot/cogs/alias/alias.py:419
#: redbot/cogs/alias/alias.py:426
#, docstring
msgid "List the available aliases on this server."
msgstr ""
#: redbot/cogs/alias/alias.py:420 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:427 redbot/cogs/alias/alias.py:438
msgid "Aliases:"
msgstr "Alias:"
#: redbot/cogs/alias/alias.py:430
#: redbot/cogs/alias/alias.py:437
#, docstring
msgid "List the available global aliases on this bot."
msgstr ""

View File

@@ -1,8 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2020-02-20 12:09+0000\n"
"PO-Revision-Date: 2020-02-20 12:13\n"
"POT-Creation-Date: 2020-04-02 12:07+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Italian\n"
"MIME-Version: 1.0\n"
@@ -12,7 +11,6 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: red-discordbot\n"
"X-Crowdin-Language: it\n"
"X-Crowdin-File: /cogs/alias/locales/messages.pot\n"
"Language: it_IT\n"
#: redbot/cogs/alias/alias.py:35
@@ -59,90 +57,94 @@ msgstr "Hai cercato di creare un nuovo alias con il nome {name}, ma questo alias
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr "Hai cercato di creare un nuovo alias con il nome {name}, ma questo nome non è un nome alias valido. I nomi alias non possono contenere spazi."
#: redbot/cogs/alias/alias.py:293
#: redbot/cogs/alias/alias.py:286
msgid "You attempted to create a new alias for a command that doesn't exist."
msgstr ""
#: redbot/cogs/alias/alias.py:300
msgid "A new alias with the trigger `{name}` has been created."
msgstr "È stato creato un nuovo alias con il comando '{name}'."
#: redbot/cogs/alias/alias.py:299
#: redbot/cogs/alias/alias.py:306
#, docstring
msgid "Add a global alias for a command."
msgstr "Aggiungi un alias globale per un comando."
#: redbot/cogs/alias/alias.py:304
#: redbot/cogs/alias/alias.py:311
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
msgstr "Hai cercato di creare un nuovo alias globale con il nome {name}, ma questo nome corrisponde già a un comando su questo bot."
#: redbot/cogs/alias/alias.py:315
#: redbot/cogs/alias/alias.py:322
msgid "You attempted to create a new global alias with the name {name} but that alias already exists on this server."
msgstr "Hai cercato di creare un nuovo alias globale con il nome {name}, ma questo alias già esiste su questo server."
#: redbot/cogs/alias/alias.py:326
#: redbot/cogs/alias/alias.py:333
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr "Hai cercato di creare un nuovo alias globale con il nome {name}, ma questo nome non è un nome alias valido. I nomi alias non possono contenere spazi."
#: redbot/cogs/alias/alias.py:342
#: redbot/cogs/alias/alias.py:349
msgid "A new global alias with the trigger `{name}` has been created."
msgstr "È stato creato un nuovo alias globale con il comando '{name}'."
#: redbot/cogs/alias/alias.py:350
#: redbot/cogs/alias/alias.py:357
#, docstring
msgid "Try to execute help for the base command of the alias."
msgstr "Prova a eseguire l'aiuto per il comando di base dell'alias."
#: redbot/cogs/alias/alias.py:362
#: redbot/cogs/alias/alias.py:369
msgid "No such alias exists."
msgstr "Non esiste nessun alias con questo nome."
#: redbot/cogs/alias/alias.py:367
#: redbot/cogs/alias/alias.py:374
#, docstring
msgid "Show what command the alias executes."
msgstr "Mostra quale comando viene eseguito dall'alias."
#: redbot/cogs/alias/alias.py:372
#: redbot/cogs/alias/alias.py:379
msgid "The `{alias_name}` alias will execute the command `{command}`"
msgstr "L'alias `{alias_name}` eseguirà il comando `{command}`"
#: redbot/cogs/alias/alias.py:377
#: redbot/cogs/alias/alias.py:384
msgid "There is no alias with the name `{name}`"
msgstr "Non c'è nessun alias con il nome `{name}`"
#: redbot/cogs/alias/alias.py:383
#: redbot/cogs/alias/alias.py:390
#, docstring
msgid "Delete an existing alias on this server."
msgstr "Elimina un alias esistente su questo server."
#: redbot/cogs/alias/alias.py:388 redbot/cogs/alias/alias.py:424
#: redbot/cogs/alias/alias.py:435
#: redbot/cogs/alias/alias.py:395 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:442
msgid "There are no aliases on this server."
msgstr "Non ci sono alias su questo server."
#: redbot/cogs/alias/alias.py:393 redbot/cogs/alias/alias.py:411
#: redbot/cogs/alias/alias.py:400 redbot/cogs/alias/alias.py:418
msgid "Alias with the name `{name}` was successfully deleted."
msgstr "L'alias con il nome `{name}` è stato eliminato con successo."
#: redbot/cogs/alias/alias.py:396 redbot/cogs/alias/alias.py:414
#: redbot/cogs/alias/alias.py:403 redbot/cogs/alias/alias.py:421
msgid "Alias with name `{name}` was not found."
msgstr "L'alias con il nome `{name}` non è stato trovato."
#: redbot/cogs/alias/alias.py:401
#: redbot/cogs/alias/alias.py:408
#, docstring
msgid "Delete an existing global alias."
msgstr "Elimina un alias globale esistente."
#: redbot/cogs/alias/alias.py:406
#: redbot/cogs/alias/alias.py:413
msgid "There are no aliases on this bot."
msgstr "Non ci sono alias su questo bot."
#: redbot/cogs/alias/alias.py:419
#: redbot/cogs/alias/alias.py:426
#, docstring
msgid "List the available aliases on this server."
msgstr "Elenca gli alias disponibili su questo server."
#: redbot/cogs/alias/alias.py:420 redbot/cogs/alias/alias.py:431
#: redbot/cogs/alias/alias.py:427 redbot/cogs/alias/alias.py:438
msgid "Aliases:"
msgstr "Alias:"
#: redbot/cogs/alias/alias.py:430
#: redbot/cogs/alias/alias.py:437
#, docstring
msgid "List the available global aliases on this bot."
msgstr "Elenca gli alias globali disponibili su questo server."

Some files were not shown because too many files have changed in this diff Show More