0 / 0 / 0
Регистрация: 01.04.2023
Сообщений: 6
Discord Bot

Чем заменить метод flatten(), когда его удалили

07.05.2023, 22:18. Показов 523. Ответов 3

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import discord
from discord.ext import commands
import datetime
import asyncio
 
@client.command()
async def giveaway(ctx):
    await ctx.send("Начнём розыгрыш! Ответь на эти вопросы в пределах 15 секунд")
 
    questions = ["В каком канале он будет?", "Какая длительность розыгрыша?(сек|мин|час|день)", "Приз розыгрыша?"]
    answers = []
 
    def check(m):
        return m.author == ctx.author and m.channel == ctx.channel
 
    for i in questions:
        await ctx.send(i)
 
        try:
            msg = await client.wait_for('message', timeout=15.0, check=check)
        except asyncio.TimeoutError:
            await ctx.send('Ты не успел, в следующий раз вводи ответы быстрее')
            return
        else:
            answers.append(msg.content)
 
    try:
        c_id = int(answers[0][2:-1])
    except:
        await ctx.send(f'Ты неправильно отметил канал. Сделай по примеру этого в следующий раз: {ctx.channel.mention} ')
        return
    channel = client.get_channel(c_id)
 
    time = convert(answers[1])
    if time == -1:
        await ctx.send(f'Ты неправильно отметил время. Сделай по шаблону: (сек|мин|час|день)')
        return
    elif time == -2:
        await ctx.send("Время должно быть целочисленным. Например: 10с 1м")
        return
    prize = answers[2]
 
    await ctx.send(f"Розыгрыш будет в {channel.mention} и кончится в {answers[1]}!")
 
    embed = discord.Embed(title = "Розыгрыш!", description=f"{prize}", color= discord.Color.dark_purple())
    embed.add_field(name = "Основан:", value = ctx.author.mention)
    embed.set_footer(text = f'Заканчивается {answers[1]} от данного момента!')
    my_msg = await channel.send(embed = embed)
 
    await my_msg.add_reaction('\:tada:')
 
    await asyncio.sleep(time)
 
    new_msg = await channel.fetch_message(my_msg.id)
 
    users = await  new_msg.reactions[0].users().flatten()
    users.pop(users.index(client.user))
 
    winner = random.choice(users)
 
    await channel.send(f"Поздравляю! {winner.mention} выиграл {prize}")
def convert(time):
    pos = ["с", "м", "ч", "д"]
    time_dict = {"с": 1, "м" : 60, "ч" : 3600, "д" : 3600*24}
    unit = time[-1]
    if unit not in pos:
        return -1
    try:
        val = int(time[:-1])
    except:
        return -2
 
    return val * time_dict[unit]
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.05.2023, 22:18
Ответы с готовыми решениями:

Метод getPreventDefault() является устаревшим. Для его замены используйте метод defaultPrevented. В чем причина этой ошибки?
Здравствуйте) Обращаюсь к вам за помощью: при выборе элемента из списка <select>, (то есть по событию change()) должен отправиться...

О том, почему нелюбим goto; как его правильно использовать; и чем в моем случае его можно заменить?
Вот есть такой оператор всеми программистами нелюбимый. Goto называется. Говорят, что его использование всегда можно обойти и...

Чем заменить метод Any() в .NET 2.0?
Всем привет. Как или чем можно заменить метод any() в framework 2.0 ибо он доступен только с 3.5 Допустим такая строка ...

3
 Аватар для kazak
3604 / 2744 / 356
Регистрация: 11.03.2009
Сообщений: 6,306
08.05.2023, 19:41
https://discordpy.readthedocs.... ht=flatten
Python
1
2
3
4
5
# before
users = await reaction.users().flatten()
 
# after
users = [user async for user in reaction.users()]
0
0 / 0 / 0
Регистрация: 01.04.2023
Сообщений: 6
08.05.2023, 20:32  [ТС]
discord.ext.commands.errors.CommandInvok eError: Command raised an exception: NameError: name 'reaction' is not defined

Добавлено через 26 секунд
не работает
0
 Аватар для kazak
3604 / 2744 / 356
Регистрация: 11.03.2009
Сообщений: 6,306
09.05.2023, 14:19
А Вы что один в один скопировали? Этот код для примера.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.05.2023, 14:19
Помогаю со студенческими работами здесь

Чем заменить метод ToString() в структуре?
Есть у меня программа которую нужно немного переделать, а именно строку "public override string ToString()". Нужно убрать override из...

Чем заменить метод Operators.CompareString?
Всем привет, хочу узнать чем можно заменить из Framework 4.5 на Framework 2.0 Кусок кода: if...

метод get и с чем его кушать?
Доброе время суток, я в JavaScript совсем новичёк, ещё толком не разобрался как и что работает.. Я создал свой сайт, с базой данных,...

Чем заменить флешь и его будущее
Привет всем, форумчане и просто гости! 1. Надо сделать анимацию на странице, чтобы молнии ударили в шар и по всему экрану появился огонь,...

Multiprocessing или чем его можно заменить?
здравствуйте, я решил написать свой таймер и немного заморочиться, а именно добавить звук. По задумке он должен пищать до тех пор, пока не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru