В guld_id значение должно быть меньше или равно 9223372036854775807
async def on_command_error(error, ctx):
if isinstance(error, commands.BadArgument):
await ctx.send("Запрос команды с ошибочным аргументом")
elif isinstance(error, commands.CommandNotFound):
await Client.send_message(ctx.message.channel, "Команда не найдена")
... # вставлять новые проверки сюда
else:
await Client.send_message(ctx.message.channel, "Неизвестная ошибка")
"\\"
или сырую строку r"..."
result is None and chann is not None
inviter_id будет None.inviter_id = None
if result is not None:
...
if chann:
embed = nextcord.Embed(
title='Leafy InviteLogger',
description=f'{member.mention} join the server!\n\n Invited by <@{inviter_id}>\n Total invitations {total_invites}',
colour=0x2b2d31
)
coroutine 'ApplicationContext.respond' was never awaited
ctx.respond(f'Вы уже использовали {us} из {kyp}',ephemeral=True)
await ctx.respond(embed=embedvar,ephemeral=True)
Как вызвать одну функцию из другой в discord боте?Так же как не в дискорд боте.
Есть две командыВ приложенном коде только одна команда search, а ask просто функция.
# Создаем контекст для выполнения команды /search с вопросом пользователя
ctx = await bot.get_context(channel.message)
ctx.message.content = f"/search {question}"
INSERT ... ON CONFLICT ... UPDATE
from collections import UserDict
class MyDict(UserDict):
def __setitem__(self, key, value):
print(f'Меняем значение {key} на {value}')
super().__setitem__(key, value)
Мне нужно чтобы при изменении любого значения словаря, в том числе значения словаря по ключу 'z', выполнялся определенный код.
Не работает on_member_join?
import discord
class MyClient(discord.Client):
async def on_member_join(self, member):
guild = member.guild
if guild.system_channel is not None:
msg = f'{member.mention} добро пожаловать на сервер {guild.name}!'
await guild.system_channel.send(msg)
intents = discord.Intents.default()
intents.members = True
client = MyClient(intents=intents)
client.run('token')
Подскажите как можно оценить погрешность для кода питон?
%timeit
%timeit 'while True: pass'
6.38 ns ± 0.138 ns per loop (mean ± std. dev. of 7 runs, 100,000,000 loops each)
def compress(s: str) -> str:
out = ''
cnt = 1
for i in range(1, len(s)):
if s[i] == s[i - 1]:
cnt += 1
else:
out += s[i - 1] + str(cnt) if cnt > 1 else s[i - 1]
cnt = 1
out += s[-1] + str(cnt) if cnt > 1 else s[-1]
return out
In [7]: import ast
In [8]: what = "{'id': '4315398315201472005'}"
In [9]: d = ast.literal_eval(what)
In [10]: d
Out[10]: {'id': '4315398315201472005'}
In [11]: d['id']
Out[11]: '4315398315201472005'
Не работает код Discord.py?Да не работает.
библиотеки нужные я установилЗначит не установили, иначе yarl бы подтянулся
➜ ~ (test) pip install discord
...
➜ ~ (test) pip freeze | cat
aiohttp==3.8.5
aiosignal==1.3.1
async-timeout==4.0.3
attrs==23.1.0
charset-normalizer==3.2.0
discord==2.3.2
discord.py==2.3.2
frozenlist==1.4.0
idna==3.4
multidict==6.0.4
yarl==1.9.2
Python 3.1.1Что правда 3.1.1?
# checks.py
from discord.ext import commands
def is_owner():
async def predicate(ctx: commands.Context) -> bool:
return ctx.author.id == ctx.guild.owner_id:
return commands.check(predicate)
@bot.command()
@checks.is_owner()
async def test(ctx):
await ctx.send('You can manage messages.')