Poller for the Chaturbate events API.
Project description
Chaturbate Poller
Chaturbate Poller is a Python library and CLI for polling events from the Chaturbate API. It provides asynchronous event handling, logging, and optional integration with InfluxDB to store event data for analysis.
Features
- Event Polling: Efficiently poll events from Chaturbate’s API.
- Error Handling: Includes backoff and retry mechanisms.
- Logging: Console and JSON file logging for structured insights.
- Optional InfluxDB Storage: Store events in InfluxDB for analysis or monitoring.
Installation
Ensure Python 3.11 or later is installed, then install via pip:
pip install chaturbate-poller
Configuration
Create a .env
file in your project’s root directory for API and InfluxDB credentials:
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="false" # Set to `true` if InfluxDB is used
[!NOTE] Generate an API token here with the "Events API" permission enabled.
Usage
CLI
Start the poller from the command line:
python -m chaturbate_poller start --username <your_username> --token <your_token>
For additional options:
python -m chaturbate_poller --help
Docker
Run Chaturbate Poller in Docker:
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 Usage
To use Chaturbate Poller as a library, here's a sample script to fetch events in a loop:
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:
print(event.dict()) # Process each event
url = response.next_url
if __name__ == "__main__":
asyncio.run(main())
Development
-
Clone the repository:
git clone https://github.com/MountainGod2/chaturbate_poller.git cd chaturbate_poller
-
Set up the environment and dependencies using uv:
uv venv .venv uv pip install -e .
Contributing
Contributions are welcome! To contribute:
- Fork the repository.
- Create a feature branch.
- Submit a pull request, ensuring tests and coding standards are met.
License
This project is licensed under the MIT License. See the LICENSE file for more details.
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
Built Distribution
File details
Details for the file chaturbate_poller-0.16.5.tar.gz
.
File metadata
- Download URL: chaturbate_poller-0.16.5.tar.gz
- Upload date:
- Size: 140.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 080f4861b31d0d2084bb675b5517fe3e2e019d6c52091d39a996833428f22a1a |
|
MD5 | a617fbcdc6a9369b67953e457e1bf0e0 |
|
BLAKE2b-256 | 57cd5fe2127e254f61af988d5a3a903830b92ba34594c7b8aa61bbd5e1681d8e |
File details
Details for the file chaturbate_poller-0.16.5-py3-none-any.whl
.
File metadata
- Download URL: chaturbate_poller-0.16.5-py3-none-any.whl
- Upload date:
- Size: 21.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9008b0d2a5c2c7738cd5673bedc82dda2de880dd4b7f1ad95c09582716c2887c |
|
MD5 | b0b17f533c87f2871d4136fb4dc8551a |
|
BLAKE2b-256 | c35b710717f5c2f2b1d425b8b6a3abeceba5361e0899e1c53a329620910b1d2f |