Skip to main content

Poller for the Chaturbate events API.

Project description

Chaturbate Poller

Chaturbate Poller is a Python library for interacting with the Chaturbate API. It allows you to poll events asynchronously, handle various event types, and optionally store event data in InfluxDB for further analysis or monitoring.

Read the Docs Codecov Coverage CodeFactor Grade Workflow Status License Python Version Version

Features

  • Event Polling: Fetch events from the Chaturbate API using Python's asyncio.
  • Error Handling: Includes retry logic for basic error handling during polling.
  • Optional Logging: Configurable logging to keep track of polling activity.
  • InfluxDB Support: Optionally store events in InfluxDB if data storage is required.

Installation

Make sure you have Python 3.11 or later installed, then install the package:

pip install chaturbate-poller

Configuration

To get started, create a .env file in the root of your project directory. This file will store your API credentials and (if applicable) InfluxDB connection details:

CB_USERNAME="your_chaturbate_username"
CB_TOKEN="your_chaturbate_token"
INFLUXDB_URL="http://influxdb:8086"
INFLUXDB_TOKEN="your_influxdb_token"
INFLUXDB_ORG="chaturbate-poller"
INFLUXDB_BUCKET="your_bucket"
USE_DATABASE="true"  # Enable if you plan to use InfluxDB

[!NOTE] To create an API token, click here: https://chaturbate.com/statsapi/authtoken/

[!IMPORTANT] Ensure you have the "Events API" permission selected before generating

Usage

Command-Line Tool

You run Chaturbate Poller directly from the command line:

python -m chaturbate_poller --username <your_username> --token <your_token>

For more options:

python -m chaturbate_poller --help

Docker Usage

To run Chaturbate Poller in a Docker container:

docker pull ghcr.io/mountaingod2/chaturbate_poller:latest
docker run \
  -e CB_USERNAME="your_chaturbate_username" \
  -e CB_TOKEN="your_chaturbate_token" \
  ghcr.io/mountaingod2/chaturbate_poller:latest --verbose --testbed

Library Example

You can also import it into your programs. Here’s a simple example of how to fetch events in a loop using the library asynchronously:

import asyncio

from chaturbate_poller import ChaturbateClient

async def main():
    async with ChaturbateClient("your_username", "your_token") as client:
        url = None
        while True:
            response = await client.fetch_events(url)
            for event in response.events:

                # Do something with the received events
                print(event.dict())

            url = response.next_url

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

Development Setup

  1. Clone the repository:

    git clone https://github.com/MountainGod2/chaturbate_poller.git
    cd chaturbate_poller
    
  2. Install dependencies using uv:

    uv venv .venv
    uv pip install . -e
    

Contributing

Contributions are welcome! If you'd like to contribute:

  1. Fork the repository.
  2. Create a new feature branch.
  3. Submit a pull request.

Please ensure that any changes pass tests and follow coding guidelines.

License

This project is licensed under the MIT License. See the LICENSE file for more information.

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

chaturbate_poller-0.13.6.tar.gz (132.3 kB view details)

Uploaded Source

Built Distribution

chaturbate_poller-0.13.6-py3-none-any.whl (20.6 kB view details)

Uploaded Python 3

File details

Details for the file chaturbate_poller-0.13.6.tar.gz.

File metadata

  • Download URL: chaturbate_poller-0.13.6.tar.gz
  • Upload date:
  • Size: 132.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for chaturbate_poller-0.13.6.tar.gz
Algorithm Hash digest
SHA256 8cd5a35186722ce72a3604455e3025e42a5dfe3cc8450f8d7e91cfb59d0ba080
MD5 0bb020b34470dc96e32fc2feedcdf5e3
BLAKE2b-256 90cae1061f4a297757d7e8807bb2d0fc71c97eb9957d6f1461e36b95588a451a

See more details on using hashes here.

File details

Details for the file chaturbate_poller-0.13.6-py3-none-any.whl.

File metadata

File hashes

Hashes for chaturbate_poller-0.13.6-py3-none-any.whl
Algorithm Hash digest
SHA256 5e2f56d374574f8347688e3b969fde09d69a0c1e469854aea4a23907779bd6da
MD5 8da35388aea9e992b154f123755f7bcd
BLAKE2b-256 aa36ea450c8fb908bf4a8189d4924f717b6ef55897938d13debfbad309979bfe

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