добавлена функция выбери и рандом для доверенных чатов
This commit is contained in:
parent
4a04f7eda4
commit
ef19687a0e
39
main.py
39
main.py
@ -1,6 +1,8 @@
|
||||
import json
|
||||
import os
|
||||
import random
|
||||
import traceback
|
||||
import shlex
|
||||
|
||||
import vk_api
|
||||
from vk_api.longpoll import VkLongPoll, VkEventType, VkLongpollMode
|
||||
@ -14,6 +16,10 @@ vk_session = vk_api.VkApi(token=os.getenv('VK_ACCESS_TOKEN'), api_version='5.131
|
||||
vk = vk_session.get_api()
|
||||
|
||||
|
||||
# массив peer_id, которым можно доверять
|
||||
TRUSTED_USERS = eval(os.getenv('TRUSTED_USERS'))
|
||||
|
||||
|
||||
class Logger:
|
||||
def __init__(self, filename=None):
|
||||
self.filename = filename
|
||||
@ -96,6 +102,35 @@ def log_message_recovery(event):
|
||||
msg_logger.log(f"message_rec {__create_msg_string(event)}")
|
||||
|
||||
|
||||
def cmd_handler(event, *args):
|
||||
if event.peer_id not in TRUSTED_USERS:
|
||||
print(f"Команда {args}: отказано в доступе - недоверенный пользователь id={event.peer_id}")
|
||||
else:
|
||||
print(f"Execute {args}")
|
||||
if len(args) >= 1:
|
||||
if args[0] == "рандом" or args[0] == "random":
|
||||
if len(args) != 3:
|
||||
vk.messages.send(peer_id=event.peer_id, random_id=random.randint(0, 0x7FFFFFFF),
|
||||
message="Использование команды рандом: /рандом <от> <до>")
|
||||
else:
|
||||
try:
|
||||
start = int(args[1])
|
||||
end = int(args[2])
|
||||
vk.messages.send(peer_id=event.peer_id, random_id=random.randint(0, 0x7FFFFFFF),
|
||||
message=f"Результат: {random.randint(start, end)}")
|
||||
except Exception:
|
||||
vk.messages.send(peer_id=event.peer_id, random_id=random.randint(0, 0x7FFFFFFF),
|
||||
message="Один из аргументов не является числом!")
|
||||
|
||||
if args[0] == "выбери" or args[0] == "select":
|
||||
if len(args) == 1:
|
||||
vk.messages.send(peer_id=event.peer_id, random_id=random.randint(0, 0x7FFFFFFF),
|
||||
message="Использование команды выбери: /выбери <одно> [второе] [третье] ...")
|
||||
else:
|
||||
vk.messages.send(peer_id=event.peer_id, random_id=random.randint(0, 0x7FFFFFFF),
|
||||
message=f"Результат: {random.choice(args[2:])}")
|
||||
|
||||
|
||||
def lp_loop():
|
||||
mode = VkLongpollMode.GET_ATTACHMENTS | VkLongpollMode.GET_EXTENDED | VkLongpollMode.GET_PTS |\
|
||||
VkLongpollMode.GET_EXTRA_ONLINE | VkLongpollMode.GET_RANDOM_ID
|
||||
@ -107,6 +142,10 @@ def lp_loop():
|
||||
for event in lp.listen():
|
||||
if event.type == VkEventType.MESSAGE_NEW:
|
||||
log_new_message(event)
|
||||
# event.from_me and
|
||||
if event.from_user and event.text.startswith("/"):
|
||||
first_line = event.text[1:].split('\n')[0].replace('"', '"')
|
||||
cmd_handler(event, *shlex.split(first_line))
|
||||
elif event.type == VkEventType.MESSAGE_EDIT:
|
||||
log_message_edit(event)
|
||||
elif event.type == VkEventType.MESSAGE_FLAGS_SET:
|
||||
|
Loading…
x
Reference in New Issue
Block a user