Есть такой скрипт бота для ВКонтакте на Python:
import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType
# авторизация в ВК
vk_session = vk_api.VkApi(token='токен_группы')
vk = vk_session.get_api()
longpoll = VkLongPoll(vk_session)
# количество попыток
attempts_left = 100
# обрабатываем сообщения, оставленные под постами в группе
for event in longpoll.listen():
if event.type == VkEventType.WALL_REPLY_NEW:
# id поста, к которому был оставлен комментарий
post_id = event.wall_id
# текст комментария
comment_text = event.text.lower()
# если пользователь написал "крутить" и осталось хотя бы одна попытка
if comment_text == 'крутить' and attempts_left > 0:
# уменьшаем количество попыток
attempts_left -= 1
# отвечаем пользователю
vk.wall.createComment(
owner_id='-группа', # id группы со знаком "-"
post_id=post_id,
message=f'В этот раз вам не повезло. Осталось {attempts_left} попыток.'
)
# если количество попыток равно 20, то отвечаем пользователю о его победе
if attempts_left == 20:
vk.wall.createComment(
owner_id='-группа',
post_id=post_id,
message='Поздравляем, вы победили. Приз можно получить в личных сообщениях группы.'
)
# если пользователь отправил сообщение в личные сообщения группы
elif event.type == VkEventType.MESSAGE_NEW:
# id пользователя
user_id = event.user_id
# получаем последние n комментариев, оставленных под постом
n = 20 # в данном случае 20, т.к. это максимальное количество попыток
comments = vk.wall.getComments(owner_id='-группа', post_id=post_id, count=n)['items']
# проверяем, была ли у данного пользователя победа
won = False
for comment in comments:
if comment['from_id'] == vk.groups.getById()[0]['id'] and 'поздравляем, вы победили' in comment['text'].lower():
won = True
# если пользователь не был победителем, то отвечаем ему
if not won:
vk.messages.send(
user_id=user_id,
message='Извините, вы не являетесь победителем.'
)
Пытаюсь запустить на Termux
Выдает такую ошибку
Traceback (most recent call last):
File "/storage/emulated/0/Music/bot.py", line 14, in <module>
if event.type == VkEventType.WALL_REPLY_NEW:
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/data/com.termux/files/usr/lib/python3.11/enum.py", line 786, in __getattr__
raise AttributeError(name) from None
AttributeError: WALL_REPLY_NEW