vk api python bot отправить разные сообщения разным людям при том что они пишут одно и тоже сообщение
У меня есть бот для беседы VK и матерящаяся компания мне нужно сделать если (есть 5 человек) Лёха сматерился ему прибавлялась единица к переменной, а если сматерился Матвей то ему прибавляется единица и раз в 24 часа отправлялось сообщение сколько кто раз сматерился. Как это правильно сделать если есть возможность желательно через if с объяснением т.к. я в этом новичок или ссылку на статью хотя-бы с похожим вопросом
import random, vk_api, vk
from vk_api.keyboard import VkKeyboard, VkKeyboardColor
from vk_api.utils import get_random_id
import requests
import sys
import time
import threading
import json
vk_session = vk_api.VkApi(token='ТОКЕН')
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
longpoll = VkBotLongPoll(vk_session, 204434733)
vk = vk_session.get_api()
from vk_api.longpoll import VkLongPoll, VkEventType
Lslongpoll = VkLongPoll(vk_session)
Lsvk = vk_session.get_api()
def bot():
Lsvk.messages.send(
user_id = 496658805,
message = "Бот запущен!",
random_id = get_random_id()
)
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW:
if 'БОТ' in str(event) or 'Бот' in str(event) or 'бот' in str(event):
if event.from_chat:
if event.from_user:
vk.messages.send(
key = ('b0409379fb3b81632ee943deb2e99280c53dd520'), #ВСТАВИТЬ ПАРАМЕТРЫ
server = ('https://lp.vk.com/wh204434733'),
ts=('1'),
random_id = get_random_id(),
message='Привет! Я бот DDRX5 теперь ты можешь вызывать меня по имени!',
chat_id = event.chat_id
)
bot = threading.Thread(target=bot)
bot.start()
#################################################################
except:
Lsvk.messages.send(
user_id=496658805,
message="Бот выключен :( ",
random_id=get_random_id()
)
Вот весь мой бот
Вот всё так написал а user_id подчёркнут красным
import random, vk_api, vk
from vk_api.keyboard import VkKeyboard, VkKeyboardColor
from vk_api.utils import get_random_id
import requests
import sys
import time
import threading
import json
from collections import defaultdict
user_by_counter = defaultdict(int)
try:
vk_session = vk_api.VkApi(token='')
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
longpoll = VkBotLongPoll(vk_session, 204434733)
vk = vk_session.get_api()
from vk_api.longpoll import VkLongPoll, VkEventType
Lslongpoll = VkLongPoll(vk_session)
Lsvk = vk_session.get_api()
def bot():
Lsvk.messages.send(
user_id = 496658805,
message = "Бот запущен!",
random_id = get_random_id()
)
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW:
if 'БОТ' in str(event) or 'Бот' in str(event) or 'бот' in str(event):
if event.from_chat:
user_by_counter[user_id] += 1
vk.messages.send(
key = 'b0409379fb3b81632ee943deb2e99280c53dd520', #ВСТАВИТЬ ПАРАМЕТРЫ
server = ('https://lp.vk.com/wh204434733'),
ts=('1'),
random_id = get_random_id(),
message='Привет! Я бот DDRX5 теперь ты можешь вызывать меня по имени!',
chat_id = event.chat_id
)
Ответы (1 шт):
Надо в начале после всех import на новой строке написать from collections import defaultdict
а на второй user_by_counter = defaultdict(int)
а вот что должно быт в отправке сообщения, точнее как она должно выглядеть
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW:
if 'Текст от пользователя' in str(event):
if event.from_chat:
user_id = event.obj.from_id
user_by_counter[user_id] += 1
vk.messages.send(
key = (''), #ВСТАВИТЬ ПАРАМЕТРЫ
server = (''),
ts=(''),
random_id = get_random_id(),
message='ответ пользователю' ,
chat_id = event.chat_id
)