diff --git a/dan63047bot.py b/dan63047bot.py index f8527e1..224629e 100644 --- a/dan63047bot.py +++ b/dan63047bot.py @@ -94,19 +94,20 @@ class VkBot: log(False, f"Создан объект бота! id{peer_id}") self._CHAT_ID = peer_id self._ECHO_MODE = False + self._ACCESS_LEVEL = 1 if midnight: self._MIDNIGHT_EVENT = True else: self._MIDNIGHT_EVENT = False - if self._CHAT_ID == owner_id: + if int(self._CHAT_ID) == int(owner_id): self._OWNER = True else: self._OWNER = False 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): if event == "midnight" and self._MIDNIGHT_EVENT: @@ -124,16 +125,18 @@ class VkBot: "последний эпизод \"Group Therapy\" от Above & Beyond"] midnight_output = random.choice(midnight_text) + "
" + f"Наступило {current_time.strftime('%d.%m.%Y')}

" - random_thing = random.randint(0, 1) - if random_thing: + random_thing = random.randint(0, 2) + if random_thing == 0: midnight_output += random.choice(midnight_after) - else: + elif random_thing == 1: 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) log(False, f"Бот id{self._CHAT_ID} оповестил о миднайте") - def get_message(self, message): + def get_message(self, message, user_id): if self._ECHO_MODE: if message == "!echo off": self.send(message) @@ -200,22 +203,44 @@ class VkBot: respond['text'] = "Отсуствует аргумент" elif message[0] == self._COMMANDS[11]: - try: - respond['text'] = self.debug(message[1]) - except IndexError: - respond['text'] = self.debug() + if self._ACCESS_LEVEL or int(user_id) == int(owner_id): + try: + respond['text'] = self.debug(message[1]) + except IndexError: + respond['text'] = self.debug() + else: + respond["text"] = "Отказано в доступе" elif message[0] == self._COMMANDS[12]: - if self._MIDNIGHT_EVENT: - self._MIDNIGHT_EVENT = False - self.send("Уведомление о миднайте выключено") - log(False, f"Бот id{self._CHAT_ID}: Юзер отписался от ивента \"Миднайт\"") + if self._ACCESS_LEVEL or int(user_id) == int(owner_id): + if self._MIDNIGHT_EVENT: + self._MIDNIGHT_EVENT = False + self.send("Уведомление о миднайте выключено") + log(False, f"Бот id{self._CHAT_ID}: Юзер отписался от ивента \"Миднайт\"") + else: + self._MIDNIGHT_EVENT = True + self.send("Бот будет уведомлять вас о каждом миднайте") + log(False, f"Бот id{self._CHAT_ID}: Юзер подписался на ивент \"Миднайт\"") + users[self._CHAT_ID]["midnight"] = self._MIDNIGHT_EVENT + update_users_json(users) else: - self._MIDNIGHT_EVENT = True - self.send("Бот будет уведомлять вас о каждом миднайте") - log(False, f"Бот id{self._CHAT_ID}: Юзер подписался на ивент \"Миднайт\"") - users[self._CHAT_ID]["midnight"] = self._MIDNIGHT_EVENT - update_users_json(users) + 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']: self.send(respond['text'], respond['attachment']) @@ -438,12 +463,12 @@ def bots(): log(False, f'Новое сообщение: {event.message}') debug_array['messages_get'] += 1 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: bot[event.message.peer_id] = VkBot(event.message.peer_id) users[event.message.peer_id] = {"midnight": False} 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: err = "Беды с ботом: " + str(kek) log(True, err)