Answer the question
In order to leave comments, you need to log in
The bot file for discorda from .py to .exe (pyinstaller) does not compile. Gives errors. It works fine with vk and telegram. How to fix?
import cfg
import time
import discord
from discord import utils
from MIRA import MIRA
class MyClient(discord.Client):
async def on_ready(self):
print('Logged on as {0}!'.format(self.user))
await client.change_presence(status=discord.Status.online, activity=discord.Game("fanTTools"))
async def on_message(self, message):
if int(message.channel.id) == 797463389965385759:
if message.author.id != 793221581941243966:
channel = self.get_channel(message.channel.id)
data = MIRA().select_command(1, message.content)
if data != None:
await channel.send(f'{data[0]}\n\n{message.author.mention}')
MIRA().output_logs('DISCORD', message.author, data[1], data[2])
async def on_raw_reaction_add(self, payload):
if payload.message_id == cfg.POST_ID:
channel = self.get_channel(payload.channel_id)
message = await channel.fetch_message(payload.message_id)
member = await (await client.fetch_guild(payload.guild_id)).fetch_member(payload.user_id)
try:
emoji = str(payload.emoji)
role = utils.get(message.guild.roles, id=cfg.ROLES[emoji])
if(len([i for i in member.roles if i.id not in cfg.EXCROLES]) <= cfg.MAX_ROLES_PER_USER):
await member.add_roles(role)
MIRA().output_logs('DISCORD', member.name, 'get role (' + role.name + ')', 1)
if role.id == 793225592572739594:
data = MIRA().select_command(1, '/commands')
if data != None:
channel = self.get_channel(797463389965385759)
await channel.send(f'{data[0]}\n\n{member.mention}')
MIRA().output_logs('DISCORD', member.display_name, data[1], data[2])
else:
await message.remove_reaction(payload.emoji, member)
print('[ERROR] Too many roles for user {0.display_name}'.format(member))
except KeyError as e:
print('[ERROR] KeyError, no role found for ' + emoji)
except Exception as e:
print(repr(e))
async def on_raw_reaction_remove(self, payload):
channel = self.get_channel(payload.channel_id)
message = await channel.fetch_message(payload.message_id)
member = await (await client.fetch_guild(payload.guild_id)).fetch_member(payload.user_id)
try:
emoji = str(payload.emoji)
role = utils.get(message.guild.roles, id=cfg.ROLES[emoji])
await member.remove_roles(role)
MIRA().output_logs('DISCORD', member.display_name, 'remove role ( ' + role.name + ' )', 1)
except KeyError as e:
print('[ERROR] KeyError, no role found for ' + emoji)
except Exception as e:
print(repr(e))
client = MyClient()
client.run(cfg.DISCORD_TOKEN)
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question