Skip to main content

Official Python SDK for CommunityOne API

Project description

CommunityOne SDK

PyPI version Python versions

Official Python SDK for interacting with the CommunityOne API. This SDK provides both synchronous and asynchronous methods to interact with CommunityOne's API endpoints.

About CommunityOne

CommunityOne is a platform that helps Discord communities grow and engage their members through quests, rewards, and gamification.

Installation

You can install the package using pip:

pip install communityone

Quick Start

from communityone import CommunityOneSDK

# Initialize the SDK with your server ID and API key
sdk = CommunityOneSDK(server_id=YOUR_SERVER_ID, api_key="YOUR_API_KEY")

# Get all custom quests
custom_quests = sdk.get_custom_quests()

# Get player information
player_info = sdk.get_player_info(discord_user_id="DISCORD_USER_ID")

# Complete a custom quest
result = sdk.complete_custom_quest(custom_quest_id="CUSTOM_QUEST_ID", discord_user_id="DISCORD_USER_ID")

# Get completed members for a quest
completed_members = sdk.get_completed_members(custom_quest_id="CUSTOM_QUEST_ID")

Async Support

The SDK also provides async methods for all operations:

import asyncio
from communityone import CommunityOneSDK

async def main():
    sdk = CommunityOneSDK(server_id=YOUR_SERVER_ID, api_key="YOUR_API_KEY")
    
    # Get custom quests asynchronously
    custom_quests = await sdk.get_custom_quests_async()
    
    # Get player information asynchronously
    player_info = await sdk.get_player_info_async("DISCORD_USER_ID")
    
    # Complete a custom quest asynchronously
    result = await sdk.complete_custom_quest_async(custom_quest_id="CUSTOM_QUEST_ID", discord_user_id="DISCORD_USER_ID")
    
    # Get completed members asynchronously
    completed_members = await sdk.get_completed_members_async(custom_quest_id="CUSTOM_QUEST_ID")

# Run the async code
asyncio.run(main())

Available Methods

Synchronous Methods

  • get_custom_quests(): Get all custom quests for the server
  • get_player_info(discord_user_id): Get information about a player
  • complete_custom_quest(custom_quest_id, discord_user_id): Mark a custom quest as completed
  • get_completed_members(custom_quest_id): Get all members who completed a quest

Asynchronous Methods

  • get_custom_quests_async(): Get all custom quests for the server asynchronously
  • get_player_info_async(discord_user_id): Get player information asynchronously
  • complete_custom_quest_async(custom_quest_id, discord_user_id): Complete a quest asynchronously
  • get_completed_members_async(custom_quest_id): Get completed members asynchronously

Testing Mode

CommunityOne allows you to test the full quest completion workflow in your application without affecting production quests data, helping you verify quest functionality before releasing it to your community. When a quest is in testing mode:

  • The quest won't be visible to regular Discord server members
  • No code changes needed! - use the same SDK methods for testing and production quests (the API automatically routes to our internal test environment)

How to enable:

  1. Go to your server's CommunityOne dashboard
  2. Navigate to Hype Engine > Custom Quests
  3. Click the Edit button on your quest
  4. Enable testing mode

Rate Limiting

All API endpoints are subject to rate limiting:

  • 60 requests per minute per server
  • Rate limits are applied separately for each endpoint
  • Exceeding the rate limit will result in a 429 Too Many Requests response

Requirements

  • Python 3.7 or higher
  • requests>=2.25.0
  • aiohttp>=3.8.0

License

This project is licensed under the MIT License - see the LICENSE file for details.

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

communityone-1.2.0.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

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

communityone-1.2.0-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file communityone-1.2.0.tar.gz.

File metadata

  • Download URL: communityone-1.2.0.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.4

File hashes

Hashes for communityone-1.2.0.tar.gz
Algorithm Hash digest
SHA256 61e89c7975ab0ce8cbd3f3e36b03fb6fa87fb5db38554c38090bd3a7f9e1dcfa
MD5 aa996d9e1b59851b20d57c4330dd2c44
BLAKE2b-256 e5a313d63cf1ad7c58ad14adeedb5d77ba65ab2cae00a553c38c29c5e000e3b3

See more details on using hashes here.

File details

Details for the file communityone-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: communityone-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.4

File hashes

Hashes for communityone-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c23fbf1c5187d87751e627978c39159139a324408da95cf9f5ff6bbfee5907bb
MD5 6311fa498597503ead56fb5098f2986c
BLAKE2b-256 5fae8ccbbf512c3c62f5939e201299d1b2c11e9f5e59d828728bf72367eac364

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