!random & now bot react on event MESSAGE_DENY
This commit is contained in:
parent
9cf3906070
commit
3d2b75044c
|
@ -11,3 +11,4 @@ test.py
|
|||
.idea/inspectionProfiles/profiles_settings.xml
|
||||
randomcolor.jpg
|
||||
.idea/.gitignore
|
||||
ossworkspace.code-workspace
|
||||
|
|
|
@ -29,6 +29,7 @@ owm = pyowm.OWM('OpenWeather_api_key', language='ru') # Ключ OpenWeather API
|
|||
* **!user_id *id*** — бот отправляет *id* нужного вам пользователя в vk api методом `users.get` и отправляет вам полученные этим методом данные: имя, фамилия, id, пол, время последнего онлайна и платформы, закрыт ли профиль
|
||||
* **!group_id *id*** — бот отправляет *id* нужного вам сообщества в vk api методом `groups.getById` и отправляет вам полученные этим методом данные: название, описание, id, количество подписчиков
|
||||
* **!image** — бот, с помощью костыля в виде сервисного ключа приложения, получает vk api методом `photos.get` фотографии альбома, выбирает с помощью функции в python `random.randrange` одну фотографию и отправляет вам её как attachment
|
||||
* **!random *число1* *число2*** — бот генерирует с помощью `random.randint()` случайное число и отправляет его вам. Если без аргументов, то число от 0 до 10. Если есть одно число, то от 0 до *число1*. Если есть оба числа, то от *число1* до *число2*
|
||||
* **!weather *город*** — бот получает с помощью OpenWeather API текущую погоду в городе и отправляет её вам
|
||||
* **!wiki *запрос*** — бот получает с помощью Wikipedia API краткое описание статьи по запросу и отправляет её вам
|
||||
* **!byn** — бот получает с помощью НБ РБ API текущий курс белорусского рубля и отправляет её вам
|
||||
|
|
|
@ -109,10 +109,10 @@ class VkBot:
|
|||
self._OWNER = False
|
||||
|
||||
self._COMMANDS = ["!image", "!my_id", "!h", "!user_id", "!group_id", "!help", "!weather", "!wiki", "!byn",
|
||||
"!echo", "!game", "!debug", "!midnight", "!access", "!turnoff", "!reminder", "!subscribe"]
|
||||
"!echo", "!game", "!debug", "!midnight", "!access", "!turnoff", "!reminder", "!subscribe", "!random"]
|
||||
|
||||
def __str__(self):
|
||||
return f"peer_id: {str(self._CHAT_ID)}, m: {str(self._MIDNIGHT_EVENT)}, await: {str(self._AWAITING_INPUT_MODE)}, tasks: {len(users[self._CHAT_ID]['tasks'])}"
|
||||
return f"[BOT_{str(self._CHAT_ID)}] a: {str(self._ACCESS_LEVEL)}, mn: {str(self._MIDNIGHT_EVENT)}, await: {str(self._AWAITING_INPUT_MODE)}, tasks: {len(users[self._CHAT_ID]['tasks'])}, sub: {str(self._NEW_POST)}"
|
||||
|
||||
def __del__(self):
|
||||
log(False, f"[BOT_{str(self._CHAT_ID)}] Bot-object has been deleted")
|
||||
|
@ -315,6 +315,17 @@ class VkBot:
|
|||
else:
|
||||
respond['text'] = errors_array["access"]
|
||||
|
||||
elif message[0] == self._COMMANDS[17]:
|
||||
try:
|
||||
message[1] = message[1].split(' ', 1)
|
||||
try:
|
||||
respond['text'] = self.random_number(int(message[1][0]), int(message[1][1]))
|
||||
except:
|
||||
respond['text'] = self.random_number(0, int(message[1][0]))
|
||||
except:
|
||||
respond['text'] = self.random_number(0, 10)
|
||||
|
||||
|
||||
if respond['text'] or respond['attachment']:
|
||||
self.send(respond['text'], respond['attachment'])
|
||||
|
||||
|
@ -563,6 +574,10 @@ class VkBot:
|
|||
log(True, err)
|
||||
return "Невозможно получить данные из НБ РБ: " + str(mda)
|
||||
|
||||
def random_number(self, lower, higher):
|
||||
r = random.randint(lower, higher)
|
||||
return f"Рандомное число от {lower} до {higher}:<br>{r}"
|
||||
|
||||
def change_await(self, awaiting=None):
|
||||
self._AWAITING_INPUT_MODE = awaiting
|
||||
try:
|
||||
|
@ -643,8 +658,11 @@ def bots():
|
|||
log(False, f"[NEW_POST] id{event.object.id}")
|
||||
for i in users:
|
||||
bot[int(i)].event("post", event.object)
|
||||
else:
|
||||
log(False, str(event))
|
||||
elif event.type == VkBotEventType.MESSAGE_DENY:
|
||||
log(False, f"User {event.object.user_id} deny messages from that group")
|
||||
del bot[int(event.object.user_id)]
|
||||
del users[int(event.object.user_id)]
|
||||
update_users_json(users)
|
||||
except Exception as kek:
|
||||
err = "Беды с ботом: " + str(kek)
|
||||
log(True, err)
|
||||
|
|
18
help.txt
18
help.txt
|
@ -1,17 +1,33 @@
|
|||
Я бот, призванный доставлять неудобства.
|
||||
Команды:
|
||||
|
||||
!my_id - сообщит ваш id в ВК
|
||||
|
||||
!user_id *id* - сообщит информацию о этом пользователе
|
||||
|
||||
!group_id *id* - сообщит информацию о этой группе
|
||||
|
||||
!image - отправляет рандомную картинку из альбома
|
||||
|
||||
!weather *город* - отправляет текущую погоду в городе (данные из OpenWeather API)
|
||||
|
||||
!wiki *запрос* - отправляет информацию об этом из Wikipedia
|
||||
|
||||
!byn - отправляет текущий курс валют, полученный из API НБ РБ
|
||||
|
||||
!echo - бот отправляет вам всё, что вы ему пишите
|
||||
|
||||
!game *камень/ножницы/бумага/статистика* - бот будет играть с вами в "Камень, ножницы, бумага" и записывать статистику
|
||||
|
||||
!random *число1* *число2* - генерирует случайное число и отправляет его вам. Если без аргументов, то число от 0 до 10. Если есть одно число, то от 0 до *число1*. Если есть оба числа, то от *число1* до *число2*
|
||||
|
||||
!midnight - бот будет уведомлять вас о 00:00 по Москве. Отправьте ещё раз, чтобы бот больше вас не уведомлял
|
||||
|
||||
!reminder *set/list/delete* - напоминалка. set устанавливает напоминание, delete удаляет, list выдаёт список ваших напоминаний
|
||||
|
||||
!subscribe - бот будет уведомлять вас новых постах в группе. Отправьте ещё раз, чтобы бот больше вас не уведомлял
|
||||
|
||||
!h, !help - справка
|
||||
Дата последнего обновления: 25.05.2020 (Эта справка вынесена в txt файл)
|
||||
|
||||
Дата последнего обновления: 27.05.2020 (!random)
|
||||
Проект бота на GitHub: https://github.com/dan63047/dan63047pythonbot
|
||||
|
|
Loading…
Reference in New Issue