Framework for building high-performance & easy to scale projects interacting with VK's API.
Project description
Пришло время избавиться от vk_api и vkbottle. VKWave здесь.
from vkwave.bots import SimpleLongPollBot
bot = SimpleLongPollBot(tokens="MyToken", group_id=123456789)
@bot.message_handler()
def handle(_) -> str:
return "Hello world!"
bot.run_forever()
Максимум кастомизации
import logging
import asyncio
from vkwave.bots import (
BotEvent,
TokenStorage,
Dispatcher,
DefaultRouter,
GroupId,
BotLongpollExtension,
EventTypeFilter
)
from vkwave.client import AIOHTTPClient
from vkwave.api import API, BotSyncSingleToken, Token
from vkwave.longpoll import BotLongpoll, BotLongpollData
logging.basicConfig(level=logging.DEBUG)
bot_token = Token("123")
gid = 123
router = DefaultRouter()
@router.registrar.with_decorator(EventTypeFilter("message_new"))
async def handle(event: BotEvent):
await event.api_ctx.messages.send(
peer_id=event.object.object.message.peer_id,
message=f"Hello world!",
random_id=0,
)
async def main():
client = AIOHTTPClient()
token = BotSyncSingleToken(bot_token)
api_session = API(token, client)
api = api_session.get_context()
lp_data = BotLongpollData(gid)
longpoll = BotLongpoll(api, lp_data)
token_storage = TokenStorage[GroupId]()
dp = Dispatcher(api_session, token_storage)
lp_extension = BotLongpollExtension(dp, longpoll)
dp.add_router(router)
await dp.cache_potential_tokens()
await lp_extension.start()
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.create_task(main())
loop.run_forever()
Простая библиотека для быстрого доступа к API
Что это?
VKWave - это фреймворк для создания производительных и лёгких в расширении проектов, взаимодействующих с API ВКонтакте.
Он создан с использованием asyncio и аннотаций типов Python. Минимальная требуемая версия - это 3.7
.
Наш телеграм чат - давайте общаться!
Текущий мейнтейнер этого проекта @kesha1225
Установка
Установить тестированную и стабильную версию с PyPi:
pip install vkwave
Или с GitHub, со всеми свежими обновлениями.
pip install https://github.com/fscdev/vkwave/archive/master.zip
Производительность
VKWave - это не самая быстрая библиотека, из-за нашей уверенности в том, что лёгкая настройка под себя, а также удобность при использовании во всех задач являются более важными характеристиками библиотеки, чем скорость.
Но мы всегда заинтересованы в улучшении производительности, поэтому не стесняйтесь делать Pull Request-ы и обсуждать проблемы производительности.
Сообщество
VKWave - это очень молодой проект.
Пример бота с вынесением логики можно посмотреть в VkWaveBotExample
Чаты
Как упоминалось ранее, у нас есть чат в Telegram.
Во Вконтакте чата нет, но вы всегда можете создать свой собственный и получить его упоминание здесь.
Дополнения
Если вы хотите создать дополнение для VKWave (например, более простой способ написания ботов, даже проще vkwave.bots.addons.easy
), то вам следует назвать свой проект так: vkwave-bots-really-easy
.
Общий паттерн для дополнений: vkwave-<часть-vkwave>-<название-проекта>
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for vkwave-0.2.10-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f6fb9522aef7a4c2f52075b8c25042490ee6173fdd078cec1bb068898291003 |
|
MD5 | e557e93ffee409b0295f53ffa837d890 |
|
BLAKE2b-256 | 753c68d1cf0f2e47640c24f2515aeef8e21e1c31afd22a7b5082f18c1e42c97a |