Skip to main content

API wrapper for https://cardboard.ink/api/v1/

Project description

cardboard.py

cardboard.py is a Python library for interacting with the cardboard API.

PyPi: https://pypi.org/project/cardboard.py/

Installation

You can install the cardboard.py library using pip:

pip install cardboard.py

Usage

Initialize the Cardboard or CardboardAsync class. Make sure to pass secret and client_id.

You can now use the client to make requests.

Examples

These examples will use Flask. Install it with pip install Flask

Flask is included with cardboard.py>=0.0.8

# Python Example
from flask import Flask, request, redirect, url_for, session, Response
from cardboard import Cardboard

app = Flask(__name__)
cb = Cardboard(client_id='', secret='') # get these at https://cardboard.ink
app.secret_key = 'hi' # set this to something secure, please.

@app.route('/login')
def login():
    args = request.args
    code = args.get('code')
    if not code:
        return redirect(cb.app_url)
    try:
        token = cb.get_token(code)
    except:
        return redirect(cb.app_url)
    session['cardboard_token'] = token.token
    return redirect(url_for('dashboard'))

@app.route('/dashboard')
def dashboard():
    token = session.get('cardboard_token')
    if not token:
        return redirect(cb.app_url)
    user = cb.get_user(token)
    return Response(f'{user.name} (user id {user.id})', mimetype='text/plain')

@app.route('/')
def home():
    html = f'<html><head><title>Button Redirect</title></head><body><button onclick="window.location.href=\'{url_for("login")}\';">Login</button></body></html>'
    return Response(html, mimetype='text/html')

@app.route('/logout')
def logout():
    b = session.pop('cardboard_token', None)
    if b:
        try:
            cb.revoke_token(b)
        except:
            pass
    return redirect(url_for('home'))

if __name__ == '__main__':
    app.run('0.0.0.0', port=5000)
# Python Example using FlaskIntegration
from flask import Flask, request, redirect, url_for, session, Response
from cardboard import Cardboard, FlaskIntegration

app = Flask(__name__)
app.secret_key = 'hi' # set this to something secure, please.
cb = Cardboard(client_id='', secret='') # get these at https://cardboard.ink
cb.fi = FlaskIntegration(app=app, cardboard=cb) # make this class ONLY AFTER YOU SET A SECRET KEY for FLASK.

@app.route('/login')
@cb.fi.autologin
def login(token):
    return redirect(url_for('dashboard'))

@app.route('/dashboard')
@cb.fi.logged_in
def dashboard(token):
    user = cb.get_user(token.token)
    return Response(f'{user.name} (user id {user.id})', mimetype='text/plain')

@app.route('/')
def home():
    html = f'<html><head><title>Button Redirect</title></head><body><button onclick="window.location.href=\'{url_for("login")}\';">Login</button></body></html>'
    return Response(html, mimetype='text/html')

@app.route('/logout')
@cb.fi.autologout
def logout():
    return redirect(url_for('home'))

if __name__ == '__main__':
    app.run('0.0.0.0', port=5000)

Async Example

# Python Async Example

Documentation

For detailed documentation on the Cardboard API, read https://www.guilded.gg/CardBoard/groups/3y446Rmz/channels/4539a4f9-fb51-4a23-b014-0fcaeaf062d3/docs/374610

For detailed documentation on how to use the cardboard.py library, please wait while we write it lol.

Methods

A list of methods/attributes you can call with either Cardboard or CardboardAsync.

  • .app_url (str)
  • .app_name (str)
  • .secret (str)
  • .client_id (str)
  • .revoke_token(token:str) (bool)
  • .get_token(code:str) (class AuthToken)
    • .token (str)
    • .token_type (str)
    • .refresh_token (str)
    • .expires_in (int)
    • ._raw (dict)
  • .refresh_token(refresh_token:str) (class AuthToken)
    • .token (str)
    • .token_type (str)
    • .refresh_token (str)
    • .expires_in (int)
    • ._raw (dict)
  • .get_user(token:str) (class User)
    • .name (str)
    • .id (str)
    • .subdomain (str)
    • .aliases (list(class UserAlias))
      • .alias (str|None)
      • .discriminator (str|None)
      • .name (str)
      • .createdAt (datetime)
      • .editedAt (datetime)
      • ._raw_createdAt (str)
      • ._raw_editedAt (str)
      • .userId (str)
      • .gameId (int)
      • .socialLinkSource (str|None)
      • .socialLinkHandle (str|None)
      • .additionalInfo (dict)
      • .playerInfo (dict|None)
      • ._raw (dict)
    • .avatar (str)
    • .banner (str)
    • .status (class UserStatus)
      • .text (str|None)
      • .reaction_id (int|None)
      • ._raw (dict)
      • ._raw_text (dict)
      • ._raw_reaction (dict)
    • .moderationStatus (str|None)
    • .aboutInfo (class userAbout)
      • .bio (str|None)
      • .tagline (str|None)
      • ._raw (dict)
    • .userTransientStatus (str|None)
    • ._raw (dict)
  • .check_token(token:str) (bool)

FlaskIntegration

  • @logged_in
  • @autologin
  • @autologout
  • @login_autoexchange DEPRECATED
  • @login_code DEPRECATED

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

cardboard.py-0.0.9.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

cardboard.py-0.0.9-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file cardboard.py-0.0.9.tar.gz.

File metadata

  • Download URL: cardboard.py-0.0.9.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for cardboard.py-0.0.9.tar.gz
Algorithm Hash digest
SHA256 2e6fddb12416ea1f5e2fb820df3817a4b690da2625a3338d9c52049e99618ada
MD5 f56ccb3c3c4165178f9a67d4b22b3f1e
BLAKE2b-256 a1ef855494219a5cfb8b3fbed3fdf5ac4f76c16e79b392db418a41c7e9c28237

See more details on using hashes here.

File details

Details for the file cardboard.py-0.0.9-py3-none-any.whl.

File metadata

File hashes

Hashes for cardboard.py-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 9ef0ff154b334d6b87ac30b69be772b28943b9d2e501acdd76dfe561f3893a59
MD5 aac2745f622fb9a99d5cf997b87ca256
BLAKE2b-256 a8dbe1ef96acc17c451061bea76335b3002f9192afc859f0bb92b2dcb8f10a58

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