Merge branch 'V3/develop' into cog_guide_core

# Conflicts:
#	redbot/core/core_commands.py
This commit is contained in:
bobloy
2021-04-06 09:56:01 -04:00
690 changed files with 80569 additions and 67759 deletions

View File

@@ -0,0 +1,129 @@
"""
A Sphinx extension adding a ``deprecated-removed`` directive that works
similarly to CPython's directive with the same name.
The key difference is that instead of passing the version of planned removal,
the writer must provide the minimum amount of days that must pass
since the date of the release it was deprecated in.
Due to lack of a concrete release schedule for Red, this ensures that
we give enough time to people affected by the changes no matter
when the releases actually happen.
`DeprecatedRemoved` class is heavily based on
`sphinx.domains.changeset.VersionChange` class that is available at:
https://github.com/sphinx-doc/sphinx/blob/0949735210abaa05b6448e531984f159403053f4/sphinx/domains/changeset.py
Copyright 2007-2020 by the Sphinx team, see AUTHORS:
https://github.com/sphinx-doc/sphinx/blob/82f495fed386c798735adf675f867b95d61ee0e1/AUTHORS
The original copy was distributed under BSD License and this derivative work
is distributed under GNU GPL Version 3.
"""
import datetime
import multiprocessing
import subprocess
from typing import Any, Dict, List, Optional
from docutils import nodes
from sphinx import addnodes
from sphinx.application import Sphinx
from sphinx.util.docutils import SphinxDirective
class TagDateCache:
def __init__(self) -> None:
self._tags: Dict[str, datetime.date] = {}
def _populate_tags(self) -> None:
with _LOCK:
if self._tags:
return
out = subprocess.check_output(
("git", "tag", "-l", "--format", "%(creatordate:raw)\t%(refname:short)"),
text=True,
)
lines = out.splitlines(False)
for line in lines:
creator_date, tag_name = line.split("\t", maxsplit=1)
timestamp = int(creator_date.split(" ", maxsplit=1)[0])
self._tags[tag_name] = datetime.datetime.fromtimestamp(
timestamp, tz=datetime.timezone.utc
).date()
def get_tag_date(self, tag_name: str) -> Optional[datetime.date]:
self._populate_tags()
return self._tags.get(tag_name)
_LOCK = multiprocessing.Manager().Lock()
_TAGS = TagDateCache()
class DeprecatedRemoved(SphinxDirective):
has_content = True
required_arguments = 2
optional_arguments = 1
final_argument_whitespace = True
def run(self) -> List[nodes.Node]:
# Some Sphinx stuff
node = addnodes.versionmodified()
node.document = self.state.document
self.set_source_info(node)
node["type"] = self.name
node["version"] = tuple(self.arguments)
if len(self.arguments) == 3:
inodes, messages = self.state.inline_text(self.arguments[2], self.lineno + 1)
para = nodes.paragraph(self.arguments[2], "", *inodes, translatable=False)
self.set_source_info(para)
node.append(para)
else:
messages = []
# Text generation
deprecation_version = self.arguments[0]
minimum_days = int(self.arguments[1])
tag_date = _TAGS.get_tag_date(deprecation_version)
text = (
f"Will be deprecated in version {deprecation_version},"
" and removed in the first minor version that gets released"
f" after {minimum_days} days since deprecation"
if tag_date is None
else f"Deprecated since version {deprecation_version},"
" will be removed in the first minor version that gets released"
f" after {tag_date + datetime.timedelta(days=minimum_days)}"
)
# More Sphinx stuff
if self.content:
self.state.nested_parse(self.content, self.content_offset, node)
classes = ["versionmodified"]
if len(node):
if isinstance(node[0], nodes.paragraph) and node[0].rawsource:
content = nodes.inline(node[0].rawsource, translatable=True)
content.source = node[0].source
content.line = node[0].line
content += node[0].children
node[0].replace_self(nodes.paragraph("", "", content, translatable=False))
node[0].insert(0, nodes.inline("", f"{text}: ", classes=classes))
else:
para = nodes.paragraph(
"", "", nodes.inline("", f"{text}.", classes=classes), translatable=False
)
node.append(para)
ret = [node]
ret += messages
return ret
def setup(app: Sphinx) -> Dict[str, Any]:
app.add_directive("deprecated-removed", DeprecatedRemoved)
return {
"version": "1.0",
"parallel_read_safe": True,
}

View File

@@ -12,39 +12,37 @@ Installing PM2
Start by installing Node.JS and NPM via your favorite package distributor. From there run the following command:
:code:`npm install pm2 -g`
.. prompt:: bash
npm install pm2 -g
After PM2 is installed, run the following command to enable your Red instance to be managed by PM2. Replace the brackets with the required information.
You can add additional Red based arguments after the instance, such as :code:`--dev`.
You can add additional Red based arguments after the instance name, such as :code:`--dev`.
.. code-block:: none
.. prompt:: bash
pm2 start redbot --name "<Insert a name here>" --interpreter "<Location to your Python Interpreter>" --interpreter-args "-O" -- <Red Instance> --no-prompt
pm2 start "<path>" --name "<app_name>" -- -O -m redbot <instance_name> --no-prompt
.. code-block:: none
**Arguments to replace**
Arguments to replace.
- ``<app_name>`` - A name to identify the bot within pm2, this is not your Red instance.
<Insert a name here>
A name to identify the bot within pm2, this is not your Red instance.
- | ``<path>`` - The location of your Python interpreter.
| To find out where that is, use the proper set of commands:
<Location to your Python Interpreter>
The location of your Python interpreter, to find out where that is use the following command inside activated venv:
which python
.. prompt:: bash
:prompts: $,(redenv) $
:modifiers: auto
<Red Instance>
The name of your Red instance.
# If redbot is installed in a venv
$ source ~/redenv/bin/activate
(redenv) $ which python
If you used :code:`pyenv virtualenv` to create your virtual environment, please make the following changes to the above generated command
# If redbot is installed in a pyenv virtualenv
$ pyenv shell <virtualenv_name>
(redenv) $ pyenv which python
.. code-block:: none
<Location to your Python Interpreter>
Run the following instead to get your Python interpreter
pyenv which python
Replace the `redbot` part of `pm2 start redbot` with the output of the following (when ran inside your activated venv)
pyenv which redbot
- ``<instance_name>`` - The name of your Red instance.
------------------------------
Ensuring that PM2 stays online
@@ -52,4 +50,7 @@ Ensuring that PM2 stays online
To make sure that PM2 stays online and persistence between machine restarts, run the following commands:
:code:`pm2 save` & :code:`pm2 startup`
.. prompt:: bash
pm2 save
pm2 startup

View File

@@ -14,21 +14,23 @@ In order to create the service file, you will first need to know two things, you
First, your Linux :code:`username` can be fetched with the following command:
.. code-block:: bash
.. prompt:: bash
whoami
Next, your python :code:`path` can be fetched with the following commands:
.. code-block:: bash
.. prompt:: bash
:prompts: $,(redenv) $
:modifiers: auto
# If redbot is installed in a venv
source ~/redenv/bin/activate
which python
$ source ~/redenv/bin/activate
(redenv) $ which python
# If redbot is installed in a pyenv virtualenv
pyenv shell <virtualenv_name>
pyenv which python
$ pyenv shell <virtualenv_name>
(redenv) $ pyenv which python
Then create the new service file:
@@ -67,20 +69,28 @@ Starting and enabling the service
To start the bot, run the service and add the instance name after the **@**:
:code:`sudo systemctl start red@instancename`
.. prompt:: bash
sudo systemctl start red@instancename
To set the bot to start on boot, you must enable the service, again adding the instance name after the **@**:
:code:`sudo systemctl enable red@instancename`
.. prompt:: bash
sudo systemctl enable red@instancename
If you need to shutdown the bot, you can use the ``[p]shutdown`` command or
type the following command in the terminal, still by adding the instance name after the **@**:
:code:`sudo systemctl stop red@instancename`
.. prompt:: bash
sudo systemctl stop red@instancename
.. warning:: If the service doesn't stop in the next 10 seconds, the process is killed.
Check your logs to know the cause of the error that prevents the shutdown.
To view Reds log, you can acccess through journalctl:
:code:`sudo journalctl -eu red@instancename`
.. prompt:: bash
sudo journalctl -eu red@instancename

View File

