%global _empty_manifest_terminate_build 0 Name: python-discord-interactions Version: 0.4.0 Release: 1 Summary: Useful tools for using the Discord Interactions API License: MIT URL: https://github.com/discord/discord-interactions-python Source0: https://mirrors.nju.edu.cn/pypi/web/packages/9f/61/0fb857ffcbc9a0a946caf0a50874f80ba98798ca583ba59f7f34e22912c0/discord-interactions-0.4.0.tar.gz BuildArch: noarch Requires: python3-PyNaCl %description ![PyPI - License](https://img.shields.io/pypi/l/discord-interactions) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/discord-interactions) Types and helper functions for Discord Interactions webhooks. # Installation Available via [pypi](https://pypi.org/project/discord-interactions/): ``` pip install discord-interactions ``` # Usage Use the `InteractionType` and `InteractionResponseType` enums to process and respond to webhooks. Use `verify_key` to check a request signature: ```py if verify_key(request.data, signature, timestamp, 'my_client_public_key'): print('Signature is valid') else: print('Signature is invalid') ``` Use `verify_key_decorator` to protect routes in a Flask app: ```py import os from flask import Flask, request, jsonify from discord_interactions import verify_key_decorator, InteractionType, InteractionResponseType CLIENT_PUBLIC_KEY = os.getenv('CLIENT_PUBLIC_KEY') app = Flask(__name__) @app.route('/interactions', methods=['POST']) @verify_key_decorator(CLIENT_PUBLIC_KEY) def interactions(): if request.json['type'] == InteractionType.APPLICATION_COMMAND: return jsonify({ 'type': InteractionResponseType.CHANNEL_MESSAGE_WITH_SOURCE, 'data': { 'content': 'Hello world' } }) ``` # Exports This module exports the following: ### InteractionType An enum of interaction types that can be POSTed to your webhook endpoint. ### InteractionResponseType An enum of response types you may provide in reply to Discord's webhook. ### InteractionResponseFlags An enum of flags you can set on your response data. ### verify_key(raw_body: str, signature: str, timestamp: str, client_public_key: str) -> bool: Verify a signed payload POSTed to your webhook endpoint. ### verify_key_decorator(client_public_key: str) Flask decorator that will verify request signatures and handle PING/PONG requests. %package -n python3-discord-interactions Summary: Useful tools for using the Discord Interactions API Provides: python-discord-interactions BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-discord-interactions ![PyPI - License](https://img.shields.io/pypi/l/discord-interactions) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/discord-interactions) Types and helper functions for Discord Interactions webhooks. # Installation Available via [pypi](https://pypi.org/project/discord-interactions/): ``` pip install discord-interactions ``` # Usage Use the `InteractionType` and `InteractionResponseType` enums to process and respond to webhooks. Use `verify_key` to check a request signature: ```py if verify_key(request.data, signature, timestamp, 'my_client_public_key'): print('Signature is valid') else: print('Signature is invalid') ``` Use `verify_key_decorator` to protect routes in a Flask app: ```py import os from flask import Flask, request, jsonify from discord_interactions import verify_key_decorator, InteractionType, InteractionResponseType CLIENT_PUBLIC_KEY = os.getenv('CLIENT_PUBLIC_KEY') app = Flask(__name__) @app.route('/interactions', methods=['POST']) @verify_key_decorator(CLIENT_PUBLIC_KEY) def interactions(): if request.json['type'] == InteractionType.APPLICATION_COMMAND: return jsonify({ 'type': InteractionResponseType.CHANNEL_MESSAGE_WITH_SOURCE, 'data': { 'content': 'Hello world' } }) ``` # Exports This module exports the following: ### InteractionType An enum of interaction types that can be POSTed to your webhook endpoint. ### InteractionResponseType An enum of response types you may provide in reply to Discord's webhook. ### InteractionResponseFlags An enum of flags you can set on your response data. ### verify_key(raw_body: str, signature: str, timestamp: str, client_public_key: str) -> bool: Verify a signed payload POSTed to your webhook endpoint. ### verify_key_decorator(client_public_key: str) Flask decorator that will verify request signatures and handle PING/PONG requests. %package help Summary: Development documents and examples for discord-interactions Provides: python3-discord-interactions-doc %description help ![PyPI - License](https://img.shields.io/pypi/l/discord-interactions) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/discord-interactions) Types and helper functions for Discord Interactions webhooks. # Installation Available via [pypi](https://pypi.org/project/discord-interactions/): ``` pip install discord-interactions ``` # Usage Use the `InteractionType` and `InteractionResponseType` enums to process and respond to webhooks. Use `verify_key` to check a request signature: ```py if verify_key(request.data, signature, timestamp, 'my_client_public_key'): print('Signature is valid') else: print('Signature is invalid') ``` Use `verify_key_decorator` to protect routes in a Flask app: ```py import os from flask import Flask, request, jsonify from discord_interactions import verify_key_decorator, InteractionType, InteractionResponseType CLIENT_PUBLIC_KEY = os.getenv('CLIENT_PUBLIC_KEY') app = Flask(__name__) @app.route('/interactions', methods=['POST']) @verify_key_decorator(CLIENT_PUBLIC_KEY) def interactions(): if request.json['type'] == InteractionType.APPLICATION_COMMAND: return jsonify({ 'type': InteractionResponseType.CHANNEL_MESSAGE_WITH_SOURCE, 'data': { 'content': 'Hello world' } }) ``` # Exports This module exports the following: ### InteractionType An enum of interaction types that can be POSTed to your webhook endpoint. ### InteractionResponseType An enum of response types you may provide in reply to Discord's webhook. ### InteractionResponseFlags An enum of flags you can set on your response data. ### verify_key(raw_body: str, signature: str, timestamp: str, client_public_key: str) -> bool: Verify a signed payload POSTed to your webhook endpoint. ### verify_key_decorator(client_public_key: str) Flask decorator that will verify request signatures and handle PING/PONG requests. %prep %autosetup -n discord-interactions-0.4.0 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-discord-interactions -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Apr 25 2023 Python_Bot - 0.4.0-1 - Package Spec generated