dan63047 79fedeba68 | ||
---|---|---|
.github/ISSUE_TEMPLATE | ||
.gitattributes | ||
.gitignore | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
LICENSE | ||
README.md | ||
dan63047bot.py | ||
help.txt |
README.md
Мой личный бот на python для ВК
от dan63047
Этот бот просто отвечает на поддержваемые запросы в переписке с сообществом. Был написан мною в целях изучения python
Для того, что бы бот работал, сначала нужно создать в папке бота файл config.py
, который должен иметь следующее содержание:
import vk_api
import pyowm
vk = vk_api.VkApi(token="vk_group_access_token") # Токен сообщества в ВК
vk_mda = vk_api.VkApi(token="vk_app_service_key") # Костыль для того, чтобы работал метод photos.get
group_id = 190322075 # Цифровой id вашего сообщества
album_for_command = 269199619 # Цифровой id альбома для команды !image
owner_id = 276193568 # Ваш цифровой id
owm = pyowm.OWM('OpenWeather_api_key', language='ru') # Ключ OpenWeather API для функции погоды
Установите в группе версию Long Poll API на 5.103
Запустите dan63047bot.py
, что бы бот начал слушать сервер
Функции бота
Чтобы воспользоваться функциями бота необходимо отправить команду и в некоторых случаях агрумент. Все команды начинаются с восклицательного знака
- !h, !help — бот отправляет список команд и их краткое описание, а так же дату последнего обновления и ссылку на этот репозиторий
- !my_id — бот достаёт из вашего сообщения
user_id
и отправляет его вам - !user_id id — бот отправляет id нужного вам пользователя в vk api методом
users.get
и отправляет вам полученные этим методом данные: имя, фамилия, id, пол, время последнего онлайна и платформы, закрыт ли профиль - !group_id id — бот отправляет id нужного вам сообщества в vk api методом
groups.getById
и отправляет вам полученные этим методом данные: название, описание, id, количество подписчиков - !image — бот, с помощью костыля в виде сервисного ключа приложения, получает vk api методом
photos.get
фотографии альбома, выбирает с помощью функции в pythonrandom.randrange
одну фотографию и отправляет вам её как attachment - !random число1 число2 — бот генерирует с помощью
random.randint()
случайное число и отправляет его вам. Если без аргументов, то число от 0 до 10. Если есть одно число, то от 0 до число1. Если есть оба числа, то от число1 до число2 - !weather город — бот получает с помощью OpenWeather API текущую погоду в городе и отправляет её вам
- !wiki запрос — бот получает с помощью Wikipedia API краткое описание статьи по запросу и отправляет её вам
- !byn — бот получает с помощью НБ РБ API текущий курс белорусского рубля и отправляет её вам
- !echo — бот начинает повторять за вами, чтобы это остановить, надо написать !echo off
- !game камень/ножницы/бумага/статистика — бот играет с вами в "Камень, ножницы, бумага" и ведет статискику игр, которую записывает в файл json
- !midnight — бот будет уведомлять о каждом миднайте по Московскому времени. Введите ещё раз, чтобы отменить это
- !reminder set/list/delete — напоминалка. С агрументом set бот запускает установку напоминания, с аргументом list отправляет вам все ваши запланированные напоминания, с аргументом delete запускает удаление напоминания
- !subscribe — бот будет уведомлять вас о каждом новом посте. Введите ещё раз, чтобы отменить это
- !debug — бот отправляет информацию о своём состоянии
- !debug log — бот отправляет последние 10 строк из своего лога. Доступно только вам
- !debug bots — бот отправляет информацию о обьектах бота в памяти. Доступно только вам
- !access all/owner — позволяет в беседе установить уровень доступа к командам !midnight, !subscribe и !debug. all - все могут пользоваться. owner - только вы. Доступно только вам
- !turnoff — даёт боту команду на выключение. Доступно только вам
- !admin_mode — если чат, в которой активируется команда, является беседой и в ней у бота есть полномочия администратора, то бот переходит в режим модерации. Пока что он может только кикать людей за @all и @online. Введите ещё раз, чтобы выключить режим модерации. Доступно только вам
Использованные библиотеки
- vk_api — модуль для создания скриптов для социальной сети Вконтакте
- pyowm — модуль для получения погоды через OpenWeather API
- Wikipedia-API — модуль для получения статей из Wikipedia
- Pillow — Python Imaging Library fork
Дополнительно
С ботом можно пообщаться здесь
Автор бота: Даниил Михайлов
Буду рад помощи и поддержке