@@ -1,5 +1,146 @@
.. 3.4.x Changelogs
Redbot 3.4.9 (2021-04-06)
=========================
This is a hotfix release fixing an issue with command error handling.
discord.py version has been bumped to 1.7.1.
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:
| :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
--------------------
1. 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.4.8 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.3.2.3_1212>`__.
2. Fedora 31 and OpenSUSE Leap 15.1 are no longer supported as they have already reached end of life.
End-user changelog
------------------
Core Bot
********
- Added per-command embed settings (:issue:`4049`)
- See help of ``[p]embedset`` and ``[p]embedset command`` command group for more information
- The ``[p]servers`` command uses menus now (:issue:`4720`, :issue:`4831`)
- ``[p]leave`` accepts server IDs now (:issue:`4831`)
- Commands for listing global and local allowlists and blocklists will now, in addition to IDs, contain user/role names (:issue:`4839`)
- Messages sent interactively in DM channels no longer fail (:issue:`4876`)
- An error message will now be shown when a command that is only available in NSFW channels is used in a non-NSFW channel (:issue:`4933`)
- Added more singular and plural forms in a bunch of commands in the bot (:issue:`4004`, :issue:`4898`)
- Removed the option to drop the entire PostgreSQL database in ``redbot-setup delete`` due to limitations of PostgreSQL (:issue:`3699`, :issue:`3833`)
- Added a progress bar to ``redbot-setup convert`` (:issue:`2952`)
- Fixed how the command signature is shown in help for subcommands that have group args (:issue:`4928`)
Alias
*****
- Fixed issues with command aliases for commands that take an arbitrary, but non-zero, number of arguments (e.g. ``[p]load``) (:issue:`4766`, :issue:`4871`)
Audio
*****
- Fixed stuttering (:issue:`4565`)
- Fixed random disconnects (:issue:`4565`)
- Fixed the issues causing the player to be stuck on 00:00 (:issue:`4565`)
- Fixed ghost players (:issue:`4565`)
- Audio will no longer stop playing after a while (:issue:`4565`)
- Fixed playlist loading for playlists with over 100 songs (:issue:`4932`)
- Fixed an issue with alerts causing errors in playlists being loaded (:issue:`4932`)
- Improved playlist extraction (:issue:`4932`)
- Fixed an issue with consent pages appearing while trying to load songs or playlists (:issue:`4932`)
Cleanup
*******
- ``[p]cleanup before`` and ``[p]cleanup after`` commands can now be used without a message ID if the invocation message replies to some message (:issue:`4790`)
Downloader
**********
- Improved compatibility with Git 2.31 and newer (:issue:`4897`)
Filter
******
- Added meaningful error messages for incorrect arguments in the ``[p]bank set`` command (:issue:`4789`, :issue:`4801`)
Mod
***
- Improved performance of checking tempban expirations (:issue:`4907`)
- Fixed tracking of nicknames that were set just before nick reset (:issue:`4830`)
Mutes
*****
- Vastly improved performance of automatic unmute handling (:issue:`4906`)
Streams
*******
- Streams cog should now load faster on bots that have many stream alerts set up (:issue:`4731`, :issue:`4742`)
- Fixed possible memory leak related to automatic message deletion (:issue:`4731`, :issue:`4742`)
- Streamer accounts that no longer exist are now properly handled (:issue:`4735`, :issue:`4746`)
- Fixed stream alerts being sent even after unloading Streams cog (:issue:`4940`)
- Checking Twitch streams will now make less API calls (:issue:`4938`)
- Ratelimits from Twitch API are now properly handled (:issue:`4808`, :issue:`4883`)
Trivia
******
- Added a new option for hiding the answer to the Trivia answer in a spoiler (:issue:`4700`, :issue:`4877`)
- ``[p]triviaset usespoilers`` command can be used to enable/disable this option
Warnings
********
- Fixed output of ``[p]warnings`` command for members that are no longer in the server (:issue:`4900`, :issue:`4904`)
- Embeds now use the default embed color of the bot (:issue:`4878`)
Developer changelog
-------------------
- Bumped discord.py version to 1.7.0 (:issue:`4928`)
- Deprecated importing ``GuildConverter`` from ``redbot.core.commands.converter`` namespace (:issue:`4928`)
- ``discord.Guild`` or ``GuildConverter`` from ``redbot.core.commands`` should be used instead
- Added ``guild`` parameter to `bot.allowed_by_whitelist_blacklist() <RedBase.allowed_by_whitelist_blacklist()>` which is meant to replace the deprecated ``guild_id`` parameter (:issue:`4905`, :issue:`4914`)
- Read the method's documentation for more information
- Fixed ``on_red_api_tokens_update`` not being dispatched when the tokens were removed with ``[p]set api remove`` (:issue:`4916`, :issue:`4917`)
Documentation changes
---------------------
- Added a note about updating cogs in update message and documentation (:issue:`4910`)
- Added `cog guide for Image cog <cog_guides/image>` (:issue:`4821`)
- Updated Mac install guide with new ``brew`` commands (:issue:`4865`)
- `getting-started` now contains an explanation of parameters that can take an arbitrary number of arguments (:issue:`4888`, :issue:`4889`)
- Added a warning to Arch Linux install guide about the instructions being out-of-date (:issue:`4866`)
- All shell commands in the documentation are now prefixed with an unselectable prompt (:issue:`4908`)
- `systemd-service-guide` now asks the user to create the new service file using ``nano`` text editor (:issue:`4869`, :issue:`4870`)
- Instructions for all Linux-based operating systems now recommend to install ``nano``
- Updated Python version in ``pyenv`` and Windows instructions (:issue:`4864`, :issue:`4942`)
Redbot 3.4.7 (2021-02-26)
=========================
| Thanks to all these amazing people that contributed to this release:

View File

@@ -193,7 +193,7 @@ reorderpath
.. code-block:: none
[p]reorderpath <from\_> <to>
[p]reorderpath <from_> <to>
**Description**

View File

@@ -21,6 +21,7 @@ import os
import sys
sys.path.insert(0, os.path.abspath(".."))
sys.path.insert(0, os.path.abspath("_ext"))
os.environ["BUILDING_DOCS"] = "1"
@@ -42,6 +43,8 @@ extensions = [
"sphinx.ext.napoleon",
"sphinx.ext.doctest",
"sphinxcontrib_trio",
"sphinx-prompt",
"deprecated_removed",
]
# Add any paths that contain templates here, relative to this directory.

View File

@@ -83,7 +83,7 @@ In that file, place the following code:
from redbot.core import commands
class Mycog(commands.Cog):
class MyCog(commands.Cog):
"""My custom cog"""
@commands.command()
@@ -96,11 +96,11 @@ Open :code:`__init__.py`. In that file, place the following:
.. code-block:: python
from .mycog import Mycog
from .mycog import MyCog
def setup(bot):
bot.add_cog(Mycog())
bot.add_cog(MyCog())
Make sure that both files are saved.

View File

@@ -40,7 +40,12 @@ Operating systems
Arch Linux
~~~~~~~~~~
.. code-block:: none
.. warning::
Latest Python packages for Arch Linux provide Python 3.9 which Red does not currently support.
To use Red on Arch Linux, you will need to install latest version of Python 3.8 on your own.
.. prompt:: bash
sudo pacman -Syu python python-pip git jre11-openjdk-headless base-devel nano
@@ -55,7 +60,7 @@ Continue by `creating-venv-linux`.
CentOS and RHEL 7
~~~~~~~~~~~~~~~~~
.. code-block:: none
.. prompt:: bash
sudo yum -y groupinstall development
sudo yum -y install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel tk-devel libffi-devel findutils java-11-openjdk-headless nano
@@ -66,7 +71,7 @@ CentOS and RHEL 7
In order to install Git 2.11 or greater, we recommend adding the IUS repository:
.. code-block:: none
.. prompt:: bash
sudo yum -y install https://repo.ius.io/ius-release-el7.rpm
sudo yum -y swap git git224
@@ -82,7 +87,7 @@ Complete the rest of the installation by `installing Python 3.8 with pyenv <inst
CentOS and RHEL 8
~~~~~~~~~~~~~~~~~
.. code-block:: none
.. prompt:: bash
sudo yum -y install epel-release
sudo yum -y update
@@ -103,7 +108,7 @@ Debian and Raspbian Buster
We recommend installing pyenv as a method of installing non-native versions of python on
Debian/Raspbian Buster. This guide will tell you how. First, run the following commands:
.. code-block:: none
.. prompt:: bash
sudo apt update
sudo apt -y install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libgdbm-dev uuid-dev python3-openssl git openjdk-11-jre-headless nano
@@ -122,7 +127,7 @@ Fedora Linux
Fedora Linux 32 and above has all required packages available in official repositories. Install
them with dnf:
.. code-block:: none
.. prompt:: bash
sudo dnf -y install python38 git java-11-openjdk-headless @development-tools nano
@@ -139,14 +144,14 @@ Mac
Install Brew: in Finder or Spotlight, search for and open *Terminal*. In the terminal, paste the
following, then press Enter:
.. code-block:: none
.. prompt:: bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
After the installation, install the required packages by pasting the commands and pressing enter,
one-by-one:
.. code-block:: none
.. prompt:: bash
brew install python@3.8
echo 'export PATH="/usr/local/opt/python@3.8/bin:$PATH"' >> ~/.profile
@@ -172,7 +177,7 @@ be installed to the ``/opt`` directory.
First, add the Opt-Python community repository:
.. code-block:: none
.. prompt:: bash
source /etc/os-release
sudo zypper -n ar -f https://download.opensuse.org/repositories/home:/Rotkraut:/Opt-Python/openSUSE_Leap_${VERSION_ID}/ Opt-Python
@@ -180,7 +185,7 @@ First, add the Opt-Python community repository:
Now install the pre-requirements with zypper:
.. code-block:: none
.. prompt:: bash
sudo zypper -n install opt-python38 opt-python38-setuptools git-core java-11-openjdk-headless nano
sudo zypper -n install -t pattern devel_basis
@@ -188,14 +193,14 @@ Now install the pre-requirements with zypper:
Since Python is now installed to ``/opt/python``, we should add it to PATH. You can add a file in
``/etc/profile.d/`` to do this:
.. code-block:: none
.. prompt:: bash
echo 'export PATH="/opt/python/bin:$PATH"' | sudo tee /etc/profile.d/opt-python.sh
source /etc/profile.d/opt-python.sh
Now, install pip with easy_install:
.. code-block:: none
.. prompt:: bash
sudo /opt/python/bin/easy_install-3.8 pip
@@ -207,9 +212,9 @@ openSUSE Tumbleweed
openSUSE Tumbleweed has all required dependencies available in official repositories. Install them
with zypper:
.. code-block:: none
.. prompt:: bash
sudo zypper -n install python3-base python3-pip git-core java-11-openjdk-headless nano
sudo zypper -n install python38-base python38-pip git-core java-11-openjdk-headless nano
sudo zypper -n install -t pattern devel_basis
Continue by `creating-venv-linux`.
@@ -224,7 +229,7 @@ Ubuntu 18.04 LTS
We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
.. code-block:: none
.. prompt:: bash
sudo apt update
sudo apt -y install software-properties-common
@@ -232,13 +237,13 @@ We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
We recommend adding the ``deadsnakes`` ppa to install Python 3.8.1 or greater:
.. code-block:: none
.. prompt:: bash
sudo add-apt-repository -y ppa:deadsnakes/ppa
Now install the pre-requirements with apt:
.. code-block:: none
.. prompt:: bash
sudo apt -y install python3.8 python3.8-dev python3.8-venv python3-pip git openjdk-11-jre-headless build-essential nano
@@ -254,7 +259,7 @@ Ubuntu 20.04 LTS
We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
.. code-block:: none
.. prompt:: bash
sudo apt update
sudo apt -y install software-properties-common
@@ -262,7 +267,7 @@ We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
Now install the pre-requirements with apt:
.. code-block:: none
.. prompt:: bash
sudo apt -y install python3.8 python3.8-dev python3.8-venv python3-pip git openjdk-11-jre-headless build-essential nano
@@ -278,7 +283,7 @@ Ubuntu non-LTS versions
We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
.. code-block:: none
.. prompt:: bash
sudo apt update
sudo apt -y install software-properties-common
@@ -287,7 +292,7 @@ We recommend adding the ``git-core`` ppa to install Git 2.11 or greater:
Now, to install non-native version of python on non-LTS versions of Ubuntu, we recommend
installing pyenv. To do this, first run the following commands:
.. code-block:: none
.. prompt:: bash
sudo apt -y install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libgdbm-dev uuid-dev python3-openssl git openjdk-11-jre-headless nano
CXX=/usr/bin/g++
@@ -311,7 +316,7 @@ On distributions where Python 3.8 needs to be compiled from source, we recommend
This simplifies the compilation process and has the added bonus of simplifying setting up Red in a
virtual environment.
.. code-block:: none
.. prompt:: bash
command -v pyenv && pyenv update || curl https://pyenv.run | bash
@@ -320,9 +325,9 @@ instructions given to fix that, then close and reopen your shell.**
Then run the following command:
.. code-block:: none
.. prompt:: bash
CONFIGURE_OPTS=--enable-optimizations pyenv install 3.8.8 -v
CONFIGURE_OPTS=--enable-optimizations pyenv install 3.8.9 -v
This may take a long time to complete, depending on your hardware. For some machines (such as
Raspberry Pis and micro-tier VPSes), it may take over an hour; in this case, you may wish to remove
@@ -332,9 +337,9 @@ slower.
After that is finished, run:
.. code-block:: none
.. prompt:: bash
pyenv global 3.8.8
pyenv global 3.8.9
Pyenv is now installed and your system should be configured to run Python 3.8.
@@ -372,11 +377,15 @@ First, choose a directory where you would like to create your virtual environmen
to keep it in a location which is easy to type out the path to. From now, we'll call it
``redenv`` and it will be located in your home directory.
Create your virtual environment with the following command::
Create your virtual environment with the following command:
.. prompt:: bash
python3.8 -m venv ~/redenv
And activate it with the following command::
And activate it with the following command:
.. prompt:: bash
source ~/redenv/bin/activate
@@ -398,18 +407,24 @@ Using ``pyenv virtualenv``
Using ``pyenv virtualenv`` saves you the headache of remembering where you installed your virtual
environments. This option is only available if you installed Python with pyenv.
First, ensure your pyenv interpreter is set to python 3.8.1 or greater with the following command::
First, ensure your pyenv interpreter is set to python 3.8.1 or greater with the following command:
.. prompt:: bash
pyenv version
Now, create a virtual environment with the following command::
Now, create a virtual environment with the following command:
.. prompt:: bash
pyenv virtualenv <name>
Replace ``<name>`` with whatever you like. If you ever forget what you named it,
you can always use the command ``pyenv versions`` to list all virtual environments.
Now activate your virtualenv with the following command::
Now activate your virtualenv with the following command:
.. prompt:: bash
pyenv shell <name>
@@ -433,14 +448,16 @@ Choose one of the following commands to install Red.
To install without additional config backend support:
.. code-block:: none
.. prompt:: bash
:prompts: (redenv) $
python -m pip install -U pip setuptools wheel
python -m pip install -U Red-DiscordBot
Or, to install with PostgreSQL support:
.. code-block:: none
.. prompt:: bash
:prompts: (redenv) $
python -m pip install -U pip setuptools wheel
python -m pip install -U "Red-DiscordBot[postgres]"
@@ -456,7 +473,8 @@ Setting Up and Running Red
After installation, set up your instance with the following command:
.. code-block:: none
.. prompt:: bash
:prompts: (redenv) $
redbot-setup
@@ -466,7 +484,8 @@ running the bot).
Once done setting up the instance, run the following command to run Red:
.. code-block:: none
.. prompt:: bash
:prompts: (redenv) $
redbot <your instance name>

View File

@@ -33,18 +33,18 @@ right-click on it and then click "Run as administrator".
Then run each of the following commands:
.. code-block:: none
.. prompt:: powershell
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
choco upgrade git --params "/GitOnlyOnPath /WindowsTerminal" -y
choco upgrade visualstudio2019-workload-vctools -y
choco upgrade python3 -y --version 3.8.8
choco upgrade python3 -y --version 3.8.9
For Audio support, you should also run the following command before exiting:
.. code-block:: none
.. prompt:: powershell
choco upgrade adoptopenjdk11jre -y
@@ -109,13 +109,13 @@ Start with opening a command prompt (open Start, search for "command prompt", th
Then create your virtual environment with the following command
.. code-block:: none
.. prompt:: batch
py -3.8 -m venv "%userprofile%\redenv"
And activate it with the following command
.. code-block:: none
.. prompt:: batch
"%userprofile%\redenv\Scripts\activate.bat"
@@ -138,14 +138,16 @@ Run **one** of the following set of commands, depending on what extras you want
* Normal installation:
.. code-block:: none
.. prompt:: batch
:prompts: (redenv) C:\\>
python -m pip install -U pip setuptools wheel
python -m pip install -U Red-DiscordBot
* With PostgreSQL support:
.. code-block:: none
.. prompt:: batch
:prompts: (redenv) C:\\>
python -m pip install -U pip setuptools wheel
python -m pip install -U Red-DiscordBot[postgres]
@@ -156,7 +158,8 @@ Setting Up and Running Red
After installation, set up your instance with the following command:
.. code-block:: none
.. prompt:: batch
:prompts: (redenv) C:\\>
redbot-setup
@@ -166,7 +169,8 @@ running the bot).
Once done setting up the instance, run the following command to run Red:
.. code-block:: none
.. prompt:: batch
:prompts: (redenv) C:\\>
redbot <your instance name>

View File

