добавлена функция выбери и рандом для доверенных чатов
This commit is contained in:
parent
4a04f7eda4
commit
ef19687a0e
39
main.py
39
main.py
@ -1,6 +1,8 @@
|
|||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
import random
|
||||||
import traceback
|
import traceback
|
||||||
|
import shlex
|
||||||
|
|
||||||
import vk_api
|
import vk_api
|
||||||
from vk_api.longpoll import VkLongPoll, VkEventType, VkLongpollMode
|
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()
|
vk = vk_session.get_api()
|
||||||
|
|
||||||
|
|
||||||
|
# массив peer_id, которым можно доверять
|
||||||
|
TRUSTED_USERS = eval(os.getenv('TRUSTED_USERS'))
|
||||||
|
|
||||||
|
|
||||||
class Logger:
|
class Logger:
|
||||||
def __init__(self, filename=None):
|
def __init__(self, filename=None):
|
||||||
self.filename = filename
|
self.filename = filename
|
||||||
@ -96,6 +102,35 @@ def log_message_recovery(event):
|
|||||||
msg_logger.log(f"message_rec {__create_msg_string(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():
|
def lp_loop():
|
||||||
mode = VkLongpollMode.GET_ATTACHMENTS | VkLongpollMode.GET_EXTENDED | VkLongpollMode.GET_PTS |\
|
mode = VkLongpollMode.GET_ATTACHMENTS | VkLongpollMode.GET_EXTENDED | VkLongpollMode.GET_PTS |\
|
||||||
VkLongpollMode.GET_EXTRA_ONLINE | VkLongpollMode.GET_RANDOM_ID
|
VkLongpollMode.GET_EXTRA_ONLINE | VkLongpollMode.GET_RANDOM_ID
|
||||||
@ -107,6 +142,10 @@ def lp_loop():
|
|||||||
for event in lp.listen():
|
for event in lp.listen():
|
||||||
if event.type == VkEventType.MESSAGE_NEW:
|
if event.type == VkEventType.MESSAGE_NEW:
|
||||||
log_new_message(event)
|
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:
|
elif event.type == VkEventType.MESSAGE_EDIT:
|
||||||
log_message_edit(event)
|
log_message_edit(event)
|
||||||
elif event.type == VkEventType.MESSAGE_FLAGS_SET:
|
elif event.type == VkEventType.MESSAGE_FLAGS_SET:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user