Skip to main content

An asyncio twitter client

Project description

jetblack-tweeter

A Python 3.8 asyncio twitter client.

This Twitter client is designed to support arbitrary HTTP clients. There is currently support for bareClient and aiohttp.

Status

This is work in progress, but functional.

There is currently limited support for streaming, statuses and accounts. Only the 1.1 api is currently implemented.

Installation

Install with pip, specifying the HTTP backend you wish to use.

For bareClient:

pip install jetblack-tweeter[bareclient]

For aiohttp:

pip install jetblack-tweeter[aiohttp]

Usage

Here is an example:

import asyncio
import os

from jetblack_tweeter import Tweeter
from jetblack_tweeter.clients.bareclient import BareTweeterSession

# Get the secrets from environment variables.
APP_KEY = os.environ["APP_KEY"]
APP_KEY_SECRET = os.environ["APP_KEY_SECRET"]
ACCESS_TOKEN = os.environ["ACCESS_TOKEN"]
ACCESS_TOKEN_SECRET = os.environ["ACCESS_TOKEN_SECRET"]


async def main():
    tweeter = Tweeter(
        BareTweeterSession(),
        APP_KEY,
        APP_KEY_SECRET,
        # Optional for user authentication.
        access_token=ACCESS_TOKEN,
        access_token_secret=ACCESS_TOKEN_SECRET
    )

    user_timeline = await tweeter.statuses.user_timeline()
    print(user_timeline)

    account_settings = await tweeter.account.settings()
    print(account_settings)

    account_verify_credentials = await tweeter.account.verify_credentials()
    print(account_verify_credentials)

    # Watch the random sampling of tweets chosen by twitter
    async for tweet in tweeter.stream.sample():
        print(tweet)

    # Stream tweets which have the tag "#python" from New York
    # and San Francisco.
    async for tweet in tweeter.stream.filter(
            track=['#python'],
            locations=[
                ((-122.75, 36.8), (-121.75, 37.8)),
                ((-74, 40), (-73, 41))
            ]
    ):
        print(tweet)

    result = await tweeter.statuses.update('Hello from jetblack-tweeter')
    print(result)

if __name__ == '__main__':
    asyncio.run(main())

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

jetblack-tweeter-0.10.0.tar.gz (20.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jetblack_tweeter-0.10.0-py3-none-any.whl (26.9 kB view details)

Uploaded Python 3

File details

Details for the file jetblack-tweeter-0.10.0.tar.gz.

File metadata

  • Download URL: jetblack-tweeter-0.10.0.tar.gz
  • Upload date:
  • Size: 20.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.10.11 Darwin/21.6.0

File hashes

Hashes for jetblack-tweeter-0.10.0.tar.gz
Algorithm Hash digest
SHA256 177fac1acb87484d5a43368c3dc5de4992de2addbdaad3e88e7e1fbc3c72b0fa
MD5 902d4d31f402f14edb729d53ff2a660c
BLAKE2b-256 f1b5bdd303e01289ec0e945cbc250f5a2577af2dcb88cb09bcfb89974c0cc58d

See more details on using hashes here.

File details

Details for the file jetblack_tweeter-0.10.0-py3-none-any.whl.

File metadata

  • Download URL: jetblack_tweeter-0.10.0-py3-none-any.whl
  • Upload date:
  • Size: 26.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.10.11 Darwin/21.6.0

File hashes

Hashes for jetblack_tweeter-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6c179a4609980c6465e891395dc5a3fbb62bdf2deec7fec5c35619ec8b448952
MD5 9449a6cd0e68cfcdf55403c785950e8d
BLAKE2b-256 e2f2d9ae8ffe40465ddf93f04f9cfb2ce267834f4fdb1c097f2053d171e70f77

See more details on using hashes here.

Supported by

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