@@ -37,13 +37,14 @@ If you have Red 3.2.0 or newer, you can upgrade by following these 4 easy steps:
2. Activate your venv with the following command:
.. code:: none
.. prompt:: batch
"%userprofile%\redenv\Scripts\activate.bat"
3. Update Red with this command:
.. code:: none
.. prompt:: batch
:prompts: (redenv) C:\\>
python -m pip install -U Red-DiscordBot
@@ -53,6 +54,8 @@ If you have Red 3.2.0 or newer, you can upgrade by following these 4 easy steps:
4. Start your bot.
5. If you have any 3rd-party cogs installed, we highly recommend you update them with this command in Discord: ``[p]cog update`` (``[p]`` is considered as your prefix)
Linux & Mac
-----------
@@ -64,19 +67,20 @@ If you have Red 3.2.0 or newer, you can upgrade by following these 4 easy steps:
If you used ``venv`` for your virtual environment, use:
.. code:: none
.. prompt:: bash
source ~/redenv/bin/activate
If you used ``pyenv`` for your virtual environment, use:
.. code:: none
.. prompt:: bash
pyenv shell <name>
3. Update Red with this command:
.. code:: none
.. prompt:: bash
:prompts: (redenv) $
python -m pip install -U Red-DiscordBot
@@ -86,6 +90,8 @@ If you have Red 3.2.0 or newer, you can upgrade by following these 4 easy steps:
4. Start your bot.
5. If you have any 3rd-party cogs installed, we highly recommend you update them with this command in Discord: ``[p]cog update`` (``[p]`` is considered as your prefix)
Red 3.1.X
*********
@@ -107,7 +113,8 @@ Follow every step to ensure you have all dependencies up-to-date and only skip `
- If you were using the MongoDB driver, **prior to launching your instance after update**,
you will need to run the following commands to convert:
.. code::
.. prompt:: bash
:prompts: (redenv) $
python -m pip install dnspython~=1.16.0 motor~=2.0.0 pymongo~=3.8.0
redbot-setup convert [instancename] json
@@ -125,7 +132,8 @@ Red 3.0.2 and older
- If you were using the MongoDB driver, **prior to updating**, you will need to convert your data to JSON backend,
using following command:
.. code::
.. prompt:: bash
:prompts: (redenv) $
redbot-setup --edit

View File

@@ -191,7 +191,7 @@ def _update_event_loop_policy():
_asyncio.set_event_loop_policy(_uvloop.EventLoopPolicy())
__version__ = "3.4.8.dev1"
__version__ = "3.4.10.dev1"
version_info = VersionInfo.from_str(__version__)
# Filter fuzzywuzzy slow sequence matcher warning

View File

@@ -181,7 +181,7 @@ async def _edit_prefix(red, prefix, no_prompt):
async def _edit_owner(red, owner, no_prompt):
if owner:
if not (15 <= len(str(owner)) <= 21):
if not (15 <= len(str(owner)) <= 20):
print(
"The provided owner id doesn't look like a valid Discord user id."
" Instance's owner will remain unchanged."
@@ -199,7 +199,7 @@ async def _edit_owner(red, owner, no_prompt):
print("Please enter a Discord user id for new owner:")
while True:
owner_id = input("> ").strip()
if not (15 <= len(owner_id) <= 21 and owner_id.isdecimal()):
if not (15 <= len(owner_id) <= 20 and owner_id.isdecimal()):
print("That doesn't look like a valid Discord user id.")
continue
owner_id = int(owner_id)
@@ -434,7 +434,7 @@ async def shutdown_handler(red, signal_type=None, exit_code=None):
red._shutdown_mode = exit_code
try:
await red.logout()
await red.close()
finally:
# Then cancels all outstanding tasks other than ourselves
pending = [t for t in asyncio.all_tasks() if t is not asyncio.current_task()]

View File

@@ -17,60 +17,60 @@ msgstr ""
#: redbot/cogs/admin/admin.py:18
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
msgstr ""
msgstr "He intentat fer una cosa per la qual Discord m'ha denegat els permisos. La vostra comanda no s'ha pogut completar correctament."
#: redbot/cogs/admin/admin.py:23
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 "No puc donar {role.name} a {member.display_name} perquè el rol està per sobre o igual que el meu rol més alt a la jerarquia de Discord."
#: redbot/cogs/admin/admin.py:29
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 "No puc treure {role.name} a {member.display_name} perquè el rol està per sobre o igual que el meu rol més alt a la jerarquia de Discord."
#: redbot/cogs/admin/admin.py:35
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 "No puc editar {role.name} perquè el rol està per sobre o igual que el meu rol més alt a la jerarquia de Discord."
#: redbot/cogs/admin/admin.py:41
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 "No puc deixar-te donar {role.name} a {member.display_name} perquè el rol està per sobre o igual que el meu rol més alt a la jerarquia de Discord."
#: redbot/cogs/admin/admin.py:47
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 "No puc deixar-te treure {role.name} a {member.display_name} perquè el rol està per sobre o igual que el meu rol més alt a la jerarquia de Discord."
#: redbot/cogs/admin/admin.py:53
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 "No puc deixar-te editar {role.name} perquè el rol està per sobre o igual que el meu rol més alt a la jerarquia de Discord."
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgstr ""
msgstr "Necessito permís de gestió de rols per fer-ho."
#: redbot/cogs/admin/admin.py:61
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
msgstr ""
msgstr "Ja estic anunciant alguna cosa. Si voleu fer un anunci diferent, primer utilitzeu `{prefix}announce cancel`."
#: redbot/cogs/admin/admin.py:71
#, docstring
msgid "A collection of server administration utilities."
msgstr ""
msgstr "Una col·lecció dutilitats dadministració de servidors."
#: redbot/cogs/admin/admin.py:162
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
msgstr "{member.display_name} ja té el rol {role.name}."
#: redbot/cogs/admin/admin.py:182
msgid "I successfully added {role.name} to {member.display_name}"
msgstr ""
msgstr "He afegit amb èxit {role.name} a {member.display_name}"
#: redbot/cogs/admin/admin.py:192
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
msgstr "{member.display_name} no té el rol {role.name}."
#: redbot/cogs/admin/admin.py:212
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr ""
msgstr "He tret amb èxit {role.name} a {member.display_name}"
#: redbot/cogs/admin/admin.py:223
#, 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"
" Afegir un rol a un usuari.\n\n"
" Fer servir cometes si el rol té espais.\n"
" Si l'usuari es deixa en blanc el valor per defecte és l'autor del comandament.\n"
" "
#: redbot/cogs/admin/admin.py:239
#, 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"
" Treu un rol d'un usuari.\n\n"
" Fer servir cometes si el rol té espais.\n"
" Si l'usuari es deixa en blanc el valor per defecte és l'autor del comandament.\n"
" "
#: redbot/cogs/admin/admin.py:253
#, docstring
msgid "Edit role settings."
msgstr ""
msgstr "Editar la configuració del rol."
#: redbot/cogs/admin/admin.py:260
#, docstring
@@ -106,11 +114,19 @@ msgid "\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr ""
msgstr "\n"
" Editar el color d'un rol.\n\n"
" Fes servir cometes dobles si el rol té espais.\n"
" El color ha d'estar en format hexadecimal.\n"
" [Selector de color en línia](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Exemples:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
msgid "Done."
msgstr ""
msgstr "Fet."
#: redbot/cogs/admin/admin.py:293
#, docstring
@@ -120,34 +136,39 @@ msgid "\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr ""
msgstr "\n"
" Editar el nom d'un rol.\n\n"
" Fes servir cometes dobles si el rol o el nom té espais.\n\n"
" Exemple:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
#: redbot/cogs/admin/admin.py:327
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr ""
msgstr "Anunciar un missatge a tots els servidors en què es troba el bot."
#: redbot/cogs/admin/admin.py:334
msgid "The announcement has begun."
msgstr ""
msgstr "Lanunci ha començat."
#: redbot/cogs/admin/admin.py:341
#, docstring
msgid "Cancel a running announce."
msgstr ""
msgstr "Cancel·lar un anunci en curs."
#: redbot/cogs/admin/admin.py:343
msgid "There is no currently running announcement."
msgstr ""
msgstr "Actualment no hi ha cap anunci en curs."
#: redbot/cogs/admin/admin.py:346
msgid "The current announcement has been cancelled."
msgstr ""
msgstr "L'anunci actual s'ha cancel·lat."
#: redbot/cogs/admin/admin.py:352
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
msgstr "Canvia com senvien els anuncis en aquest servidor."
#: redbot/cogs/admin/admin.py:357
#, docstring
@@ -155,16 +176,19 @@ msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr ""
msgstr "\n"
" Canvieu el canal on el bot enviarà anuncis.\n\n"
" Si el canal es deixa en blanc el canal per defecte és el canal actual.\n"
" "
#: redbot/cogs/admin/admin.py:366
msgid "The announcement channel has been set to {channel.mention}"
msgstr ""
msgstr "El canal d'anuncis s'ha establert a {channel.mention}"
#: redbot/cogs/admin/admin.py:371
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
msgstr "Treu el canal per als anuncis."
#: redbot/cogs/admin/admin.py:396
#, docstring
@@ -173,7 +197,11 @@ msgid "\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
msgstr "\n"
" Afegeix o treu un rol a tu mateix.\n\n"
" Els administradors del servidor han d'haver configurat la funció com a configurable per l'usuari.\n"
" NOTA: El rol és sensible a majúscules!\n"
" "
#: redbot/cogs/admin/admin.py:409
#, docstring
@@ -182,7 +210,11 @@ msgid "\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
msgstr "\n"
" Afegeix un rol a tu mateix.\n\n"
" Els administradors del servidor han d'haver configurat la funció com a configurable per l'usuari.\n"
" NOTA: El rol és sensible a majúscules!\n"
" "
#: redbot/cogs/admin/admin.py:420
#, docstring
@@ -191,24 +223,31 @@ msgid "\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
msgstr "\n"
" Treu un rol de tu mateix.\n\n"
" Els administradors del servidor han d'haver configurat la funció com a configurable per l'usuari.\n"
" NOTA: El rol és sensible a majúscules!\n"
" "
#: redbot/cogs/admin/admin.py:431
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr ""
msgstr "\n"
" Llista tots els selfrols disponibles.\n"
" "
#: redbot/cogs/admin/admin.py:441
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr ""
msgstr "Selfroles disponibles:\n"
"{selfroles}"
#: redbot/cogs/admin/admin.py:447
#, docstring
msgid "Manage selfroles."
msgstr ""
msgstr "Gestiona selfroles."
#: redbot/cogs/admin/admin.py:452
#, docstring
@@ -216,19 +255,22 @@ msgid "\n"
" Add a role to the list of available selfroles.\n\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
msgstr "\n"
" Afegeix un rol a la llista de selfroles disponibles.\n\n"
" NOTA: El rol és sensible a majúscules!\n"
" "
#: redbot/cogs/admin/admin.py:459
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 "No puc deixar-te afegir {role.name} com a selfrole perquè el rol està per sobre o igual que el meu rol més alt a la jerarquia de Discord."
#: redbot/cogs/admin/admin.py:467
msgid "Added."
msgstr ""
msgstr "Afegit."
#: redbot/cogs/admin/admin.py:470
msgid "That role is already a selfrole."
msgstr ""
msgstr "Aquest rol ja és un selfrole."
#: redbot/cogs/admin/admin.py:474
#, docstring
@@ -236,42 +278,45 @@ msgid "\n"
" Remove a role from the list of available selfroles.\n\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
msgstr "\n"
" Treu un rol de la llista de selfroles disponibles.\n\n"
" NOTA: El rol és sensible a majúscules!\n"
" "
#: redbot/cogs/admin/admin.py:481
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 "No puc deixar-te treure {role.name} de ser un selfrole perquè el rol està per sobre o igual que el meu rol més alt a la jerarquia de Discord."
#: redbot/cogs/admin/admin.py:489
msgid "Removed."
msgstr ""
msgstr "Esborrat."
#: redbot/cogs/admin/admin.py:494
#, docstring
msgid "Lock a bot to its current servers only."
msgstr ""
msgstr "Bloqueja el bot només als seus servidors actuals."
#: redbot/cogs/admin/admin.py:499
msgid "The bot is no longer serverlocked."
msgstr ""
msgstr "El bot ja no està bloquejat pel servidor."
#: redbot/cogs/admin/admin.py:501
msgid "The bot is now serverlocked."
msgstr ""
msgstr "El bot està ara bloquejat pel servidor."
#: redbot/cogs/admin/announcer.py:68
msgid "I could not announce to the following server: "
msgstr ""
msgstr "No he pogut anunciar al servidor següent: "
#: redbot/cogs/admin/announcer.py:70
msgid "I could not announce to the following servers: "
msgstr ""
msgstr "No he pogut anunciar als servidor següents: "
#: redbot/cogs/admin/converters.py:12
msgid "The Admin cog is not loaded."
msgstr ""
msgstr "El cog Admin no s'ha carregat."
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr ""
msgstr "El rol proporcionat no és un selfrole vàlid."

View File

@@ -49,7 +49,7 @@ msgstr "Jai besoin de la permission de gérer les rôles pour faire cela."
#: redbot/cogs/admin/admin.py:61
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
msgstr "Je suis déjà en train d'annoncer quelque chose. Si tu souhaites faire une annonce différente, tu dois d'abord utiliser la commande `{prefix}announce cancel`."
msgstr "Je suis déjà en train d'annoncer quelque chose. Si vous souhaitez faire une annonce différente, vous devez d'abord utiliser la commande `{prefix}announce cancel`."
#: redbot/cogs/admin/admin.py:71
#, docstring
@@ -82,7 +82,7 @@ msgid "\n"
msgstr "\n"
" Ajouter un rôle à un utilisateur.\n\n"
" Utilisez des guillemets si le rôle contient des espaces.\n"
" Si l'utilisateur est laissé vide, c'est par défaut l'auteur de la commande.\n"
" Si l'utilisateur est laissé vide, ce sera par défaut l'auteur de la commande.\n"
" "
#: redbot/cogs/admin/admin.py:239
@@ -95,7 +95,7 @@ msgid "\n"
msgstr "\n"
" Retirer un rôle d'un utilisateur.\n\n"
" Utilisez des guillemets doubles si le rôle contient des espaces.\n"
" Si l'utilisateur est laissé vide, c'est par défaut l'auteur de la commande.\n"
" Si l'utilisateur est laissé vide, ce sera par défaut l'auteur de la commande.\n"
" "
#: redbot/cogs/admin/admin.py:253
@@ -120,7 +120,7 @@ msgstr "\n"
" La couleur doit être au format hexadécimal.\n"
" [Sélecteur de couleurs en ligne](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Exemples:\n"
" `[p]editrole color \"The Transistor\" #ff0000`\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
@@ -178,7 +178,7 @@ msgid "\n"
" "
msgstr "\n"
" Change le salon où le bot enverra les annonces.\n\n"
" Si le champ salon est laissé vide, il utilisera, par défaut, le salon actuel.\n"
" Si le champ salon est laissé vide, il utilisera par défaut le salon actuel.\n"
" "
#: redbot/cogs/admin/admin.py:366
@@ -197,7 +197,11 @@ msgid "\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
msgstr "\n"
" Ajoutez ou supprimez un auto-rôle de vous-même.\n\n"
" Les administrateurs du serveur doivent avoir configuré le rôle en tant qu'utilisable par les utilisateurs.\n"
" NOTE : Le rôle est sensible aux majuscules et minuscules !\n"
" "
#: redbot/cogs/admin/admin.py:409
#, docstring

