Skip to main content

Asynchronous library for organizing interactions with Vkontakte api

Project description

Vkpore

Build Status codecov Documentation Status CodeFactor Codacy Badge codebeat badge PyPI version

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 uses aiohttp.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 with execute 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 in VkClient - it will possibly work fine.

  • Does this library support telegram? No. It's a library for Vkontakte.

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

vkpore-0.1.1.tar.gz (12.8 kB view details)

Uploaded Source

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

Hashes for vkpore-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8453042f5a305c9881bba5e4bf5c4ee228b91a0d93b8e7dfea339194554993d6
MD5 ca567a38392e9deebfdb70760cfe2129
BLAKE2b-256 56da193aef314ffad4de59e6fd7e3d7123e64a0a02b678b4475517439d2e8c9a

See more details on using hashes here.

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