some updates

This commit is contained in:
dan63047 2020-05-11 21:24:34 +03:00
parent 34f52897c8
commit 0fef853369
1 changed files with 46 additions and 21 deletions

View File

@ -94,19 +94,20 @@ class VkBot:
log(False, f"Создан объект бота! id{peer_id}") log(False, f"Создан объект бота! id{peer_id}")
self._CHAT_ID = peer_id self._CHAT_ID = peer_id
self._ECHO_MODE = False self._ECHO_MODE = False
self._ACCESS_LEVEL = 1
if midnight: if midnight:
self._MIDNIGHT_EVENT = True self._MIDNIGHT_EVENT = True
else: else:
self._MIDNIGHT_EVENT = False self._MIDNIGHT_EVENT = False
if self._CHAT_ID == owner_id: if int(self._CHAT_ID) == int(owner_id):
self._OWNER = True self._OWNER = True
else: else:
self._OWNER = False self._OWNER = False
self._COMMANDS = ["!image", "!my_id", "!h", "!user_id", "!group_id", "!help", "!weather", "!wiki", "!byn", self._COMMANDS = ["!image", "!my_id", "!h", "!user_id", "!group_id", "!help", "!weather", "!wiki", "!byn",
"!echo", "!game", "!debug", "!midnight"] "!echo", "!game", "!debug", "!midnight", "!access"]
def event(self, event): def event(self, event):
if event == "midnight" and self._MIDNIGHT_EVENT: if event == "midnight" and self._MIDNIGHT_EVENT:
@ -124,16 +125,18 @@ class VkBot:
"последний эпизод \"Group Therapy\" от Above & Beyond"] "последний эпизод \"Group Therapy\" от Above & Beyond"]
midnight_output = random.choice(midnight_text) + "<br>" + f"Наступило {current_time.strftime('%d.%m.%Y')}<br><br>" midnight_output = random.choice(midnight_text) + "<br>" + f"Наступило {current_time.strftime('%d.%m.%Y')}<br><br>"
random_thing = random.randint(0, 1) random_thing = random.randint(0, 2)
if random_thing: if random_thing == 0:
midnight_output += random.choice(midnight_after) midnight_output += random.choice(midnight_after)
else: elif random_thing == 1:
midnight_output += random.choice(midnight_pre_check_it) + " " + random.choice(midnight_check_it) midnight_output += random.choice(midnight_pre_check_it) + " " + random.choice(midnight_check_it)
elif random_thing == 2:
midnight_output += "Цвет дня в формате HEX: #%02x%02x%02x" % (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
self.send(midnight_output) self.send(midnight_output)
log(False, f"Бот id{self._CHAT_ID} оповестил о миднайте") log(False, f"Бот id{self._CHAT_ID} оповестил о миднайте")
def get_message(self, message): def get_message(self, message, user_id):
if self._ECHO_MODE: if self._ECHO_MODE:
if message == "!echo off": if message == "!echo off":
self.send(message) self.send(message)
@ -200,12 +203,16 @@ class VkBot:
respond['text'] = "Отсуствует аргумент" respond['text'] = "Отсуствует аргумент"
elif message[0] == self._COMMANDS[11]: elif message[0] == self._COMMANDS[11]:
if self._ACCESS_LEVEL or int(user_id) == int(owner_id):
try: try:
respond['text'] = self.debug(message[1]) respond['text'] = self.debug(message[1])
except IndexError: except IndexError:
respond['text'] = self.debug() respond['text'] = self.debug()
else:
respond["text"] = "Отказано в доступе"
elif message[0] == self._COMMANDS[12]: elif message[0] == self._COMMANDS[12]:
if self._ACCESS_LEVEL or int(user_id) == int(owner_id):
if self._MIDNIGHT_EVENT: if self._MIDNIGHT_EVENT:
self._MIDNIGHT_EVENT = False self._MIDNIGHT_EVENT = False
self.send("Уведомление о миднайте выключено") self.send("Уведомление о миднайте выключено")
@ -216,6 +223,24 @@ class VkBot:
log(False, f"Бот id{self._CHAT_ID}: Юзер подписался на ивент \"Миднайт\"") log(False, f"Бот id{self._CHAT_ID}: Юзер подписался на ивент \"Миднайт\"")
users[self._CHAT_ID]["midnight"] = self._MIDNIGHT_EVENT users[self._CHAT_ID]["midnight"] = self._MIDNIGHT_EVENT
update_users_json(users) update_users_json(users)
else:
respond['text'] = "Отказано в доступе"
elif message[0] == self._COMMANDS[13]:
if int(user_id) == int(owner_id):
try:
if message[1] == "owner":
respond['text'] = "Теперь некоторыми командами может пользоваться только владелец бота"
self._ACCESS_LEVEL = 0
elif message[1] == "all":
respond['text'] = "Теперь все могут пользоваться всеми командами"
self._ACCESS_LEVEL = 1
else:
respond['text'] = "Некорректный аргумент"
except IndexError:
respond['text'] = "Отсуствует аргумент"
else:
respond['text'] = "Отказано в доступе"
if respond['text'] or respond['attachment']: if respond['text'] or respond['attachment']:
self.send(respond['text'], respond['attachment']) self.send(respond['text'], respond['attachment'])
@ -438,12 +463,12 @@ def bots():
log(False, f'Новое сообщение: {event.message}') log(False, f'Новое сообщение: {event.message}')
debug_array['messages_get'] += 1 debug_array['messages_get'] += 1
if int(event.message.peer_id) in bot: if int(event.message.peer_id) in bot:
bot[event.message.peer_id].get_message(event.message.text) bot[event.message.peer_id].get_message(event.message.text, event.message.from_id)
else: else:
bot[event.message.peer_id] = VkBot(event.message.peer_id) bot[event.message.peer_id] = VkBot(event.message.peer_id)
users[event.message.peer_id] = {"midnight": False} users[event.message.peer_id] = {"midnight": False}
update_users_json(users) update_users_json(users)
bot[event.message.peer_id].get_message(event.message.text) bot[event.message.peer_id].get_message(event.message.text, event.message.from_id)
except Exception as kek: except Exception as kek:
err = "Беды с ботом: " + str(kek) err = "Беды с ботом: " + str(kek)
log(True, err) log(True, err)