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.7.tar.gz (132.8 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: chaturbate_poller-0.13.7.tar.gz
  • Upload date:
  • Size: 132.8 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.7.tar.gz
Algorithm Hash digest
SHA256 7b663768c071961b0c45db7269eb7c4d583471d11689c5e60dc8f46de6884388
MD5 660bfcc486cd74a959a5f4cdfe68590c
BLAKE2b-256 b16a27969fc250a117aa1fc34af2bd081c39a9d88426c00ca7096a247a8a941e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for chaturbate_poller-0.13.7-py3-none-any.whl
Algorithm Hash digest
SHA256 6983d2c283f803c49852d56b2517767f038844a4fd1ceb12b8fb94de6fe81b89
MD5 3967c5fd569bf63d394c9b4a378d4104
BLAKE2b-256 ccd72deaecbd7240eb797862a34a6e7a60edf765f3139d9ab40032f30de3bfe5

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