Compare commits
150 Commits
3.5.13
...
V3/develop
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b42bab4de9 | ||
|
|
e868872214 | ||
|
|
bee0ddbffc | ||
|
|
2de3d03cc9 | ||
|
|
056f2de557 | ||
|
|
34cbd15ba9 | ||
|
|
9a458fdd83 | ||
|
|
0e78051c5d | ||
|
|
53766173d0 | ||
|
|
36a5f752a2 | ||
|
|
b2007a718d | ||
|
|
015f5a00fd | ||
|
|
6e417419aa | ||
|
|
316f237397 | ||
|
|
75e37ca896 | ||
|
|
c701c79ed0 | ||
|
|
60323c99d1 | ||
|
|
b7c11c016e | ||
|
|
bdc66c3f56 | ||
|
|
e6c6b9874b | ||
|
|
40b01c7985 | ||
|
|
666e249413 | ||
|
|
1bfe2a78fa | ||
|
|
afe4e636b7 | ||
|
|
45c55418a4 | ||
|
|
29758fd104 | ||
|
|
8626aef36f | ||
|
|
18154465c3 | ||
|
|
07e6f1b264 | ||
|
|
effc390ddf | ||
|
|
9afbe363e5 | ||
|
|
5023f7f1b5 | ||
|
|
01a3c17f8e | ||
|
|
fe574189d6 | ||
|
|
fec1818e5a | ||
|
|
dd3b9a01d3 | ||
|
|
a809c3604a | ||
|
|
982f082cb0 | ||
|
|
6a4d777723 | ||
|
|
4dc18342d9 | ||
|
|
71311c446a | ||
|
|
d4a1ee38f0 | ||
|
|
8507b0165f | ||
|
|
c7651da2f9 | ||
|
|
4d24365d17 | ||
|
|
d2f0f8d5ed | ||
|
|
cc803579a0 | ||
|
|
0271dee092 | ||
|
|
1e5620935d | ||
|
|
031e57891c | ||
|
|
72f8952baf | ||
|
|
0e25534677 | ||
|
|
cfbf2fa401 | ||
|
|
a65509c67c | ||
|
|
936e17338c | ||
|
|
6c3c2e8fa7 | ||
|
|
8c3cdf20a6 | ||
|
|
f68580fab9 | ||
|
|
ec66666036 | ||
|
|
3fd23d4163 | ||
|
|
2dbbb51208 | ||
|
|
b177c80b4e | ||
|
|
029029e9a5 | ||
|
|
c6ff2191f3 | ||
|
|
6603cd1a86 | ||
|
|
1daf56f3d8 | ||
|
|
b3f0349ba2 | ||
|
|
bfc3561928 | ||
|
|
8d8918b3c6 | ||
|
|
550cf49bc8 | ||
|
|
313eeffc84 | ||
|
|
88e1f72467 | ||
|
|
3c6146d6ca | ||
|
|
bfab9cc5f8 | ||
|
|
07ee31a88f | ||
|
|
bd61c105e0 | ||
|
|
db0e831a2e | ||
|
|
d7a56f1518 | ||
|
|
5f2c6d19d1 | ||
|
|
7b3600ecb1 | ||
|
|
6f5f34c80a | ||
|
|
2e902b067e | ||
|
|
61695daded | ||
|
|
10889642ce | ||
|
|
a3b254fe8e | ||
|
|
71554c981d | ||
|
|
e1225029b0 | ||
|
|
85923d4c0f | ||
|
|
19b34c63b2 | ||
|
|
60e819159f | ||
|
|
0f4c7b0fe6 | ||
|
|
3bf7c64d01 | ||
|
|
4558b72082 | ||
|
|
73958d87f1 | ||
|
|
d6054412f4 | ||
|
|
5cf69bdc51 | ||
|
|
2fd6ea88d9 | ||
|
|
50ad59a6c8 | ||
|
|
dfc1e742f8 | ||
|
|
769c319ffd | ||
|
|
3c1f2cddfd | ||
|
|
1299db0f3a | ||
|
|
c58d208ca2 | ||
|
|
c308ea0184 | ||
|
|
8e0948d560 | ||
|
|
952a372652 | ||
|
|
a0c1713e78 | ||
|
|
8b1daf1ad0 | ||
|
|
dcdef9d798 | ||
|
|
f962aeb7b8 | ||
|
|
b13b1f8f16 | ||
|
|
6bf2a88995 | ||
|
|
22888f8014 | ||
|
|
ba44370020 | ||
|
|
cd0e8750c1 | ||
|
|
679289fd1c | ||
|
|
ce6489325e | ||
|
|
d64cbdf83e | ||
|
|
66d1c87b5a | ||
|
|
3888f09cfa | ||
|
|
8ad9c55d50 | ||
|
|
3aac07a4d7 | ||
|
|
bd26e7d5af | ||
|
|
9392077434 | ||
|
|
1f48919005 | ||
|
|
fdaa869130 | ||
|
|
18614b1604 | ||
|
|
016684bcce | ||
|
|
5cfb8edab8 | ||
|
|
150692538f | ||
|
|
f4ffc6bc80 | ||
|
|
9419f2642a | ||
|
|
f0a29e9815 | ||
|
|
d29ae723c1 | ||
|
|
9920628948 | ||
|
|
48b2fe77c0 | ||
|
|
33e0eac741 | ||
|
|
2871992772 | ||
|
|
30058c0f73 | ||
|
|
4134881fae | ||
|
|
4396323205 | ||
|
|
4e27059209 | ||
|
|
d3887b595f | ||
|
|
005b8af10a | ||
|
|
d304da7a16 | ||
|
|
f3c89ad8bd | ||
|
|
05cf9b7f39 | ||
|
|
907a3f7561 | ||
|
|
2595c9de10 | ||
|
|
8be7b0850c |
3
.github/labeler.yml
vendored
@@ -162,6 +162,7 @@
|
||||
- any:
|
||||
- redbot/core/_drivers/**/*
|
||||
- "!redbot/core/_drivers/**/locales/*"
|
||||
- redbot/core/_config.py
|
||||
- redbot/core/config.py
|
||||
# Docs
|
||||
- docs/framework_config.rst
|
||||
@@ -215,6 +216,7 @@
|
||||
- redbot/core/commands/help.py
|
||||
"Category: Core - i18n":
|
||||
# Source
|
||||
- redbot/core/_i18n.py
|
||||
- redbot/core/i18n.py
|
||||
# Locale files
|
||||
- redbot/**/locales/*
|
||||
@@ -271,6 +273,7 @@
|
||||
- docs/bot_application_guide.rst
|
||||
- docs/install_guides/**/*
|
||||
- docs/update_red.rst
|
||||
- docs/backup_red.rst
|
||||
"Category: Docs - Other":
|
||||
- docs/host-list.rst
|
||||
- docs/index.rst
|
||||
|
||||
@@ -9,7 +9,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout the repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
@@ -17,7 +17,7 @@ jobs:
|
||||
- name: Install script's pre-requirements
|
||||
run: |
|
||||
python -m pip install -U pip
|
||||
python -m pip install -U pathspec pyyaml rich
|
||||
python -m pip install -U pathspec pyyaml rich typing_extensions
|
||||
- name: Check label pattern exhaustiveness
|
||||
run: |
|
||||
python .github/workflows/scripts/check_label_pattern_exhaustiveness.py
|
||||
|
||||
7
.github/workflows/codeql-analysis.yml
vendored
@@ -17,7 +17,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
@@ -34,14 +34,13 @@ jobs:
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
uses: github/codeql-action/init@v3
|
||||
with:
|
||||
languages: 'python'
|
||||
# Override the default behavior so that the action doesn't attempt
|
||||
# to auto-install Python dependencies
|
||||
# Learn more...
|
||||
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#analyzing-python-dependencies
|
||||
setup-python-dependencies: false
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
@@ -55,4 +54,4 @@ jobs:
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v2
|
||||
uses: github/codeql-action/analyze@v3
|
||||
|
||||
2
.github/workflows/crowdin_upload_strings.yml
vendored
@@ -9,7 +9,7 @@ jobs:
|
||||
if: github.repository == 'Cog-Creators/Red-DiscordBot'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
|
||||
2
.github/workflows/lint_python.yaml
vendored
@@ -14,7 +14,7 @@ jobs:
|
||||
name: Lint Python
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ env.ref }}
|
||||
- uses: actions/setup-python@v4
|
||||
|
||||
4
.github/workflows/prepare_release.yml
vendored
@@ -16,7 +16,7 @@ jobs:
|
||||
needs: pr_stable_bump
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
@@ -73,7 +73,7 @@ jobs:
|
||||
milestone_number: ${{ steps.get_milestone_number.outputs.result }}
|
||||
steps:
|
||||
# Checkout repository and install Python
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
|
||||
26
.github/workflows/publish_release.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# Checkout repository and install Python
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
@@ -57,7 +57,7 @@ jobs:
|
||||
name: Build package
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
@@ -75,7 +75,7 @@ jobs:
|
||||
run: python -m twine check dist/*
|
||||
|
||||
- name: Upload packaged distributions
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: build-output
|
||||
path: ./dist
|
||||
@@ -84,7 +84,7 @@ jobs:
|
||||
name: Generate default application.yml
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
@@ -98,14 +98,14 @@ jobs:
|
||||
env:
|
||||
APP_YML_FILE: "Red-DiscordBot-${{ github.ref_name }}-default-lavalink-application.yml"
|
||||
run: |
|
||||
mkdir -p dist
|
||||
python .github/workflows/scripts/get_default_ll_server_config.py "dist/$APP_YML_FILE"
|
||||
mkdir -p release_assets
|
||||
python .github/workflows/scripts/get_default_ll_server_config.py "release_assets/$APP_YML_FILE"
|
||||
|
||||
- name: Upload default application.yml
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ll-default-server-config
|
||||
path: ./dist
|
||||
path: ./release_assets
|
||||
|
||||
release_to_pypi:
|
||||
needs:
|
||||
@@ -120,22 +120,22 @@ jobs:
|
||||
id-token: write
|
||||
steps:
|
||||
- name: Download packaged distributions
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: build-output
|
||||
path: dist/
|
||||
|
||||
- name: Download default application.yml
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: ll-default-server-config
|
||||
path: dist/
|
||||
path: release_assets/
|
||||
|
||||
- name: Upload dists to GitHub Release
|
||||
env:
|
||||
GITHUB_TOKEN: "${{ github.token }}"
|
||||
run: |
|
||||
gh release upload "$GITHUB_REF_NAME" dist/* --repo "$GITHUB_REPOSITORY"
|
||||
gh release upload "$GITHUB_REF_NAME" dist/* release_assets/* --repo "$GITHUB_REPOSITORY"
|
||||
|
||||
- name: Publish package distributions to PyPI
|
||||
uses: pypa/gh-action-pypi-publish@release/v1
|
||||
@@ -160,7 +160,7 @@ jobs:
|
||||
run: |
|
||||
echo "BASE_BRANCH=${TAG_BASE_BRANCH#'refs/heads/'}" >> $GITHUB_ENV
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ env.BASE_BRANCH }}
|
||||
- name: Set up Python
|
||||
|
||||
14
.github/workflows/run_pip_compile.yaml
vendored
@@ -15,7 +15,7 @@ jobs:
|
||||
- macos-latest
|
||||
steps:
|
||||
- name: Checkout the repository.
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python 3.8.
|
||||
uses: actions/setup-python@v4
|
||||
@@ -48,7 +48,7 @@ jobs:
|
||||
python .github/workflows/scripts/compile_requirements.py
|
||||
|
||||
- name: Upload requirements files.
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ steps.compile_requirements.outputs.sys_platform }}
|
||||
path: requirements/${{ steps.compile_requirements.outputs.sys_platform }}-*.txt
|
||||
@@ -59,7 +59,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout the repository.
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python 3.8.
|
||||
uses: actions/setup-python@v4
|
||||
@@ -71,17 +71,17 @@ jobs:
|
||||
python -m pip install -U "packaging>=22.0"
|
||||
|
||||
- name: Download Windows requirements.
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: win32
|
||||
path: requirements
|
||||
- name: Download Linux requirements.
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: linux
|
||||
path: requirements
|
||||
- name: Download macOS requirements.
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: darwin
|
||||
path: requirements
|
||||
@@ -91,7 +91,7 @@ jobs:
|
||||
python .github/workflows/scripts/merge_requirements.py
|
||||
|
||||
- name: Upload merged requirements files.
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: merged
|
||||
path: |
|
||||
|
||||
@@ -17,6 +17,12 @@ def pip_compile(version: str, name: str) -> None:
|
||||
if EXCLUDE_STEM_RE.fullmatch(stem):
|
||||
return
|
||||
|
||||
constraint_flags = [
|
||||
arg
|
||||
for file in REQUIREMENTS_FOLDER.glob(f"{sys.platform}-3.8-*.txt")
|
||||
for arg in ("-c", file.name)
|
||||
]
|
||||
|
||||
executable = ("py", f"-{version}") if sys.platform == "win32" else (f"python{version}",)
|
||||
subprocess.check_call(
|
||||
(
|
||||
@@ -30,6 +36,7 @@ def pip_compile(version: str, name: str) -> None:
|
||||
f"{name}.in",
|
||||
"--output-file",
|
||||
f"{stem}.txt",
|
||||
*constraint_flags,
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
16
.github/workflows/scripts/merge_requirements.py
vendored
@@ -49,6 +49,8 @@ def get_requirements(fp: TextIO) -> List[RequirementData]:
|
||||
via_prefix = "via "
|
||||
if source.startswith(via_prefix):
|
||||
source = source[len(via_prefix) :]
|
||||
if source.startswith("-c ") and source != "-c base.txt":
|
||||
continue
|
||||
current.comments.add(source)
|
||||
elif line and not line.startswith(("#", " ")):
|
||||
current = RequirementData(line)
|
||||
@@ -135,25 +137,27 @@ for name in names:
|
||||
python_version_marker = (
|
||||
# Requirement present on less Python versions than not.
|
||||
" or ".join(
|
||||
f"python_version == '{python_version}'" for python_version in python_versions
|
||||
f"python_version == '{python_version}'"
|
||||
for python_version in sorted(python_versions)
|
||||
)
|
||||
if len(python_versions) < len(all_python_versions - python_versions)
|
||||
# Requirement present on more Python versions than not
|
||||
# This may generate an empty string when Python version is irrelevant.
|
||||
else " and ".join(
|
||||
f"python_version != '{python_version}'"
|
||||
for python_version in all_python_versions - python_versions
|
||||
for python_version in sorted(all_python_versions - python_versions)
|
||||
)
|
||||
)
|
||||
|
||||
platform_marker = (
|
||||
# Requirement present on less platforms than not.
|
||||
" or ".join(f"sys_platform == '{platform}'" for platform in platforms)
|
||||
" or ".join(f"sys_platform == '{platform}'" for platform in sorted(platforms))
|
||||
if len(platforms) < len(all_platforms - platforms)
|
||||
# Requirement present on more platforms than not
|
||||
# This may generate an empty string when platform is irrelevant.
|
||||
else " and ".join(
|
||||
f"sys_platform != '{platform}'" for platform in all_platforms - platforms
|
||||
f"sys_platform != '{platform}'"
|
||||
for platform in sorted(all_platforms - platforms)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -167,12 +171,12 @@ for name in names:
|
||||
# Requirement present on less envs than not.
|
||||
" or ".join(
|
||||
f"(sys_platform == '{platform}' and python_version == '{python_version}')"
|
||||
for platform, python_version in iter_envs(envs)
|
||||
for platform, python_version in iter_envs(sorted(envs))
|
||||
)
|
||||
if len(envs) < len(all_envs - envs.keys())
|
||||
else " and ".join(
|
||||
f"(sys_platform != '{platform}' and python_version != '{python_version}')"
|
||||
for platform, python_version in iter_envs(all_envs - envs.keys())
|
||||
for platform, python_version in iter_envs(sorted(all_envs - envs.keys()))
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
4
.github/workflows/tests.yml
vendored
@@ -39,7 +39,7 @@ jobs:
|
||||
fail-fast: false
|
||||
name: Tox - ${{ matrix.friendly_name }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ env.ref }}
|
||||
- name: Set up Python
|
||||
@@ -76,7 +76,7 @@ jobs:
|
||||
POSTGRES_PASSWORD: postgres
|
||||
POSTGRES_USER: postgres
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ env.ref }}
|
||||
- name: Set up Python
|
||||
|
||||
@@ -26,14 +26,6 @@ unsafe-load-any-extension=no
|
||||
# run arbitrary code
|
||||
extension-pkg-whitelist=
|
||||
|
||||
# Allow optimization of some AST trees. This will activate a peephole AST
|
||||
# optimizer, which will apply various small optimizations. For instance, it can
|
||||
# be used to obtain the result of joining multiple strings with the addition
|
||||
# operator. Joining a lot of strings can lead to a maximum recursion error in
|
||||
# Pylint and this flag can prevent that. It has one side effect, the resulting
|
||||
# AST will be different than the one from reality.
|
||||
optimize-ast=no
|
||||
|
||||
|
||||
[MESSAGES CONTROL]
|
||||
|
||||
@@ -66,7 +58,6 @@ disable=C, # black is enforcing this for us already, incompatibly
|
||||
[REPORTS]
|
||||
|
||||
output-format=parseable
|
||||
files-output=no
|
||||
reports=no
|
||||
|
||||
|
||||
|
||||
@@ -4,6 +4,12 @@ build:
|
||||
os: "ubuntu-22.04"
|
||||
tools:
|
||||
python: "3.8"
|
||||
jobs:
|
||||
install:
|
||||
- pip install .[doc]
|
||||
|
||||
sphinx:
|
||||
configuration: docs/conf.py
|
||||
|
||||
python:
|
||||
install:
|
||||
|
||||
648
CHANGES.rst
@@ -1,9 +1,549 @@
|
||||
.. Red changelogs
|
||||
|
||||
Redbot 3.5.24 (2026-03-06)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`EternalllZM`, :ghuser:`Flame442`, :ghuser:`Jackenmen`, :ghuser:`Kowlin`
|
||||
|
||||
Read before updating
|
||||
--------------------
|
||||
|
||||
#. `The 3.5.23 changelog's <redbot-3-5-23-2026-03-04>` **"Read before updating"** section has been updated with further information about Red's Audio cog no longer supporting Java 11. If you use the Audio cog, please read that section again. Note that Red 3.5.24 supports Java 21 in addition to Java 17 as well.
|
||||
|
||||
#. Information for Audio users that are using an external Lavalink instance (if you don't know what that is, you should skip this point):
|
||||
|
||||
Red 3.5.24 uses a new Lavalink jar that you will need to manually update from `our GitHub <https://github.com/Cog-Creators/Lavalink-Jars/releases/tag/3.7.13%2Bred.3>`__.
|
||||
|
||||
Note that Lavalink now requires Java 17 or newer.
|
||||
|
||||
End-user changelog
|
||||
------------------
|
||||
|
||||
Changes
|
||||
*******
|
||||
|
||||
- **Core** - The bot will no longer wait for the update check to finish before finishing the bot startup (:issue:`6687`)
|
||||
- **Core - Command-line Interfaces** - Added new ``--no-debug/--no-verbose`` flag allowing to reset the verbosity level set by the ``-v/--verbose/--debug`` flags used earlier in the argument list (:issue:`6680`)
|
||||
- **Cogs - Audio** - The cog can now be used with Java 21 (:issue:`6681`)
|
||||
|
||||
Fixes
|
||||
*****
|
||||
|
||||
- |cool| **Cogs - Audio** - Fixed issues with the cog not working on Linux aarch64 systems with a 16k page size kernel (as seen on Raspberry Pi OS ran on Raspberry Pi 5) (:issue:`6683`, :issue:`6688`)
|
||||
- **Cogs - Audio** - The cog will now correctly error about Java 11 being unsupported instead of trying to redownload Lavalink.jar repeatedly a few times (:issue:`6681`)
|
||||
|
||||
Documentation changes
|
||||
---------------------
|
||||
|
||||
- Updated the Audio cog documentation, command help, and errors to reflect that Java 11 is no longer supported
|
||||
- Updated `the 3.5.23 changelog <redbot-3-5-23-2026-03-04>` to include information about Java 11 no longer being supported
|
||||
|
||||
----
|
||||
|
||||
.. _redbot-3-5-23-2026-03-04:
|
||||
|
||||
Redbot 3.5.23 (2026-03-04)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`cswimr`, :ghuser:`EternalllZM`, :ghuser:`Evanroby`, :ghuser:`Flame442`, :ghuser:`Jackenmen`, :ghuser:`Kowlin`, :ghuser:`karlsbjorn`, :ghuser:`palmtree5`, :ghuser:`PredaaA`, :ghuser:`VasilisThePikachu`, :ghuser:`yamikaitou`
|
||||
|
||||
Read before updating
|
||||
--------------------
|
||||
|
||||
#. Red's Audio cog now requires Java 17 to be present on the system. Java 11 is no longer supported.
|
||||
|
||||
All of the install guides for the systems that we currently support already provided instructions to install Java 17,
|
||||
so if you installed Red somewhat recently, you should already be set.
|
||||
|
||||
If you see an error about using the wrong Java version, you can install the right Java version
|
||||
by following the **"Installing the pre-requirements"** section of our install guide for your operating system.
|
||||
|
||||
#. We are planning to remove support for Red on systems using the **armv7l** architecture in **Red 3.6.0**.
|
||||
The support for other architectures (**x86-64** and **aarch64**) will remain unchanged per our existing `end-user-guarantees`.
|
||||
|
||||
If you have any concerns regarding this, please reach out to us on `our discord server <https://discord.gg/red>`__.
|
||||
|
||||
#. Information for Audio users that are using an external Lavalink instance (if you don't know what that is, you should skip this point):
|
||||
|
||||
- Red 3.5.23 uses a new Lavalink jar that you will need to manually update from `our GitHub <https://github.com/Cog-Creators/Lavalink-Jars/releases/tag/3.7.13%2Bred.2>`__.
|
||||
|
||||
Note that Lavalink now requires Java 17 or newer.
|
||||
|
||||
- We've updated our default application.yml file and you should update your instance's ``application.yml`` accordingly.
|
||||
|
||||
More specifically, we bumped the version of YT source plugin.
|
||||
`Download Red 3.5.23's default application.yml file <https://github.com/Cog-Creators/Red-DiscordBot/releases/download/3.5.23/Red-DiscordBot-3.5.23-default-lavalink-application.yml>`__
|
||||
|
||||
#. Following operating systems are no longer supported as they have already reached their end of life:
|
||||
|
||||
- macOS 13 (Ventura)
|
||||
- Fedora 41
|
||||
- Raspberry Pi OS (Legacy) 11
|
||||
|
||||
End-user changelog
|
||||
------------------
|
||||
|
||||
Additions
|
||||
*********
|
||||
|
||||
- **Core - Command-line Interfaces** - Added new ``--cog-path`` flag allowing to specify additional cog paths for the current bot invocation (:issue:`6506`, :issue:`6510`)
|
||||
|
||||
Changes
|
||||
*******
|
||||
|
||||
- **Core - Dependencies** - Red's dependencies have been bumped (:issue:`6666`)
|
||||
- |cool| **Cogs - Audio** - The cog has been updated to support Discord's new end-to-end encryption protocol - `DAVE <https://discord.com/blog/bringing-dave-to-all-discord-platforms>`__ (:issue:`6665`)
|
||||
- **Cogs - Warnings** - Added a new ``[p]warningset mywarnings sendtodms`` setting that determines whether the output of ``[p]mywarnings`` should be sent in user's DMs or in the current channel (:issue:`6641`, :issue:`6673`)
|
||||
|
||||
Removals
|
||||
********
|
||||
|
||||
- **Core - OS Support** - macOS 13 (Ventura), Fedora 41, and Raspberry Pi OS (Legacy) 11 are no longer supported as they have already reached their end of life (:issue:`6669`)
|
||||
- **Cogs - Audio** - The cog no longer supports Java 11 (:issue:`6665`)
|
||||
|
||||
Fixes
|
||||
*****
|
||||
|
||||
- |cool| **Core** - Fixed the bot's commands not working when the bot was installed as a user app (:issue:`6501`, :issue:`6503`)
|
||||
- **Core** - Fixed the bot's fuzzy command help not ignoring users that are on the bot's blocklist (:issue:`6482`, :issue:`6594`)
|
||||
- **Core** - Fixed the bot process hanging for indefinite time when trying to shutdown from an unhandled exception (:issue:`5780`, :issue:`6659`)
|
||||
- **Core - Bot Commands** - Fixed the modal in the ``[p]set api`` command failing to submit (:issue:`6626`)
|
||||
- **Core - Bot Commands** - Fixed the ``[p]traceback`` command not being able to send long tracebacks in DMs (:issue:`6656`)
|
||||
- |cool| **Cogs - Audio** - Fixed a bunch of YT playback issues (:issue:`6665`)
|
||||
- **Cogs - General** - Fixed the ``[p]serverinfo 1`` command failing when the server's feature list is too long (:issue:`6636`, :issue:`6652`)
|
||||
- **Cogs - Streams** - The cog will now check that the bot has necessary permissions before sending stream alert messages (:issue:`4967`)
|
||||
- **Cogs - Warnings** - Fixed the bot revealing a moderator that warned the user in the output of ``[p]mywarnings`` command when the ``[p]warningset showmoderator`` setting is disabled (:issue:`6641`, :issue:`6673`)
|
||||
|
||||
Developer changelog
|
||||
-------------------
|
||||
|
||||
Changes
|
||||
*******
|
||||
|
||||
- |cool| **Core - Dependencies** - Bumped ``discord.py`` to version 2.7.1 (:issue:`6664`)
|
||||
|
||||
Fixes
|
||||
*****
|
||||
|
||||
- **Core - Bot Class** - Fixed a regression in the `Red.send_interactive()` method causing it to not work with `discord.Member` and `discord.User` objects (:issue:`6656`)
|
||||
|
||||
Documentation changes
|
||||
---------------------
|
||||
|
||||
- Added `backup_red` document (:issue:`3421`, :issue:`6654`)
|
||||
- Updated the `bot_application_guide` according to changes in Discord Developer Portal's interface (:issue:`6647`)
|
||||
|
||||
----
|
||||
|
||||
Redbot 3.5.22 (2025-09-05)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`AAA3A-AAA3A`, :ghuser:`aikaterna`, :ghuser:`Flame442`, :ghuser:`Jackenmen`, :ghuser:`Kowlin`
|
||||
|
||||
Read before updating
|
||||
--------------------
|
||||
|
||||
#. Information for Audio users that are using an external Lavalink instance (if you don't know what that is, you should skip this point):
|
||||
|
||||
We've updated our default application.yml file and you should update your instance's ``application.yml`` accordingly.
|
||||
More specifically, we updated YT client options to fix a few regressions introduced by changes in 3.5.21.
|
||||
`Download Red 3.5.22's default application.yml file <https://github.com/Cog-Creators/Red-DiscordBot/releases/download/3.5.22/Red-DiscordBot-3.5.22-default-lavalink-application.yml>`__
|
||||
|
||||
End-user changelog
|
||||
------------------
|
||||
|
||||
Fixes
|
||||
*****
|
||||
|
||||
- **Cogs - Audio** - Fixed a regression with YT video metadata loading introduced by Red 3.5.21 (:issue:`6611`)
|
||||
- **Cogs - Audio** - Fixed a problem with command help texts not being translated in the Audio cog (:issue:`6608`, :issue:`6609`)
|
||||
|
||||
Developer changelog
|
||||
-------------------
|
||||
|
||||
Changes
|
||||
*******
|
||||
|
||||
- **Core - Dependencies** - Bumped ``discord.py`` to version 2.6.3 (:issue:`6612`, :issue:`6614`)
|
||||
- **Core - Utils Package** - Updated ``INVITE_URL_RE`` common filter to also match invite links using ``\\`` instead of just ``/`` (:issue:`6586`)
|
||||
- **Core - Utils Package** - Updated ``INVITE_URL_RE`` common filter to ignore ``promos.discord.gg`` links (:issue:`6586`)
|
||||
|
||||
----
|
||||
|
||||
Redbot 3.5.21 (2025-08-26)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`egypt1848`, :ghuser:`Flame442`, :ghuser:`Jackenmen`, :ghuser:`Kowlin`, :ghuser:`Kreusada`, :ghuser:`TrustyJAID`, :ghuser:`VasilisThePikachu`
|
||||
|
||||
Read before updating
|
||||
--------------------
|
||||
|
||||
#. Information for Audio users that are using an external Lavalink instance (if you don't know what that is, you should skip this point):
|
||||
|
||||
We've updated our default application.yml file and you should update your instance's ``application.yml`` accordingly.
|
||||
More specifically, we bumped the version of YT source plugin and updated its client options.
|
||||
`Download Red 3.5.21's default application.yml file <https://github.com/Cog-Creators/Red-DiscordBot/releases/download/3.5.21/Red-DiscordBot-3.5.21-default-lavalink-application.yml>`__
|
||||
|
||||
#. Following operating systems are no longer supported as they have already reached their end of life:
|
||||
|
||||
- Ubuntu 20.04 LTS
|
||||
- versions of RHEL/Alma Linux/Oracle Linux/Rocky Linux 8 older than 8.10
|
||||
- versions of RHEL/Alma Linux/Oracle Linux/Rocky Linux 9 older than 9.4
|
||||
|
||||
End-user changelog
|
||||
------------------
|
||||
|
||||
Additions
|
||||
*********
|
||||
|
||||
- |cool| **Cogs - Mod** - The DM message (``[p]modset dm``) sent by cog's ban commands can now include customizable extra field (:issue:`6593`)
|
||||
|
||||
This feature can, for example, be useful for providing the banned user with information about the ban appeal process.
|
||||
|
||||
To configure it, look at the subcommands listed in the help text of the ``[p]modset dm`` command.
|
||||
|
||||
Changes
|
||||
*******
|
||||
|
||||
- **Core** - The application (slash) commands will now use the server's configured language rather than the bot's global language, same as regular text commands (:issue:`6272`, :issue:`6579`)
|
||||
- **Core** - The option to request a ``file`` will no longer be provided in interactively sent messages when the bot does not actually have the permission to send files in the current channel (:issue:`6540`, :issue:`6552`)
|
||||
- **Core - Command-line Interfaces** - Red's error logging will now use standard traceback formatting by default as the Rich tracebacks (previously default) proved to be impractical when providing support to users and affected performance (:issue:`6576`)
|
||||
|
||||
- If you want to continue using Rich tracebacks, you can pass the new ``--rich-tracebacks`` flag when starting Red.
|
||||
- **Core - Dependencies** - Red's dependencies have been bumped (:issue:`6599`)
|
||||
|
||||
Removals
|
||||
********
|
||||
|
||||
- **Core - OS Support** - Ubuntu 20.04 LTS is no longer supported as it has already reached its end of life (:issue:`6598`)
|
||||
- **Core - OS Support** - Versions of RHEL/Alma Linux/Oracle Linux/Rocky Linux 8 older than 8.10 are no longer supported as they have already reached their end of life (:issue:`6598`)
|
||||
- **Core - OS Support** - Versions of RHEL/Alma Linux/Oracle Linux/Rocky Linux 9 older than 9.4 are no longer supported as they have already reached their end of life (:issue:`6598`)
|
||||
|
||||
Fixes
|
||||
*****
|
||||
|
||||
- |cool| **Cogs - Alias** - Fixed some of the issues with handling of quoted command arguments when using command aliases (:issue:`6582`)
|
||||
- |cool| **Cogs - Audio** - Fixed recent YT playback issues (:issue:`6602`)
|
||||
- **Cogs - Audio** - Fixed YT client configuration (:issue:`6601`)
|
||||
- **Cogs - Mod** - Fixed formatting of the ``[p]names`` command (:issue:`6538`)
|
||||
- **Cogs - Reports** - Fixed the ``[p]report`` command not working properly when invoked from a DM context (:issue:`6573`)
|
||||
|
||||
Developer changelog
|
||||
-------------------
|
||||
|
||||
Changes
|
||||
*******
|
||||
|
||||
- |cool| **Core - Dependencies** - Bumped ``discord.py`` to version 2.6.2 (:issue:`6597`)
|
||||
|
||||
Fixes
|
||||
*****
|
||||
|
||||
- **Cogs - Dev** - Fixed issues with ``[p]eval/repl/debug`` commands erroring when string representation of the code's result is not valid UTF-8 (:issue:`6485`, :issue:`6592`)
|
||||
|
||||
|
||||
Documentation changes
|
||||
---------------------
|
||||
|
||||
- Refreshed the `intents` document with descriptions of how the intents are used in Red, our stance on public bots, and replaced some of the historical details with more up-to-date information (:issue:`6578`)
|
||||
- Added more code examples to the `framework_i18n` document, including common pitfalls and an example of how to apply proper locale in non-command contexts (:issue:`6595`)
|
||||
- Expanded the tutorial about creating translation catalogs for 3rd-party cogs in the `framework_i18n` document (:issue:`6595`)
|
||||
- Added example of `Group.all()` method's usage to the tutorial in the `framework_config` document (:issue:`6295`, :issue:`6550`)
|
||||
- Added a tip about the ``[botname]`` placeholder in the `guide_publish_cogs` document (:issue:`6539`)
|
||||
|
||||
----
|
||||
|
||||
Redbot 3.5.20 (2025-05-03)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Jackenmen`, :ghuser:`Kreusada`
|
||||
|
||||
Read before updating
|
||||
--------------------
|
||||
|
||||
#. Information for Audio users that are using an external Lavalink instance (if you don't know what that is, you should skip this point):
|
||||
|
||||
We've updated our default application.yml file and you should update your instance's ``application.yml`` accordingly.
|
||||
More specifically, we bumped the version of YT source plugin.
|
||||
`Download Red 3.5.20's default application.yml file <https://github.com/Cog-Creators/Red-DiscordBot/releases/download/3.5.20/Red-DiscordBot-3.5.20-default-lavalink-application.yml>`__
|
||||
|
||||
End-user changelog
|
||||
------------------
|
||||
|
||||
Changes
|
||||
*******
|
||||
|
||||
- **Core - Dependencies** - Red's dependencies have been bumped (:issue:`6568`)
|
||||
|
||||
Fixes
|
||||
*****
|
||||
|
||||
- |cool| **Cogs - Audio** - Fixed recent YT playback issues (:issue:`6566`, :issue:`6567`)
|
||||
|
||||
----
|
||||
|
||||
Redbot 3.5.19 (2025-04-27)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Flame442`, :ghuser:`Jackenmen`
|
||||
|
||||
Read before updating
|
||||
--------------------
|
||||
|
||||
#. Information for Audio users that are using an external Lavalink instance (if you don't know what that is, you should skip this point):
|
||||
|
||||
We've updated our default application.yml file and you should update your instance's ``application.yml`` accordingly.
|
||||
More specifically, we bumped the version of YT source plugin.
|
||||
`Download Red 3.5.19's default application.yml file <https://github.com/Cog-Creators/Red-DiscordBot/releases/download/3.5.19/Red-DiscordBot-3.5.19-default-lavalink-application.yml>`__
|
||||
|
||||
#. Fedora 40 is no longer supported as it will soon reach its end of life. Fedora install instructions have been updated with support for Fedora 42.
|
||||
|
||||
End-user changelog
|
||||
------------------
|
||||
|
||||
Changes
|
||||
*******
|
||||
|
||||
- **Core - Dependencies** - Red's dependencies have been bumped (:issue:`6558`)
|
||||
- **Core - OS Support** - Fedora 40 is no longer supported as it will soon reach its end of life (:issue:`6558`)
|
||||
|
||||
Fixes
|
||||
*****
|
||||
|
||||
- |cool| **Cogs - Audio** - Fixed recent YT playback issues (:issue:`6557`)
|
||||
|
||||
Documentation changes
|
||||
---------------------
|
||||
|
||||
Changes
|
||||
*******
|
||||
|
||||
- Updated Fedora install instructions to work with Fedora 42 (:issue:`6558`)
|
||||
|
||||
----
|
||||
|
||||
Redbot 3.5.18 (2025-03-26)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`Jackenmen`, :ghuser:`Kreusada`
|
||||
|
||||
Read before updating
|
||||
--------------------
|
||||
|
||||
#. Information for Audio users that are using an external Lavalink instance (if you don't know what that is, you should skip this point):
|
||||
|
||||
We've updated our default application.yml file and you should update your instance's ``application.yml`` accordingly.
|
||||
More specifically, we bumped the version of YT source plugin.
|
||||
`Download Red 3.5.18's default application.yml file <https://github.com/Cog-Creators/Red-DiscordBot/releases/download/3.5.18/Red-DiscordBot-3.5.18-default-lavalink-application.yml>`__
|
||||
|
||||
End-user changelog
|
||||
------------------
|
||||
|
||||
Changes
|
||||
*******
|
||||
|
||||
- **Core - Dependencies** - Red's dependencies have been bumped (:issue:`6543`)
|
||||
|
||||
Fixes
|
||||
*****
|
||||
|
||||
- |cool| **Cogs - Audio** - Fixed recent YT playback issues (:issue:`6542`)
|
||||
|
||||
----
|
||||
|
||||
Redbot 3.5.17 (2025-03-08)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Flame442`, :ghuser:`Jackenmen`, :ghuser:`karlsbjorn`, :ghuser:`Kowlin`
|
||||
|
||||
Read before updating
|
||||
--------------------
|
||||
|
||||
#. Information for Audio users that are using an external Lavalink instance (if you don't know what that is, you should skip this point):
|
||||
|
||||
We've updated our default application.yml file and you should update your instance's ``application.yml`` accordingly.
|
||||
More specifically, we bumped the version of YT source plugin.
|
||||
`Download Red 3.5.17's default application.yml file <https://github.com/Cog-Creators/Red-DiscordBot/releases/download/3.5.17/Red-DiscordBot-3.5.17-default-lavalink-application.yml>`__
|
||||
|
||||
End-user changelog
|
||||
------------------
|
||||
|
||||
Changes
|
||||
*******
|
||||
|
||||
- **Core - Dependencies** - Red's dependencies have been bumped (:issue:`6529`, :issue:`6531`)
|
||||
- **Cogs - Cleanup** - The ``[p]cleanup duplicates`` command now considers more information about the message when determining if it's a duplicate. Notably, messages with polls are ignored and equivalent messages replying to different messages are now not considered duplicates (:issue:`6529`)
|
||||
- **Cogs - Filter** - The cog now checks forwarded messages for filtered words (:issue:`6529`)
|
||||
|
||||
Fixes
|
||||
*****
|
||||
|
||||
- |cool| **Cogs - Audio** - Fixed recent YT playback issues (:issue:`6530`)
|
||||
- **Cogs - Streams** - Fixed upcoming stream alert showing an incorrect time when Red is hosted on a system using a non-UTC timezone (:issue:`6526`, :issue:`6527`)
|
||||
|
||||
Developer changelog
|
||||
-------------------
|
||||
|
||||
Changes
|
||||
*******
|
||||
|
||||
- |cool| **Core - Dependencies** - Bumped ``discord.py`` to version 2.5.2 (:issue:`6529`, :issue:`6531`)
|
||||
|
||||
----
|
||||
|
||||
Redbot 3.5.16 (2025-02-06)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`Flame442`, :ghuser:`Jackenmen`
|
||||
|
||||
This is a hotfix release changing our implementation to prevent crash at startup
|
||||
when invalid value of global locale/regional format configuration is encountered.
|
||||
We have seen a few reports of this occurring and we believe that this was caused by
|
||||
some 3rd-party cog(s) passing invalid values to Red <3.5 i18n APIs as those versions
|
||||
did not validate the input in some scenarios. During startup, Red will now simply
|
||||
log a warning, if it encounters incorrect global locale/regional format configuration
|
||||
and reset it to a known valid value.
|
||||
|
||||
----
|
||||
|
||||
Redbot 3.5.15 (2025-02-03)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Flame442`, :ghuser:`Jackenmen`, :ghuser:`Kowlin`
|
||||
|
||||
Read before updating
|
||||
--------------------
|
||||
|
||||
#. openSUSE Leap 15.5 is no longer supported as it has already reached its end of life.
|
||||
|
||||
#. Information for Audio users that are using an external Lavalink instance (if you don't know what that is, you should skip this point):
|
||||
|
||||
We've updated our default application.yml file and you should update your instance's ``application.yml`` accordingly.
|
||||
More specifically, we bumped the version of YT source plugin.
|
||||
`Download Red 3.5.15's default application.yml file <https://github.com/Cog-Creators/Red-DiscordBot/releases/download/3.5.15/Red-DiscordBot-3.5.15-default-lavalink-application.yml>`__
|
||||
|
||||
End-user changelog
|
||||
------------------
|
||||
|
||||
Changes
|
||||
*******
|
||||
|
||||
- **Core - Dependencies** - Red's dependencies have been bumped (:issue:`6512`)
|
||||
- **Core - OS Support** - openSUSE Leap 15.5 is no longer supported as it has already reached its end of life (:issue:`6512`)
|
||||
- **Cogs - Audio** - The ``[p]audioset logs`` command can now be used in DMs (:issue:`6499`)
|
||||
- **Cogs - Trivia - Lists** - Added subnet masks in CIDR notations as answers to subnet-related questions in the ``computers`` trivia (:issue:`6495`)
|
||||
|
||||
Fixes
|
||||
*****
|
||||
|
||||
- **Core - Bot Commands** - The ``[p]set api`` command no longer errors with long service names (:issue:`6478`, :issue:`6502`)
|
||||
- |cool| **Cogs - Audio** - Fixed recent YT playback issues (:issue:`6509`, :issue:`6511`)
|
||||
|
||||
Developer changelog
|
||||
-------------------
|
||||
|
||||
Changes
|
||||
*******
|
||||
|
||||
- **Core - i18n** - Added `redbot.core.i18n.set_contextual_locale()` and `redbot.core.i18n.set_contextual_regional_format()` functions (:issue:`6022`)
|
||||
|
||||
----
|
||||
|
||||
Redbot 3.5.14 (2024-12-25)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Ascensionn`, :ghuser:`cswimr`, :ghuser:`Chovin`, :ghuser:`cdaman3141`, :ghuser:`DJTOMATO`, :ghuser:`Flame442`, :ghuser:`japandotorg`, :ghuser:`Jackenmen`, :ghuser:`karlsbjorn`, :ghuser:`Kowlin`, :ghuser:`kpopdev`, :ghuser:`kevin1015wang`, :ghuser:`Kreusada`, :ghuser:`mellow-org`, :ghuser:`palmtree5`, :ghuser:`sravan1946`, :ghuser:`TrustyJAID`
|
||||
|
||||
Read before updating
|
||||
--------------------
|
||||
|
||||
#. Following operating systems are no longer supported as they have already reached their end of life:
|
||||
|
||||
- Debian 11 (excluding Raspberry Pi OS 11)
|
||||
- Fedora 39
|
||||
- macOS 12 (Monterey)
|
||||
|
||||
#. Information for Audio users that are using an external Lavalink instance (if you don't know what that is, you should skip this point):
|
||||
|
||||
We've updated our default application.yml file and you should update your instance's ``application.yml`` accordingly.
|
||||
More specifically, we bumped the version of YT source plugin.
|
||||
`Download Red 3.5.14's default application.yml file <https://github.com/Cog-Creators/Red-DiscordBot/releases/download/3.5.14/Red-DiscordBot-3.5.14-default-lavalink-application.yml>`__
|
||||
|
||||
End-user changelog
|
||||
------------------
|
||||
|
||||
Additions
|
||||
*********
|
||||
|
||||
- |cool| **Cogs - Mod** - Added new setting (``[p]modset requirereason``) for enforcing reason to be filled in cog's commands (:issue:`6477`)
|
||||
|
||||
Changes
|
||||
*******
|
||||
|
||||
- |cool| **Core** - Updated the output from help command to enable use of the new copy to clipboard feature on Discord code blocks to copy the command input (:issue:`6244`)
|
||||
- **Core** - Updated ID parser used by some (core and 3rd-party) commands to reject IDs that are larger than a Discord ID (snowflake) can be (:issue:`6431`, :issue:`6486`)
|
||||
- |cool| **Core - Bot Commands** - The ``[p]slash disablecog`` and ``[p]slash enablecog`` commands can now be passed multiple cog names to disable/enable app commands from many cogs at the same time (:issue:`6001`)
|
||||
- **Core - Dependencies** - Red's dependencies have been bumped (:issue:`6492`)
|
||||
- **Core - OS Support** - Debian 11, Fedora 39, and macOS 12 (Monterey) are no longer supported as they have already reached end of life (:issue:`6492`)
|
||||
- **Core - OS Support** - Ubuntu non-LTS version is currently considered unsupported due to lack of support for Python 3.12 from Red (:issue:`6492`)
|
||||
- **Cogs - Audio** - The ``[p]play`` command will now mention how the URL restrictions can be disabled, if they're currently enabled (:issue:`6348`)
|
||||
- **Cogs - Audio** - The Lavalink download process now has a separate, larger, timeout than the timeout for startup of the Lavalink process (:issue:`6460`, :issue:`6461`)
|
||||
- **Cogs - Downloader** - Changed the format of the ``[p]repo list`` command's output to include repo links (:issue:`6284`)
|
||||
- |cool| **Cogs - Warnings** - The ``[p]warn`` command will now prompt whether to ban the user, if that user has already left the server by the time the command was called (:issue:`6445`, :issue:`6481`)
|
||||
- **Cogs - Trivia - Lists** - Added variants of the answers without punctuation to the ``harrypotter`` trivia list (:issue:`5889`)
|
||||
|
||||
Fixes
|
||||
*****
|
||||
|
||||
- **Core** - Fixed issues with permission handling for user-installable app commands (:issue:`6457`)
|
||||
- **Core - Bot Commands** - Fixed uncaught error when running ``[p]load locales`` command (:issue:`4623`)
|
||||
- |cool| **Cogs - Audio** - Fixed various issues with YT playback resulting in "Something broke when playing the track" error (:issue:`6488`, :issue:`6490`)
|
||||
- **Cogs - Trivia - Lists** - Fixed typos in Golden Glove questions in the ``worldcup`` trivia list (:issue:`6441`)
|
||||
|
||||
Developer changelog
|
||||
-------------------
|
||||
|
||||
Additions
|
||||
*********
|
||||
|
||||
- |cool| **Core - Bot Class** - Added `Red.get_app_command_id()` and `Red.get_app_command_mention()` methods for getting app command IDs/mentions from Red's cache (:issue:`5976`, :issue:`6278`)
|
||||
- **Core - Utils Package** - Added `hyperlink()`, `header()`, and `subtext()` chat formatting functions (:issue:`6102`, :issue:`6444`)
|
||||
- |cool| **Core - Utils Package** - Added `redbot.core.utils.chat_formatting.rich_markup()` function for generating Discord-compatible code blocks with ANSI formatting using a limited set of `Rich markup <https://rich.readthedocs.io/en/stable/markup.html>`__ (:issue:`5538`)
|
||||
- **Cogs - Downloader** - Downloader will now replace ``[botname]`` in the install messages with the bot's name, same as is done for command help messages (:issue:`6443`)
|
||||
|
||||
Changes
|
||||
*******
|
||||
|
||||
- **Core - Utils Package** - Added support for `SimpleMenu` to customize the select options before sending (:issue:`6455`, :issue:`6480`)
|
||||
|
||||
Deprecations
|
||||
************
|
||||
|
||||
- **Core - Utils Package** - Deprecated `SimpleMenu.select_menu` attribute (:issue:`6480`)
|
||||
|
||||
Fixes
|
||||
*****
|
||||
|
||||
- **Core** - Fixed the cooldown bypass (enabled by ``[p]bypasscooldowns`` command) not being respected by the ``[p]slash sync`` command (:issue:`6465`)
|
||||
- **Core - Commands Package** - Updated `RawUserIdConverter` to reject IDs that are larger than a Discord ID (snowflake) can be (:issue:`6431`, :issue:`6486`)
|
||||
|
||||
----
|
||||
|
||||
Redbot 3.5.13 (2024-08-27)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Guyonsteroids`, :ghuser:`Jackenmen`, :ghuser:`Kowlin`
|
||||
|
||||
Read before updating
|
||||
@@ -36,7 +576,7 @@ Fixes
|
||||
Redbot 3.5.12 (2024-08-08)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Jackenmen`
|
||||
|
||||
Read before updating
|
||||
@@ -62,7 +602,7 @@ Fixes
|
||||
Redbot 3.5.11 (2024-08-04)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`anopem`, :ghuser:`Flame442`, :ghuser:`japandotorg`, :ghuser:`Jackenmen`, :ghuser:`Kowlin`, :ghuser:`palmtree5`, :ghuser:`yamikaitou`
|
||||
|
||||
Read before updating
|
||||
@@ -113,7 +653,7 @@ Changes
|
||||
Redbot 3.5.10 (2024-07-10)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Flame442`, :ghuser:`Jackenmen`, :ghuser:`Kowlin`, :ghuser:`SeaswimmerTheFsh`, :ghuser:`TrustyJAID`, :ghuser:`yamikaitou`
|
||||
|
||||
Read before updating
|
||||
@@ -201,7 +741,7 @@ Fixes
|
||||
Redbot 3.5.9 (2024-04-21)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`giplgwm`, :ghuser:`Jackenmen`, :ghuser:`Kuro-Rui`, :ghuser:`Kowlin`, :ghuser:`palmtree5`, :ghuser:`TrustyJAID`, :ghuser:`Zephyrkul`
|
||||
|
||||
Read before updating
|
||||
@@ -247,7 +787,7 @@ Fixes
|
||||
Redbot 3.5.8 (2024-04-01)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Flame442`, :ghuser:`Jackenmen`, :ghuser:`Kreusada`, :ghuser:`TrustyJAID`
|
||||
|
||||
Read before updating
|
||||
@@ -307,7 +847,7 @@ Additions
|
||||
Redbot 3.5.7 (2024-03-24)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Flame442`, :ghuser:`karlsbjorn`, :ghuser:`Jackenmen`
|
||||
|
||||
This is a hotfix release fixing a bug with Red's reaction-based menus introduced in the previous release.
|
||||
@@ -326,7 +866,7 @@ Fixes
|
||||
Redbot 3.5.6 (2024-03-22)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`BlizzardTheWolf`, :ghuser:`DJTOMATO`, :ghuser:`Dav-Git`, :ghuser:`Flame442`, :ghuser:`goettner`, :ghuser:`Jackenmen`, :ghuser:`Jan200101`, :ghuser:`japandotorg`, :ghuser:`Kowlin`, :ghuser:`Kreusada`, :ghuser:`laggron42`, :ghuser:`madebylydia`, :ghuser:`michael-is-qcde`, :ghuser:`scarecr0w12`, :ghuser:`yeetbruises`, :ghuser:`Zephyrkul`
|
||||
|
||||
Read before updating
|
||||
@@ -426,7 +966,7 @@ Fixes
|
||||
Redbot 3.5.5 (2023-09-14)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`Flame442`, :ghuser:`Jackenmen`, :ghuser:`karlsbjorn`, :ghuser:`Kreusada`, :ghuser:`ltzmax`, :ghuser:`palmtree5`
|
||||
|
||||
End-user changelog
|
||||
@@ -459,7 +999,7 @@ Changes
|
||||
Redbot 3.5.4 (2023-08-12)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Jackenmen`, :ghuser:`laggron42`, :ghuser:`Leo40Git`, :ghuser:`PredaaA`, :ghuser:`TrustyJAID`
|
||||
|
||||
Read before updating
|
||||
@@ -497,7 +1037,7 @@ Fixes
|
||||
Redbot 3.5.3 (2023-07-24)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`AAA3A-AAA3A`, :ghuser:`aikaterna`, :ghuser:`Drapersniper`, :ghuser:`Flame442`, :ghuser:`flaree`, :ghuser:`Jackenmen`, :ghuser:`Kowlin`, :ghuser:`Kreusada`, :ghuser:`Om1609`, :ghuser:`PredaaA`, :ghuser:`TrustyJAID`, :ghuser:`Zephyrkul`
|
||||
|
||||
Read before updating
|
||||
@@ -576,7 +1116,7 @@ Changes
|
||||
Redbot 3.5.2 (2023-05-14)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`flaree`, :ghuser:`Flame442`, :ghuser:`Jackenmen`, :ghuser:`karlsbjorn`, :ghuser:`rramboer`, :ghuser:`synrg`, :ghuser:`TrustyJAID`, :ghuser:`Vexed01`
|
||||
|
||||
End-user changelog
|
||||
@@ -637,7 +1177,7 @@ Fixes
|
||||
Redbot 3.5.1 (2023-05-04)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`Flame442`, :ghuser:`Jackenmen`
|
||||
|
||||
This is a hotfix release fixing documentation issues and a bug with the update notification logic
|
||||
@@ -667,7 +1207,7 @@ Fixes
|
||||
Redbot 3.5.0 (2023-05-04)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`AAA3A-AAA3A`, :ghuser:`aikaterna`, :ghuser:`alexratman`, :ghuser:`AntonioNarra`, :ghuser:`Arman0334`, :ghuser:`Dav-Git`, :ghuser:`Drapersniper`, :ghuser:`Flame442`, :ghuser:`Honkertonken`, :ghuser:`i-am-zaidali`, :ghuser:`Jackenmen`, :ghuser:`japandotorg`, :ghuser:`karlsbjorn`, :ghuser:`keqking`, :ghuser:`Kowlin`, :ghuser:`Kreusada`, :ghuser:`Kuro-Rui`, :ghuser:`leetfin`, :ghuser:`npc203`, :ghuser:`palmtree5`, :ghuser:`PredaaA`, :ghuser:`Predeactor`, :ghuser:`TrustyJAID`, :ghuser:`Vexed01`, :ghuser:`yuansheng1549`
|
||||
|
||||
Read before updating
|
||||
@@ -915,7 +1455,7 @@ Fixes
|
||||
Redbot 3.4.19 (2023-04-20)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Ankur391`, :ghuser:`BigPeep0doo`, :ghuser:`chasehult`, :ghuser:`Flame442`, :ghuser:`Honkertonken`, :ghuser:`Jackenmen`, :ghuser:`japandotorg`, :ghuser:`Kowlin`, :ghuser:`Kreusada`, :ghuser:`leetfin`, :ghuser:`Lioness100`, :ghuser:`ltzmax`, :ghuser:`MHLoppy`, :ghuser:`OofChair`, :ghuser:`Ryan5453`, :ghuser:`SnappyDragon64`, :ghuser:`sravan1946`, :ghuser:`TheThomanski`, :ghuser:`TrustyJAID`, :ghuser:`vertyco`, :ghuser:`Vexed01`, :ghuser:`Visne`
|
||||
|
||||
Read before updating
|
||||
@@ -1020,7 +1560,7 @@ Changes
|
||||
Redbot 3.4.18 (2022-08-15)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Flame442`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`RheingoldRiver`
|
||||
|
||||
Read before updating
|
||||
@@ -1062,7 +1602,7 @@ Changes
|
||||
Redbot 3.4.17 (2022-06-07)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Drapersniper`, :ghuser:`Flame442`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`Kreusada`, :ghuser:`ltzmax`, :ghuser:`matcha19`, :ghuser:`mina9999`, :ghuser:`ponte-vecchio`, :ghuser:`PredaaA`, :ghuser:`TrustyJAID`, :ghuser:`untir-l`, :ghuser:`Vexed01`
|
||||
|
||||
Read before updating
|
||||
@@ -1158,7 +1698,7 @@ Fixes
|
||||
Redbot 3.4.16 (2021-12-31)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`jack1142`, :ghuser:`PredaaA`
|
||||
|
||||
This is a hotfix release fixing issues with invite URL API that caused
|
||||
@@ -1195,7 +1735,7 @@ Changes
|
||||
Redbot 3.4.15 (2021-12-31)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`aleclol`, :ghuser:`Arman0334`, :ghuser:`Crossedfall`, :ghuser:`Dav-Git`, :ghuser:`fixator10`, :ghuser:`Flame442`, :ghuser:`jack1142`, :ghuser:`Jan200101`, :ghuser:`Just-Jojo`, :ghuser:`Kowlin`, :ghuser:`Kreusada`, :ghuser:`laggron42`, :ghuser:`ltzmax`, :ghuser:`Parnassius`, :ghuser:`PredaaA`, :ghuser:`Predeactor`, :ghuser:`RasmusWL`, :ghuser:`sravan1946`, :ghuser:`Stonedestroyer`, :ghuser:`the-krak3n`, :ghuser:`Tobotimus`, :ghuser:`vertyco`, :ghuser:`Vexed01`, :ghuser:`WreckRox`, :ghuser:`yamikaitou`
|
||||
|
||||
Read before updating
|
||||
@@ -1310,7 +1850,7 @@ Fixes
|
||||
Redbot 3.4.14 (2021-09-23)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`L33Tech`, :ghuser:`maxbooiii`, :ghuser:`RheingoldRiver`
|
||||
|
||||
Read before updating
|
||||
@@ -1366,7 +1906,7 @@ Fixes
|
||||
Redbot 3.4.13 (2021-09-09)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Arman0334`, :ghuser:`Flame442`, :ghuser:`flaree`, :ghuser:`fredster33`, :ghuser:`Injabie3`, :ghuser:`jack1142`, :ghuser:`Just-Jojo`, :ghuser:`Kowlin`, :ghuser:`Kreusada`, :ghuser:`leblancg`, :ghuser:`maxbooiii`, :ghuser:`npc203`, :ghuser:`palmtree5`, :ghuser:`phenom4n4n`, :ghuser:`PredaaA`, :ghuser:`qenu`, :ghuser:`TheDataLeek`, :ghuser:`Twentysix26`, :ghuser:`TwinDragon`, :ghuser:`Vexed01`
|
||||
|
||||
Read before updating
|
||||
@@ -1493,7 +2033,7 @@ Fixes
|
||||
Redbot 3.4.12 (2021-06-17)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Flame442`, :ghuser:`jack1142`, :ghuser:`Just-Jojo`, :ghuser:`Kowlin`, :ghuser:`Kreusada`, :ghuser:`npc203`, :ghuser:`PredaaA`, :ghuser:`retke`, :ghuser:`Stonedestroyer`
|
||||
|
||||
This is a hotfix release related to Red ceasing to use the Audio Global API service.
|
||||
@@ -1538,7 +2078,7 @@ Changes
|
||||
Redbot 3.4.11 (2021-06-12)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`Onii-Chan-Discord`
|
||||
|
||||
This is a hotfix release fixing a crash involving guild uploaded stickers.
|
||||
@@ -1565,7 +2105,7 @@ Fixes
|
||||
Redbot 3.4.10 (2021-05-28)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`aleclol`, :ghuser:`benno1237`, :ghuser:`bobloy`, :ghuser:`BoyDownTown`, :ghuser:`Danstr5544`, :ghuser:`DeltaXWizard`, :ghuser:`Drapersniper`, :ghuser:`Fabian-Evolved`, :ghuser:`fixator10`, :ghuser:`Flame442`, :ghuser:`flaree`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`Kreusada`, :ghuser:`Lifeismana`, :ghuser:`Obi-Wan3`, :ghuser:`OofChair`, :ghuser:`palmtree5`, :ghuser:`plofts`, :ghuser:`PredaaA`, :ghuser:`Predeactor`, :ghuser:`TrustyJAID`, :ghuser:`Vexed01`
|
||||
|
||||
Read before updating
|
||||
@@ -1704,7 +2244,7 @@ Thanks again to :ghuser:`Rapptz` for quick response on this issue.
|
||||
Redbot 3.4.8 (2021-04-06)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`6days9weeks`, :ghuser:`aikaterna`, :ghuser:`Drapersniper`, :ghuser:`fixator10`, :ghuser:`Flame442`, :ghuser:`flaree`, :ghuser:`jack1142`, :ghuser:`kingslayer268`, :ghuser:`Kowlin`, :ghuser:`Kreusada`, :ghuser:`Obi-Wan3`, :ghuser:`OofChair`, :ghuser:`palmtree5`, :ghuser:`phenom4n4n`, :ghuser:`PredaaA`, :ghuser:`Predeactor`, :ghuser:`rijusougata13`, :ghuser:`TheDiscordHistorian`, :ghuser:`Tobotimus`, :ghuser:`TrustyJAID`, :ghuser:`Twentysix26`, :ghuser:`Vexed01`
|
||||
|
||||
Read before updating
|
||||
@@ -1830,7 +2370,7 @@ Fixes
|
||||
Redbot 3.4.7 (2021-02-26)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`elijabesu`, :ghuser:`Flame442`, :ghuser:`flaree`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`kreusada`, :ghuser:`palmtree5`, :ghuser:`TrustyJAID`
|
||||
|
||||
End-user changelog
|
||||
@@ -1867,7 +2407,7 @@ Additions
|
||||
Redbot 3.4.6 (2021-02-16)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`aleclol`, :ghuser:`Andeeeee`, :ghuser:`bobloy`, :ghuser:`BreezeQS`, :ghuser:`Danstr5544`, :ghuser:`Dav-Git`, :ghuser:`Elysweyr`, :ghuser:`Fabian-Evolved`, :ghuser:`fixator10`, :ghuser:`Flame442`, :ghuser:`Injabie3`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`kreusada`, :ghuser:`leblancg`, :ghuser:`maxbooiii`, :ghuser:`NeuroAssassin`, :ghuser:`phenom4n4n`, :ghuser:`PredaaA`, :ghuser:`Predeactor`, :ghuser:`retke`, :ghuser:`siu3334`, :ghuser:`Strafee`, :ghuser:`TheWyn`, :ghuser:`TrustyJAID`, :ghuser:`Vexed01`, :ghuser:`yamikaitou`
|
||||
|
||||
Read before updating
|
||||
@@ -2007,7 +2547,7 @@ Fixes
|
||||
Redbot 3.4.5 (2020-12-24)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`Injabie3`, :ghuser:`NeuroAssassin`
|
||||
|
||||
This is a hotfix release fixing an issue with Streams cog failing to load.
|
||||
@@ -2025,7 +2565,7 @@ Fixes
|
||||
Redbot 3.4.4 (2020-12-24)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`bobloy`, :ghuser:`Flame442`, :ghuser:`flaree`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`kreus7`, :ghuser:`NeuroAssassin`, :ghuser:`npc203`, :ghuser:`palmtree5`, :ghuser:`phenom4n4n`, :ghuser:`Predeactor`, :ghuser:`retke`, :ghuser:`siu3334`, :ghuser:`Vexed01`, :ghuser:`yamikaitou`
|
||||
|
||||
Read before updating
|
||||
@@ -2112,7 +2652,7 @@ Removals
|
||||
Redbot 3.4.3 (2020-11-16)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`bobloy`, :ghuser:`Flame442`, :ghuser:`jack1142`, :ghuser:`KianBral`, :ghuser:`maxbooiii`, :ghuser:`phenom4n4n`, :ghuser:`Predeactor`, :ghuser:`retke`
|
||||
|
||||
Read before updating
|
||||
@@ -2175,7 +2715,7 @@ Additions
|
||||
Redbot 3.4.2 (2020-10-28)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Drapersniper`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`PredaaA`, :ghuser:`Stonedestroyer`
|
||||
|
||||
Read before updating
|
||||
@@ -2222,7 +2762,7 @@ Changes
|
||||
Redbot 3.4.1 (2020-10-27)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`absj30`, :ghuser:`aikaterna`, :ghuser:`bobloy`, :ghuser:`chloecormier`, :ghuser:`Dav-Git`, :ghuser:`Drapersniper`, :ghuser:`fixator10`, :ghuser:`Flame442`, :ghuser:`flaree`, :ghuser:`Generaleoley`, :ghuser:`hisztendahl`, :ghuser:`jack1142`, :ghuser:`KaiGucci`, :ghuser:`Kowlin`, :ghuser:`maxbooiii`, :ghuser:`MeatyChunks`, :ghuser:`NeuroAssassin`, :ghuser:`nfitzen`, :ghuser:`palmtree5`, :ghuser:`phenom4n4n`, :ghuser:`PredaaA`, :ghuser:`Predeactor`, :ghuser:`PythonTryHard`, :ghuser:`SharkyTheKing`, :ghuser:`Stonedestroyer`, :ghuser:`thisisjvgrace`, :ghuser:`TrustyJAID`, :ghuser:`TurnrDev`, :ghuser:`Vexed01`, :ghuser:`Vuks69`, :ghuser:`xBlynd`, :ghuser:`zephyrkul`
|
||||
|
||||
Read before updating
|
||||
@@ -2396,7 +2936,7 @@ Changes
|
||||
Redbot 3.4.0 (2020-08-17)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`Dav-Git`, :ghuser:`DevilXD`, :ghuser:`douglas-cpp`, :ghuser:`Drapersniper`, :ghuser:`flaree`, :ghuser:`jack1142`, :ghuser:`kablekompany`, :ghuser:`Kowlin`, :ghuser:`maxbooiii`, :ghuser:`MeatyChunks`, :ghuser:`mikeshardmind`, :ghuser:`NeuroAssassin`, :ghuser:`PredaaA`, :ghuser:`Predeactor`, :ghuser:`retke`, :ghuser:`SharkyTheKing`, :ghuser:`thisisjvgrace`, :ghuser:`Tinonb`, :ghuser:`TrustyJAID`, :ghuser:`Twentysix26`, :ghuser:`Vexed01`, :ghuser:`zephyrkul`
|
||||
|
||||
Read before updating
|
||||
@@ -2546,7 +3086,7 @@ Removals
|
||||
Redbot 3.3.12 (2020-08-18)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`Dav-Git`, :ghuser:`douglas-cpp`, :ghuser:`flaree`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`MeatyChunks`, :ghuser:`PredaaA`, :ghuser:`Predeactor`, :ghuser:`thisisjvgrace`, :ghuser:`Vexed01`, :ghuser:`zephyrkul`
|
||||
|
||||
End-user changelog
|
||||
@@ -2578,7 +3118,7 @@ Changes
|
||||
Redbot 3.3.11 (2020-08-10)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`douglas-cpp`, :ghuser:`Drapersniper`, :ghuser:`Flame`, :ghuser:`jack1142`, :ghuser:`MeatyChunks`, :ghuser:`Vexed01`, :ghuser:`yamikaitou`
|
||||
|
||||
End-user changelog
|
||||
@@ -2606,7 +3146,7 @@ Fixes
|
||||
Redbot 3.3.10 (2020-07-09)
|
||||
==========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`bobloy`, :ghuser:`Dav-Git`, :ghuser:`Drapersniper`, :ghuser:`Flame442`, :ghuser:`flaree`, :ghuser:`Injabie3`, :ghuser:`jack1142`, :ghuser:`mikeshardmind`, :ghuser:`MiniJennJenn`, :ghuser:`NeuroAssassin`, :ghuser:`thisisjvgrace`, :ghuser:`Vexed01`
|
||||
|
||||
End-user changelog
|
||||
@@ -2692,7 +3232,7 @@ Fixes
|
||||
Redbot 3.3.9 (2020-06-12)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Dav-Git`, :ghuser:`Drapersniper`, :ghuser:`Flame442`, :ghuser:`mikeshardmind`, :ghuser:`NeuroAssassin`, :ghuser:`Predeactor`, :ghuser:`Vexed01`
|
||||
|
||||
Read before updating
|
||||
@@ -2780,7 +3320,7 @@ Changes
|
||||
Redbot 3.3.8 (2020-05-29)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Bakersbakebread`, :ghuser:`DariusStClair`, :ghuser:`Dav-Git`, :ghuser:`Drapersniper`, :ghuser:`Flame442`, :ghuser:`jack1142`, :ghuser:`mikeshardmind`, :ghuser:`NeuroAssassin`, :ghuser:`PredaaA`, :ghuser:`Predeactor`, :ghuser:`qaisjp`, :ghuser:`Tobotimus`
|
||||
|
||||
End-user changelog
|
||||
@@ -2874,7 +3414,7 @@ This is a hotfix release fixing issue with generating messages for new cases in
|
||||
Redbot 3.3.6 (2020-04-27)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who 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
|
||||
@@ -2954,7 +3494,7 @@ Changes
|
||||
Redbot 3.3.5 (2020-04-09)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`jack1142`, :ghuser:`Kowlin`
|
||||
|
||||
End-user changelog
|
||||
@@ -2975,7 +3515,7 @@ Fixes
|
||||
Redbot 3.3.4 (2020-04-05)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`jack1142`, :ghuser:`kennnyshiwa`
|
||||
|
||||
End-user changelog
|
||||
@@ -3020,7 +3560,7 @@ Changes
|
||||
Redbot 3.3.3 (2020-03-28)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who 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
|
||||
@@ -3113,7 +3653,7 @@ Fixes
|
||||
Redbot 3.3.2 (2020-02-28)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`chasehult`, :ghuser:`Dav-Git`, :ghuser:`DiscordLiz`, :ghuser:`Drapersniper`, :ghuser:`fixator10`, :ghuser:`Flame442`, :ghuser:`Hedlund01`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`mikeshardmind`, :ghuser:`PredaaA`, :ghuser:`Stonedestroyer`, :ghuser:`trundler-dev`, :ghuser:`TrustyJAID`, :ghuser:`zephyrkul`
|
||||
|
||||
End-user changelog
|
||||
@@ -3212,7 +3752,7 @@ Changes
|
||||
Redbot 3.3.1 (2020-02-05)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Flame442`, :ghuser:`flyingmongoose`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`mikeshardmind`, :ghuser:`palmtree5`, :ghuser:`PredaaA`
|
||||
|
||||
End-user changelog
|
||||
@@ -3265,7 +3805,7 @@ Changes
|
||||
Redbot 3.3.0 (2020-01-26)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`DevilXD`, :ghuser:`Drapersniper`, :ghuser:`Flame442`, :ghuser:`Ianardo-DiCaprio`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`mikeshardmind`, :ghuser:`Stonedestroyer`, :ghuser:`zephyrkul`
|
||||
|
||||
End-user changelog
|
||||
@@ -3342,7 +3882,7 @@ Fixes
|
||||
Redbot 3.2.3 (2020-01-17)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`Dav-Git`, :ghuser:`Drapersniper`, :ghuser:`Flame442`, :ghuser:`flaree`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`mikeshardmind`, :ghuser:`Redjumpman`, :ghuser:`Stonedestroyer`, :ghuser:`TrustyJAID`
|
||||
|
||||
End-user changelog
|
||||
@@ -3442,7 +3982,7 @@ Fixes
|
||||
Redbot 3.2.1 (2020-01-10)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`mikeshardmind`, :ghuser:`palmtree5`
|
||||
|
||||
End-user changelog
|
||||
@@ -3464,7 +4004,7 @@ Fixes
|
||||
Redbot 3.2.0 (2020-01-09)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Aurorum`, :ghuser:`Bakersbakebread`, :ghuser:`DevilXD`, :ghuser:`DiscordLiz`, :ghuser:`DJtheRedstoner`, :ghuser:`Drapersniper`, :ghuser:`Flame442`, :ghuser:`flaree`, :ghuser:`Ianardo-DiCaprio`, :ghuser:`jack1142`, :ghuser:`jerbob`, :ghuser:`jonasbohmann`, :ghuser:`kennnyshiwa`, :ghuser:`Kowlin`, :ghuser:`mikeshardmind`, :ghuser:`palmtree5`, :ghuser:`PredaaA`, :ghuser:`RealFriesi`, :ghuser:`retke`, :ghuser:`Tobotimus`, :ghuser:`Vexed01`, :ghuser:`wereii`, :ghuser:`yamikaitou`, :ghuser:`ZeLarpMaster`, :ghuser:`zephyrkul`
|
||||
|
||||
Read before updating
|
||||
@@ -3869,7 +4409,7 @@ This was caused by Discord API changes.
|
||||
Redbot 3.1.7 (2019-11-05)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`mikeshardmind`
|
||||
|
||||
End-user changelog
|
||||
@@ -3912,7 +4452,7 @@ This is a hotfix release fixing issues with broken custom commands and modlog ca
|
||||
Redbot 3.1.3 (2019-07-14)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`Bakersbakebread`, :ghuser:`DevilXD`, :ghuser:`DiscordLiz`, :ghuser:`Drapersniper`, :ghuser:`Flame442`, :ghuser:`jack1142`, :ghuser:`kennnyshiwa`, :ghuser:`Kowlin`, :ghuser:`lizzyd710`, :ghuser:`MeatyChunks`, :ghuser:`mikeshardmind`, :ghuser:`NeuroAssassin`, :ghuser:`PredaaA`, :ghuser:`retke`, :ghuser:`Tobotimus`, :ghuser:`yamikaitou`
|
||||
|
||||
End-user changelog
|
||||
@@ -3999,7 +4539,7 @@ Fixes
|
||||
Redbot 3.1.2 (2019-05-31)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`bren0xa`, :ghuser:`DevilXD`, :ghuser:`DiscordLiz`, :ghuser:`fixator10`, :ghuser:`Flame442`, :ghuser:`jack1142`, :ghuser:`Kowlin`, :ghuser:`mikeshardmind`, :ghuser:`NeuroAssassin`, :ghuser:`palmtree5`, :ghuser:`PredaaA`, :ghuser:`retke`, :ghuser:`Stonedestroyer`, :ghuser:`Tobotimus`, :ghuser:`yamikaitou`, :ghuser:`zephyrkul`
|
||||
|
||||
End-user changelog
|
||||
@@ -4080,7 +4620,7 @@ This is a hotfix release fixing issues related to fuzzy command search that were
|
||||
Redbot 3.1.0 (2019-05-15)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`aikaterna`, :ghuser:`bobloy`, :ghuser:`calebj`, :ghuser:`DiscordLiz`, :ghuser:`EgonSpengler`, :ghuser:`entchen66`, :ghuser:`FixedThink`, :ghuser:`Flame442`, :ghuser:`jack1142`, :ghuser:`kennnyshiwa`, :ghuser:`Kowlin`, :ghuser:`lionirdeadman`, :ghuser:`mikeshardmind`, :ghuser:`NeuroAssassin`, :ghuser:`NIXC`, :ghuser:`palmtree5`, :ghuser:`PredaaA`, :ghuser:`retke`, :ghuser:`Seputaes`, :ghuser:`Sitryk`, :ghuser:`tekulvw`, :ghuser:`Tobotimus`, :ghuser:`TrustyJAID`, :ghuser:`Twentysix26`, :ghuser:`zephyrkul`
|
||||
|
||||
End-user changelog
|
||||
@@ -4190,7 +4730,7 @@ Fixes
|
||||
Redbot 3.0.2 (2019-02-24)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`Tobotimus`, :ghuser:`ZeLarpMaster`
|
||||
|
||||
End-user changelog
|
||||
@@ -4207,7 +4747,7 @@ Fixes
|
||||
Redbot 3.0.1 (2019-02-17)
|
||||
=========================
|
||||
|
||||
| Thanks to all these amazing people that contributed to this release:
|
||||
| Thanks to all these amazing people who contributed to this release:
|
||||
| :ghuser:`calebj`, :ghuser:`DiscordLiz`, :ghuser:`mikeshardmind`, :ghuser:`PredaaA`, :ghuser:`Redjumpman`, :ghuser:`Tobotimus`, :ghuser:`Twentysix26`, :ghuser:`ZeLarpMaster`, :ghuser:`zephyrkul`
|
||||
|
||||
End-user changelog
|
||||
|
||||
|
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 16 KiB |
BIN
docs/.resources/bot-guide/discord_installation_options.png
Normal file
|
After Width: | Height: | Size: 136 KiB |
BIN
docs/.resources/bot-guide/discord_installation_tab.png
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
|
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 50 KiB |
154
docs/_ext/prompt_builder.py
Normal file
@@ -0,0 +1,154 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import os
|
||||
from typing import Any, Dict, List, Set
|
||||
|
||||
from docutils import nodes
|
||||
from docutils.io import StringOutput
|
||||
from docutils.nodes import Element
|
||||
|
||||
from sphinx.application import Sphinx
|
||||
from sphinx.builders.text import TextBuilder
|
||||
from sphinx.writers.text import TextWriter
|
||||
from sphinx.util import logging
|
||||
from sphinx.util.docutils import SphinxTranslator
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class PromptTranslator(SphinxTranslator):
|
||||
builder: PromptBuilder
|
||||
|
||||
def __init__(self, document: nodes.document, builder: PromptBuilder) -> None:
|
||||
super().__init__(document, builder)
|
||||
self.body = ""
|
||||
self.prompts: List[Dict[str, str]] = []
|
||||
|
||||
def visit_document(self, node: Element) -> None:
|
||||
pass
|
||||
|
||||
def depart_document(self, node: Element) -> None:
|
||||
if not self.prompts:
|
||||
self.body = ""
|
||||
return
|
||||
if self.builder.out_suffix.endswith(".json"):
|
||||
self.body = json.dumps(self.prompts, indent=4)
|
||||
else:
|
||||
self.body = "\n".join(prompt["content"] for prompt in self.prompts)
|
||||
|
||||
def unknown_visit(self, node: Element) -> None:
|
||||
pass
|
||||
|
||||
def unknown_departure(self, node: Element) -> None:
|
||||
pass
|
||||
|
||||
def visit_prompt(self, node: Element) -> None:
|
||||
self.prompts.append(
|
||||
{
|
||||
"language": node.attributes["language"],
|
||||
"prompts": node.attributes["prompts"],
|
||||
"modifiers": node.attributes["modifiers"],
|
||||
"rawsource": node.rawsource,
|
||||
"content": node.children[0],
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
class PromptWriter(TextWriter):
|
||||
def translate(self) -> None:
|
||||
visitor = self.builder.create_translator(self.document, self.builder)
|
||||
self.document.walkabout(visitor)
|
||||
self.output = visitor.body
|
||||
|
||||
|
||||
class prompt(nodes.literal_block):
|
||||
pass
|
||||
|
||||
|
||||
class PromptBuilder(TextBuilder):
|
||||
"""Extract prompts from documents."""
|
||||
|
||||
format = "json"
|
||||
epilog = "The files with prompts are in %(outdir)s."
|
||||
|
||||
out_suffix = ".json"
|
||||
default_translator_class = PromptTranslator
|
||||
writer: PromptWriter
|
||||
|
||||
def init(self) -> None:
|
||||
sphinx_prompt = __import__("sphinx-prompt")
|
||||
|
||||
def run(self) -> List[prompt]:
|
||||
self.assert_has_content()
|
||||
rawsource = "\n".join(self.content)
|
||||
language = self.options.get("language") or "text"
|
||||
prompts = [
|
||||
p
|
||||
for p in (
|
||||
self.options.get("prompts") or sphinx_prompt.PROMPTS.get(language, "")
|
||||
).split(",")
|
||||
if p
|
||||
]
|
||||
modifiers = [
|
||||
modifier for modifier in self.options.get("modifiers", "").split(",") if modifier
|
||||
]
|
||||
content = rawsource
|
||||
if "auto" in modifiers:
|
||||
parts = []
|
||||
for line in self.content:
|
||||
for p in prompts:
|
||||
if line.startswith(p):
|
||||
line = line[len(p) + 1 :].rstrip()
|
||||
parts.append(line)
|
||||
content = "\n".join(parts)
|
||||
node = prompt(
|
||||
rawsource,
|
||||
content,
|
||||
directive_content=self.content,
|
||||
language=language,
|
||||
prompts=self.options.get("prompts") or sphinx_prompt.PROMPTS.get(language, ""),
|
||||
modifiers=modifiers,
|
||||
)
|
||||
return [node]
|
||||
|
||||
sphinx_prompt.PromptDirective.run = run
|
||||
|
||||
def prepare_writing(self, docnames: Set[str]) -> None:
|
||||
del docnames
|
||||
self.writer = PromptWriter(self)
|
||||
|
||||
def write_doc(self, docname: str, doctree: nodes.document) -> None:
|
||||
self.writer.write(doctree, StringOutput(encoding="utf-8"))
|
||||
if not self.writer.output:
|
||||
# don't write empty files
|
||||
return
|
||||
|
||||
filename = os.path.join(self.outdir, docname.replace("/", os.path.sep) + self.out_suffix)
|
||||
os.makedirs(os.path.dirname(filename), exist_ok=True)
|
||||
try:
|
||||
with open(filename, "w", encoding="utf-8") as f:
|
||||
f.write(self.writer.output)
|
||||
except OSError as err:
|
||||
logger.warning("error writing file %s: %s", filename, err)
|
||||
|
||||
|
||||
class JsonPromptBuilder(PromptBuilder):
|
||||
name = "jsonprompt"
|
||||
out_suffix = ".json"
|
||||
|
||||
|
||||
class TextPromptBuilder(PromptBuilder):
|
||||
name = "textprompt"
|
||||
out_suffix = ".txt"
|
||||
|
||||
|
||||
def setup(app: Sphinx) -> Dict[str, Any]:
|
||||
app.add_builder(JsonPromptBuilder)
|
||||
app.add_builder(TextPromptBuilder)
|
||||
|
||||
return {
|
||||
"version": "1.0",
|
||||
"parallel_read_safe": True,
|
||||
"parallel_write_safe": True,
|
||||
}
|
||||
2
docs/_templates/layout.html
vendored
@@ -5,7 +5,7 @@
|
||||
<p class="first admonition-title">Warning</p>
|
||||
<p class="last">
|
||||
This document is for Red's development version, which can be significantly different from previous releases.
|
||||
If you're a regular user, you should read the <a href="{{ dict(versions)['stable'] }}">Red documentation for the current stable release</a>.
|
||||
If you're a regular user, you should read the <a href="/{{ rtd_language }}/stable/">Red documentation for the current stable release</a>.
|
||||
</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
35
docs/backup_red.rst
Normal file
@@ -0,0 +1,35 @@
|
||||
.. _backup-red:
|
||||
|
||||
============================
|
||||
Backing Up and Restoring Red
|
||||
============================
|
||||
|
||||
Red can be backed up and restored to any device as long as it is a supported operating system. See page: :ref:`end-user-guarantees`.
|
||||
|
||||
Backup steps are to be done in order and carefully to avoid any issues.
|
||||
|
||||
#. Take note of the installed cogs with ``[p]cogs``; and cog repositories with ``[p]load downloader``, then ``[p]repo list`` (``[p]`` is your bot's prefix).
|
||||
#. Stop the bot, ideally with ``[p]shutdown``.
|
||||
#. Activate your venv, and run ``redbot-setup backup <instancename>``, replacing ``<instancename>`` with the name of your instance.
|
||||
#. Copy your backup file to the new machine/location.
|
||||
#. Extract the file to a location of your choice (remember the full path and make sure that the user you are going to install/run Red under can access this path).
|
||||
#. :ref:`Install Red <install-guides>` as normal on the new machine/location.
|
||||
#. Run ``redbot-setup`` in your venv to create a new instance, using the path you remembered above as your data path.
|
||||
#. Start your new instance.
|
||||
#. Re-add the cog repositories using the same names as before.
|
||||
#. Do ``[p]cog update``.
|
||||
#. Re-add any cogs that were not re-installed (you may have to uninstall them first as Downloader may think they are still installed).
|
||||
|
||||
.. note::
|
||||
|
||||
The config (data) from cogs has been saved, but not the code itself.
|
||||
|
||||
.. tip::
|
||||
|
||||
You can fix permissions (if needed) on your directory using:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo chown -R <user>:<user> ~/.local
|
||||
|
||||
Replace ``<user>`` with your actual username.
|
||||
@@ -21,25 +21,34 @@ Creating a Bot account is a pretty straightforward process.
|
||||
.. image:: /.resources/bot-guide/discord_create_app_button.png
|
||||
:alt: The new application button.
|
||||
|
||||
4. Give the application a name and click "Create".
|
||||
4. Give the application a name, check the box to accept the Terms of Service, and click "Create".
|
||||
|
||||
.. image:: /.resources/bot-guide/discord_create_app_form.png
|
||||
:alt: The new application form filled in.
|
||||
|
||||
5. Create a Bot User by navigating to the "Bot" tab and clicking "Add Bot".
|
||||
5. Navigate to the "Install" tab on the left side of the screen.
|
||||
|
||||
- Click "Yes, do it!" to continue.
|
||||
.. image:: /.resources/bot-guide/discord_installation_tab.png
|
||||
:alt: The installation tab in the application page.
|
||||
|
||||
.. image:: /.resources/bot-guide/discord_create_bot_user.png
|
||||
:alt: The Add Bot button.
|
||||
6. If you want others to be able to invite your bot tick the **Public Bot**. Keeping it unticked will prevent others from inviting your bot to their servers and only you will be able to add the bot to servers (provided that you have needed permissions in the server you want to add the bot to).
|
||||
6. Uncheck "User Install" and set "Install Link" to "None"
|
||||
|
||||
.. image:: /.resources/bot-guide/discord_installation_options.png
|
||||
:alt: How the Installation options should look like for most people.
|
||||
|
||||
7. Navigate to the "Bot" tab on the left side of the screen.
|
||||
|
||||
.. image:: /.resources/bot-guide/discord_bot_tab.png
|
||||
:alt: The bot tab in the application page.
|
||||
|
||||
8. If you want others to be able to invite your bot tick the **Public Bot**. Keeping it unticked will prevent others from inviting your bot to their servers and only you will be able to add the bot to servers (provided that you have needed permissions in the server you want to add the bot to).
|
||||
|
||||
- Make sure **Require OAuth2 Code Grant** is unchecked.
|
||||
|
||||
.. image:: /.resources/bot-guide/discord_bot_user_options.png
|
||||
:alt: How the Bot User options should look like for most people.
|
||||
|
||||
7. Copy the token using the "Copy" button.
|
||||
9. Acquire the token using the "Reset Token" button, then "Copy" after it is revealed.
|
||||
|
||||
- **This is not the Client Secret at the General Information page**
|
||||
|
||||
|
||||
@@ -116,18 +116,18 @@ How can I use this playlist link with playlist commands in audio?**
|
||||
:ref:`setting up Audio for multiple bots<multibots>`. Otherwise, another process is using the
|
||||
port, so you need to figure out what is using port 2333 and terminate/disconnect it yourself.
|
||||
|
||||
**Q: My terminal is saying that I "must install Java 17 or 11 for Lavalink to run". How can I fix this?**
|
||||
**Q: My terminal is saying that I "must install Java 21 or 17 for Lavalink to run". How can I fix this?**
|
||||
|
||||
You are getting this error because you have a different version of Java installed, or you don't have
|
||||
Java installed at all. As the error states, Java 17 or 11 is required, and can be installed from
|
||||
`here <https://adoptium.net/temurin/releases/?version=17>`__.
|
||||
Java installed at all. As the error states, Java 21 or 17 is required, and can be installed from
|
||||
`here <https://adoptium.net/temurin/releases/?version=21>`__.
|
||||
|
||||
If you have Java 17 or 11 installed, and are still getting this error, you will have to manually tell Audio where your Java install is located.
|
||||
Use ``[p]llset java <path_to_java_17_or_11_executable>``, to make Audio launch Lavalink with a
|
||||
If you have Java 21 or 17 installed, and are still getting this error, you will have to manually tell Audio where your Java install is located.
|
||||
Use ``[p]llset java <path_to_java_21_or_17_executable>``, to make Audio launch Lavalink with a
|
||||
specific Java binary. To do this, you will need to locate your ``java.exe``/``java`` file
|
||||
in your **Java 17 or 11 install**.
|
||||
in your **Java 21 or 17 install**.
|
||||
|
||||
Alternatively, update your PATH settings so that Java 17 or 11 is the one used by ``java``. However,
|
||||
Alternatively, update your PATH settings so that Java 21 or 17 is the one used by ``java``. However,
|
||||
you should confirm that nothing other than Red is running on the machine that requires Java.
|
||||
|
||||
.. _queue_commands:
|
||||
@@ -550,7 +550,7 @@ uses OpenJDK 17 in the managed Lavalink configuration. It can be installed by ru
|
||||
|
||||
sudo apt install openjdk-17-jre-headless -y
|
||||
|
||||
Otherwise, Lavalink works well with most versions of Java 11, 13, 15, 16, 17, and 18. Azul
|
||||
Otherwise, Lavalink works well with most versions of Java 17 and higher. Azul
|
||||
Zulu builds are suggested, see `here <https://github.com/lavalink-devs/Lavalink/#requirements>`__ for more information.
|
||||
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
@@ -3651,7 +3651,7 @@ This command shouldn't need to be used most of the time,
|
||||
and is only useful if the host machine has conflicting Java versions.
|
||||
|
||||
If changing this make sure that the Java executable you set is supported by Audio.
|
||||
The current supported versions are Java 17 and 11.
|
||||
The current supported versions are Java 21 or 17.
|
||||
|
||||
**Arguments**
|
||||
|
||||
|
||||
@@ -1829,7 +1829,10 @@ Commands to add servers or channels to the ignore list.
|
||||
|
||||
The ignore list will prevent the bot from responding to commands in the configured locations.
|
||||
|
||||
.. Note:: Owners and Admins override the ignore list.
|
||||
.. Note::
|
||||
|
||||
- Category ignores are ignored by user-installed commands
|
||||
- Owners and Admins override the ignore list.
|
||||
|
||||
|
||||
.. _core-command-ignore-channel:
|
||||
@@ -1850,7 +1853,10 @@ Ignore commands in the channel, thread, or category.
|
||||
|
||||
Defaults to the current thread or channel.
|
||||
|
||||
.. Note:: Owners, Admins, and those with Manage Channel permissions override ignored channels.
|
||||
.. Note::
|
||||
|
||||
- Category ignores are ignored by user-installed commands
|
||||
- Owners and Admins override the ignore list.
|
||||
|
||||
|
||||
**Examples:**
|
||||
@@ -4185,7 +4191,7 @@ slash disablecog
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[p]slash disablecog <cog_name>
|
||||
[p]slash disablecog <cog_names...>
|
||||
|
||||
**Description**
|
||||
|
||||
@@ -4195,7 +4201,7 @@ This command does NOT sync the enabled commands with Discord, that must be done
|
||||
with ``[p]slash sync`` for commands to appear in users' clients.
|
||||
|
||||
**Arguments:**
|
||||
- ``<cog_name>`` - The cog to disable commands from. This argument is case sensitive.
|
||||
- ``<cog_names>`` - The cogs to disable commands from. This argument is case sensitive.
|
||||
|
||||
.. _core-command-slash-enable:
|
||||
|
||||
@@ -4230,7 +4236,7 @@ slash enablecog
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[p]slash enablecog <cog_name>
|
||||
[p]slash enablecog <cog_names...>
|
||||
|
||||
**Description**
|
||||
|
||||
@@ -4240,7 +4246,7 @@ This command does NOT sync the enabled commands with Discord, that must be done
|
||||
with ``[p]slash sync`` for commands to appear in users' clients.
|
||||
|
||||
**Arguments:**
|
||||
- ``<cog_name>`` - The cog to enable commands from. This argument is case sensitive.
|
||||
- ``<cog_names>`` - The cogs to enable commands from. This argument is case sensitive.
|
||||
|
||||
.. _core-command-slash-list:
|
||||
|
||||
|
||||
@@ -253,7 +253,23 @@ modset dm
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[p]modset dm [enabled]
|
||||
[p]modset dm
|
||||
|
||||
**Description**
|
||||
|
||||
Settings for messaging the user when being kicked or banned.
|
||||
|
||||
.. _mod-command-modset-dm-sendmessage:
|
||||
|
||||
"""""""""""""""""""""
|
||||
modset dm sendmessage
|
||||
"""""""""""""""""""""
|
||||
|
||||
**Syntax**
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[p]modset dm sendmessage [enabled]
|
||||
|
||||
**Description**
|
||||
|
||||
@@ -266,6 +282,94 @@ and reason as to why they were kicked/banned.
|
||||
|
||||
* ``[enabled]``: Whether a message should be sent to a user when they are kicked/banned. |bool-input|
|
||||
|
||||
.. _mod-command-modset-banshowextrafield:
|
||||
|
||||
"""""""""""""""""""""""""""
|
||||
modset dm banshowextrafield
|
||||
"""""""""""""""""""""""""""
|
||||
|
||||
**Syntax**
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[p]modset dm banshowextrafield [enabled]
|
||||
|
||||
**Description**
|
||||
|
||||
Toggle whether to show an extra customizable field when banning.
|
||||
|
||||
This can be used to add additional information for the banned user, such as a ban appeal link.
|
||||
|
||||
**Arguments**
|
||||
|
||||
* ``[enabled]``: If an extra customizable embed field should appear when banning. |bool-input|
|
||||
|
||||
.. _mod-command-modset-banextrafieldtitle:
|
||||
|
||||
""""""""""""""""""""""""""""
|
||||
modset dm banextrafieldtitle
|
||||
""""""""""""""""""""""""""""
|
||||
|
||||
**Syntax**
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[p]modset dm banextrafieldtitle [title]
|
||||
|
||||
**Description**
|
||||
|
||||
Set the title for the optional extra embed on ban.
|
||||
|
||||
Cannot be over 252 characters long.
|
||||
|
||||
**Arguments**
|
||||
|
||||
* ``[title]``: The title of the embed field. Can by any string of text under 252 charcters long.
|
||||
|
||||
.. _mod-command-modset-banextrafieldcontents:
|
||||
|
||||
"""""""""""""""""""""""""""""""
|
||||
modset dm banextrafieldcontents
|
||||
"""""""""""""""""""""""""""""""
|
||||
|
||||
**Syntax**
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[p]modset dm banextrafieldcontents [contents]
|
||||
|
||||
**Description**
|
||||
|
||||
Set the contents for the optional extra embed on ban
|
||||
|
||||
Cannot be over 1024 characters long.
|
||||
|
||||
**Arguments**
|
||||
|
||||
* ``[contents]``: The contents of the embed field. Can by any string of text under 1024 charcters long.
|
||||
|
||||
.. _mod-command-modset-requirereason:
|
||||
|
||||
""""""""""""""""""""
|
||||
modset requirereason
|
||||
""""""""""""""""""""
|
||||
|
||||
**Syntax**
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[p]modset requirereason [enabled]
|
||||
|
||||
**Description**
|
||||
|
||||
Toggle whether a reason is required for mod actions.
|
||||
|
||||
If this is enabled, the bot will require a reason to be provided for all mod actions.
|
||||
|
||||
**Arguments**
|
||||
|
||||
* ``[enabled]``: Whether a reason should be required when performing mod actions. |bool-input|
|
||||
|
||||
.. _mod-command-modset-hierarchy:
|
||||
|
||||
""""""""""""""""
|
||||
|
||||
@@ -291,7 +291,7 @@ warningset showmoderator
|
||||
|
||||
**Description**
|
||||
|
||||
Decide whether the name of the moderator warning a user should be included in the DM to that user.
|
||||
Decide whether the name of the moderator warning a user should be included in the DM to that user when being warned or self requesting their warnings.
|
||||
|
||||
**Arguments**
|
||||
|
||||
@@ -337,6 +337,26 @@ Set the channel where warnings should be sent to.
|
||||
|
||||
* ``[channel]``: |channel-input| Leave empty to use the channel ``[p]warn`` command was called in.
|
||||
|
||||
.. _warnings-command-warningset-mywarnings-sendtodms:
|
||||
|
||||
"""""""""""""""""""""""""""""""
|
||||
warningset mywarnings sendtodms
|
||||
"""""""""""""""""""""""""""""""
|
||||
|
||||
**Syntax**
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
[p]warningset mywarnings sendtodms <true_or_false>
|
||||
|
||||
**Description**
|
||||
|
||||
Whether a member self requesting their warnings with ``[p]mywarnings`` should get them sent to DMs or in the current channel.
|
||||
|
||||
**Arguments**
|
||||
|
||||
* ``<true_or_false>``: |bool-input|
|
||||
|
||||
.. _warnings-command-warnreason:
|
||||
|
||||
^^^^^^^^^^
|
||||
|
||||
@@ -46,6 +46,7 @@ extensions = [
|
||||
"sphinxcontrib_trio",
|
||||
"sphinx-prompt",
|
||||
"deprecated_removed",
|
||||
"prompt_builder",
|
||||
]
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
@@ -139,6 +140,9 @@ html_context = {
|
||||
"github_user": "Cog-Creators",
|
||||
"github_repo": "Red-DiscordBot",
|
||||
"github_version": "V3/develop",
|
||||
"version_slug": os.environ.get("READTHEDOCS_VERSION", ""),
|
||||
"rtd_language": os.environ.get("READTHEDOCS_LANGUAGE", ""),
|
||||
"READTHEDOCS": os.environ.get("READTHEDOCS", "") == "True",
|
||||
}
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
|
||||
@@ -155,6 +155,22 @@ Here is an example of the :code:`async with` syntax:
|
||||
blah.append(new_blah)
|
||||
await ctx.send("The new blah value has been added!")
|
||||
|
||||
There is also a :py:meth:`Group.all` method. This will return all the stored data associated
|
||||
with a specific config group as a :py:class:`dict`. By negating the need to excessively call config,
|
||||
this method can be particularly useful when multiple values are to be retrieved from the same group.
|
||||
|
||||
Here is an example of :py:meth:`Group.all` usage:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
@commands.command()
|
||||
async def getall(self, ctx):
|
||||
all_global_data = await self.config.all()
|
||||
await ctx.send("Foobar is {foobar}, foo baz is {foo_baz}".format(
|
||||
foobar=str(all_global_data["foobar"]),
|
||||
foo_baz=str(all_global_data["foo"]["baz"])
|
||||
))
|
||||
|
||||
|
||||
.. important::
|
||||
|
||||
@@ -398,7 +414,7 @@ We're responsible pet owners here, so we've also got to have a way to feed our p
|
||||
# We could accomplish the same thing a slightly different way
|
||||
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)
|
||||
await ctx.send("Your pet is now at {}/100 hunger!".format(new_hunger))
|
||||
|
||||
Of course, if we're less than responsible pet owners, there are consequences::
|
||||
|
||||
@@ -481,7 +497,7 @@ Config prioritizes being a safe data store without developers needing to
|
||||
know how end users have configured their bot.
|
||||
|
||||
This does come with some performance costs, so keep the following in mind when choosing to
|
||||
develop using config
|
||||
develop using config.
|
||||
|
||||
* Config use in events should be kept minimal and should only occur
|
||||
after confirming the event needs to interact with config
|
||||
|
||||
@@ -14,36 +14,96 @@ Basic Usage
|
||||
.. code-block:: python
|
||||
|
||||
from redbot.core import commands
|
||||
from redbot.core.i18n import Translator, cog_i18n
|
||||
from redbot.core.i18n import Translator, cog_i18n, set_contextual_locales_from_guild
|
||||
|
||||
# The translator should be defined in the module scope, with __file__ as the second parameter
|
||||
_ = Translator("ExampleCog", __file__)
|
||||
|
||||
# This decorator must be used for cog and command docstrings to be translated!
|
||||
@cog_i18n(_)
|
||||
class ExampleCog:
|
||||
"""description"""
|
||||
class ExampleCog(commands.Cog):
|
||||
"""Cog description"""
|
||||
def __init__(self, bot):
|
||||
self.bot = bot
|
||||
|
||||
@commands.command()
|
||||
async def mycom(self, ctx):
|
||||
"""command description"""
|
||||
await ctx.send(_("This is a test command"))
|
||||
"""Command description"""
|
||||
# Correct way to translate strings:
|
||||
await ctx.send(_("This is a test command run by {author}!").format(author=ctx.author.display_name))
|
||||
|
||||
# !!! Do not do this - String interpolation should happen after translation
|
||||
await ctx.send(_("This is a test command run by {author}!".format(author=ctx.author.display_name)))
|
||||
|
||||
# !!! Do not use f-strings - String interpolation should happen after translation
|
||||
await ctx.send(_(f"This is a test command run by {ctx.author.display_name}!"))
|
||||
|
||||
@commands.Cog.listener()
|
||||
async def on_message(self, message):
|
||||
# In non-command locations, you must manually call this method for guild locale settings to apply
|
||||
await set_contextual_locales_from_guild(self.bot, message.guild)
|
||||
if message.author.bot:
|
||||
return
|
||||
await message.channel.send(_("This is a non command with translation support!"))
|
||||
|
||||
--------
|
||||
Tutorial
|
||||
--------
|
||||
|
||||
After making your cog, generate a :code:`messages.pot` file
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Preparing your cog for translations
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
We recommend using redgettext - a modified version of pygettext for Red.
|
||||
You can install redgettext by running :code:`pip install redgettext` in a command prompt.
|
||||
The first step to adding translations to your cog is to add Red's internationalization framework
|
||||
to the strings in your cog. The first step is to instantiate an instance of
|
||||
`redbot.core.i18n.Translator` just after the imports in each file. This object is traditionally
|
||||
stored in the variable ``_`` to reduce its character count and visual impact on the code. Next,
|
||||
add the `redbot.core.i18n.cog_i18n` decorator to your cog class. This will allow docstrings of
|
||||
the class and its commands to be translated. Every user-facing string that is not a docstring
|
||||
should then be wrapped by the Translator object. If variables are included in a string,
|
||||
``.format()`` must be used, and should be called after the translation function call. This is
|
||||
because ``.format()`` within the translation function call and f-strings cause the interpolation
|
||||
to happen **before** the translation is applied. The translation logic needs to match the template
|
||||
string to translate it, and will be unable to successfully match after interpolation occurs.
|
||||
Finally, any non-command portions of your code, including listeners, tasks, and views, should call
|
||||
`redbot.core.i18n.set_contextual_locales_from_guild` prior to translating any strings, as only
|
||||
commands are able to implicitly determine which guild's configured locale to use. See the example
|
||||
above for the exact recommended syntax.
|
||||
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Generating a messages.pot file
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
A ``messages.pot`` file is a template for translating all of the strings in your cog. It should
|
||||
be generated using ``redgettext`` - a modified version of ``pygettext`` for use with Red cogs.
|
||||
You can install ``redgettext`` by running :code:`pip install redgettext` in your development
|
||||
environment.
|
||||
|
||||
Once you have ``redgettext`` installed, you will now need to run
|
||||
|
||||
:code:`python -m redgettext -c [path_to_cog_folder]`
|
||||
|
||||
This will generate a ``messages.pot`` file in ``path_to_cog_folder/locales``. This file will
|
||||
contain all strings to be translated, including docstrings.
|
||||
|
||||
To generate the :code:`messages.pot` file, you will now need to run
|
||||
:code:`python -m redgettext -c [path_to_cog]`
|
||||
This file will contain all strings to be translated, including
|
||||
docstrings.
|
||||
(For advanced usage check :code:`python -m redgettext -h`)
|
||||
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Creating language specific translations
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
You can now use a tool like `poedit
|
||||
<https://poedit.net/>`_ to translate the strings in your messages.pot file.
|
||||
<https://poedit.net/>`_ to translate the strings in your ``messages.pot`` file.
|
||||
|
||||
Alternatively, you can use any text editor to manually create translations. To do this, first
|
||||
create a copy of the ``messages.pot`` file in the same folder, and name the copy
|
||||
``LANGUAGE-CODE.po``, where ``LANGUAGE-CODE`` is a five character language code supported by
|
||||
``[p]set locale``. Open the copy in your text editor of choice. This file contains the strings
|
||||
in your cog prefixed by ``msgid`` and an empty string for you to apply translations prefixed by
|
||||
``msgstr``. The original string should be translated to the target language by modifying the
|
||||
associated ``msgstr``. Any variables within curly braces should **not** be translated to avoid
|
||||
breaking the code when translations are applied. If keyword arguments were used in ``.format()``
|
||||
calls, it may be safe to re-order variables if the grammer of the language requires doing so.
|
||||
|
||||
-------------
|
||||
API Reference
|
||||
@@ -51,4 +111,4 @@ API Reference
|
||||
|
||||
.. automodule:: redbot.core.i18n
|
||||
:members:
|
||||
:special-members: __call__
|
||||
:special-members: __call__, __init__
|
||||
|
||||
@@ -47,7 +47,7 @@ Keys common to both repo and cog info.json (case sensitive)
|
||||
is installed or a repo is added
|
||||
|
||||
.. tip:: You can use the ``[p]`` key in your string to use the prefix
|
||||
used for installing.
|
||||
used for installing, and ``[botname]`` to show the bot's username.
|
||||
|
||||
- ``short`` (string) - A short description of the cog or repo. For cogs, this info
|
||||
is displayed when a user executes ``[p]cog list``
|
||||
|
||||
@@ -32,12 +32,11 @@ First, we would like to make something clear:
|
||||
Hosting on a VPS or Dedicated Server
|
||||
------------------------------------
|
||||
|
||||
| You can host Red in a VPS running Linux or Windows. Using a Linux VPS is the
|
||||
| You can host Red on a VPS running Linux or Windows. Using a Linux VPS is the
|
||||
recommended option. Dedicated servers also work but are overpowered and cost
|
||||
ineffective unless one plans to run a very large bot or use their server for
|
||||
more than just hosting Red. If you have already created an instance, Red can be moved to a different
|
||||
server for hosting with a backup/restore process. More information and guidance
|
||||
about this process is available in the `Red Support Server <https://discord.com/invite/red>`_.
|
||||
server for hosting using the :doc:`backup/restore process </backup_red>`.
|
||||
|
||||
.. warning::
|
||||
Please be aware that a Linux server is controlled through a command line.
|
||||
@@ -87,7 +86,7 @@ Average Providers
|
||||
| `OVH <https://us.ovhcloud.com/vps/>`_ is a company focused on providing hosting
|
||||
and cloud services with locations in Europe, North America and Asia Pacific.
|
||||
|
||||
| `Time4VPS <https://www.time4vps.eu/>`_ is a Lithuanian VPS provider mainly focused
|
||||
| `Time4VPS <https://www.time4vps.com/>`_ is a Lithuanian VPS provider mainly focused
|
||||
on lower cost.
|
||||
|
||||
| `GalaxyGate <https://galaxygate.net/>`_ is a VPS and dedicated server provider
|
||||
@@ -114,7 +113,7 @@ Average Providers
|
||||
| `LowEndBox <http://lowendbox.com/>`_ is a website where hosting providers are
|
||||
discussed and curated, often with lower costs and less known providers.
|
||||
|
||||
| `AlphaVps <https://alphavps.com>`_ is a Bulgaria VPS and dedicated server provider
|
||||
| `AlphaVps <https://alphavps.com>`_ is a Bulgarian VPS and dedicated server provider
|
||||
with locations in Los Angeles, New York, England, Germany and Bulgaria.
|
||||
|
||||
--------------------
|
||||
|
||||
@@ -16,6 +16,17 @@ For Developers
|
||||
Removals
|
||||
~~~~~~~~
|
||||
|
||||
``SimpleMenu.select_menu`` attribute
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. deprecated-removed:: 3.5.14 60
|
||||
|
||||
The `SimpleMenu.select_menu` attribute has been deprecated.
|
||||
|
||||
Any behaviour enabled by the usage of this attribute should no longer be depended on.
|
||||
If you need this for something and cannot replace it with the other functionality,
|
||||
create an issue on Red's issue tracker.
|
||||
|
||||
Downloader's shared libraries
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ Welcome to Red - Discord Bot's documentation!
|
||||
install_guides/index
|
||||
bot_application_guide
|
||||
update_red
|
||||
backup_red
|
||||
about_venv
|
||||
autostart_windows
|
||||
autostart_mac
|
||||
|
||||
@@ -8,6 +8,7 @@ To install without additional config backend support:
|
||||
|
||||
.. prompt:: bash
|
||||
:prompts: (redenv) $
|
||||
:modifiers: red-install-guide-install-normal
|
||||
|
||||
python -m pip install -U pip wheel
|
||||
python -m pip install -U Red-DiscordBot
|
||||
@@ -16,6 +17,7 @@ Or, to install with PostgreSQL support:
|
||||
|
||||
.. prompt:: bash
|
||||
:prompts: (redenv) $
|
||||
:modifiers: red-install-guide-install-postgres
|
||||
|
||||
python -m pip install -U pip wheel
|
||||
python -m pip install -U "Red-DiscordBot[postgres]"
|
||||
@@ -29,6 +31,7 @@ After installation, set up your instance with the following command:
|
||||
|
||||
.. prompt:: bash
|
||||
:prompts: (redenv) $
|
||||
:modifiers: red-install-guide-setup
|
||||
|
||||
redbot-setup
|
||||
|
||||
@@ -40,6 +43,7 @@ Once done setting up the instance, run the following command to run Red:
|
||||
|
||||
.. prompt:: bash
|
||||
:prompts: (redenv) $
|
||||
:modifiers: red-install-guide-run
|
||||
|
||||
redbot <your instance name>
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
Installing the pre-requirements
|
||||
-------------------------------
|
||||
|
||||
Red Hat Enterprise Linux (RHEL) 8.8-8.x and its derivatives have all required packages available in official repositories.
|
||||
Red Hat Enterprise Linux (RHEL) 8.10 and its derivatives have all required packages available in official repositories.
|
||||
Install them with dnf:
|
||||
|
||||
.. prompt:: bash
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
Installing the pre-requirements
|
||||
-------------------------------
|
||||
|
||||
Red Hat Enterprise Linux (RHEL) 9.2-9.x and its derivatives have all required packages available in official repositories.
|
||||
Red Hat Enterprise Linux (RHEL) 9.4-9.x and its derivatives have all required packages available in official repositories.
|
||||
Install them with dnf:
|
||||
|
||||
.. prompt:: bash
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
|
||||
For safety reasons, DO NOT install Red with a root user. If you are unsure how to create
|
||||
a new user on Linux, see `DigitalOcean's tutorial: How To Create a New Sudo-enabled User
|
||||
<https://www.digitalocean.com/community/tutorials/how-to-create-a-new-sudo-enabled-user-on-ubuntu-20-04-quickstart>`_.
|
||||
<https://www.digitalocean.com/community/tutorials/how-to-create-a-new-sudo-enabled-user-on-ubuntu>`_.
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
.. _install-debian-11:
|
||||
|
||||
====================================
|
||||
Installing Red on Debian 11 Bullseye
|
||||
====================================
|
||||
|
||||
.. include:: _includes/supported-arch-x64+aarch64+armv7l.rst
|
||||
|
||||
.. include:: _includes/linux-preamble.rst
|
||||
|
||||
-------------------------------
|
||||
Installing the pre-requirements
|
||||
-------------------------------
|
||||
|
||||
Debian 11 "Bullseye" has all required packages available in official repositories. Install them
|
||||
with apt:
|
||||
|
||||
.. prompt:: bash
|
||||
|
||||
sudo apt update
|
||||
sudo apt -y install python3 python3-dev python3-venv git openjdk-17-jre-headless build-essential nano
|
||||
|
||||
.. Include common instructions:
|
||||
|
||||
.. include:: _includes/create-env-with-venv3.9.rst
|
||||
|
||||
.. include:: _includes/install-and-setup-red-unix.rst
|
||||
@@ -12,12 +12,14 @@ Installing Red on Fedora Linux
|
||||
Installing the pre-requirements
|
||||
-------------------------------
|
||||
|
||||
Fedora Linux 39 and above has all required packages available in official repositories. Install
|
||||
Fedora Linux 42 and above has all required packages available in official repositories. Install
|
||||
them with dnf:
|
||||
|
||||
.. prompt:: bash
|
||||
|
||||
sudo dnf -y install python3.11 python3.11-devel git java-17-openjdk-headless @development-tools nano
|
||||
sudo dnf -y install python3.11 python3.11-devel git adoptium-temurin-java-repository @development-tools nano
|
||||
sudo dnf config-manager setopt adoptium-temurin-java-repository.enabled=1
|
||||
sudo dnf -y install temurin-17-jre
|
||||
|
||||
.. Include common instructions:
|
||||
|
||||
|
||||
@@ -18,20 +18,17 @@ we recommend **Ubuntu 24.04 LTS**.
|
||||
amazon-linux-2023
|
||||
arch
|
||||
centos-stream-9
|
||||
debian-11
|
||||
debian-12
|
||||
fedora
|
||||
opensuse-leap-15
|
||||
opensuse-tumbleweed
|
||||
oracle-linux-8
|
||||
oracle-linux-9
|
||||
raspberry-pi-os-11
|
||||
raspberry-pi-os-12
|
||||
rhel-8
|
||||
rhel-9
|
||||
rocky-linux-8
|
||||
rocky-linux-9
|
||||
ubuntu-2004
|
||||
ubuntu-2204
|
||||
ubuntu-2404
|
||||
ubuntu-non-lts
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.. _install-opensuse-leap-15:
|
||||
|
||||
=====================================
|
||||
Installing Red on openSUSE Leap 15.5+
|
||||
Installing Red on openSUSE Leap 15.6+
|
||||
=====================================
|
||||
|
||||
.. include:: _includes/supported-arch-x64+aarch64.rst
|
||||
@@ -12,7 +12,7 @@ Installing Red on openSUSE Leap 15.5+
|
||||
Installing the pre-requirements
|
||||
-------------------------------
|
||||
|
||||
openSUSE Leap 15.5+ has all required dependencies available in official repositories. Install them
|
||||
openSUSE Leap 15.6+ has all required dependencies available in official repositories. Install them
|
||||
with zypper:
|
||||
|
||||
.. prompt:: bash
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
.. _install-raspberry-pi-os-11:
|
||||
|
||||
======================================================
|
||||
Installing Red on Raspberry Pi OS (Legacy) 11 Bullseye
|
||||
======================================================
|
||||
|
||||
.. include:: _includes/supported-arch-aarch64+armv7l.rst
|
||||
|
||||
.. note::
|
||||
|
||||
While we do provide support and install instructions for running Red
|
||||
on Raspberry Pi OS (Legacy) 11 Bullseye, we highly recommend installing/upgrading to
|
||||
the new version - Raspberry Pi OS 12 Bookworm.
|
||||
|
||||
If you're not sure what version you are using,
|
||||
you can check your version of Raspberry Pi OS by running:
|
||||
|
||||
.. prompt:: bash
|
||||
|
||||
lsb_release -a
|
||||
|
||||
If you're running Bookworm already, read `install-raspberry-pi-os-12` document instead.
|
||||
|
||||
If you're using Bullseye, please consider performing a clean install of Bookworm if possible.
|
||||
|
||||
.. include:: _includes/linux-preamble.rst
|
||||
|
||||
-------------------------------
|
||||
Installing the pre-requirements
|
||||
-------------------------------
|
||||
|
||||
Raspberry Pi OS "Bullseye" has all required packages available in official repositories. Install them
|
||||
with apt:
|
||||
|
||||
.. prompt:: bash
|
||||
|
||||
sudo apt update
|
||||
sudo apt -y install python3 python3-dev python3-venv git openjdk-17-jre-headless build-essential nano
|
||||
|
||||
.. Include common instructions:
|
||||
|
||||
.. include:: _includes/create-env-with-venv3.9.rst
|
||||
|
||||
.. include:: _includes/install-and-setup-red-unix.rst
|
||||
@@ -1,8 +1,8 @@
|
||||
.. _install-raspberry-pi-os-12:
|
||||
|
||||
=============================================
|
||||
Installing Red on Raspberry Pi OS 12 Bookworm
|
||||
=============================================
|
||||
======================================================
|
||||
Installing Red on Raspberry Pi OS (Legacy) 12 Bookworm
|
||||
======================================================
|
||||
|
||||
.. include:: _includes/supported-arch-aarch64+armv7l.rst
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.. _install-rhel-8:
|
||||
|
||||
=========================================================
|
||||
Installing Red on Red Hat Enterprise Linux (RHEL) 8.8-8.x
|
||||
=========================================================
|
||||
======================================================
|
||||
Installing Red on Red Hat Enterprise Linux (RHEL) 8.10
|
||||
======================================================
|
||||
|
||||
.. include:: _includes/install-guide-rhel8-derivatives.rst
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.. _install-rhel-9:
|
||||
|
||||
=========================================================
|
||||
Installing Red on Red Hat Enterprise Linux (RHEL) 9.2-9.x
|
||||
Installing Red on Red Hat Enterprise Linux (RHEL) 9.4-9.x
|
||||
=========================================================
|
||||
|
||||
.. include:: _includes/install-guide-rhel9-derivatives.rst
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
.. _install-ubuntu-2004:
|
||||
|
||||
==================================
|
||||
Installing Red on Ubuntu 20.04 LTS
|
||||
==================================
|
||||
|
||||
.. include:: _includes/supported-arch-x64+aarch64.rst
|
||||
|
||||
.. include:: _includes/linux-preamble.rst
|
||||
|
||||
-------------------------------
|
||||
Installing the pre-requirements
|
||||
-------------------------------
|
||||
|
||||
Ubuntu 20.04 LTS has all required packages available in official repositories. Install them
|
||||
with apt:
|
||||
|
||||
.. prompt:: bash
|
||||
|
||||
sudo apt update
|
||||
sudo apt -y install python3.9 python3.9-dev python3.9-venv git openjdk-17-jre-headless build-essential nano
|
||||
|
||||
.. Include common instructions:
|
||||
|
||||
.. include:: _includes/create-env-with-venv3.9.rst
|
||||
|
||||
.. include:: _includes/install-and-setup-red-unix.rst
|
||||
@@ -4,23 +4,10 @@
|
||||
Installing Red on Ubuntu non-LTS versions
|
||||
=========================================
|
||||
|
||||
.. include:: _includes/supported-arch-x64+aarch64.rst
|
||||
Latest Ubuntu non-LTS version (24.10 at the time of writing) is not supported at current time
|
||||
due to lack of availability of Python 3.11 or older in its repositories.
|
||||
|
||||
.. include:: _includes/linux-preamble.rst
|
||||
The support should come back once we get back on track with supporting current Python versions.
|
||||
|
||||
-------------------------------
|
||||
Installing the pre-requirements
|
||||
-------------------------------
|
||||
|
||||
Now install the pre-requirements with apt:
|
||||
|
||||
.. prompt:: bash
|
||||
|
||||
sudo apt update
|
||||
sudo apt -y install python3.11 python3.11-dev python3.11-venv git openjdk-17-jre-headless build-essential nano
|
||||
|
||||
.. Include common instructions:
|
||||
|
||||
.. include:: _includes/create-env-with-venv3.11.rst
|
||||
|
||||
.. include:: _includes/install-and-setup-red-unix.rst
|
||||
We recommend usage of latest Ubuntu **LTS** versions instead, you can find
|
||||
`an install guide for Ubuntu 24.04 <ubuntu-2404>` in our docs.
|
||||
|
||||
@@ -133,6 +133,7 @@ Run **one** of the following set of commands, depending on what extras you want
|
||||
|
||||
.. prompt:: batch
|
||||
:prompts: (redenv) C:\\>
|
||||
:modifiers: red-install-guide-install-normal
|
||||
|
||||
python -m pip install -U pip wheel
|
||||
python -m pip install -U Red-DiscordBot
|
||||
@@ -141,6 +142,7 @@ Run **one** of the following set of commands, depending on what extras you want
|
||||
|
||||
.. prompt:: batch
|
||||
:prompts: (redenv) C:\\>
|
||||
:modifiers: red-install-guide-install-postgres
|
||||
|
||||
python -m pip install -U pip wheel
|
||||
python -m pip install -U Red-DiscordBot[postgres]
|
||||
@@ -153,6 +155,7 @@ After installation, set up your instance with the following command:
|
||||
|
||||
.. prompt:: batch
|
||||
:prompts: (redenv) C:\\>
|
||||
:modifiers: red-install-guide-setup
|
||||
|
||||
redbot-setup
|
||||
|
||||
@@ -164,6 +167,7 @@ Once done setting up the instance, run the following command to run Red:
|
||||
|
||||
.. prompt:: batch
|
||||
:prompts: (redenv) C:\\>
|
||||
:modifiers: red-install-guide-run
|
||||
|
||||
redbot <your instance name>
|
||||
|
||||
|
||||
@@ -8,40 +8,20 @@ About (privileged) intents and public bots
|
||||
==========================================
|
||||
|
||||
This page aims to explain Red's current intents requirements,
|
||||
our stance regarding "public bots" and the impact of some announced
|
||||
Discord changes coming in April 2022.
|
||||
our stance regarding "public bots", and the discord bot verification process.
|
||||
|
||||
To clarify:
|
||||
|
||||
- **Small bots** are bots under 100 servers. They currently do not need to undergo Discord's
|
||||
bot verification process
|
||||
- **Public bots** (or big bots) are bots that have reached 100 servers. They need to be
|
||||
`verified <https://support.discord.com/hc/en-us/articles/360040720412-Bot-Verification-and-Data-Whitelisting>`_
|
||||
`verified <https://support-dev.discord.com/hc/en-us/articles/23926564536471-How-Do-I-Get-My-App-Verified>`_
|
||||
by Discord to join more than 100 servers and gain privileged intents
|
||||
|
||||
.. warning::
|
||||
|
||||
It is **very** important that you fully read this page if you're the owner of a public bot or strive to scale your bot at that level.
|
||||
|
||||
.. _intents-intents:
|
||||
|
||||
-------
|
||||
Intents
|
||||
-------
|
||||
|
||||
Red currently requires **all intents** to be active in order to function properly.
|
||||
|
||||
The reason for this requirement is that there are some technical challenges that need
|
||||
to be overcome before we're able to adapt Red to function with only *some* intents:
|
||||
these challenges are mainly due to the modular / extensible nature of Red and the fact
|
||||
that Red has a long history (dating back to 2016!), making big changes naturally slower
|
||||
to happen. In comparison, intents have been introduced fairly recently. |br|
|
||||
This is not a problem if you have a small bot: you can simply go to the
|
||||
`Discord development portal <https://discord.com/developers/applications/me>`_
|
||||
and enable them. However, if you have a public bot Discord will want you to attain
|
||||
verified status: you should read :ref:`our stance regarding public bots <intents-public-bots>`
|
||||
and our guidelines for the :ref:`verification process <intents-bot-verification-process>`.
|
||||
|
||||
.. _intents-public-bots:
|
||||
|
||||
-----------
|
||||
@@ -54,8 +34,10 @@ Red was designed with one single goal in mind: a bot that you can host on your o
|
||||
and customize to your needs, making it really *your* bot. **The target audience of Red are server
|
||||
owners with a few servers**, often with specific needs that can be covered by the vast cog ecosystem
|
||||
that the community has built over the years. |br| Red was never built with big bots in mind,
|
||||
bots with thousands upon thousands of servers: these bots face unique challenges.
|
||||
Such Red instances *do exist*, it is not impossible to adapt Red and meet those criteria,
|
||||
bots with thousands upon thousands of servers: these bots face unique challenges. Large bots need
|
||||
to be extremely efficient to handle the large amount of requests they receive, and often need to
|
||||
distribute this work across multiple processes or machines to keep up.
|
||||
Such Red instances *do exist*, and it is not impossible to adapt Red and meet those criteria,
|
||||
but it requires work and bot owners with the technical knowledge to make it happen.
|
||||
It is **not** something that we support. |br|
|
||||
When your bot reaches the public bot scale and it is therefore required to be verified it
|
||||
@@ -75,8 +57,8 @@ the verification process.
|
||||
|
||||
Regardless of our stance, we do feel the need to give some pointers: many bot owners reach this point
|
||||
and become fairly lost, as they've simply been *users* so far.
|
||||
They have installed their bot, some cogs, personalized it, yadda yadda. Again, they have been users,
|
||||
not developers. Unless they also have an interest in development, they will likely not have a clue about
|
||||
They have installed their bot, some cogs, personalized it, but have not needed to write any code.
|
||||
Unless they also have an interest in development, they will likely not have a clue about
|
||||
what's going under the hood, much like you're not expected to be a mechanic to drive your car. And there's
|
||||
nothing wrong with that! Red has been designed to be as user friendly as possible. |br|
|
||||
The problem is this: Red is an outlier. Discord has built the bot verification process with the expectation
|
||||
@@ -94,41 +76,44 @@ out your application:
|
||||
of people that in their naivety went with the bad answer and it seems that at this point merely mentioning Red
|
||||
is a guaranteed way to have your application rejected.
|
||||
|
||||
.. _intents-slash-commands:
|
||||
.. _intents-intents:
|
||||
|
||||
---------------------------------
|
||||
Message intent and slash commands
|
||||
---------------------------------
|
||||
-------
|
||||
Intents
|
||||
-------
|
||||
|
||||
.. warning::
|
||||
Red expects **all intents** to be active. It is possible, but not recommended, to disable
|
||||
specific intents using the ``--disable-intent`` flag. If an intent is missing, you may
|
||||
experience errors due to Red expecting information provided by the intent to be present.
|
||||
|
||||
If you own a public bot it is extremely important that you read this section.
|
||||
Discord currently considers 3 intents to be
|
||||
`privileged <https://support-dev.discord.com/hc/en-us/articles/6205754771351-How-do-I-get-Privileged-Intents-for-my-bot>`_,
|
||||
and requires large bots to additionally apply for access to these intents. **If you have a small
|
||||
bot**, you can simply follow :ref:`these instructions <enabling-privileged-intents>` to enable them.
|
||||
|
||||
Discord has announced that **starting April 2022** the content of users' messages
|
||||
`will be "locked" behind message intent <https://support-dev.discord.com/hc/en-us/articles/4404772028055>`_ |br|
|
||||
If you're the owner of a small bot, fear not, this is yet another box that you have to tick from the
|
||||
`Discord development portal <https://discord.com/developers/applications/me>`_. |br|
|
||||
But if you're the owner of a public bot, things might be a lot less pleasant.
|
||||
A breakdown of how privileged intents are used in Red is provided below.
|
||||
|
||||
To recap, unless you have
|
||||
message intent, you will only receive message content for:
|
||||
The **Message Content** intent is required to use text based commands and inputs for
|
||||
configuration and all built in functionality. App commands (also known as slash commands)
|
||||
are limited to a total of 100 top level commands, which is difficult to manage on
|
||||
a modular bot. The approach we have taken to address this issue is to allow 3rd party
|
||||
cogs to provide slash commands, but require bot owners to pick which slash commands
|
||||
they actually want to use with the ``[p]slash`` command.
|
||||
Under this system, bot management commands that are not exposed to users are still
|
||||
expected to be provided as text commands, which requires the bot to be able to access
|
||||
message content. There are no current plans to provide slash versions of core commands.
|
||||
|
||||
- Messages that your bot sends
|
||||
- Messages that your bot receives in DM
|
||||
- Messages in which your bot is mentioned
|
||||
.. note::
|
||||
It is possible to work around this intent by using the ``--mentionable``
|
||||
flag, and using the bot mention as a prefix to use text based commands.
|
||||
|
||||
In case it's not clear by now, your bot needs message content to parse (see) the commands it receives. And if
|
||||
you don't attain message intent, your bot will not be able to... well, do anything. |br|
|
||||
The *bandaid fix* is for you to change your bot's prefix to a mention and a good portion of your commands will likely
|
||||
still work. You will however lose many functions, namely anything that relies on seeing message content to act. |br|
|
||||
The more *proper fix* is also not easy. You will need to justify your need for the message intent to Discord and
|
||||
they will only accept "compelling use cases".
|
||||
`It is not known what those even entail <https://gist.github.com/spiralw/091714718718379b6efcdbcaf807a024#q-what-usecases-will-be-valid>`_ at this point, but they have already stated that "parsing commands" is not a valid justification. |br|
|
||||
To make the matter worse, Discord is making `a huge push for all bot developers to implement slash commands <https://support.discord.com/hc/en-us/articles/1500000368501-Slash-Commands-FAQ>`_, which at the moment
|
||||
are rather lacking in features and cannot cover all the functionalities that standard commands offer. |br|
|
||||
Discord staff
|
||||
`stated that they will want your bot to have slash commands when you ask for message intent <https://gist.github.com/spiralw/091714718718379b6efcdbcaf807a024#q-if-we-are-granted-this-intent-will-bots-be-sanctioned-if-they-use-it-for-their-own-use-case-but-also-to-continue-to-run-normal-non-slash-commands-or-do-we-assume-that-if-you-are-granted-the-intent-you-are-trusted-with-it-and-are-allowed-to-use-it-for-additional-uses>`_. |br|
|
||||
Slash commands might very well turn out to be a big undertaking for the Red team to implement, even more now that our
|
||||
underlying library, `discord.py <https://github.com/Rapptz/discord.py>`_, has been discontinued. |br|
|
||||
The time window that Discord is giving us to adapt is very narrow: **Red will likely not be able to support slash
|
||||
commands for April 2022** and you should plan accordingly.
|
||||
The **Guild Members** intent is required to properly cache member information, including
|
||||
what users are in each server, what roles they have, what their name is, etc. It is also
|
||||
required to receive events corresponding to when members join or leave a server, and when
|
||||
they change their nickname or other server options. Almost all cogs expect to be able
|
||||
to reference the member cache in order to avoid making API requests, and are not set
|
||||
up to check if the intent is present before doing so.
|
||||
|
||||
The **Guild Presences** intent is required to view the activities and status of
|
||||
users. Cogs which perform actions on users based on their activity or status will
|
||||
be unable to access this information if this intent is not enabled.
|
||||
|
||||
@@ -108,7 +108,6 @@ If you have a Red version between 3.2.0 and 3.4.19, you can upgrade by following
|
||||
#. Start your bot with ``--no-cogs --load-cogs downloader`` flags, for example:
|
||||
|
||||
.. prompt:: batch
|
||||
|
||||
:prompts: (redenv) C:\\>
|
||||
|
||||
redbot <your instance name> --no-cogs --load-cogs downloader
|
||||
|
||||
@@ -50,37 +50,32 @@ their end-of-life date.
|
||||
================================ ======================= ============================================================
|
||||
Operating system version Supported architectures Ideally supported until
|
||||
================================ ======================= ============================================================
|
||||
Windows 10 x86-64 2025-10-14 (`End/Retirement Date <https://docs.microsoft.com/en-us/lifecycle/products/windows-10-home-and-pro>`__)
|
||||
Windows 10 x86-64 2026-10-13 (`End of Consumer Extended Security Updates (ESU) program <https://www.microsoft.com/en-us/windows/extended-security-updates>`__)
|
||||
Windows 11 x86-64 `Retirement Date <https://docs.microsoft.com/en-us/lifecycle/products/windows-11-home-and-pro-version-21h2>`__
|
||||
macOS 12 (Monterey) x86-64, aarch64 ~2024-10
|
||||
macOS 13 (Ventura) x86-64, aarch64 ~2025-10
|
||||
macOS 14 (Sonoma) x86-64, aarch64 ~2026-10
|
||||
Alma Linux 8 x86-64, aarch64 2029-05-31 (`How long will CloudLinux support AlmaLinux? <https://wiki.almalinux.org/FAQ.html#how-long-will-almalinux-be-supported>`__)
|
||||
Alma Linux 9 x86-64, aarch64 2032-05-31
|
||||
macOS 15 (Sequoia) x86-64, aarch64 ~2027-10
|
||||
macOS 26 (Tahoe) x86-64, aarch64 ~2028-10
|
||||
Alma Linux 8 x86-64, aarch64 2029-05-31 (`security support <https://wiki.almalinux.org/release-notes/>`__)
|
||||
Alma Linux 9 x86-64, aarch64 2032-05-31 (`security support <https://wiki.almalinux.org/release-notes/>`__)
|
||||
Amazon Linux 2023 x86-64, aarch64 2028-03-15 (`end-of-life <https://docs.aws.amazon.com/linux/al2023/release-notes/support-info-by-support-statement.html#support-info-by-support-statement-eol>`__)
|
||||
Arch Linux x86-64 forever (support is only provided for an up-to-date system)
|
||||
CentOS Stream 9 x86-64, aarch64 2027-05-31 (`expected EOL <https://centos.org/stream9/#timeline>`__)
|
||||
Debian 11 Bullseye x86-64, aarch64, armv7l ~2024-07 (`End of life <https://wiki.debian.org/DebianReleases#Production_Releases>`__)
|
||||
Debian 12 Bookworm x86-64, aarch64, armv7l ~2026-09 (`End of life <https://wiki.debian.org/DebianReleases#Production_Releases>`__)
|
||||
Fedora Linux 39 x86-64, aarch64 2024-11-12 (`End of Life <https://docs.fedoraproject.org/en-US/releases/lifecycle/#_maintenance_schedule>`__)
|
||||
Fedora Linux 40 x86-64, aarch64 2025-05-13 (`End of Life <https://docs.fedoraproject.org/en-US/releases/lifecycle/#_maintenance_schedule>`__)
|
||||
openSUSE Leap 15.5 x86-64, aarch64 2024-12-31 (`end of maintenance life cycle <https://en.opensuse.org/Lifetime#openSUSE_Leap>`__)
|
||||
CentOS Stream 9 x86-64, aarch64 2027-05-31 (`Expected EOL <https://centos.org/stream9/#timeline>`__)
|
||||
Debian 12 Bookworm x86-64, aarch64, armv7l 2026-06-10 (`End of life <https://wiki.debian.org/DebianReleases#Production_Releases>`__)
|
||||
Fedora Linux 42 x86-64, aarch64 2026-05-13 (`End of Life <https://fedorapeople.org/groups/schedule/f-42/f-42-key-tasks.html>`__)
|
||||
Fedora Linux 43 x86-64, aarch64 2026-12-09 (`End of Life <https://fedorapeople.org/groups/schedule/f-43/f-43-key-tasks.html>`__)
|
||||
openSUSE Leap 15.6 x86-64, aarch64 2025-12-31 (`end of maintenance lifecycle <https://en.opensuse.org/Lifetime#openSUSE_Leap>`__)
|
||||
openSUSE Tumbleweed x86-64, aarch64 forever (support is only provided for an up-to-date system)
|
||||
Oracle Linux 8 x86-64, aarch64 2029-07-31 (`End of Premier Support <https://www.oracle.com/us/support/library/elsp-lifetime-069338.pdf>`__)
|
||||
Oracle Linux 9 x86-64, aarch64 2032-06-31 (`End of Premier Support <https://www.oracle.com/us/support/library/elsp-lifetime-069338.pdf>`__)
|
||||
Raspberry Pi OS (Legacy) 11 armv7l ~2025-10 (approximate date of release of Raspberry Pi OS 13)
|
||||
Raspberry Pi OS 12 aarch64, armv7l ~2025-10 (approximate date of release of Raspberry Pi OS 13)
|
||||
Raspberry Pi OS (Legacy) 12 aarch64, armv7l ~2027-10 (approximate date of release of Raspberry Pi OS 14)
|
||||
RHEL 8 (latest) x86-64, aarch64 2029-05-31 (`End of Maintenance Support <https://access.redhat.com/support/policy/updates/errata#Life_Cycle_Dates>`__)
|
||||
RHEL 8.8 x86-64, aarch64 2025-05-31 (`End of Extended Update Support <https://access.redhat.com/support/policy/updates/errata#Extended_Update_Support>`__)
|
||||
RHEL 8.10 x86-64, aarch64 2029-05-31 (`End of Extended Update Support <https://access.redhat.com/support/policy/updates/errata#Extended_Update_Support>`__)
|
||||
RHEL 9 (latest) x86-64, aarch64 2032-05-31 (`End of Maintenance Support <https://access.redhat.com/support/policy/updates/errata#Life_Cycle_Dates>`__)
|
||||
RHEL 9.2 x86-64, aarch64 2025-05-31 (`End of Extended Update Support <https://access.redhat.com/support/policy/updates/errata#Extended_Update_Support>`__)
|
||||
RHEL 9.4 x86-64, aarch64 2026-04-30 (`End of Extended Update Support <https://access.redhat.com/support/policy/updates/errata#Extended_Update_Support>`__)
|
||||
Rocky Linux 8 x86-64, aarch64 2029-05-31 (`end-of-life <https://rockylinux.org/download/>`__)
|
||||
Rocky Linux 9 x86-64, aarch64 2032-05-31 (`end-of-life <https://rockylinux.org/download/>`__)
|
||||
Ubuntu 20.04 LTS x86-64, aarch64 2025-06-30 (`End of Standard Support <https://wiki.ubuntu.com/Releases#Current>`__)
|
||||
RHEL 9.6 x86-64, aarch64 2027-05-31 (`End of Extended Update Support <https://access.redhat.com/support/policy/updates/errata#Extended_Update_Support>`__)
|
||||
Rocky Linux 8 x86-64, aarch64 2029-05-31 (`End of Life <https://wiki.rockylinux.org/rocky/version/>`__)
|
||||
Rocky Linux 9 x86-64, aarch64 2032-05-31 (`End of Life <https://wiki.rockylinux.org/rocky/version/>`__)
|
||||
Ubuntu 22.04 LTS x86-64, aarch64 2027-06-30 (`End of Standard Support <https://wiki.ubuntu.com/Releases#Current>`__)
|
||||
Ubuntu 23.10 x86-64, aarch64 2024-07-31 (`End of Standard Support <https://wiki.ubuntu.com/Releases#Current>`__)
|
||||
Ubuntu 24.04 LTS x86-64, aarch64 2029-06-30 (`End of Standard Support <https://wiki.ubuntu.com/Releases#Current>`__)
|
||||
================================ ======================= ============================================================
|
||||
|
||||
|
||||
@@ -339,7 +339,7 @@ def _early_init():
|
||||
|
||||
|
||||
# This is bumped automatically by release workflow (`.github/workflows/scripts/bump_version.py`)
|
||||
_VERSION = "3.5.13"
|
||||
_VERSION = "3.5.25.dev1"
|
||||
|
||||
__version__, version_info = VersionInfo._get_version()
|
||||
|
||||
|
||||
@@ -422,20 +422,13 @@ def handle_early_exit_flags(cli_flags: Namespace):
|
||||
sys.exit(ExitCodes.INVALID_CLI_USAGE)
|
||||
|
||||
|
||||
async def shutdown_handler(red, signal_type=None, exit_code=None):
|
||||
if signal_type:
|
||||
async def signal_shutdown_handler(red: Red, signal_type: signal.Signals) -> NoReturn:
|
||||
log.info("%s received. Quitting...", signal_type.name)
|
||||
# Do not collapse the below line into other logic
|
||||
# We need to renter this function
|
||||
# after it interrupts the event loop.
|
||||
sys.exit(ExitCodes.SHUTDOWN)
|
||||
elif exit_code is None:
|
||||
log.info("Shutting down from unhandled exception")
|
||||
red._shutdown_mode = ExitCodes.CRITICAL
|
||||
|
||||
if exit_code is not None:
|
||||
|
||||
async def shutdown_handler(red: Red, exit_code: int) -> None:
|
||||
red._shutdown_mode = exit_code
|
||||
|
||||
try:
|
||||
if not red.is_closed():
|
||||
await red.close()
|
||||
@@ -473,7 +466,8 @@ def red_exception_handler(red, red_task: asyncio.Future):
|
||||
except Exception as exc:
|
||||
log.critical("The main bot task didn't handle an exception and has crashed", exc_info=exc)
|
||||
log.warning("Attempting to die as gracefully as possible...")
|
||||
asyncio.create_task(shutdown_handler(red))
|
||||
log.info("Shutting down from unhandled exception")
|
||||
sys.exit(ExitCodes.CRITICAL)
|
||||
|
||||
|
||||
def main():
|
||||
@@ -507,7 +501,7 @@ def main():
|
||||
signals = (signal.SIGHUP, signal.SIGTERM, signal.SIGINT)
|
||||
for s in signals:
|
||||
loop.add_signal_handler(
|
||||
s, lambda s=s: asyncio.create_task(shutdown_handler(red, s))
|
||||
s, lambda s=s: asyncio.create_task(signal_shutdown_handler(red, s))
|
||||
)
|
||||
|
||||
exc_handler = functools.partial(global_exception_handler, red)
|
||||
@@ -524,7 +518,7 @@ def main():
|
||||
log.warning("Please do not use Ctrl+C to Shutdown Red! (attempting to die gracefully...)")
|
||||
log.error("Received KeyboardInterrupt, treating as interrupt")
|
||||
if red is not None:
|
||||
loop.run_until_complete(shutdown_handler(red, signal.SIGINT))
|
||||
loop.run_until_complete(signal_shutdown_handler(red, signal.SIGINT))
|
||||
except SystemExit as exc:
|
||||
# We also have to catch this one here. Basically any exception which normally
|
||||
# Kills the python interpreter (Base Exceptions minus asyncio.cancelled)
|
||||
@@ -536,11 +530,11 @@ def main():
|
||||
exit_code_name = "UNKNOWN"
|
||||
log.info("Shutting down with exit code: %s (%s)", exit_code, exit_code_name)
|
||||
if red is not None:
|
||||
loop.run_until_complete(shutdown_handler(red, None, exc.code))
|
||||
loop.run_until_complete(shutdown_handler(red, exc.code))
|
||||
except Exception as exc: # Non standard case.
|
||||
log.exception("Unexpected exception (%s): ", type(exc), exc_info=exc)
|
||||
if red is not None:
|
||||
loop.run_until_complete(shutdown_handler(red, None, ExitCodes.CRITICAL))
|
||||
loop.run_until_complete(shutdown_handler(red, ExitCodes.CRITICAL))
|
||||
finally:
|
||||
# Allows transports to close properly, and prevent new ones from being opened.
|
||||
# Transports may still not be closed correctly on windows, see below
|
||||
|
||||
323
redbot/cogs/admin/locales/et-EE.po
generated
Normal file
@@ -0,0 +1,323 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2023-06-14 02:57+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Estonian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.4.2\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Project-ID: 289505\n"
|
||||
"X-Crowdin-Language: et\n"
|
||||
"X-Crowdin-File-ID: 42\n"
|
||||
"Language: et_EE\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:20
|
||||
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:25
|
||||
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 ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:31
|
||||
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 ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:37
|
||||
msgid "I can not edit {role.name} because that role is higher than my or equal to highest role in the Discord hierarchy."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
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 ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:49
|
||||
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 ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:55
|
||||
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 ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:61
|
||||
msgid "I need the \"Manage Roles\" permission to do that."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:63
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:73
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:159
|
||||
msgid "{member.display_name} already has the role {role.name}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:180
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:190
|
||||
msgid "{member.display_name} does not have the role {role.name}."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:211
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:226
|
||||
#, 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 ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:244
|
||||
#, 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 ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:256
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:263
|
||||
#, 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 ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:275
|
||||
msgid "{author} ({author.id}) changed the colour of role '{role.name}'"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:294 redbot/cogs/admin/admin.py:327
|
||||
msgid "Done."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:298
|
||||
#, 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 ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:308
|
||||
msgid "{author} ({author.id}) changed the name of role '{old_name}' to '{name}'"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:332
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:339
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:346
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:348
|
||||
msgid "There is no currently running announcement."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:351
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:357
|
||||
#, docstring
|
||||
msgid "Change how announcements are sent in this guild."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:367
|
||||
#, docstring
|
||||
msgid "Change the channel where the bot will send announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:370
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:375
|
||||
#, docstring
|
||||
msgid "Unsets the channel for announcements."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:400
|
||||
#, docstring
|
||||
msgid "\n"
|
||||
" Add or 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 ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:413
|
||||
#, 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 ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:424
|
||||
#, 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 ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:435
|
||||
#, docstring
|
||||
msgid "\n"
|
||||
" Lists all available selfroles.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:445
|
||||
msgid "Available Selfroles:\n"
|
||||
"{selfroles}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:451
|
||||
#, docstring
|
||||
msgid "Manage selfroles."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:456
|
||||
#, docstring
|
||||
msgid "\n"
|
||||
" Add a role, or a selection of roles, to the list of available selfroles.\n\n"
|
||||
" NOTE: The role is case sensitive!\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:465
|
||||
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 ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:475
|
||||
msgid "The role \"{role.name}\" is already a selfrole."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:481
|
||||
msgid "Added {count} selfroles."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:483
|
||||
msgid "Added 1 selfrole."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:489
|
||||
#, docstring
|
||||
msgid "\n"
|
||||
" Remove a role, or a selection of roles, from the list of available selfroles.\n\n"
|
||||
" NOTE: The role is case sensitive!\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:498
|
||||
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 ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:508
|
||||
msgid "Removed {count} selfroles."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:510
|
||||
msgid "Removed 1 selfrole."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:516
|
||||
#, docstring
|
||||
msgid "Clear the list of available selfroles for this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:520
|
||||
msgid "There are currently no selfroles."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:523
|
||||
msgid "Are you sure you want to clear this server's selfrole list?"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:529
|
||||
msgid "You took too long to respond."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:538
|
||||
msgid "I cannot clear the selfroles because the selfrole '{role.name}' is higher than or equal to your highest role in the Discord hierarchy."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:544
|
||||
msgid "Selfrole list cleared."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:546
|
||||
msgid "No changes have been made."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:551
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:556
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/admin.py:558
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:68
|
||||
msgid "I could not announce to the following server: "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to the following servers: "
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:13
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:30
|
||||
msgid "The role \"{role_name}\" is not a valid selfrole."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/admin/converters.py:36
|
||||
msgid "This selfrole has more than one case insensitive match. Please ask a moderator to resolve the ambiguity, or use the role ID to reference the role."
|
||||
msgstr ""
|
||||
|
||||
10
redbot/cogs/admin/locales/nl-NL.po
generated
@@ -118,7 +118,7 @@ msgstr "\n"
|
||||
" Bewerk een rolkleur.\n\n"
|
||||
" Gebruik dubbele aanhalingstekens als de rol spaties bevat.\n"
|
||||
" Kleur moet in hexadecimaal formaat zijn.\n"
|
||||
" [Online kleur kiezer](http://www.w3schools. om/colors/colors_picker. sp)\n\n"
|
||||
" [Online kleur kiezer](http://www.w3schools.com/colors/colors_picker. sp)\n\n"
|
||||
" Voorbeelden:\n"
|
||||
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
|
||||
" `[p]editrole colour Test #ff9900`\n"
|
||||
@@ -126,7 +126,7 @@ msgstr "\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:275
|
||||
msgid "{author} ({author.id}) changed the colour of role '{role.name}'"
|
||||
msgstr ""
|
||||
msgstr "{author} ({author.id}) heeft de kleur van rol '{role.name} ' gewijzigd"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:294 redbot/cogs/admin/admin.py:327
|
||||
msgid "Done."
|
||||
@@ -149,7 +149,7 @@ msgstr "\n"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:308
|
||||
msgid "{author} ({author.id}) changed the name of role '{old_name}' to '{name}'"
|
||||
msgstr ""
|
||||
msgstr "{author} ({author.id}) heeft de naam van rol '{old_name}' veranderd naar '{name}'"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:332
|
||||
#, docstring
|
||||
@@ -181,7 +181,7 @@ msgstr "Verander hoe aankondigingen worden verzonden in deze gilde."
|
||||
#: redbot/cogs/admin/admin.py:367
|
||||
#, docstring
|
||||
msgid "Change the channel where the bot will send announcements."
|
||||
msgstr "Bewerk het kanaal waar deze bot aankondigingen maakt."
|
||||
msgstr "Bewerk het kanaal waar de bot aankondigingen maakt."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:370
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
@@ -361,5 +361,5 @@ msgstr "De rol \"{role_name}\" is geen geldige zelfrol."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:36
|
||||
msgid "This selfrole has more than one case insensitive match. Please ask a moderator to resolve the ambiguity, or use the role ID to reference the role."
|
||||
msgstr ""
|
||||
msgstr "Deze zelfrol heeft meer dan één hoofdlettergevoelig resultaat. Vraag een moderator om het dubbele resultaat op te lossen of gebruik de rol-ID om te verwijzen naar de rol."
|
||||
|
||||
|
||||
2
redbot/cogs/admin/locales/pt-PT.po
generated
@@ -21,7 +21,7 @@ msgstr "Tentei fazer uma coisa que o Discord negou permissão para fazer. O coma
|
||||
|
||||
#: redbot/cogs/admin/admin.py:25
|
||||
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 "Eu não posso dar {role.name} a {member.display_name} porque esse cargo é igual ou maior a meu cargo na hierarquia do Discord."
|
||||
msgstr "Eu não posso dar {role.name} a {member.display_name} porque esse cargo é igual ou maior ao meu cargo na hierarquia do Discord."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:31
|
||||
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."
|
||||
|
||||
2
redbot/cogs/admin/locales/sl-SI.po
generated
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.4.2\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
|
||||
"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-Project-ID: 289505\n"
|
||||
"X-Crowdin-Language: sl\n"
|
||||
|
||||
2
redbot/cogs/admin/locales/sv-SE.po
generated
@@ -361,5 +361,5 @@ msgstr "Rollen \"{role_name}\" är inte en giltig självroll."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:36
|
||||
msgid "This selfrole has more than one case insensitive match. Please ask a moderator to resolve the ambiguity, or use the role ID to reference the role."
|
||||
msgstr ""
|
||||
msgstr ".."
|
||||
|
||||
|
||||
161
redbot/cogs/admin/locales/uk-UA.po
generated
@@ -21,56 +21,56 @@ msgstr "Я намагався зробити щось, на що Discord від
|
||||
|
||||
#: redbot/cogs/admin/admin.py:25
|
||||
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}, тому що ця роль є вищою за мою найвищу роль."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:31
|
||||
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}, тому що ця роль є вищою за мою найвищу роль."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:37
|
||||
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}, тому що ця роль є вищою ніж моя найвища роль."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:43
|
||||
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}, тому що ця роль вища за вашу найвищу роль."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:49
|
||||
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}, тому що ця роль є вищою за вашу найвищу роль."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:55
|
||||
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}, тому що ця роль вища за вашу найвищу роль."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:61
|
||||
msgid "I need the \"Manage Roles\" permission to do that."
|
||||
msgstr ""
|
||||
msgstr "Мені потрібен дозвіл \"Керувати ролями\", щоб це зробити."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:63
|
||||
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
|
||||
msgstr ""
|
||||
msgstr "Я вже щось оголошую. Якщо ви хочете зробити інше оголошення, будь ласка, спочатку використайте '{prefix}announce cancel`."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:73
|
||||
#, docstring
|
||||
msgid "A collection of server administration utilities."
|
||||
msgstr ""
|
||||
msgstr "Колекція утилітів адміністрації сервера."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:159
|
||||
msgid "{member.display_name} already has the role {role.name}."
|
||||
msgstr ""
|
||||
msgstr "{member.display_name} вже має роль {role.name}."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:180
|
||||
msgid "I successfully added {role.name} to {member.display_name}"
|
||||
msgstr ""
|
||||
msgstr "Успішно додав(ла) {role.name} до {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:190
|
||||
msgid "{member.display_name} does not have the role {role.name}."
|
||||
msgstr ""
|
||||
msgstr "{member.display_name} не має ролі {role.name}."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:211
|
||||
msgid "I successfully removed {role.name} from {member.display_name}"
|
||||
msgstr ""
|
||||
msgstr "Я успішно прибрав(ла) {role.name} у {member.display_name}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:226
|
||||
#, docstring
|
||||
@@ -79,7 +79,11 @@ msgid "\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:244
|
||||
#, docstring
|
||||
@@ -88,12 +92,16 @@ msgid "\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:256
|
||||
#, docstring
|
||||
msgid "Edit role settings."
|
||||
msgstr ""
|
||||
msgstr "Зміна налаштувань ролі."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:263
|
||||
#, docstring
|
||||
@@ -106,15 +114,23 @@ msgid "\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:275
|
||||
msgid "{author} ({author.id}) changed the colour of role '{role.name}'"
|
||||
msgstr ""
|
||||
msgstr "{author} ({author.id}) змінив колір ролі '{role.name}'"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:294 redbot/cogs/admin/admin.py:327
|
||||
msgid "Done."
|
||||
msgstr ""
|
||||
msgstr "Готово."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:298
|
||||
#, docstring
|
||||
@@ -124,52 +140,57 @@ msgid "\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:308
|
||||
msgid "{author} ({author.id}) changed the name of role '{old_name}' to '{name}'"
|
||||
msgstr ""
|
||||
msgstr "{author} ({author.id}) змінив ім'я ролі '{old_name}' на '{name}'"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:332
|
||||
#, docstring
|
||||
msgid "Announce a message to all servers the bot is in."
|
||||
msgstr ""
|
||||
msgstr "Оголосити повідомлення в усіх серверах, де знаходиться бот."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:339
|
||||
msgid "The announcement has begun."
|
||||
msgstr ""
|
||||
msgstr "Оголошення почалося."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:346
|
||||
#, docstring
|
||||
msgid "Cancel a running announce."
|
||||
msgstr ""
|
||||
msgstr "Відмінити запущене оголошення."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:348
|
||||
msgid "There is no currently running announcement."
|
||||
msgstr ""
|
||||
msgstr "На даний момент немає оголошення."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:351
|
||||
msgid "The current announcement has been cancelled."
|
||||
msgstr ""
|
||||
msgstr "Поточне оголошення було скасовано."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:357
|
||||
#, docstring
|
||||
msgid "Change how announcements are sent in this guild."
|
||||
msgstr ""
|
||||
msgstr "Змінити спосіб надсилання оголошень у цю спільноту."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:367
|
||||
#, docstring
|
||||
msgid "Change the channel where the bot will send announcements."
|
||||
msgstr ""
|
||||
msgstr "Змініть канал, в якому бот буде надсилати оголошення."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:370
|
||||
msgid "The announcement channel has been set to {channel.mention}"
|
||||
msgstr ""
|
||||
msgstr "Канал для оголошень встановлений до {channel.mention}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:375
|
||||
#, docstring
|
||||
msgid "Unsets the channel for announcements."
|
||||
msgstr ""
|
||||
msgstr "Прибирає канал для оголошень."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:400
|
||||
#, docstring
|
||||
@@ -178,7 +199,10 @@ msgid "\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"
|
||||
" ПОМІТКА: Ролі чутливі до реєстру "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:413
|
||||
#, docstring
|
||||
@@ -187,7 +211,11 @@ msgid "\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:424
|
||||
#, docstring
|
||||
@@ -196,24 +224,31 @@ msgid "\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:435
|
||||
#, docstring
|
||||
msgid "\n"
|
||||
" Lists all available selfroles.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
msgstr "\n"
|
||||
" Перераховує усі доступні селф-ролі.\n"
|
||||
" "
|
||||
|
||||
#: redbot/cogs/admin/admin.py:445
|
||||
msgid "Available Selfroles:\n"
|
||||
"{selfroles}"
|
||||
msgstr ""
|
||||
msgstr "Доступні селф-ролі:\n"
|
||||
"{selfroles}"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:451
|
||||
#, docstring
|
||||
msgid "Manage selfroles."
|
||||
msgstr ""
|
||||
msgstr "Керувати селф-ролями."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:456
|
||||
#, docstring
|
||||
@@ -221,23 +256,26 @@ msgid "\n"
|
||||
" Add a role, or a selection of roles, 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:465
|
||||
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} як селф-роль, бо ця роль є вищою за вашу найвищу роль."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:475
|
||||
msgid "The role \"{role.name}\" is already a selfrole."
|
||||
msgstr ""
|
||||
msgstr "Роль \"{role.name}\" вже є селф-роллю."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:481
|
||||
msgid "Added {count} selfroles."
|
||||
msgstr ""
|
||||
msgstr "Додано {count} селф-ролей."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:483
|
||||
msgid "Added 1 selfrole."
|
||||
msgstr ""
|
||||
msgstr "Додано 1 селф-роль."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:489
|
||||
#, docstring
|
||||
@@ -245,79 +283,82 @@ msgid "\n"
|
||||
" Remove a role, or a selection of roles, 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:498
|
||||
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} зі списку селф-ролей, бо ця роль є вищою за вашу найвищу роль."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:508
|
||||
msgid "Removed {count} selfroles."
|
||||
msgstr ""
|
||||
msgstr "Вилучено {count} селф-ролей."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:510
|
||||
msgid "Removed 1 selfrole."
|
||||
msgstr ""
|
||||
msgstr "Прибрано 1 селф-роль."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:516
|
||||
#, docstring
|
||||
msgid "Clear the list of available selfroles for this server."
|
||||
msgstr ""
|
||||
msgstr "Очистити список доступних селф-ролей для цього сервера."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:520
|
||||
msgid "There are currently no selfroles."
|
||||
msgstr ""
|
||||
msgstr "Наразі немає селф-ролей."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:523
|
||||
msgid "Are you sure you want to clear this server's selfrole list?"
|
||||
msgstr ""
|
||||
msgstr "Ви впевнені, що хочете очистити список селф-ролей цього сервера?"
|
||||
|
||||
#: redbot/cogs/admin/admin.py:529
|
||||
msgid "You took too long to respond."
|
||||
msgstr ""
|
||||
msgstr "Ви зайняли занадто довго часу, щоб відповісти."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:538
|
||||
msgid "I cannot clear the selfroles because the selfrole '{role.name}' is higher than or equal to your highest role in the Discord hierarchy."
|
||||
msgstr ""
|
||||
msgstr "Я не можу прибрати селф-ролі, тому що селф-роль '{role.name}' вища аніж усі ваші ролі."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:544
|
||||
msgid "Selfrole list cleared."
|
||||
msgstr ""
|
||||
msgstr "Список з селф-ролями був очищений."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:546
|
||||
msgid "No changes have been made."
|
||||
msgstr ""
|
||||
msgstr "Жодних змін не внесено."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:551
|
||||
#, docstring
|
||||
msgid "Lock a bot to its current servers only."
|
||||
msgstr ""
|
||||
msgstr "Заблокувати бота тільки на його поточних серверах."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:556
|
||||
msgid "The bot is no longer serverlocked."
|
||||
msgstr ""
|
||||
msgstr "Бот більше не прив'язаний до сервера."
|
||||
|
||||
#: redbot/cogs/admin/admin.py:558
|
||||
msgid "The bot is now serverlocked."
|
||||
msgstr ""
|
||||
msgstr "Бот тепер заблокований сервером."
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:68
|
||||
msgid "I could not announce to the following server: "
|
||||
msgstr ""
|
||||
msgstr "Не вдалося зробити оголошення у наступній спільноті: "
|
||||
|
||||
#: redbot/cogs/admin/announcer.py:70
|
||||
msgid "I could not announce to the following servers: "
|
||||
msgstr ""
|
||||
msgstr "Не вдалося зробити оголошення у наступних спільнотах: "
|
||||
|
||||
#: redbot/cogs/admin/converters.py:13
|
||||
msgid "The Admin cog is not loaded."
|
||||
msgstr ""
|
||||
msgstr "Адмін-ког не завантажено."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:30
|
||||
msgid "The role \"{role_name}\" is not a valid selfrole."
|
||||
msgstr ""
|
||||
msgstr "Роль \"{role_name}\" не є дійсною селф-роллю."
|
||||
|
||||
#: redbot/cogs/admin/converters.py:36
|
||||
msgid "This selfrole has more than one case insensitive match. Please ask a moderator to resolve the ambiguity, or use the role ID to reference the role."
|
||||
msgstr ""
|
||||
msgstr "Ця селф-роль має більше ніж один збіг. Будь ласка, попросіть модератора вирішити цю неоднозначність, або використайте ID ролі для уточнення ролі."
|
||||
|
||||
|
||||
@@ -59,7 +59,11 @@ class AliasEntry:
|
||||
extra = []
|
||||
while not view.eof:
|
||||
prev = view.index
|
||||
try:
|
||||
word = view.get_quoted_word()
|
||||
except discord.ext.commands.errors.UnexpectedQuoteError:
|
||||
view.skip_ws()
|
||||
continue
|
||||
if len(word) < view.index - prev:
|
||||
word = "".join((view.buffer[prev], word, view.buffer[view.index - 1]))
|
||||
extra.append(word.strip(" "))
|
||||
|
||||
6
redbot/cogs/alias/locales/ar-SA.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Arabic\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -179,11 +179,11 @@ msgstr "قائمة الأسماء المستعارة العامة المتاحة
|
||||
msgid "There are no global aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "يجب أن يتم تحديد الحجج برقم."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "يجب أن تكون الحجج متتابعة. الحجج المفقودة: "
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/bg-BG.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Bulgarian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -179,11 +179,11 @@ msgstr ""
|
||||
msgid "There are no global aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr ""
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/cs-CZ.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Czech\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -187,11 +187,11 @@ msgstr "Seznam dostupných globálních aliasů pro tohoto bota."
|
||||
msgid "There are no global aliases."
|
||||
msgstr "Neexistují žádné globální aliasy."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "Argumenty musí být zadány s číslem."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "Argumenty musí být sekvenční. Chybějící argumenty: "
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/da-DK.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Danish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -179,11 +179,11 @@ msgstr ""
|
||||
msgid "There are no global aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr ""
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/de-DE.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: German\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -187,11 +187,11 @@ msgstr "Zeige die verfügbaren globalen Alias von diesem Bot."
|
||||
msgid "There are no global aliases."
|
||||
msgstr "Es gibt keine globalen Aliasse."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "Die Argumente müssen mit einer Nummer angegeben werden."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "Argumente müssen sequentiell sein. Fehlende Argumente: "
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/es-ES.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Spanish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -186,11 +186,11 @@ msgstr "Muestra una lista de los alias globales disponibles en este bot."
|
||||
msgid "There are no global aliases."
|
||||
msgstr "No hay alias globales."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "Los argumentos deben especificarse con un número."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "Los argumentos deben ser secuenciales. Faltan argumentos: "
|
||||
|
||||
|
||||
189
redbot/cogs/alias/locales/et-EE.po
generated
Normal file
@@ -0,0 +1,189 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Estonian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.4.2\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Project-ID: 289505\n"
|
||||
"X-Crowdin-Language: et\n"
|
||||
"X-Crowdin-File-ID: 8\n"
|
||||
"Language: et_EE\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 ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:190
|
||||
msgid "Aliases:\n"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:192
|
||||
msgid "\n\n"
|
||||
"Page {page}/{total}"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:202
|
||||
#, docstring
|
||||
msgid "Manage command aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:207
|
||||
#, docstring
|
||||
msgid "Manage global aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:214
|
||||
#, docstring
|
||||
msgid "Add an alias for a command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:219
|
||||
msgid "You attempted to create a new alias with the name {name} but that name is already a command on this bot."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:230
|
||||
msgid "You attempted to create a new alias with the name {name} but that alias already exists."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:241
|
||||
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:253 redbot/cogs/alias/alias.py:312
|
||||
msgid "You attempted to create a new alias for a command that doesn't exist."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:267
|
||||
msgid "A new alias with the trigger `{name}` has been created."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:273
|
||||
#, docstring
|
||||
msgid "Add a global alias for a command."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:278
|
||||
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:289
|
||||
msgid "You attempted to create a new global alias with the name {name} but that alias already exists."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:300
|
||||
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:323
|
||||
msgid "A new global alias with the trigger `{name}` has been created."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:332
|
||||
#, docstring
|
||||
msgid "Edit an existing alias in this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:337 redbot/cogs/alias/alias.py:372
|
||||
msgid "The alias with the name {name} does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:343 redbot/cogs/alias/alias.py:378
|
||||
msgid "You attempted to edit an alias to a command that doesn't exist."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:352 redbot/cogs/alias/alias.py:385
|
||||
msgid "The alias with the trigger `{name}` has been edited successfully."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:359 redbot/cogs/alias/alias.py:392
|
||||
msgid "Alias with the name `{name}` was not found."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:367
|
||||
#, docstring
|
||||
msgid "Edit an existing global alias."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:399
|
||||
#, docstring
|
||||
msgid "Try to execute help for the base command of the alias."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:404
|
||||
msgid "No such alias exists."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:408
|
||||
#, docstring
|
||||
msgid "Show what command the alias executes."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:413
|
||||
msgid "The `{alias_name}` alias will execute the command `{command}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:418
|
||||
msgid "There is no alias with the name `{name}`"
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:424
|
||||
#, docstring
|
||||
msgid "Delete an existing alias on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:426 redbot/cogs/alias/alias.py:458
|
||||
msgid "There are no aliases on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:431 redbot/cogs/alias/alias.py:446
|
||||
msgid "Alias with the name `{name}` was successfully deleted."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:434 redbot/cogs/alias/alias.py:449
|
||||
msgid "Alias with name `{name}` was not found."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:439
|
||||
#, docstring
|
||||
msgid "Delete an existing global alias."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:441
|
||||
msgid "There are no global aliases on this bot."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:455
|
||||
#, docstring
|
||||
msgid "List the available aliases on this server."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:464
|
||||
#, docstring
|
||||
msgid "List the available global aliases on this bot."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias.py:467
|
||||
msgid "There are no global aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr ""
|
||||
|
||||
6
redbot/cogs/alias/locales/fi-FI.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Finnish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -180,11 +180,11 @@ msgstr "Listaa saatavilla olevat globaalit aliakset tässä botissa."
|
||||
msgid "There are no global aliases."
|
||||
msgstr "Tässä botissa ei ole globaaleja aliaksia."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "Argumentit on määriteltävä numerolla."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "Argumenttien on oltava peräkkäisiä. Puuttuvia argumentteja: "
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/fr-FR.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: French\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -185,11 +185,11 @@ msgstr "Liste les alias globaux disponibles sur ce bot."
|
||||
msgid "There are no global aliases."
|
||||
msgstr "Il n'y a aucun alias global."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "Les arguments doivent être spécifiés avec un nombre."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "Les arguments doivent être séquentiels. Arguments manquants : "
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/hi-IN.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Hindi\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -179,11 +179,11 @@ msgstr ""
|
||||
msgid "There are no global aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr ""
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/hr-HR.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Croatian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -186,11 +186,11 @@ msgstr "Navedite dostupne globalne nadimke na ovom botu."
|
||||
msgid "There are no global aliases."
|
||||
msgstr "Nema globalnih nadimaka."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "Argumenti se moraju navesti brojem."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "Argumenti moraju biti uzastopni. Nedostajući argumenti: "
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/hu-HU.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Hungarian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -180,11 +180,11 @@ msgstr "A boton elérhető globális aliaszok listázása."
|
||||
msgid "There are no global aliases."
|
||||
msgstr "Nincsenek globális aliaszok."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr ""
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/id-ID.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Indonesian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -186,11 +186,11 @@ msgstr "Buat daftar alias global yang tersedia di bot ini."
|
||||
msgid "There are no global aliases."
|
||||
msgstr "Tidak ada alias global."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "Argumen harus ditentukan dengan angka."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "Argumen harus berurutan. Argumen yang hilang: "
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/it-IT.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Italian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -180,11 +180,11 @@ msgstr "Elenca gli pseudonimi globali disponibili su questo server."
|
||||
msgid "There are no global aliases."
|
||||
msgstr "Non ci sono pseudonimi globali."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "Gli argomenti devono essere specificati con un numero."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "Gli argomenti devono essere consecutivi. Argomenti mancanti: "
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/ja-JP.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Japanese\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -179,11 +179,11 @@ msgstr ""
|
||||
msgid "There are no global aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr ""
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/ko-KR.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Korean\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -185,11 +185,11 @@ msgstr "이 봇에서 사용할 수 있는 글로벌 별칭들을 나열해주
|
||||
msgid "There are no global aliases."
|
||||
msgstr "전역적인 별칭이 없어요."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "인수는 숫자로 지정해줘야해요."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "인수는 순차적이어야해요. 미확인된 인수: "
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/nb-NO.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Norwegian Bokmal\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -186,11 +186,11 @@ msgstr "Liste over tilgjengelige globale aliaser på denne botten."
|
||||
msgid "There are no global aliases."
|
||||
msgstr "Det er ingen globale aliaser på denne boten."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "Argumenter må spesifiseres med et nummer."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "Argumenter må være sekvensielle. Manglende argumenter: "
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/nl-NL.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Dutch\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -180,11 +180,11 @@ msgstr "Maak een lijst van de beschikbare globale aliassen op deze bot."
|
||||
msgid "There are no global aliases."
|
||||
msgstr "Er zijn geen globale aliassen."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "Argumenten moeten worden gespecificeerd met een getal."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "Argumenten moeten sequentieel zijn. Ontbrekende argumenten: "
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/pl-PL.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Polish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -187,11 +187,11 @@ msgstr "Wyświetla dostępne globalne aliasy dla tego bota."
|
||||
msgid "There are no global aliases."
|
||||
msgstr "Brak globalnych aliasów."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "Argumenty należy określić liczbą."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "Argumenty muszą być sekwencyjne. Brakujące argumenty: "
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/pt-BR.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Portuguese, Brazilian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -188,11 +188,11 @@ msgstr "Liste os atalhos globais disponíveis neste bot."
|
||||
msgid "There are no global aliases."
|
||||
msgstr "Não há atalhos globais."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "Os argumentos devem ser especificados por um número."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "Os argumentos devem ser sequenciais. Argumentos faltando: "
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/pt-PT.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Portuguese\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -182,11 +182,11 @@ msgstr "Listar os alias globais disponíveis neste bot."
|
||||
msgid "There are no global aliases."
|
||||
msgstr "Não existem alias globais."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "Os argumentos devem ser especificados com um número."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "Os argumentos devem ser sequenciais. Faltam argumentos: "
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/ru-RU.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Russian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -186,11 +186,11 @@ msgstr "Список доступных глобальных псевдоним
|
||||
msgid "There are no global aliases."
|
||||
msgstr "Нет всеобщих синонимов."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "Аргументы должны быть указаны с числом."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "Аргументы должны быть последовательными. Отсутствуют аргументы: "
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/sk-SK.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Slovak\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -179,11 +179,11 @@ msgstr ""
|
||||
msgid "There are no global aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr ""
|
||||
|
||||
|
||||
8
redbot/cogs/alias/locales/sl-SI.po
generated
@@ -1,14 +1,14 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Slovenian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.4.2\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
|
||||
"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-Project-ID: 289505\n"
|
||||
"X-Crowdin-Language: sl\n"
|
||||
@@ -180,11 +180,11 @@ msgstr "Seznam razpoložljivih globalnih vzdevkov na tem strežniku."
|
||||
msgid "There are no global aliases."
|
||||
msgstr "Globalnih vzdevkov ni."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "Argumente je treba navesti s številko."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "Argumenti morajo biti zaporedni. Manjkajoči argumenti: "
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/sv-SE.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Swedish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -179,11 +179,11 @@ msgstr ""
|
||||
msgid "There are no global aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr ""
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/tr-TR.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Turkish\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -187,11 +187,11 @@ msgstr "Bot üzerindeki global kullanılabilir kısaltmaları listeleyin."
|
||||
msgid "There are no global aliases."
|
||||
msgstr "Herhangi bir global kısaltma mevcut değil."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "Değişkenler numara içermelidir."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "Değişkenler sıralı olmalıdır. Eksik değişkenler: "
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/uk-UA.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Ukrainian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -179,11 +179,11 @@ msgstr ""
|
||||
msgid "There are no global aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr ""
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/vi-VN.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Vietnamese\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -186,11 +186,11 @@ msgstr "Danh sách tổng hợp những lối tắt toàn hệ thống tồn t
|
||||
msgid "There are no global aliases."
|
||||
msgstr "Không có lối tắt toàn hệ thống nào."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "Giá trị phải được ghi rõ ràng bằng một con số."
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "Giá trị phải sắp xếp tuần tự. Bị thiếu cú pháp: "
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/zh-CN.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Chinese Simplified\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -179,11 +179,11 @@ msgstr ""
|
||||
msgid "There are no global aliases."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr ""
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr ""
|
||||
|
||||
|
||||
6
redbot/cogs/alias/locales/zh-TW.po
generated
@@ -1,7 +1,7 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2024-01-09 00:35+0000\n"
|
||||
"POT-Creation-Date: 2025-08-09 20:56+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Chinese Traditional\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -186,11 +186,11 @@ msgstr "列出此機器人可用的全局別名。"
|
||||
msgid "There are no global aliases."
|
||||
msgstr "沒有全局別名。"
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:196
|
||||
#: redbot/cogs/alias/alias_entry.py:200
|
||||
msgid "Arguments must be specified with a number."
|
||||
msgstr "必須用數字指定參數。"
|
||||
|
||||
#: redbot/cogs/alias/alias_entry.py:203
|
||||
#: redbot/cogs/alias/alias_entry.py:207
|
||||
msgid "Arguments must be sequential. Missing arguments: "
|
||||
msgstr "參數必須是連續的。 缺少參數: "
|
||||
|
||||
|
||||
81
redbot/cogs/audio/apis/locales/et-EE.po
generated
Normal file
@@ -0,0 +1,81 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: red-discordbot\n"
|
||||
"POT-Creation-Date: 2022-03-16 16:42+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Estonian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.4.2\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Crowdin-Project: red-discordbot\n"
|
||||
"X-Crowdin-Project-ID: 289505\n"
|
||||
"X-Crowdin-Language: et\n"
|
||||
"X-Crowdin-File-ID: 698\n"
|
||||
"Language: et_EE\n"
|
||||
|
||||
#: redbot/cogs/audio/apis/interface.py:270
|
||||
#: redbot/cogs/audio/apis/interface.py:600
|
||||
msgid "Failing to get tracks, skipping remaining."
|
||||
msgstr "Ebaõnnestus YouTube'i video hankimine, ülejäänud jäetakse vahele."
|
||||
|
||||
#: redbot/cogs/audio/apis/interface.py:303
|
||||
#: redbot/cogs/audio/apis/spotify.py:175
|
||||
msgid "The Spotify API key or client secret has not been set properly. \n"
|
||||
"Use `{prefix}audioset spotifyapi` for instructions."
|
||||
msgstr "Spotify API võti või kliendi salajane võti ei ole õigesti seadistatud. \n"
|
||||
"Kasutage `{prefix}audioset spotifyapi` juhiste jaoks."
|
||||
|
||||
#: redbot/cogs/audio/apis/interface.py:345
|
||||
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
|
||||
msgstr "See ei tundu olevat kehtiv Spotify esitusloendi/albumi URL või kood."
|
||||
|
||||
#: redbot/cogs/audio/apis/interface.py:471
|
||||
msgid "This doesn't seem to be a supported Spotify URL or code."
|
||||
msgstr "See ei tundu olevat toetatud Spotify URL või kood."
|
||||
|
||||
#: redbot/cogs/audio/apis/interface.py:561
|
||||
msgid "The connection was reset while loading the playlist."
|
||||
msgstr "Ühendus taastati, kui esitusloendit laaditi."
|
||||
|
||||
#: redbot/cogs/audio/apis/interface.py:572
|
||||
msgid "Player timeout, skipping remaining tracks."
|
||||
msgstr "Mängija aja ületamine, ülejäänud lood jäetakse vahele."
|
||||
|
||||
#: redbot/cogs/audio/apis/interface.py:665
|
||||
msgid " {bad_tracks} tracks cannot be queued."
|
||||
msgstr "{bad_tracks} lugusid ei saa järjekorda lisada."
|
||||
|
||||
#: redbot/cogs/audio/apis/interface.py:673
|
||||
msgid "Playlist Enqueued"
|
||||
msgstr "Esitusloend lisatud järjekorda"
|
||||
|
||||
#: redbot/cogs/audio/apis/interface.py:674
|
||||
msgid "Added {num} tracks to the queue.{maxlength_msg}"
|
||||
msgstr "Lisatud {num} lugu järjekorda.{maxlength_msg}"
|
||||
|
||||
#: redbot/cogs/audio/apis/interface.py:680
|
||||
msgid "{time} until start of playlist playback: starts at #{position} in queue"
|
||||
msgstr "{time} kuni esitusloendi esituse alguseni: algab järjekorras #{position} kohal"
|
||||
|
||||
#: redbot/cogs/audio/apis/interface.py:691
|
||||
msgid "Nothing found.\n"
|
||||
"The YouTube API key may be invalid or you may be rate limited on YouTube's search service.\n"
|
||||
"Check the YouTube API key again and follow the instructions at `{prefix}audioset youtubeapi`."
|
||||
msgstr "Midagi ei leitud. \n"
|
||||
"YouTube API võti võib olla kehtetu või võib YouTube'i otsinguteenuses olla määratud päringute piirang. \n"
|
||||
"Kontrolli YouTube API võtit uuesti ja järgi juhiseid `{prefix}audioset youtubeapi`."
|
||||
|
||||
#: redbot/cogs/audio/apis/youtube.py:62
|
||||
msgid "Your YouTube Data API token is invalid.\n"
|
||||
"Check the YouTube API key again and follow the instructions at `{prefix}audioset youtubeapi`."
|
||||
msgstr "Teie YouTube Data API token on kehtetu. \n"
|
||||
"Kontrollige YouTube API võtit uuesti ja järgige juhiseid `{prefix}audioset youtubeapi`."
|
||||
|
||||
#: redbot/cogs/audio/apis/youtube.py:74
|
||||
msgid "YouTube API error code: 403\n"
|
||||
"Your YouTube API key may have reached the account's query limit for today. Please check <https://developers.google.com/youtube/v3/getting-started#quota> for more information."
|
||||
msgstr "YouTube API tõrgekood: 403 \n"
|
||||
"Teie YouTube API võti võib olla jõudnud konto päringute limiidi täitumiseni täna. Palun kontrollige <https://developers.google.com/youtube/v3/getting-started#quota> lisainformatsiooni jaoks."
|
||||
|
||||
2
redbot/cogs/audio/apis/locales/sl-SI.po
generated
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Generated-By: redgettext 3.4.2\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
|
||||
"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-Project-ID: 289505\n"
|
||||
"X-Crowdin-Language: sl\n"
|
||||
|
||||
@@ -3,7 +3,6 @@ import datetime
|
||||
import json
|
||||
|
||||
from collections import Counter, defaultdict
|
||||
from pathlib import Path
|
||||
from typing import Mapping, Dict
|
||||
|
||||
import aiohttp
|
||||
@@ -13,7 +12,6 @@ from redbot.core import Config
|
||||
from redbot.core.bot import Red
|
||||
from redbot.core.commands import Cog
|
||||
from redbot.core.data_manager import cog_data_path
|
||||
from redbot.core.i18n import Translator, cog_i18n
|
||||
from redbot.core.utils.antispam import AntiSpam
|
||||
|
||||
from ..utils import (
|
||||
@@ -25,10 +23,7 @@ from ..utils import (
|
||||
from . import abc, cog_utils, commands, events, tasks, utilities
|
||||
from .cog_utils import CompositeMetaClass
|
||||
|
||||
_ = Translator("Audio", Path(__file__))
|
||||
|
||||
|
||||
@cog_i18n(_)
|
||||
class Audio(
|
||||
commands.Commands,
|
||||
events.Events,
|
||||
@@ -37,8 +32,6 @@ class Audio(
|
||||
Cog,
|
||||
metaclass=CompositeMetaClass,
|
||||
):
|
||||
"""Play audio through voice channels."""
|
||||
|
||||
llset_captcha_intervals = [
|
||||
(datetime.timedelta(days=1), 1),
|
||||
]
|
||||
|
||||
@@ -8,8 +8,13 @@ from .miscellaneous import MiscellaneousCommands
|
||||
from .player import PlayerCommands
|
||||
from .playlists import PlaylistCommands
|
||||
from .queue import QueueCommands
|
||||
from redbot.core.i18n import Translator, cog_i18n
|
||||
|
||||
|
||||
_ = Translator("Audio", __file__)
|
||||
|
||||
|
||||
@cog_i18n(_)
|
||||
class Commands(
|
||||
AudioSetCommands,
|
||||
PlayerControllerCommands,
|
||||
@@ -22,4 +27,4 @@ class Commands(
|
||||
QueueCommands,
|
||||
metaclass=CompositeMetaClass,
|
||||
):
|
||||
"""Class joining all command subclasses"""
|
||||
"""Play audio through voice channels."""
|
||||
|
||||
@@ -1168,7 +1168,6 @@ class AudioSetCommands(MixinMeta, metaclass=CompositeMetaClass):
|
||||
|
||||
@command_audioset.command(name="logs")
|
||||
@commands.is_owner()
|
||||
@commands.guild_only()
|
||||
@has_managed_server()
|
||||
async def command_audioset_logs(self, ctx: commands.Context):
|
||||
"""Sends the managed Lavalink node logs to your DMs."""
|
||||
|
||||
@@ -10,10 +10,11 @@ from red_commons.logging import getLogger
|
||||
from redbot.core import commands
|
||||
from redbot.core.data_manager import cog_data_path
|
||||
from redbot.core.i18n import Translator
|
||||
from redbot.core.utils.chat_formatting import box, inline
|
||||
from redbot.core.utils.chat_formatting import box, humanize_list, inline
|
||||
|
||||
from ..abc import MixinMeta
|
||||
from ..cog_utils import CompositeMetaClass
|
||||
from ...managed_node import version_pins
|
||||
from ...utils import (
|
||||
MAX_JAVA_RAM,
|
||||
DEFAULT_LAVALINK_YAML,
|
||||
@@ -29,6 +30,16 @@ log = getLogger("red.cogs.Audio.cog.Commands.lavalink_setup")
|
||||
_ = Translator("Audio", Path(__file__))
|
||||
|
||||
|
||||
class LavalinkSetupJavaCommand(commands.Command):
|
||||
def format_text_for_context(self, ctx: commands.Context, text: str) -> str:
|
||||
text = super().format_text_for_context(ctx, text)
|
||||
return text.format(
|
||||
supported_java_versions=humanize_list(
|
||||
list(map(str, version_pins.SUPPORTED_JAVA_VERSIONS))
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
class LavalinkSetupCommands(MixinMeta, metaclass=CompositeMetaClass):
|
||||
@commands.group(name="llset")
|
||||
@commands.is_owner()
|
||||
@@ -43,7 +54,7 @@ class LavalinkSetupCommands(MixinMeta, metaclass=CompositeMetaClass):
|
||||
All the commands in here have the potential to break the Audio cog.
|
||||
"""
|
||||
|
||||
@command_llset.command(name="java")
|
||||
@command_llset.command(name="java", cls=LavalinkSetupJavaCommand)
|
||||
@has_managed_server()
|
||||
async def command_llset_java(self, ctx: commands.Context, *, java_path: str = "java"):
|
||||
"""Change your Java executable path.
|
||||
@@ -51,7 +62,7 @@ class LavalinkSetupCommands(MixinMeta, metaclass=CompositeMetaClass):
|
||||
This command shouldn't need to be used most of the time, and is only useful if the host machine has conflicting Java versions.
|
||||
|
||||
If changing this make sure that the Java executable you set is supported by Audio.
|
||||
The current supported versions are Java 17 and 11.
|
||||
The current supported versions are Java {supported_java_versions}.
|
||||
|
||||
Enter nothing or "java" to reset it back to default.
|
||||
"""
|
||||
|
||||