diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-11 19:05:01 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 19:05:01 +0000 |
commit | d4b0c563f645d92330ad688866bb49bdf48bfad3 (patch) | |
tree | 0a3fa00d34dee42d34768ee3855f5b65291d6806 | |
parent | 61ab928ae38ad025437e36d996acdac6d35b25cc (diff) |
automatic import of python-discord-interactions
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-discord-interactions.spec | 211 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 213 insertions, 0 deletions
@@ -0,0 +1 @@ +/discord-interactions-0.4.0.tar.gz diff --git a/python-discord-interactions.spec b/python-discord-interactions.spec new file mode 100644 index 0000000..9c0840d --- /dev/null +++ b/python-discord-interactions.spec @@ -0,0 +1,211 @@ +%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 + + +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 + + +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 + + +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 11 2023 Python_Bot <Python_Bot@openeuler.org> - 0.4.0-1 +- Package Spec generated @@ -0,0 +1 @@ +7798a0ada3455a7d1f5b4148691f9fa8 discord-interactions-0.4.0.tar.gz |