Тема: Як отримати значення з функції def?
Добрий вечір!
Виникла проблема, функція prefix_in_guild, повинна брати префікс сервера з БД:
import discord
from discord.ext import commands
from datetime import datetime
import os
import time
from Cybernator import Paginator as pag
import asyncpg, asyncio
import psycopg2
database = os.environ.get('DATABASE')
user = os.environ.get('USER')
password = os.environ.get('PASSWORD')
host = os.environ.get('HOST')
port = os.environ.get('PORT')
conn = psycopg2.connect(
database = f"{database}",
user = f"{user}",
password = f"{password}",
host = f"{host}",
port = "5432"
)
cursor = conn.cursor()
def prefix_in_guild(bot,message):
guildid = message.guild.id
cursor.execute(f'SELECT prefix FROM public."prefixDB" WHERE guild_id = \'{guildid}\';')
prefix = cursor.fetchone()
conn.commit()
return prefix
class HelpCommands(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.group(name='help',aliases=['helpcmd','i','helpcommands'], invoke_without_command=True)
async def help_for_commands(self, ctx):
await ctx.channel.purge(limit=1)
emb= discord.Embed(title=f'Команды бота {self.bot.user.name}', description='Здесь вы узнаете информацию про все команды бота\n')
emb.add_field(name='**Другая информация**',value=f'Чтобы получить больше информации о какой либо команде, вы можете написать: {prefix_in_guild}help `команда` \nТак же, вы можете нажать на реакцию под сообщением, чтобы переключить страницу.\n'.)
emb1= discord.Embed(title='Команды информации', description='Что бы узнать больше о команде напишите {prefix_in_guild}help [команда]. \n**Пример**: {prefix_in_guild}help user')
emb1.add_field(name='**Команды**', value=f'`{prefix_in_guild}user`\n`{prefix_in_guild}ping`\n`{prefix_in_guild}bot_servers`\n`{prefix_in_guild}tuser`\n')
emb2=discord.Embed(title='Команды администрации', description=f'`{prefix_in_guild}change_prefix` или `{prefix_in_guild}prefix`')
embeds=[emb,emb1,emb2]
message= await ctx.send(embed= emb)
page= pag(self.bot, message, only=ctx.author, use_more=False, embeds=embeds, color=0x008000, time_stamp=True)
await page.start()
Але замість префікса я отримую:
<function get_prefix at 0x7f74ae131280>
Функцію prefix_in_guild написав з готової, робочої функції:
def get_prefix(bot, message):
guildid = message.guild.id
cursor.execute(f'SELECT prefix FROM public."prefixDB" WHERE guild_id = \'{guildid}\';')
prefix = cursor.fetchone()
conn.commit()
return prefix
bot=commands.Bot(command_prefix = get_prefix, help_command=None)