!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
|
.idea/inspectionProfiles/profiles_settings.xml
|
||||||
randomcolor.jpg
|
randomcolor.jpg
|
||||||
.idea/.gitignore
|
.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, пол, время последнего онлайна и платформы, закрыт ли профиль
|
* **!user_id *id*** — бот отправляет *id* нужного вам пользователя в vk api методом `users.get` и отправляет вам полученные этим методом данные: имя, фамилия, id, пол, время последнего онлайна и платформы, закрыт ли профиль
|
||||||
* **!group_id *id*** — бот отправляет *id* нужного вам сообщества в vk api методом `groups.getById` и отправляет вам полученные этим методом данные: название, описание, id, количество подписчиков
|
* **!group_id *id*** — бот отправляет *id* нужного вам сообщества в vk api методом `groups.getById` и отправляет вам полученные этим методом данные: название, описание, id, количество подписчиков
|
||||||
* **!image** — бот, с помощью костыля в виде сервисного ключа приложения, получает vk api методом `photos.get` фотографии альбома, выбирает с помощью функции в python `random.randrange` одну фотографию и отправляет вам её как attachment
|
* **!image** — бот, с помощью костыля в виде сервисного ключа приложения, получает vk api методом `photos.get` фотографии альбома, выбирает с помощью функции в python `random.randrange` одну фотографию и отправляет вам её как attachment
|
||||||
|
* **!random *число1* *число2*** — бот генерирует с помощью `random.randint()` случайное число и отправляет его вам. Если без аргументов, то число от 0 до 10. Если есть одно число, то от 0 до *число1*. Если есть оба числа, то от *число1* до *число2*
|
||||||
* **!weather *город*** — бот получает с помощью OpenWeather API текущую погоду в городе и отправляет её вам
|
* **!weather *город*** — бот получает с помощью OpenWeather API текущую погоду в городе и отправляет её вам
|
||||||
* **!wiki *запрос*** — бот получает с помощью Wikipedia API краткое описание статьи по запросу и отправляет её вам
|
* **!wiki *запрос*** — бот получает с помощью Wikipedia API краткое описание статьи по запросу и отправляет её вам
|
||||||
* **!byn** — бот получает с помощью НБ РБ API текущий курс белорусского рубля и отправляет её вам
|
* **!byn** — бот получает с помощью НБ РБ API текущий курс белорусского рубля и отправляет её вам
|
||||||
|
|
|
@ -109,10 +109,10 @@ class VkBot:
|
||||||
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", "!access", "!turnoff", "!reminder", "!subscribe"]
|
"!echo", "!game", "!debug", "!midnight", "!access", "!turnoff", "!reminder", "!subscribe", "!random"]
|
||||||
|
|
||||||
def __str__(self):
|
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):
|
def __del__(self):
|
||||||
log(False, f"[BOT_{str(self._CHAT_ID)}] Bot-object has been deleted")
|
log(False, f"[BOT_{str(self._CHAT_ID)}] Bot-object has been deleted")
|
||||||
|
@ -314,6 +314,17 @@ class VkBot:
|
||||||
log(False, f"[BOT_{self._CHAT_ID}] Subscribed on new posts")
|
log(False, f"[BOT_{self._CHAT_ID}] Subscribed on new posts")
|
||||||
else:
|
else:
|
||||||
respond['text'] = errors_array["access"]
|
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']:
|
if respond['text'] or respond['attachment']:
|
||||||
self.send(respond['text'], respond['attachment'])
|
self.send(respond['text'], respond['attachment'])
|
||||||
|
@ -563,6 +574,10 @@ class VkBot:
|
||||||
log(True, err)
|
log(True, err)
|
||||||
return "Невозможно получить данные из НБ РБ: " + str(mda)
|
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):
|
def change_await(self, awaiting=None):
|
||||||
self._AWAITING_INPUT_MODE = awaiting
|
self._AWAITING_INPUT_MODE = awaiting
|
||||||
try:
|
try:
|
||||||
|
@ -643,8 +658,11 @@ def bots():
|
||||||
log(False, f"[NEW_POST] id{event.object.id}")
|
log(False, f"[NEW_POST] id{event.object.id}")
|
||||||
for i in users:
|
for i in users:
|
||||||
bot[int(i)].event("post", event.object)
|
bot[int(i)].event("post", event.object)
|
||||||
else:
|
elif event.type == VkBotEventType.MESSAGE_DENY:
|
||||||
log(False, str(event))
|
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:
|
except Exception as kek:
|
||||||
err = "Беды с ботом: " + str(kek)
|
err = "Беды с ботом: " + str(kek)
|
||||||
log(True, err)
|
log(True, err)
|
||||||
|
|
18
help.txt
18
help.txt
|
@ -1,17 +1,33 @@
|
||||||
Я бот, призванный доставлять неудобства.
|
Я бот, призванный доставлять неудобства.
|
||||||
Команды:
|
Команды:
|
||||||
|
|
||||||
!my_id - сообщит ваш id в ВК
|
!my_id - сообщит ваш id в ВК
|
||||||
|
|
||||||
!user_id *id* - сообщит информацию о этом пользователе
|
!user_id *id* - сообщит информацию о этом пользователе
|
||||||
|
|
||||||
!group_id *id* - сообщит информацию о этой группе
|
!group_id *id* - сообщит информацию о этой группе
|
||||||
|
|
||||||
!image - отправляет рандомную картинку из альбома
|
!image - отправляет рандомную картинку из альбома
|
||||||
|
|
||||||
!weather *город* - отправляет текущую погоду в городе (данные из OpenWeather API)
|
!weather *город* - отправляет текущую погоду в городе (данные из OpenWeather API)
|
||||||
|
|
||||||
!wiki *запрос* - отправляет информацию об этом из Wikipedia
|
!wiki *запрос* - отправляет информацию об этом из Wikipedia
|
||||||
|
|
||||||
!byn - отправляет текущий курс валют, полученный из API НБ РБ
|
!byn - отправляет текущий курс валют, полученный из API НБ РБ
|
||||||
|
|
||||||
!echo - бот отправляет вам всё, что вы ему пишите
|
!echo - бот отправляет вам всё, что вы ему пишите
|
||||||
|
|
||||||
!game *камень/ножницы/бумага/статистика* - бот будет играть с вами в "Камень, ножницы, бумага" и записывать статистику
|
!game *камень/ножницы/бумага/статистика* - бот будет играть с вами в "Камень, ножницы, бумага" и записывать статистику
|
||||||
|
|
||||||
|
!random *число1* *число2* - генерирует случайное число и отправляет его вам. Если без аргументов, то число от 0 до 10. Если есть одно число, то от 0 до *число1*. Если есть оба числа, то от *число1* до *число2*
|
||||||
|
|
||||||
!midnight - бот будет уведомлять вас о 00:00 по Москве. Отправьте ещё раз, чтобы бот больше вас не уведомлял
|
!midnight - бот будет уведомлять вас о 00:00 по Москве. Отправьте ещё раз, чтобы бот больше вас не уведомлял
|
||||||
|
|
||||||
!reminder *set/list/delete* - напоминалка. set устанавливает напоминание, delete удаляет, list выдаёт список ваших напоминаний
|
!reminder *set/list/delete* - напоминалка. set устанавливает напоминание, delete удаляет, list выдаёт список ваших напоминаний
|
||||||
|
|
||||||
!subscribe - бот будет уведомлять вас новых постах в группе. Отправьте ещё раз, чтобы бот больше вас не уведомлял
|
!subscribe - бот будет уведомлять вас новых постах в группе. Отправьте ещё раз, чтобы бот больше вас не уведомлял
|
||||||
|
|
||||||
!h, !help - справка
|
!h, !help - справка
|
||||||
Дата последнего обновления: 25.05.2020 (Эта справка вынесена в txt файл)
|
|
||||||
|
Дата последнего обновления: 27.05.2020 (!random)
|
||||||
Проект бота на GitHub: https://github.com/dan63047/dan63047pythonbot
|
Проект бота на GitHub: https://github.com/dan63047/dan63047pythonbot
|
||||||
|
|
Loading…
Reference in New Issue