@marquinaaa

Как вытащить значение их класса, и чтоб давался ответ?

Нужно из класса custom id time и data вывести ответ когда отвечаешь на модельное окно. Т.е в модельном окне заполняешь время и дату, и чтоб было примерно так: Мероприятие Дикая Эвакуация пройдет в {time} {data}. Чтоб было это во все в одну сроку, а не два разных столба data и time
import datetime
import disnake
from disnake.ext import commands
from disnake import TextInputStyle

# Наследуем модальное окно
class MyModal(disnake.ui.Modal):
    def __init__(self):
        # Детали модального окна и его компонентов
        components = [
            disnake.ui.TextInput(
               label="Укажите время проведения мероприятия",
                placeholder="Укажите время в формате xx:xx",
                custom_id='time',
                min_length=5,
                max_length=5,
            ),
            disnake.ui.TextInput(
                label="Укажите дату провденеия мероприятия",
                placeholder="Укажите дату в формате xx.xx.xxxx",
                custom_id='date',
                min_length=10,
                max_length=10,
            ),
        ]
        super().__init__(
            title="Мероприятие \"Дикая Эвакуация\" ",
            custom_id="custom_id",
            components=components,
        )

    # Обработка ответа, после отправки модального окна
    async def callback(self, inter: disnake.ModalInteraction):
         for key, value in inter.text_values.items():
         
             embed = disnake.Embed(title="Мероприятие \"Дикая Эвакуация\"",
                              description =  " в пройдет мероприятие \"Дикая Эвакуация\".\nПравила: https://forum.arizona-v.com/threads/30652/",
                              color = disnake.Colour.yellow(),)
         embed.set_footer    (text="За победу в раунде фракция получит награду в размере $3.000.000",
                              icon_url="https://images-ext-1.discordapp.net/external/4nHcjhX4gtZgRfTwCkhRriI9aEZMzFLdyNlTzti69dw/https/images-ext-1.discordapp.net/external/5PmnHE29NHjmdU4_hl56ez2Qi-F3yjU5iTdggVnPwg0/https/i.imgur.com/gtTENPU.png",
                             )
         embed.set_image(url="https://images-ext-2.discordapp.net/external/lerhzXafW-D6pvLW8EKbobMiexJAg8sjsFSXqrrfx8c/https/images-ext-2.discordapp.net/external/Ke4qodlofOl46uJ9oRmO3VgtqktNVxY-GBkjBh0X6Fo/https/i.imgur.com/39n7XOR.png?format=webp&quality=lossless")

         for key, value in inter.text_values.items():
            embed.add_field(
                name=key.capitalize(),
                value=value[:1024],
                inline=False,
            )
            
         await inter.response.send_message(embed=embed)


intents = disnake.Intents.all()
bot = commands.Bot(command_prefix="!", intents=intents)


@bot.slash_command()
async def tags(inter: disnake.AppCmdInter):
    """Отправляет модальное окно для создания тега"""
    await inter.response.send_modal(modal=MyModal())


Использую библиотеку disnake
  • Вопрос задан
  • 26 просмотров
Решения вопроса 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
Вы делаете цикл по текстовым полям и добавляете их как отдельные поля ответа
for key, value in inter.text_values.items():
            embed.add_field(
                name=key.capitalize(),
                value=value[:1024],
                inline=False,
            )


Чтобы они были в одну строчку, нужно добавить их в одно поле.
embed.add_field(
        name='Заголовок',
        value=f'{inter.text_values.get("date",  "")}{inter.text_values.get("time",  "")',
        inline=False,
)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы