Skip to main content

Библиотека для лекгого написания ботов ВК!

Project description

LiteVkApi

Бот в Вк? Легко!

Pypi - https://pypi.org/project/LiteVkApi/

КРАТКАЯ ДОКУМЕНТАЦИЯ

Привет! Эта библиотека создана для быстрого написания ботов (преимущественно ЛС) в ВК. Мне захотелось, чтобы ботов писать было быстро и легко, поэтому я сделал удобную библиотеку с самыми популярными функциями vk_api. Сейчас я расскажу вам о ней!

P.s. Если вы читаете это в PypI, то у вас могут некорректно отображаться таблички с пояснениями функций. На Гитхабе все хорошо - https://github.com/Ma-Mush/LiteVkApi/

Импорты

Для начала установите vk_api, если он не установлен - pip3 install vk_api Скрипт библиотеки написан в виде функций и различных переменных в классе, поэтому можно использовать несколько вариантов импорта: Рекомендую - from LiteVkApi import Vk (будет описана здесь), import LiteVkApi (придется использовать LiteVkApi.Vk._), <один из предыдущих вариантов> as <название> (вместо названия импортированного модуля можно использовать свое имя)

Vk.help()

Функция выведет в консоль информацию, которая описывает основное строение билиотеки, как с ней работать, что она может и так далее. Вообщем документация на минималках) Примерный ответ:

  1. login < id_group> < token> < chats=False> < my_key=0> < my_server=0> < my_ts=0> - входит в бота по указанному ID группы и токену. Если бот для беседы - поставьте chats=True и укажите параметры подключения
  2. msg < text> < userid> < chats=False> - отправляет текст по указанному ID пользователя/чата, если он уже писал боту/бот состоит в беседе и имеет право писать сообщения.
  3. check_new_msg < chats=False> - проверяет наличие новых сообщений, выдает True/False.
  4. get_event - возвращает в переменную данные о сообщении.
  5. send_photo < file_name> < userid> < msg=None> < chats=False> - отправляет фото с компьютера по указанному адресу пользователю с указанным ID/беседе и сообщением (по умолчанию без него) при выполнении условий из функции "msg".
  6. new_keyboard < dicts> < perm=True> - создает клавиатуру по массиву со словарями, например - [{'кнопка 1':'цвет 1'}, {'new_line':' '}, {'кнопка 2':'цвет 2'}], perm обозначает, будет ли пропадать клавиатура после нажатия на кнопку (при True - не будет). Подробнее можно узнать в документации - ссылка сюда
  7. send_keyboard < keyboard> < userid> < msg='Клавиатура!'> < chats=False> - отправляет пользователю/беседе по ID указанную клавиатуру, отправляя указанное сообщение
  8. delete_keyboard < userid> < msg='Клавиатура закрыта!'> < chats=False> - удаляет клавиатуру у указанного пользователя, отправляя указанное сообщение
  9. send_file < file_name> < userid> < msg=None> < chats=False> - отправляет файл с компьютера по указанному адресу пользователю с указанным ID/беседе и сообщением (по умолчанию без него) при выполнении условий из функции "msg"
  10. mailing < text> < userids> < chats=False> - рассылка по ID пользователей/бесед

Vk.Login(< id_group>, < token>, < chats=False>, < my_key=0>, < my_server=0>, < my_ts=0>)

Функция регистрирует вас на сервере ВКонтакте. Параметры:

Название Что это?
id_group id группы в числовом виде (например 200397283)
token Токен сообщества в виде строки (например 'a244f42a676ec65dbod1e713aab88e735e311448868357u545c27cd64802tc8a31ee66e4628a0a4ca98be')
chat Для беседы вы используете бота или нет (True / False)? По умолчанию False
ост. Настройки для беседы, узать тут - https://vk.com/dev/groups.getLongPollServer

p.s. Для бесед не тестировал, возможны ошибки)

Vk.msg (< text> < userid> < chats=False>)

Отправляет сообщение пользователю по ID / беседе по ее номеру с заданным текстом Параметры:

Название Что это?
text Текст сообщения
userid ID пользователя/беседы для отправкии сообщеия
chat Для беседы вы используете бота или нет (True / False)? По умолчанию False

Vk.check_new_msg()

Используется для проверки новых сообщений (возвращает True / False) Параметры:

Название Что это?
chat Для беседы вы используете бота или нет (True / False)? По умолчанию False

Vk.get_event()

Возвращает данные о новом сообщении при его наличии. Основные параметры выданных данных - user_id / chat_id, text. Подробнее в документации vk_api.

Vk.send_photo(< file_name>, < userid>, < msg=None>, < chats=False>)

Отправляет фото с сообщением / без него пользователю/беседе. Параметры:

Название Что это?
file_name имя файла в директории запущенного питон-файла или полный путь к нему
userid ID пользователя/беседы для отправкии сообщеия
msg Текст сообщения (по умолчанию без него)
chat Для беседы вы используете бота или нет (True / False)? По умолчанию False

Vk.new_keyboard(< dicts>, < perm=True>)

Создание клавиатуры (возвращает данные в переменную для отправки) Параметры:

Название Что это?
dicts Масив со словарями, содержащими данные о кнопках.
perm Будет ли сохранятся клавиатура после нажатия (True / False)? По умолчанию True. (Лайфхак - False можно использовать вместо delete_keyboard при поэтапной выдаче клавиатур)

По кнопкам: Словарь для обычной кнопки - {Текст:Цвет} (все цвета - ['POSITIVE', '3', 'ЗЕЛЕНЫЙ'], ['NEGATIVE', '2', 'КРАСНЫЙ'], ['SECONDARY', '1', 'БЕЛЫЙ'], ['PRIMARY', '0', 'СИНИЙ']).

Для переноса на новую линию - {"new_line":""}.

Для открытие перевода в VkPay - {"vk_pay":hash твоего кошелька}.

Для открытия мини-приложения Вконтакте - {"open_app":[{"app_id":ид приложения}, {"owner_id":owner id приложения}, {"label":текст на кнопке}, {"hash":хэш приложения}]}

Для открытия ссылки на любой ресурс - {"open_link":[{"label":текст кнопки}, {"link":ссылка с http / https / www}]}

Vk.send_keyboard(< keyboard>, < userid>, < msg='Клавиатура!'>, < chats=False>)

Отправляем пользователю созданнуб раннее клавиатуру Параметры:

Название Что это?
keyboard Клавиатура, созданная раннее
userid Ид пользователя / беседы
msg Сообщение при отправке клавиатуры (по умолчанию 'Клавиатура!')
chats Для беседы вы используете бота или нет (True / False)? По умолчанию False

Vk.delete_keyboard(< userid>, < msg='Клавиатура закрыта!'>, < chats=False>)

Удаляет клавиатуру у пользователя. Параметры:

Название Что это?
userid Ид пользователя / беседы
msg Сообщение при удалении клавиатуры (по умолчанию 'Клавиатура закрыта!')
chats Для беседы вы используете бота или нет (True / False)? По умолчанию False

Vk.send_file (< file_name>, < userid>, < msg=None>, < chats=False>)

Отправляет файл с сообщением / без него пользователю/беседе. Параметры:

Название Что это?
file_name имя файла в директории запущенного питон-файла или полный путь к нему
userid ID пользователя/беседы для отправкии сообщеия
msg Текст сообщения (по умолчанию без него)
chat Для беседы вы используете бота или нет (True / False)? По умолчанию False

Vk.mailing (< text>, < userids>, < chats=False>)

Делает рассылку независимо от других действий (бот будет отвечать во время рассылки) при наличии функции многопоточности процессора. Параметры:

Название Что это?
text Текст сообщения
userids Массив с ID пользователей / бесед (например - [123456, 1234567, 12345678])
chat Для беседы вы используете бота или нет (True / False)? По умолчанию False

Примеры

Отправка сообщения с тем же текстом, тому же пользователю, что и прислали нам:

from LiteVkApi import Vk
Vk.login(твой ид, "твой токен")
while True:
    if Vk.check_new_msg():
        event = Vk.get_event()
        Vk.msg(event.text, event.user_id)

Простейший бот:

from LiteVkApi import Vk
Vk.login(твой ид, "твой токен")
while True:
    if Vk.check_new_msg():
        event = Vk.get_event()
        eventxt, userid = event.text, event.user_id
        if eventxt == 'Привет':
            Vk.msg(f'Привет, {userid}', userid)
        elif eventxt == 'Как дела?':
            Vk.msg('Хорошо, а у тебя?', userid)

Создание, отправка и удаление клавиатуры:

from LiteVkApi import Vk
Vk.login(твой ид, "твой токен")
while True:
    if Vk.check_new_msg():
        event = Vk.get_event()
        if event.text == 'Клавиатура':
            kbrd = [{'Клавиатура':"синий"}, {'new_line':""}, {'Закрыть клавиатуру':'3'}, {'new_line':''}, {'open_link':[{'label':'Создатель библиотеки'}, {'link':'https://vk.com/maks.mushtriev2'}]}]
            keyboard = Vk.new_keyboard(kbrd)
            Vk.send_keyboard(keyboard, event.user_id, 'А вот и клавиатура!')
        elif event.text == 'Закрыть клавиатуру':
            Vk.delete_keyboard(event.user_id, 'Теперь клавиатура закрыта!')

Отправка файла и фото:

from LiteVkApi import Vk
Vk.login(твой ид, "твой токен")
while True:
    if Vk.check_new_msg():
        event = Vk.get_event()
        try:
            Vk.send_photo(event.text, event.user_id, 'Отправляю фото...')
            Vk.send_file(event.text, event.user_id, 'Отправляю файл...')
        except:
            Vk.msg('Не могу найти файл {} или указанный файл не является фотографией'.format(event.text), event.user_id)

Контакты

Что-то не работает, есть вопросы, пожелания? Пиши - vk.com/maks.mushtriev2, t.me/Error_mak25

Мой блог - vk.com/mamush_blog

Донат - vk.cc/az7BQK (Киви)

Удачи!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

LiteVkApi-1.1.1.tar.gz (7.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page