pythonbot/README.md

7.1 KiB
Raw Blame History

Мой личный бот на 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 фотографии альбома, выбирает с помощью функции в python random.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

Дополнительно

С ботом можно пообщаться здесь

Автор бота: Даниил Михайлов

Буду рад помощи и поддержке