View File

@@ -17,39 +17,39 @@ msgstr ""
#: redbot/cogs/admin/admin.py:18
msgid "I attempted to do something that Discord denied me permissions for. Your command failed to successfully complete."
msgstr "Ho cercato di fare qualcosa ma Discord mi ha negato i permessi per farla. Il tuo comando non è stato completato con successo."
msgstr "Ho provato a fare qualcosa ma Discord mi ha negato i permessi per farla. Il tuo comando non è stato completato con successo."
#: redbot/cogs/admin/admin.py:23
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 "Non posso dare {role.name} a {member.display_name} poiché quel ruolo è superiore o uguale al mio ruolo più alto nella gerarchia di Discord."
#: redbot/cogs/admin/admin.py:29
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 "Non posso rimuovere {role.name} da {member.display_name} poiché quel ruolo è superiore o uguale al mio ruolo più alto nella gerarchia di Discord."
#: redbot/cogs/admin/admin.py:35
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 "Non posso modificare {role.name} poiché quel ruolo è superiore o uguale al mio ruolo nella gerarchia di Discord."
#: redbot/cogs/admin/admin.py:41
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 "Non posso permetterti di dare {role.name} a {member.display_name} perché quel ruolo è superiore o uguale al tuo ruolo più alto nella gerarchia di Discord."
#: redbot/cogs/admin/admin.py:47
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 "Non posso permetterti di rimuovere {role.name} da {member.display_name} poiché quel ruolo è superiore o uguale al tuo ruolo più alto nella gerarchia di Discord."
#: redbot/cogs/admin/admin.py:53
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 "Non posso permetterti di modificare {role.name} perché quel ruolo è superiore o uguale al tuo ruolo più alto nella gerarchia di Discord."
#: redbot/cogs/admin/admin.py:59
msgid "I need manage roles permission to do that."
msgstr ""
msgstr "Mi serve il permesso gestire i ruoli per farlo."
#: redbot/cogs/admin/admin.py:61
msgid "I am already announcing something. If you would like to make a different announcement please use `{prefix}announce cancel` first."
msgstr "Sto già annunciando qualcosa. Se desideri fare un annuncio diverso, usa prima `{prefix}announce cancel`."
msgstr "Sto già annunciando qualcosa. Se vorresti fare un annuncio diverso, usa prima `{prefix}announce cancel`."
#: redbot/cogs/admin/admin.py:71
#, docstring
@@ -58,19 +58,19 @@ msgstr "Una collezione di servizi di amministrazione del server."
#: redbot/cogs/admin/admin.py:162
msgid "{member.display_name} already has the role {role.name}."
msgstr ""
msgstr "{member.display_name} ha già il ruolo {role.name}."
#: redbot/cogs/admin/admin.py:182
msgid "I successfully added {role.name} to {member.display_name}"
msgstr "Ho aggiunto con successo {role.name} al gruppo {member.display_name}"
msgstr "Ho aggiunto con successo {role.name} a {member.display_name}"
#: redbot/cogs/admin/admin.py:192
msgid "{member.display_name} does not have the role {role.name}."
msgstr ""
msgstr "{member.display_name} non ha il ruolo {role.name}."
#: redbot/cogs/admin/admin.py:212
msgid "I successfully removed {role.name} from {member.display_name}"
msgstr "Ho rimosso con successo {role.name} dal gruppo {member.display_name}"
msgstr "Ho rimosso con successo {role.name} da {member.display_name}"
#: redbot/cogs/admin/admin.py:223
#, docstring
@@ -79,7 +79,10 @@ 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"
"Aggiungi un ruolo ad un membro.\n\n"
"Usa le virgolette se il ruolo contiene spazi.\n"
"Se l'utente è lasciato vuoto, prenderà per predefinito chi ha utilizzato il comando. "
#: redbot/cogs/admin/admin.py:239
#, docstring
@@ -88,7 +91,10 @@ 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"
"Rimuove un ruolo da un utente.\n\n"
"Usa le virgolette se il ruolo contiene spazi.\n"
"Se l'utente è lasciato vuoto, prenderà per predefinito chi ha utilizzato il comando. "
#: redbot/cogs/admin/admin.py:253
#, docstring
@@ -106,7 +112,14 @@ msgid "\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900`\n"
" "
msgstr ""
msgstr "\n"
"Modifica il colore di un ruolo.\n\n"
"Usa le virgolette se il ruolo contiene spazi.\n"
"Il colore deve essere in formato esadecimale.\n"
"[Online colour picker](http://www.w3schools.com/colors/colors_picker.asp)\n\n"
" Esempi:\n"
" `[p]editrole colour \"The Transistor\" #ff0000`\n"
" `[p]editrole colour Test #ff9900` "
#: redbot/cogs/admin/admin.py:289 redbot/cogs/admin/admin.py:322
msgid "Done."
@@ -120,12 +133,16 @@ msgid "\n"
" Example:\n"
" `[p]editrole name \"The Transistor\" Test`\n"
" "
msgstr ""
msgstr "\n"
"Modifica il nome di un ruolo.\n\n"
"Usa le virgolette se il ruolo o il nome contengono spazi.\n\n"
"Esempio:\n"
" `[p]editrole name \"The Transistor\" Test` "
#: redbot/cogs/admin/admin.py:327
#, docstring
msgid "Announce a message to all servers the bot is in."
msgstr "Invia un annuncio a tutti i server in cui si trova il bot."
msgstr "Annuncia un messaggio a tutti i server in cui si trova il bot."
#: redbot/cogs/admin/admin.py:334
msgid "The announcement has begun."
@@ -138,16 +155,16 @@ msgstr "Cancella un annuncio in corso."
#: redbot/cogs/admin/admin.py:343
msgid "There is no currently running announcement."
msgstr ""
msgstr "Non c'è alcun annuncio in corso."
#: redbot/cogs/admin/admin.py:346
msgid "The current announcement has been cancelled."
msgstr "L'annuncio in corso è stato cancellato."
msgstr "Il corrente annuncio è stato cancellato."
#: redbot/cogs/admin/admin.py:352
#, docstring
msgid "Change how announcements are sent in this guild."
msgstr ""
msgstr "Cambia come gli annunci sono inviati in questo server."
#: redbot/cogs/admin/admin.py:357
#, docstring
@@ -155,16 +172,18 @@ msgid "\n"
" Change the channel where the bot will send announcements.\n\n"
" If channel is left blank it defaults to the current channel.\n"
" "
msgstr ""
msgstr "\n"
"Cambia il canale dove il bot manderà gli annunci.\n\n"
"Se il canale è lasciato vuoto prenderà per predefinito il canale corrente. "
#: redbot/cogs/admin/admin.py:366
msgid "The announcement channel has been set to {channel.mention}"
msgstr "Il canale per gli annunci è stato impostato su {channel.mention}"
msgstr "Il canale di annuncio è stato impostato su {channel.mention}"
#: redbot/cogs/admin/admin.py:371
#, docstring
msgid "Unsets the channel for announcements."
msgstr ""
msgstr "Rimuove il canale per gli annunci."
#: redbot/cogs/admin/admin.py:396
#, docstring
@@ -173,7 +192,10 @@ msgid "\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
msgstr "\n"
"Aggiungi o rimuovi un ruolo a te stesso.\n\n"
"Gli amministratori devono avere configurato il ruolo come impostabile dall'utente.\n"
"NOTA: Il ruolo è caso sensitivo! "
#: redbot/cogs/admin/admin.py:409
#, docstring
@@ -182,7 +204,10 @@ msgid "\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
msgstr "\n"
"Aggiungi un ruolo a te stesso.\n\n"
"Gli amministratori devono avere configurato il ruolo come impostabile dall'utente.\n"
"NOTA: Il ruolo è caso sensitivo! "
#: redbot/cogs/admin/admin.py:420
#, docstring
@@ -191,24 +216,29 @@ msgid "\n"
" Server admins must have configured the role as user settable.\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
msgstr "\n"
"Rimuovi un ruolo a te stesso.\n\n"
"Gli amministratori devono avere configurato il ruolo come impostabile dall'utente.\n"
"NOTA: Il ruolo è caso sensitivo! "
#: redbot/cogs/admin/admin.py:431
#, docstring
msgid "\n"
" Lists all available selfroles.\n"
" "
msgstr ""
msgstr "\n"
"Elenca tutti i ruoli assegnabili dall'utente. "
#: redbot/cogs/admin/admin.py:441
msgid "Available Selfroles:\n"
"{selfroles}"
msgstr ""
msgstr "Ruoli assegnabili dall'utente:\n"
"{selfroles}"
#: redbot/cogs/admin/admin.py:447
#, docstring
msgid "Manage selfroles."
msgstr ""
msgstr "Gestisci i ruoli assegnabili dall'utente."
#: redbot/cogs/admin/admin.py:452
#, docstring
@@ -216,19 +246,21 @@ msgid "\n"
" Add a role to the list of available selfroles.\n\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
msgstr "\n"
"Aggiungi un ruolo alla lista dei ruoli assegnabili dall'utente.\n\n"
"NOTA: Il ruolo è caso sensitivo! "
#: redbot/cogs/admin/admin.py:459
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 "Non posso permetterti di aggiungere {role.name} come ruolo assegnabile dall'utente poiché tale ruolo è superiore o uguale al tuo ruolo più alto nella gerarchia di Discord."
#: redbot/cogs/admin/admin.py:467
msgid "Added."
msgstr ""
msgstr "Aggiunto."
#: redbot/cogs/admin/admin.py:470
msgid "That role is already a selfrole."
msgstr ""
msgstr "Quel ruolo è già un ruolo assegnabile dall'utente."
#: redbot/cogs/admin/admin.py:474
#, docstring
@@ -236,15 +268,17 @@ msgid "\n"
" Remove a role from the list of available selfroles.\n\n"
" NOTE: The role is case sensitive!\n"
" "
msgstr ""
msgstr "\n"
"Rimuovi un ruolo dalla lista dei ruoli assegnabili dall'utente.\n\n"
"NOTA: Il ruolo è caso sensitivo! "
#: redbot/cogs/admin/admin.py:481
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 "Non posso permetterti di rimuovere {role.name} dall'essere un selfrole perché quel ruolo è superiore o uguale al tuo ruolo più alto nella gerarchia di Discord."
#: redbot/cogs/admin/admin.py:489
msgid "Removed."
msgstr ""
msgstr "Rimosso."
#: redbot/cogs/admin/admin.py:494
#, docstring
@@ -257,15 +291,15 @@ msgstr "Il bot non è più bloccato ai server."
#: redbot/cogs/admin/admin.py:501
msgid "The bot is now serverlocked."
msgstr "Il bot è bloccato ai server."
msgstr "Il bot è adesso bloccato ai server."
#: redbot/cogs/admin/announcer.py:68
msgid "I could not announce to the following server: "
msgstr ""
msgstr "Non ho potuto annunciare al seguente server: "
#: redbot/cogs/admin/announcer.py:70
msgid "I could not announce to the following servers: "
msgstr ""
msgstr "Non ho potuto annunciare ai seguenti server: "
#: redbot/cogs/admin/converters.py:12
msgid "The Admin cog is not loaded."
@@ -273,5 +307,5 @@ msgstr "Il cog Admin non è caricato."
#: redbot/cogs/admin/converters.py:20
msgid "The provided role is not a valid selfrole."
msgstr "Il ruolo fornito non è un ruolo autoassegnabile valido."
msgstr "Il ruolo fornito non è un ruolo assegnabile dall'utente valido."

