Asynchronous library for organizing interactions with Vkontakte api
Project description
Vkpore
Asynchronous library for organizing interactions with Vkontakte api
Documentation
Documentation is available here. Before asking the questions - please consult the documentation with its FAQ.
Features
- Direct requests to Vkontakte API
- Requests to Vkontakte API using execute
- Straightforward usage and API
- Heavily annotated types
- Extensive testing
- Supports multiple groups at the same time
- Small overhead
- Build on experience and many known use cases
Supported attachments
You can use these classes from vkpore.objects
to parse source data into
instances. If you need something not supported by the library, every
instance has .content_raw
field with raw source data.
Sticker
(type:sticker
)Video
(type:video
)Photo
(type:photo
)Audio
(type:audio
)Link
(type:link
)Wall
(type:wall
)Gift
(type:gift
)Doc
(type:doc
)
Supported events
You can use these classes from vkpore.events
to parse source data into
instances. If you need something not supported by the library, every
instance has .source
field with raw source data.
MessageNew
(type:message_new
)
Usage
Longpoll
You can use class Vkpore
to create a manager and subscribe callbacks to
events. When the manager receives event, it will call registered callback
for type vk:<vkontakte-event-name>
. The callback will receive an event
instance through which you can interact with Vkontakte.
To start the manager, just call .run()
method. If you want to run
manager in background, you can use use coroutine .start()
.
Example
app = Vkpore(["token"])
@app.on("vk:message_new")
async def _(event: MessageNew): # Echo callback
await event.response(event.text)
app.run()
Client
You can use class VkClient
to perform requests in a loop with execute
or directly.
VkClient
usesaiohttp.ClientSession
, so you need to clean up before exiting your application, if your don't want to see the warnings
Example without loop
async def application():
client = VkClient("token")
users = await client.raw_request("users.get", user_id=188149294)
if users:
print(users[0])
await client.close_session()
get_event_loop().run_until_complete(application())
Example with loop
- Use
.request()
to utilize batching withexecute
and respect limits - Place your calls to
.request()
between.start()
and.stop()
You still have to close the session
async def application():
client = VkClient("token")
client.start()
# ...
await client.stop()
get_event_loop().run_until_complete(application())
FAQ
-
Is there plugins? No.
Vkpore
is a library for aiding in developing your solutions with organizing and using Vkontakte API. -
Is every event is supported? No. Only a few update types are supported with classes at the moment. But. You don't have to only use classes. You can use
"vk:raw"
for receiving any update types that are not supported with classes. -
Does this library work with user accounts? No, but actually yes. Only groups are supported by
Vkpore
class, but if you pass a user token inVkClient
- it will possibly work fine. -
Does this library support telegram? No. It's a library for Vkontakte.
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
File details
Details for the file vkpore-0.1.1.tar.gz
.
File metadata
- Download URL: vkpore-0.1.1.tar.gz
- Upload date:
- Size: 12.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8453042f5a305c9881bba5e4bf5c4ee228b91a0d93b8e7dfea339194554993d6 |
|
MD5 | ca567a38392e9deebfdb70760cfe2129 |
|
BLAKE2b-256 | 56da193aef314ffad4de59e6fd7e3d7123e64a0a02b678b4475517439d2e8c9a |