View File

@@ -140,7 +140,7 @@ msgstr "\n"
" Bewerk de rolnaam.\n\n"
" Gebruik dubbele aanhalingstekens als de rol of de naam spaties bevat.\n\n"
" Voorbeeld:\n"
" `[p]bewerkrole naam \"The Transistor\" Test`\n"
" `[p]editrole naam \"The Transistor\" Test`\n"
" "
#: redbot/cogs/admin/admin.py:327

View File

@@ -33,7 +33,7 @@ msgstr "Я не могу редактировать роль {role.name}, пот
#: redbot/cogs/admin/admin.py:41
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 "Я не могу вам дать {role.name}, {member.display_name}, поскольку эта роль выше или равна вашей самой высокой роли в иерархии Discord."
msgstr "Я не могу дать {role.name} пользователю {member.display_name}, поскольку эта роль выше или равна вашей самой высокой роли в иерархии Discord."
#: redbot/cogs/admin/admin.py:47
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."

View File

@@ -185,7 +185,7 @@ class Alias(commands.Cog):
# noinspection PyDunderSlots
new_message.content = "{}{} {}".format(
prefix, command, " ".join(args[trackform.max + 1 :])
)
).strip()
await self.bot.process_commands(new_message)
async def paginate_alias_list(

View File

@@ -39,7 +39,8 @@ msgstr "Alias :\n"
#: redbot/cogs/alias/alias.py:205
msgid "\n\n"
"Page {page}/{total}"
msgstr ""
msgstr "\n\n"
"Page {page}/{total}"
#: redbot/cogs/alias/alias.py:215
#, docstring
@@ -58,7 +59,7 @@ msgstr "Ajouter un alias à une commande."
#: redbot/cogs/alias/alias.py:232
msgid "You attempted to create a new alias with the name {name} but that name is already a command on this bot."
msgstr "Tu as tenté de créer un nouvel alias nommé {name}, mais une commande existe déjà avec ce nom sur ce bot."
msgstr "Vous avez tenté de créer un nouvel alias nommé {name}, mais une commande avec ce nom existe déjà sur ce bot."
#: redbot/cogs/alias/alias.py:243
msgid "You attempted to create a new alias with the name {name} but that alias already exists."
@@ -66,7 +67,7 @@ msgstr "Vous avez tenté de créer un nouvel alias avec le nom {name} mais cet a
#: redbot/cogs/alias/alias.py:254
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr "Tu as tenté de créer un nouvel alias nommé {name}, mais ce nom d'alias est invalide. Les noms d'alias ne peuvent pas contenir d'espaces."
msgstr "Vous avez tenté de créer un nouvel alias nommé {name}, mais ce nom d'alias est invalide. Les noms d'alias ne peuvent pas contenir d'espaces."
#: redbot/cogs/alias/alias.py:266 redbot/cogs/alias/alias.py:325
msgid "You attempted to create a new alias for a command that doesn't exist."
@@ -83,7 +84,7 @@ msgstr "Ajouter un alias global à une commande."
#: redbot/cogs/alias/alias.py:291
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
msgstr "Tu as tenté de créer un nouvel alias global nommé {name}, mais une commande existe déjà avec ce nom sur ce bot."
msgstr "Vous avez tenté de créer un nouvel alias global nommé {name}, mais une commande avec ce nom existe déjà sur ce bot."
#: redbot/cogs/alias/alias.py:302
msgid "You attempted to create a new global alias with the name {name} but that alias already exists."
@@ -91,7 +92,7 @@ msgstr "Vous avez tenté de créer un nouvel alias global avec le nom {name} mai
#: redbot/cogs/alias/alias.py:313
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr "Tu as tenté de créer un nouvel alias global nommé {name}, mais ce nom d'alias est invalide. Les noms d'alias ne peuvent pas contenir d'espaces."
msgstr "Vous avez tenté de créer un nouvel alias global nommé {name}, mais ce nom d'alias est invalide. Les noms d'alias ne peuvent pas contenir d'espaces."
#: redbot/cogs/alias/alias.py:336
msgid "A new global alias with the trigger `{name}` has been created."

View File

@@ -24,77 +24,80 @@ msgid "Create aliases for commands.\n\n"
" When run, aliases will accept any additional arguments\n"
" and append them to the stored alias.\n"
" "
msgstr ""
msgstr "Crea degli pseudonimi per i comandi.\n\n"
"Gli pseudonimi sono scorciatoie alternative per i comandi. Possono essere impiegati come lambda (salvare gli argomenti per un uso ripetuto) o semplicemente come una scorciatoia per dire \"x y z\".\n\n"
"Quando eseguiti, gli pseudonimi accetteranno eventuali argomenti e li aggiungeranno agli altri pseudonimi memorizzati. "
#: redbot/cogs/alias/alias.py:203
msgid "Aliases:\n"
msgstr ""
msgstr "Pseudonimi:\n"
#: redbot/cogs/alias/alias.py:205
msgid "\n\n"
"Page {page}/{total}"
msgstr ""
msgstr "\n\n"
"Pagina {page} di {total}"
#: redbot/cogs/alias/alias.py:215
#, docstring
msgid "Manage command aliases."
msgstr "Gestisci gli alias dei comandi."
msgstr "Gestisci gli pseudonimi dei comandi."
#: redbot/cogs/alias/alias.py:220
#, docstring
msgid "Manage global aliases."
msgstr "Gestisci alias globali."
msgstr "Gestisci gli pseudonimi globali."
#: redbot/cogs/alias/alias.py:227
#, docstring
msgid "Add an alias for a command."
msgstr "Aggiungi un alias per un comando."
msgstr "Aggiungi uno pseudonimo per un comando."
#: redbot/cogs/alias/alias.py:232
msgid "You attempted to create a new alias with the name {name} but that name is already a command on this bot."
msgstr "Hai cercato di creare un nuovo alias con il nome {name}, ma questo nome corrisponde già a un comando su questo bot."
msgstr "Hai cercato di creare un nuovo pseudonimo con il nome {name} ma questo nome corrisponde già ad un comando su questo bot."
#: redbot/cogs/alias/alias.py:243
msgid "You attempted to create a new alias with the name {name} but that alias already exists."
msgstr ""
msgstr "Hai provato a creare un nuovo pseudonimo con il nome {name} ma quello pseudonimo esiste già."
#: redbot/cogs/alias/alias.py:254
msgid "You attempted to create a new alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr "Hai cercato di creare un nuovo alias con il nome {name}, ma questo nome non è un nome alias valido. I nomi alias non possono contenere spazi."
msgstr "Hai cercato di creare un nuovo pseudonimo con il nome {name} ma quel nome non è un valido pseudonimo. Gli pseudonimi non possono contenere spazi."
#: redbot/cogs/alias/alias.py:266 redbot/cogs/alias/alias.py:325
msgid "You attempted to create a new alias for a command that doesn't exist."
msgstr ""
msgstr "Hai provato a creare un nuovo pseudonimo per un comando che non esiste."
#: redbot/cogs/alias/alias.py:280
msgid "A new alias with the trigger `{name}` has been created."
msgstr "È stato creato un nuovo alias con il comando '{name}'."
msgstr "Un nuovo pseudonimo con il comando '{name}' è stato creato."
#: redbot/cogs/alias/alias.py:286
#, docstring
msgid "Add a global alias for a command."
msgstr "Aggiungi un alias globale per un comando."
msgstr "Aggiungi uno pseudonimo globale per un comando."
#: redbot/cogs/alias/alias.py:291
msgid "You attempted to create a new global alias with the name {name} but that name is already a command on this bot."
msgstr "Hai cercato di creare un nuovo alias globale con il nome {name}, ma questo nome corrisponde già a un comando su questo bot."
msgstr "Hai provato a creare un nuovo pseudonimo globale con il nome {name} ma questo nome è già un comando su questo bot."
#: redbot/cogs/alias/alias.py:302
msgid "You attempted to create a new global alias with the name {name} but that alias already exists."
msgstr ""
msgstr "Hai provato a creare un nuovo pseudonimo globale con il nome {name} ma quello pseudonimo esiste già."
#: redbot/cogs/alias/alias.py:313
msgid "You attempted to create a new global alias with the name {name} but that name is an invalid alias name. Alias names may not contain spaces."
msgstr "Hai cercato di creare un nuovo alias globale con il nome {name}, ma questo nome non è un nome alias valido. I nomi alias non possono contenere spazi."
msgstr "Hai cercato di creare un nuovo pseudonimo globale con il nome {name} ma questo nome non è uno pseudonimo valido. Gli pseudonimi non possono contenere spazi."
#: redbot/cogs/alias/alias.py:336
msgid "A new global alias with the trigger `{name}` has been created."
msgstr "È stato creato un nuovo alias globale con il comando '{name}'."
msgstr "Un nuovo pseudonimo globale con il comando '{name}' è stato creato."
#: redbot/cogs/alias/alias.py:343
#, docstring
msgid "Try to execute help for the base command of the alias."
msgstr "Prova a eseguire l'aiuto per il comando di base dell'alias."
msgstr "Prova a eseguire l'aiuto per il comando di base degli pseudonimi."
#: redbot/cogs/alias/alias.py:348
msgid "No such alias exists."
@@ -103,20 +106,20 @@ msgstr "Non esiste nessun alias con questo nome."
#: redbot/cogs/alias/alias.py:352
#, docstring
msgid "Show what command the alias executes."
msgstr "Mostra quale comando viene eseguito dall'alias."
msgstr "Mostra quale comando viene eseguito dallo pseudonimo."
#: redbot/cogs/alias/alias.py:357
msgid "The `{alias_name}` alias will execute the command `{command}`"
msgstr "L'alias `{alias_name}` eseguirà il comando `{command}`"
msgstr "Lo pseudonimo `{alias_name}` eseguirà il comando `{command}`"
#: redbot/cogs/alias/alias.py:362
msgid "There is no alias with the name `{name}`"
msgstr "Non c'è nessun alias con il nome `{name}`"
msgstr "Non c'è alcun pseudonimo con il nome `{name}`"
#: redbot/cogs/alias/alias.py:368
#, docstring
msgid "Delete an existing alias on this server."
msgstr "Elimina un alias esistente su questo server."
msgstr "Elimina uno pseudonimo esistente su questo server."
#: redbot/cogs/alias/alias.py:370 redbot/cogs/alias/alias.py:402
msgid "There are no aliases on this server."
@@ -124,34 +127,34 @@ msgstr "Non ci sono alias su questo server."
#: redbot/cogs/alias/alias.py:375 redbot/cogs/alias/alias.py:390
msgid "Alias with the name `{name}` was successfully deleted."
msgstr "L'alias con il nome `{name}` è stato eliminato con successo."
msgstr "Lo pseudonimo con il nome `{name}` è stato eliminato con successo."
#: redbot/cogs/alias/alias.py:378 redbot/cogs/alias/alias.py:393
msgid "Alias with name `{name}` was not found."
msgstr "L'alias con il nome `{name}` non è stato trovato."
msgstr "Lo pseudonimo con il nome `{name}` non è stato trovato."
#: redbot/cogs/alias/alias.py:383
#, docstring
msgid "Delete an existing global alias."
msgstr "Elimina un alias globale esistente."
msgstr "Elimina uno pseudonimo globale esistente."
#: redbot/cogs/alias/alias.py:385
msgid "There are no global aliases on this bot."
msgstr ""
msgstr "Non ci sono pseudonimi globali su questo bot."
#: redbot/cogs/alias/alias.py:399
#, docstring
msgid "List the available aliases on this server."
msgstr "Elenca gli alias disponibili su questo server."
msgstr "Elenca gli pseudonimi disponibili su questo server."
#: redbot/cogs/alias/alias.py:408
#, docstring
msgid "List the available global aliases on this bot."
msgstr "Elenca gli alias globali disponibili su questo server."
msgstr "Elenca gli pseudonimi globali disponibili su questo server."
#: redbot/cogs/alias/alias.py:411
msgid "There are no global aliases."
msgstr ""
msgstr "Non ci sono pseudonimi globali."
#: redbot/cogs/alias/alias_entry.py:198
msgid "Arguments must be specified with a number."

View File

@@ -211,6 +211,7 @@ class AudioAPIInterface:
time_now = int(datetime.datetime.now(datetime.timezone.utc).timestamp())
youtube_cache = CacheLevel.set_youtube().is_subset(current_cache_level)
youtube_api_error = None
global_api = self.cog.global_api_user.get("can_read")
async for track in AsyncIter(tracks):
if isinstance(track, str):
break
@@ -267,13 +268,15 @@ class AudioAPIInterface:
track_count += 1
if notifier is not None and ((track_count % 2 == 0) or (track_count == total_tracks)):
await notifier.notify_user(current=track_count, total=total_tracks, key="youtube")
if notifier is not None and youtube_api_error:
if notifier is not None and (youtube_api_error and not global_api):
error_embed = discord.Embed(
colour=await ctx.embed_colour(),
title=_("Failing to get tracks, skipping remaining."),
)
await notifier.update_embed(error_embed)
break
elif notifier is not None and (youtube_api_error and global_api):
continue
if CacheLevel.set_spotify().is_subset(current_cache_level):
task = ("insert", ("spotify", database_entries))
self.append_task(ctx, *task)
@@ -447,11 +450,12 @@ class AudioAPIInterface:
List of Youtube URLs.
"""
await self.global_cache_api._get_api_key()
globaldb_toggle = await self.config.global_db_enabled()
globaldb_toggle = self.cog.global_api_user.get("can_read")
global_entry = globaldb_toggle and query_global
track_list: List = []
has_not_allowed = False
youtube_api_error = None
skip_youtube_api = False
try:
current_cache_level = CacheLevel(await self.config.cache_level())
guild_data = await self.config.guild(ctx.guild).all()
@@ -518,7 +522,7 @@ class AudioAPIInterface:
llresponse["loadType"] = "V2_COMPAT"
llresponse = LoadResult(llresponse)
val = llresponse or None
if val is None:
if val is None and not skip_youtube_api:
try:
val = await self.fetch_youtube_query(
ctx, track_info, current_cache_level=current_cache_level
@@ -526,6 +530,7 @@ class AudioAPIInterface:
except YouTubeApiError as err:
val = None
youtube_api_error = err.message
skip_youtube_api = True
if not youtube_api_error:
if youtube_cache and val and llresponse is None:
task = ("update", ("youtube", {"track": track_info}))
@@ -589,7 +594,9 @@ class AudioAPIInterface:
seconds=seconds,
)
if youtube_api_error or consecutive_fails >= (20 if global_entry else 10):
if (youtube_api_error and not global_entry) or consecutive_fails >= (
20 if global_entry else 10
):
error_embed = discord.Embed(
colour=await ctx.embed_colour(),
title=_("Failing to get tracks, skipping remaining."),
@@ -793,7 +800,7 @@ class AudioAPIInterface:
val = None
query = Query.process_input(query, self.cog.local_folder_current_path)
query_string = str(query)
globaldb_toggle = await self.config.global_db_enabled()
globaldb_toggle = self.cog.global_api_user.get("can_read")
valid_global_entry = False
results = None
called_api = False
@@ -925,6 +932,7 @@ class AudioAPIInterface:
autoplaylist = await self.config.guild(player.channel.guild).autoplaylist()
current_cache_level = CacheLevel(await self.config.cache_level())
cache_enabled = CacheLevel.set_lavalink().is_subset(current_cache_level)
notify_channel_id = player.fetch("channel")
playlist = None
tracks = None
if autoplaylist["enabled"]:
@@ -973,7 +981,7 @@ class AudioAPIInterface:
and not query.local_track_path.exists()
):
continue
notify_channel = self.bot.get_channel(player.fetch("channel"))
notify_channel = self.bot.get_channel(notify_channel_id)
if not await self.cog.is_query_allowed(
self.config,
notify_channel,
@@ -997,8 +1005,20 @@ class AudioAPIInterface:
)
player.add(player.channel.guild.me, track)
self.bot.dispatch(
"red_audio_track_auto_play", player.channel.guild, track, player.channel.guild.me
"red_audio_track_auto_play",
player.channel.guild,
track,
player.channel.guild.me,
player,
)
if notify_channel_id:
await self.config.guild_from_id(
guild_id=player.channel.guild.id
).currently_auto_playing_in.set([notify_channel_id, player.channel.id])
else:
await self.config.guild_from_id(
guild_id=player.channel.guild.id
).currently_auto_playing_in.set([])
if not player.current:
await player.play()

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Afrikaans\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: af_ZA\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Arabic\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: ar_SA\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr "فشل في الحصول على المسارات ، التخطي المتبقي."
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr "لا يبدو أن هذا عنوان URL أو رمز Spotify مدعوم."
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr "تم إعادة تعيين الاتصال أثناء تحميل قائمة التشغيل."
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr "مهلة اللاعب، تخطي المسارات المتبقية."
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr "قائمة التشغيل قائمة الانتظار"
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr "أضاف {num} مسارات إلى قائمة الانتظار.{maxlength_msg}"
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr "أضاف {num} مسارات إلى قائمة الانتظار.{maxlength_msg}"
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Bulgarian\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: bg_BG\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Bosnian\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: bs_BA\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Catalan\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: ca_ES\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"MIME-Version: 1.0\n"
@@ -15,51 +15,51 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: cs_CZ\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr "Nepodařilo se získat skladby, přeskakuji zbývající."
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 klíč nebo klientský tajný klíč nebyl správně nastaven. \n"
"Pro pokyny použijte `{prefix}audioset spotifyapi`."
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr "Nezdá se, že by to byla platná adresa Spotify playlistu/alba nebo kód."
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr "Pravděpodobně se nejedná o podporovaný Spotify odkaz nebo kód."
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr "Připojení bylo obnoveno při načítání seznamu skladeb."
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr "Vypršel časový limit přehrávače, přeskakuji zbývající skladby."
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr " {bad_tracks} skladby nemůžou být zařazeny do fronty."
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr "Playlist zařazen do fronty"
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr "Přidáno {num} skladeb do fronty.{maxlength_msg}"
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr "{time} do začátku přehrávání playlistu: je na #{position} pozici ve frontě"
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: da_DK\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: German\n"
"MIME-Version: 1.0\n"
@@ -15,51 +15,51 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: de_DE\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr "Fehler beim laden der Tracks. Verbleibende Tracks werden übersprungen."
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 "Der Spotify API Key oder dar Client secret wurden nicht richtig eingestellt.\n"
" Benutze `{prefix}audioset spotifyapi` für eine Anleitung."
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr "Dies scheint keine gültige Spotify-Playlist/Album-URL oder Spotify-Code zu sein."
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr "Dies scheint keine unterstützte Spotify-URL oder Spotify-Code zu sein."
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr "Die Verbindung wurde zurückgesetzt beim Laden der Playlist."
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr "Audioplayer-Timeout. Verbleibende Titel werden übersprungen."
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr " {bad_tracks} Tracks können nicht zur Warteschlange hinzugefügt werden."
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr "Playlist eingereiht"
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr "Es wurden {num} Tracks zu der Playlist hinzugefügt.{maxlength_msg}"
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr "{time} bis zum Start der Playlist: beginnt bei #{position} in der Warteschlange"
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: el_GR\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"MIME-Version: 1.0\n"
@@ -15,51 +15,51 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: es_ES\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr "Falta al obtener pistas, omitiendo el resto."
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 "La clave API de Spotify o el cliente secreto no se han configurado correctamente. \n"
"Usa `{prefix}audioset spotifyapi` para obtener instrucciones."
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr "Esta no parece ser una URL o código válido de la lista/álbum de Spotify."
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr "Esta no parece ser una URL o código compatible con Spotify."
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr "La conexión se reinició mientras se cargaba la lista de reproducción."
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr "Tiempo de espera del reproductor, omitiendo pistas restantes."
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr " {bad_tracks} pistas no pueden ser puestas en cola."
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr "Lista de reproducción en cola"
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr "Añadido {num} pistas a la cola.{maxlength_msg}"
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr "{time} hasta el inicio de la reproducción de la lista: comienza en #{position} en cola"
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"MIME-Version: 1.0\n"
@@ -15,51 +15,51 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: fi_FI\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr "Kappaleiden hakeminen ei onnistu, ohitetaan jäljellä olevat."
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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-avainta tai client secret -arvoa ei ole asetettu oikein. \n"
"Käytä`{prefix}audioset spotifyapi` saadaksesi ohjeita."
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr "Tuo ei näytä olevan kelvollinen soittolistan/albumin Spotify-osoite tai -koodi."
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr "Tuo ei näytä olevan kelvollinen Spotify-osoite tai -koodi."
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr "Yhteys nollattiin soittolistaa ladatessa."
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr "Toistimen aikakatkaisu, ohitetaan jäljellä olevat kappaleet."
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr " {bad_tracks} kappaletta ei voida lisätä jonoon."
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr "Soittolista lisätty jonoon"
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr "Lisättiin {num} kappaletta jonoon.{maxlength_msg}"
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr "{time} aikaa soittolistan toiston aloittamiseen: alkaa sijalla #{position} jonossa"
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: French\n"
"MIME-Version: 1.0\n"
@@ -15,51 +15,51 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: fr_FR\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr "Impossible d'obtenir les pistes, pistes ignorées."
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 "La clé API de Spotify ou le secret client n'ont pas étés correctement définis. \n"
"Utilisez `{prefix}audioset spotifyapi` pour connaître la marche à suivre."
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr "Cela ne semble pas être une URL ou un album/playlist Spotify valide."
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr "Cela ne semble pas être une URL ou un code Spotify pris en charge."
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr "La connexion a été réinitialisée lors du chargement de la playlist."
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr "Arrêt du lecteur, pistes restantes ignorées."
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr " {bad_tracks} pistes ne peuvent pas être mises en attente."
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr "Playlist en file dattente"
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr "Ajout de {num} pistes à la file d'attente.{maxlength_msg}"
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr "{time} avant le début de la lecture de la playlist : commence à #{position} dans la liste"
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: he_IL\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Hindi\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: hi_IN\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: hu_HU\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"MIME-Version: 1.0\n"
@@ -15,51 +15,51 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: id_ID\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr "Gagal mendapatkan trek, melewatkan sisa."
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 "Kunci Spotify API atau rahasia klien belum disetel dengan benar.\n"
"Gunakan `{prefix} audioset spotifyapi` untuk mendapatkan petunjuk."
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr "Tampaknya ini bukan URL atau kode playlist/album Spotify yang valid."
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr "Tampaknya ini bukan URL atau kode Spotify yang didukung."
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr "Sambungan disetel ulang saat memuat daftar putar."
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr "Waktu tunggu pemain, melewatkan trek yang tersisa."
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr " {bad_tracks} lagu tidak dapat diantrekan."
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr "Antrean Daftar Putar"
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr "Menambahkan {num} trek ke antrian. {maxlength_msg}"
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr "{time} hingga dimulainya pemutaran playlist: dimulai dari #{position} dalam antrian"
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"MIME-Version: 1.0\n"
@@ -15,62 +15,67 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: it_IT\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
msgstr "Impossibile ottenere le tracce, salto le rimanenti."
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
msgstr "La chiave API o il client secret di Spotify non sono stati impostati correttamente. \n"
"Usa `{prefix}audioset spotifyapi` per le istruzioni."
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
msgstr "Questo non sembra essere un URL playlist/album o un codice Spotify valido."
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
msgstr "Questo non sembra essere un URL o un codice Spotify supportato."
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
msgstr "La connessione è stata reimpostata durante il caricamento della playlist."
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
msgstr "Timeout del lettore, salto le tracce rimanenti."
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
msgstr " {bad_tracks} tracce non possono essere accodate."
#: redbot/cogs/audio/apis/interface.py:676
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
msgid "Playlist Enqueued"
msgstr "Playlist in coda"
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr "Aggiunte {num} tracce alla coda.{maxlength_msg}"
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr "{time} fino all'inizio della riproduzione della playlist: inizia da #{position} in coda"
#: redbot/cogs/audio/apis/interface.py:694
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 ""
msgstr "Trovato nulla.\n"
"La chiave API di YouTube potrebbe non essere valida o potresti essere limitato dal servizio di ricerca di YouTube.\n"
"Controlla di nuovo la chiave API di YouTube e segui le istruzioni su `{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 ""
msgstr "Il tuo token API di YouTube non è valido.\n"
"Controlla nuovamente la chiave API di YouTube e segui le istruzioni su `{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 ""
msgstr "Codice di errore API di YouTube: 403\n"
"La tua chiave API di YouTube potrebbe aver raggiunto il limite di query dell'account per oggi. Controlla <https://developers.google.com/youtube/v3/getting-started#quota> per ulteriori informazioni."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: ja_JP\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"MIME-Version: 1.0\n"
@@ -15,51 +15,51 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: ko_KR\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr "트랙을 추가하지 못해 나머지는 건너 뜁니다."
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 "You deleted the translation \"Spotify API 키 또는 client secret이 올바르게 설정되지 않았습니다. \n"
"`{prefix}audioset spotifyapi`를 사용하여 명령어들을 확인하세요.\""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr "유효한 Spotify 재생 목록, 앨범 URL 또는 코드가 아닌것 같습니다."
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr "지원되는 Spotify URL 또는 코드가 아닌 것 같습니다."
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr "재생 목록을 로드하는 동안 연결이 재설정되었습니다."
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr "플래이어 시간이 초과되었습니다. 남은 트랙들을 건너 뜁니다."
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr " {bad_tracks} 을 대기열에 추가할 수 없습니다."
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr "대기중인 재생 목록"
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr "대기열에 {num} 개의 트랙이 추가되었습니다. {maxlength_msg}"
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr "재생 목록 재생이 시작될 때까지 {time} 남았습니다.: 대기열의 #{position} 에 시작합니다."
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Norwegian Bokmal\n"
"MIME-Version: 1.0\n"
@@ -15,51 +15,51 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: nb_NO\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr "Klarer ikke å få spor, hopper over."
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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-nøkkelen eller klienten hemmelig har ikke blitt satt ordentlig. \n"
"Bruk `{prefix}audioset spotifyapi` for instruksjoner."
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr "Dette ser ikke ut til å være en gyldig Spotify-spilleliste/album-URL eller kode."
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr "Dette ser ikke ut til å være en støttet URL eller kode fra Spotify."
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr "Tilkoblingen ble tilbakestilt under lasting av spillelisten."
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr "Spillerens tidsavbrudd hopper over gjenstående spor."
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr " {bad_tracks} spor kan ikke legges i kø."
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr "Spilleliste lagt i kø"
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr "La til {num} spor i avspillingskøen.{maxlength_msg}"
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr "{time} til start av spilleliste avspilling: starter på #{position} i kø"
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"MIME-Version: 1.0\n"
@@ -15,51 +15,51 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: nl_NL\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr "Fout bij het krijgen van tracks, resterend overslaan."
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 "De Spotitify API-sleutel of clientgeheim is niet correct ingesteld. \n"
"Gebruik `{prefix}audioset spotifyapi` voor instructies."
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr "Dit lijkt geen geldige Spotify afspeellijst/album URL of code te zijn."
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr "Dit lijkt geen ondersteunde Spotify URL of code te zijn."
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr "De verbinding is gereset tijdens het laden van de afspeellijst."
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr "Speler time-out, resterende nummers worden overgeslagen."
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr " {bad_tracks} nummers kunnen niet in de wachtrij worden geplaatst."
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr "Afspeellijst toegevoegd"
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr "Er zijn {num} nummers toegevoegd aan de wachtrij.{maxlength_msg}"
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr "{time} tot het begin van het afspelen van de afspeellijst: begint bij #{position} in de wachtrij"
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"MIME-Version: 1.0\n"
@@ -15,51 +15,51 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: pl_PL\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr "Nie udało się uzyskać utworów, pomijam pozostałe."
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 "Klucz Spotify API lub sekret klienta nie zostały poprawnie ustawione. \n"
"Użyj `{prefix}audioset spotifyapi` dla dalszych instrukcji."
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr "Wygląda na to, że nie jest to poprawny adres URL listy odtwarzania/albumu Spotify."
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr "Wygląda na to, że nie jest to obsługiwany adres URL lub kod Spotify."
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr "Połączenie zostało zresetowane podczas ładowania listy odtwarzania."
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr "Limit czasu odtwarzacza, pomijam pozostałe utwory."
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr " {bad_tracks} utworów nie może zostać zakolejkowane."
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr "Lista odtwarzania zakolejkowana"
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr "Dodano {num} utworów do kolejki.{maxlength_msg}"
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr "{time} do rozpoczęcia odtwarzania listy odtwarzania: zaczyna się od #{position} w kolejce"
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: pt_BR\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr "Falha ao obter as faixas; saltando as faixas restantes."
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr "Isto não parece ser uma URL ou código do Spotify válido."
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr "A conexão foi redefinida durante o carregamento da lista de reprodução."
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr "Tempo limite do reprodutor atingido; saltando as faixas restantes."
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr "Lista de reprodução enfileirada"
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr "{num} faixas enfileiradas.{maxlength_msg}"
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr "{time} até o início da reprodução da lista: começa na posição #{position} da fila"
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: pt_PT\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Romanian\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: ro_RO\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"MIME-Version: 1.0\n"
@@ -15,51 +15,51 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: ru_RU\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr "Не удалось получить треки, пропускаю оставшиеся треки."
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 "API ключ Spotify или секрет клиента были установлены неправильно. \n"
"Для получения инструкций используйте `{prefix}audioset spotifyapi`."
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr "Это не похоже на действительный адрес или код Spotify."
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr "Возможно, этот формат файла не поддерживается."
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr "Соединение было сброшено при загрузке плейлиста."
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr "Тайм-аут проигрывателя, пропуск оставшихся треков."
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr " {bad_tracks} невозможно добавить в очередь."
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr "Плейлист добавлен в очередь"
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr "{num} треков добавлено в очередь.{maxlength_msg}"
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr "{time} до начала воспроизведения плейлиста: начинается с #{position} в очереди"
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Slovak\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: sk_SK\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Serbian (Latin)\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: sr_CS\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Serbian (Cyrillic)\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: sr_SP\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: sv_SE\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"MIME-Version: 1.0\n"
@@ -15,51 +15,51 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: tr_TR\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr "Parça alınamıyor, atlanıyor."
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 anahtarı veya istemci sırrı düzgün ayarlanmamış. \n"
"Yönergeler için `{prefix}audioset spotifyapi` komutunu çalıştırın."
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr "Bu geçerli bir Spotify çalma listesi / albüm URL'si veya Kodu gibi görünmüyor."
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr "Bu geçerli bir Spotify URL'si ya da kodu gibi gözükmüyor."
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr "Playlist yüklenirken bağlantı yenilendi."
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr "Oynatıcı zaman aşımına uğradı, kalan parçalar atlanıyor."
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr " {bad_tracks} parçalar sıraya alınamaz."
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr "Playlist sıraya alındı"
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr "{num} adet şarkı sıraya eklendi.{maxlength_msg}"
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr "Playlistin başlamasına {time} süre var: #{position} sırasında başlar"
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Ukrainian\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: uk_UA\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: vi_VN\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: zh_CN\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional, Hong Kong\n"
"MIME-Version: 1.0\n"
@@ -15,50 +15,50 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: zh_HK\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 ""
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr ""
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr ""
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: red-discordbot\n"
"POT-Creation-Date: 2021-02-11 12:29+0000\n"
"POT-Creation-Date: 2021-04-05 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional\n"
"MIME-Version: 1.0\n"
@@ -15,51 +15,51 @@ msgstr ""
"X-Crowdin-File-ID: 698\n"
"Language: zh_TW\n"
#: redbot/cogs/audio/apis/interface.py:273
#: redbot/cogs/audio/apis/interface.py:595
#: redbot/cogs/audio/apis/interface.py:274
#: redbot/cogs/audio/apis/interface.py:602
msgid "Failing to get tracks, skipping remaining."
msgstr "無法取得歌曲,跳過剩餘的歌曲。"
#: redbot/cogs/audio/apis/interface.py:304
#: redbot/cogs/audio/apis/interface.py:307
#: 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 key 或 client secret 未正確設定。\n"
"請使用`{prefix} audioset spotifyapi`取得指示。"
#: redbot/cogs/audio/apis/interface.py:346
#: redbot/cogs/audio/apis/interface.py:349
msgid "This doesn't seem to be a valid Spotify playlist/album URL or code."
msgstr "這似乎不是有效的 Spotify 播放清單/專輯 URL 或代碼。"
#: redbot/cogs/audio/apis/interface.py:471
#: redbot/cogs/audio/apis/interface.py:475
msgid "This doesn't seem to be a supported Spotify URL or code."
msgstr "這似乎不是支援的 Spotify URL 或代碼。"
#: redbot/cogs/audio/apis/interface.py:558
#: redbot/cogs/audio/apis/interface.py:563
msgid "The connection was reset while loading the playlist."
msgstr "載入播放清單時重設了連線。"
#: redbot/cogs/audio/apis/interface.py:569
#: redbot/cogs/audio/apis/interface.py:574
msgid "Player timeout, skipping remaining tracks."
msgstr "播放器逾時,跳過剩餘歌曲。"
#: redbot/cogs/audio/apis/interface.py:661
#: redbot/cogs/audio/apis/interface.py:668
msgid " {bad_tracks} tracks cannot be queued."
msgstr " {bad_tracks} 首歌曲無法排入佇列。"
#: redbot/cogs/audio/apis/interface.py:669
#: redbot/cogs/audio/apis/interface.py:676
msgid "Playlist Enqueued"
msgstr "播放清單已加入佇列"
#: redbot/cogs/audio/apis/interface.py:670
#: redbot/cogs/audio/apis/interface.py:677
msgid "Added {num} tracks to the queue.{maxlength_msg}"
msgstr "已將 {num} 首歌曲加入佇列。{maxlength_msg}"
#: redbot/cogs/audio/apis/interface.py:676
#: redbot/cogs/audio/apis/interface.py:683
msgid "{time} until start of playlist playback: starts at #{position} in queue"
msgstr "{time} 後開始播放: 從佇列的第 #{position} 首開始"
#: redbot/cogs/audio/apis/interface.py:687
#: redbot/cogs/audio/apis/interface.py:694
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`."

View File

@@ -235,7 +235,7 @@ class PlaylistCompat23:
Trying to access the User scope without an user id.
"""
guild = data.get("guild") or kwargs.get("guild")
author: int = data.get("author") or 0
author: int = data.get("author") or kwargs.get("author") or 0
playlist_id = data.get("id") or playlist_number
name = data.get("name", "Unnamed")
playlist_url = data.get("playlist_url", None)

View File

@@ -58,7 +58,7 @@ Guild must be a valid version of one of the following:
_ = T_
MENTION_RE: Final[Pattern] = re.compile(r"^<?(?:(?:@[!&]?)?|#)(\d{15,21})>?$")
MENTION_RE: Final[Pattern] = re.compile(r"^<?(?:(?:@[!&]?)?|#)(\d{15,20})>?$")
def _match_id(arg: str) -> Optional[int]:

View File

@@ -2,7 +2,7 @@ import asyncio
import datetime
import json
from collections import Counter
from collections import Counter, defaultdict
from pathlib import Path
from typing import Mapping
@@ -77,6 +77,9 @@ class Audio(
self.session = aiohttp.ClientSession(json_serialize=json.dumps)
self.cog_ready_event = asyncio.Event()
self._ws_resume = defaultdict(asyncio.Event)
self._ws_op_codes = defaultdict(asyncio.LifoQueue)
self.cog_init_task = None
self.global_api_user = {
"fetched": False,
@@ -85,10 +88,12 @@ class Audio(
"can_delete": False,
}
self._ll_guild_updates = set()
self._diconnected_shard = set()
self._last_ll_update = datetime.datetime.now(datetime.timezone.utc)
default_global = dict(
schema_version=1,
bundled_playlist_version=0,
owner_notification=0,
cache_level=0,
cache_age=365,
@@ -107,8 +112,14 @@ class Audio(
default_guild = dict(
auto_play=False,
currently_auto_playing_in=None,
auto_deafen=True,
autoplaylist={"enabled": False, "id": None, "name": None, "scope": None},
autoplaylist=dict(
enabled=True,
id=42069,
name="Aikaterna's curated tracks",
scope=PlaylistScope.GLOBAL.value,
),
persist_queue=True,
disconnect=False,
dj_enabled=False,

View File

@@ -4,7 +4,7 @@ import asyncio
import datetime
from abc import ABC, abstractmethod
from collections import Counter
from collections import Counter, defaultdict
from pathlib import Path
from typing import Set, TYPE_CHECKING, Any, List, Mapping, MutableMapping, Optional, Tuple, Union
@@ -41,7 +41,7 @@ class MixinMeta(ABC):
db_conn: Optional[APSWConnectionWrapper]
session: aiohttp.ClientSession
skip_votes: MutableMapping[discord.Guild, List[discord.Member]]
skip_votes: MutableMapping[int, Set[int]]
play_lock: MutableMapping[int, bool]
_daily_playlist_cache: MutableMapping[int, bool]
_daily_global_playlist_cache: MutableMapping[int, bool]
@@ -62,12 +62,14 @@ class MixinMeta(ABC):
player_automated_timer_task: Optional[asyncio.Task]
cog_init_task: Optional[asyncio.Task]
cog_ready_event: asyncio.Event
_ws_resume: defaultdict[Any, asyncio.Event]
_ws_op_codes: defaultdict[int, asyncio.LifoQueue]
_default_lavalink_settings: Mapping
permission_cache = discord.Permissions
_last_ll_update: datetime.datetime
_ll_guild_updates: Set[int]
_diconnected_shard: Set[int]
@abstractmethod
async def command_llsetup(self, ctx: commands.Context):
@@ -306,6 +308,14 @@ class MixinMeta(ABC):
async def _playlist_check(self, ctx: commands.Context) -> bool:
raise NotImplementedError()
@abstractmethod
async def _build_bundled_playlist(self, forced: bool = None) -> None:
raise NotImplementedError()
@abstractmethod
def decode_track(self, track: str, decode_errors: str = "") -> MutableMapping:
raise NotImplementedError()
@abstractmethod
async def can_manage_playlist(
self, scope: str, playlist: "Playlist", ctx: commands.Context, user, guild

View File

@@ -1,12 +1,15 @@
from abc import ABC
from typing import Final
from base64 import b64decode
from io import BytesIO
import struct
from redbot import VersionInfo
from redbot.core import commands
from ..converters import get_lazy_converter, get_playlist_converter
__version__ = VersionInfo.from_json({"major": 2, "minor": 3, "micro": 0, "releaselevel": "final"})
__version__ = VersionInfo.from_json({"major": 2, "minor": 4, "micro": 0, "releaselevel": "final"})
__author__ = ["aikaterna", "Draper"]
@@ -57,3 +60,90 @@ class CompositeMetaClass(type(commands.Cog), type(ABC)):
"""
pass
# Both DataReader and DataWriter are taken from https://github.com/Devoxin/Lavalink.py/blob/master/lavalink/datarw.py
# These are licenced under MIT, Thanks Devoxin for putting these together!
# The license can be found in https://github.com/Devoxin/Lavalink.py/blob/master/LICENSE
class DataReader:
def __init__(self, ts):
self._buf = BytesIO(b64decode(ts))
def _read(self, n):
return self._buf.read(n)
def read_byte(self):
return self._read(1)
def read_boolean(self):
(result,) = struct.unpack("B", self.read_byte())
return result != 0
def read_unsigned_short(self):
(result,) = struct.unpack(">H", self._read(2))
return result
def read_int(self):
(result,) = struct.unpack(">i", self._read(4))
return result
def read_long(self):
(result,) = struct.unpack(">Q", self._read(8))
return result
def read_utf(self):
text_length = self.read_unsigned_short()
return self._read(text_length)
class DataWriter:
def __init__(self):
self._buf = BytesIO()
def _write(self, data):
self._buf.write(data)
def write_byte(self, byte):
self._buf.write(byte)
def write_boolean(self, b):
enc = struct.pack("B", 1 if b else 0)
self.write_byte(enc)
def write_unsigned_short(self, s):
enc = struct.pack(">H", s)
self._write(enc)
def write_int(self, i):
enc = struct.pack(">i", i)
self._write(enc)
def write_long(self, l):
enc = struct.pack(">Q", l)
self._write(enc)
def write_utf(self, s):
utf = s.encode("utf8")
byte_len = len(utf)
if byte_len > 65535:
raise OverflowError("UTF string may not exceed 65535 bytes!")
self.write_unsigned_short(byte_len)
self._write(utf)
def finish(self):
with BytesIO() as track_buf:
byte_len = self._buf.getbuffer().nbytes
flags = byte_len | (1 << 30)
enc_flags = struct.pack(">i", flags)
track_buf.write(enc_flags)
self._buf.seek(0)
track_buf.write(self._buf.read())
self._buf.close()
track_buf.seek(0)
return track_buf.read()

View File

@@ -558,7 +558,13 @@ class AudioSetCommands(MixinMeta, metaclass=CompositeMetaClass):
@command_audioset_autoplay.command(name="reset")
async def command_audioset_autoplay_reset(self, ctx: commands.Context):
"""Resets auto-play to the default playlist."""
playlist_data = dict(enabled=False, id=None, name=None, scope=None)
playlist_data = dict(
enabled=True,
id=42069,
name="Aikaterna's curated tracks",
scope=PlaylistScope.GLOBAL.value,
)
await self.config.guild(ctx.guild).autoplaylist.set(playlist_data)
return await self.send_embed_msg(
ctx,

View File

@@ -68,10 +68,14 @@ class PlayerControllerCommands(MixinMeta, metaclass=CompositeMetaClass):
eq = player.fetch("eq")
player.queue = []
player.store("playing_song", None)
player.store("autoplay_notified", False)
if eq:
await self.config.custom("EQUALIZER", ctx.guild.id).eq_bands.set(eq.bands)
await player.stop()
await player.disconnect()
await self.config.guild_from_id(guild_id=ctx.guild.id).currently_auto_playing_in.set(
[]
)
self._ll_guild_updates.discard(ctx.guild.id)
await self.api_interface.persistent_queue_api.drop(ctx.guild.id)
@@ -91,6 +95,8 @@ class PlayerControllerCommands(MixinMeta, metaclass=CompositeMetaClass):
}
expected = tuple(emoji.values())
player = lavalink.get_player(ctx.guild.id)
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
if player.current:
arrow = await self.draw_time(ctx)
pos = self.format_time(player.position)
@@ -212,7 +218,8 @@ class PlayerControllerCommands(MixinMeta, metaclass=CompositeMetaClass):
title=_("Unable To Manage Tracks"),
description=_("You need the DJ role to pause or resume tracks."),
)
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
if not player.current:
return await self.send_embed_msg(ctx, title=_("Nothing playing."))
description = await self.get_track_description(
@@ -266,7 +273,8 @@ class PlayerControllerCommands(MixinMeta, metaclass=CompositeMetaClass):
"to enqueue the previous song tracks."
),
)
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
if player.fetch("prev_song") is None:
return await self.send_embed_msg(
ctx, title=_("Unable To Play Tracks"), description=_("No previous track.")
@@ -332,7 +340,8 @@ class PlayerControllerCommands(MixinMeta, metaclass=CompositeMetaClass):
title=_("Unable To Seek Tracks"),
description=_("You need the DJ role or be the track requester to use seek."),
)
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
if player.current:
if player.current.is_stream:
return await self.send_embed_msg(
@@ -405,6 +414,8 @@ class PlayerControllerCommands(MixinMeta, metaclass=CompositeMetaClass):
title=_("Unable To Toggle Shuffle"),
description=_("You must be in the voice channel to toggle shuffle."),
)
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
shuffle = await self.config.guild(ctx.guild).shuffle()
await self.config.guild(ctx.guild).shuffle.set(not shuffle)
@@ -448,6 +459,8 @@ class PlayerControllerCommands(MixinMeta, metaclass=CompositeMetaClass):
title=_("Unable To Toggle Shuffle"),
description=_("You must be in the voice channel to toggle shuffle."),
)
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
bumped = await self.config.guild(ctx.guild).shuffle_bumped()
await self.config.guild(ctx.guild).shuffle_bumped.set(not bumped)
@@ -504,7 +517,8 @@ class PlayerControllerCommands(MixinMeta, metaclass=CompositeMetaClass):
title=_("Unable To Skip Tracks"),
description=_("You can only skip the current track."),
)
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
if vote_enabled:
if not can_skip:
if skip_to_track is not None:
@@ -515,14 +529,14 @@ class PlayerControllerCommands(MixinMeta, metaclass=CompositeMetaClass):
"Can't skip to a specific track in vote mode without the DJ role."
),
)
if ctx.author.id in self.skip_votes[ctx.message.guild]:
self.skip_votes[ctx.message.guild].remove(ctx.author.id)
if ctx.author.id in self.skip_votes[ctx.guild.id]:
self.skip_votes[ctx.guild.id].discard(ctx.author.id)
reply = _("I removed your vote to skip.")
else:
self.skip_votes[ctx.message.guild].append(ctx.author.id)
self.skip_votes[ctx.guild.id].add(ctx.author.id)
reply = _("You voted to skip.")
num_votes = len(self.skip_votes[ctx.message.guild])
num_votes = len(self.skip_votes[ctx.guild.id])
vote_mods = []
for member in player.channel.members:
can_skip = await self._can_instaskip(ctx, member)
@@ -532,7 +546,7 @@ class PlayerControllerCommands(MixinMeta, metaclass=CompositeMetaClass):
vote = int(100 * num_votes / num_members)
percent = await self.config.guild(ctx.guild).vote_percent()
if vote >= percent:
self.skip_votes[ctx.message.guild] = []
self.skip_votes[ctx.guild.id] = set()
await self.send_embed_msg(ctx, title=_("Vote threshold met."))
return await self._skip_action(ctx)
else:
@@ -583,6 +597,8 @@ class PlayerControllerCommands(MixinMeta, metaclass=CompositeMetaClass):
title=_("Unable To Stop Player"),
description=_("You need the DJ role to stop the music."),
)
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
if (
player.is_playing
or (not player.is_playing and player.paused)
@@ -597,7 +613,11 @@ class PlayerControllerCommands(MixinMeta, metaclass=CompositeMetaClass):
player.store("prev_requester", None)
player.store("prev_song", None)
player.store("requester", None)
player.store("autoplay_notified", False)
await player.stop()
await self.config.guild_from_id(guild_id=ctx.guild.id).currently_auto_playing_in.set(
[]
)
await self.send_embed_msg(ctx, title=_("Stopping..."))
await self.api_interface.persistent_queue_api.drop(ctx.guild.id)
@@ -642,17 +662,28 @@ class PlayerControllerCommands(MixinMeta, metaclass=CompositeMetaClass):
description=_("I don't have permission to connect to your channel."),
)
if not self._player_check(ctx):
await lavalink.connect(ctx.author.voice.channel)
await lavalink.connect(
ctx.author.voice.channel,
deafen=await self.config.guild_from_id(ctx.guild.id).auto_deafen(),
)
player = lavalink.get_player(ctx.guild.id)
player.store("connect", datetime.datetime.utcnow())
await self.self_deafen(player)
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
else:
player = lavalink.get_player(ctx.guild.id)
if ctx.author.voice.channel == player.channel:
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
if (
ctx.author.voice.channel == player.channel
and ctx.guild.me in ctx.author.voice.channel.members
):
ctx.command.reset_cooldown(ctx)
return
await player.move_to(ctx.author.voice.channel)
await self.self_deafen(player)
await player.move_to(
ctx.author.voice.channel,
deafen=await self.config.guild_from_id(ctx.guild.id).auto_deafen(),
)
except AttributeError:
ctx.command.reset_cooldown(ctx)
return await self.send_embed_msg(
@@ -693,23 +724,33 @@ class PlayerControllerCommands(MixinMeta, metaclass=CompositeMetaClass):
title=_("Unable To Change Volume"),
description=_("You must be in the voice channel to change the volume."),
)
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
if dj_enabled and not can_skip and not await self._has_dj_role(ctx, ctx.author):
return await self.send_embed_msg(
ctx,
title=_("Unable To Change Volume"),
description=_("You need the DJ role to change the volume."),
)
if vol < 0:
vol = 0
if vol > 150:
vol = 150
await self.config.guild(ctx.guild).volume.set(vol)
if self._player_check(ctx):
await lavalink.get_player(ctx.guild.id).set_volume(vol)
player = lavalink.get_player(ctx.guild.id)
await player.set_volume(vol)
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
else:
await self.config.guild(ctx.guild).volume.set(vol)
if self._player_check(ctx):
await lavalink.get_player(ctx.guild.id).set_volume(vol)
player = lavalink.get_player(ctx.guild.id)
await player.set_volume(vol)
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
embed = discord.Embed(title=_("Volume:"), description=str(vol) + "%")
if not self._player_check(ctx):
embed.set_footer(text=_("Nothing playing."))
@@ -741,6 +782,8 @@ class PlayerControllerCommands(MixinMeta, metaclass=CompositeMetaClass):
title=_("Unable To Toggle Repeat"),
description=_("You must be in the voice channel to toggle repeat."),
)
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
autoplay = await self.config.guild(ctx.guild).auto_play()
repeat = await self.config.guild(ctx.guild).repeat()
@@ -784,6 +827,8 @@ class PlayerControllerCommands(MixinMeta, metaclass=CompositeMetaClass):
title=_("Unable To Modify Queue"),
description=_("You must be in the voice channel to manage the queue."),
)
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
if isinstance(index_or_url, int):
if index_or_url > len(player.queue) or index_or_url < 1:
return await self.send_embed_msg(
@@ -864,7 +909,8 @@ class PlayerControllerCommands(MixinMeta, metaclass=CompositeMetaClass):
title=_("Unable To Bump Track"),
description=_("Song number must be greater than 1 and within the queue limit."),
)
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
bump_index = index - 1
bump_song = player.queue[bump_index]
bump_song.extras["bumped"] = True

View File

@@ -173,7 +173,8 @@ class EqualizerCommands(MixinMeta, metaclass=CompositeMetaClass):
title=_("Unable To Load Preset"),
description=_("You need the DJ role to load equalizer presets."),
)
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
await self.config.custom("EQUALIZER", ctx.guild.id).eq_bands.set(eq_values)
await self._eq_check(ctx, player)
eq = player.fetch("eq", Equalizer())
@@ -202,6 +203,8 @@ class EqualizerCommands(MixinMeta, metaclass=CompositeMetaClass):
description=_("You need the DJ role to reset the equalizer."),
)
player = lavalink.get_player(ctx.guild.id)
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
eq = player.fetch("eq", Equalizer())
for band in range(eq.band_count):
@@ -284,6 +287,8 @@ class EqualizerCommands(MixinMeta, metaclass=CompositeMetaClass):
return await eq_exists_msg.edit(embed=embed2)
player = lavalink.get_player(ctx.guild.id)
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
eq = player.fetch("eq", Equalizer())
to_append = {eq_preset: {"author": ctx.author.id, "bands": eq.bands}}
new_eq_presets = {**eq_presets, **to_append}
@@ -325,6 +330,8 @@ class EqualizerCommands(MixinMeta, metaclass=CompositeMetaClass):
)
player = lavalink.get_player(ctx.guild.id)
player.store("channel", ctx.channel.id)
player.store("guild", ctx.guild.id)
band_names = [
"25",
"40",

View File

@@ -223,7 +223,7 @@ class LavalinkSetupCommands(MixinMeta, metaclass=CompositeMetaClass):
msg = "----" + _("Connection Settings") + "---- \n"
msg += _("Host: [{host}]\n").format(host=host)
msg += _("WS Port: [{port}]\n").format(port=ws_port)
if ws_port != rest_port:
if ws_port != rest_port and rest_port != 2333:
msg += _("Rest Port: [{port}]\n").format(port=rest_port)
msg += _("Password: [{password}]\n").format(password=password)
try:

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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