summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-aiovotifier.spec268
-rw-r--r--sources1
3 files changed, 270 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..598a634 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/aiovotifier-1.0.6.tar.gz
diff --git a/python-aiovotifier.spec b/python-aiovotifier.spec
new file mode 100644
index 0000000..7b35156
--- /dev/null
+++ b/python-aiovotifier.spec
@@ -0,0 +1,268 @@
+%global _empty_manifest_terminate_build 0
+Name: python-aiovotifier
+Version: 1.0.6
+Release: 1
+Summary: An asynchronous MInecraft server votifier client in Python
+License: MIT
+URL: https://pypi.org/project/aiovotifier/
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/9a/75/545981055ab4cdf0f4adf056678ac5b395f9fcfe1f138a4e74a10957ca15/aiovotifier-1.0.6.tar.gz
+BuildArch: noarch
+
+Requires: python3-cryptography
+
+%description
+# Aio-Votifier ![Code Quality](https://www.codefactor.io/repository/github/iapetus-11/aio-votifier/badge) ![PYPI Version](https://img.shields.io/pypi/v/aiovotifier.svg) ![PYPI Downloads](https://img.shields.io/pypi/dw/aiovotifier?color=0FAE6E) ![Views](https://api.ghprofile.me/view?username=iapetus-11.aio-votifier&color=0FAE6E&label=views&style=flat)
+*An asynchronous MInecraft server votifier client in Python*
+
+## Example Usage:
+```py
+from aiovotifier import VotifierClient
+import asyncio
+
+async def main():
+ client = VotifierClient("127.0.0.1", 8192, "testservicename", "token/rsa key")
+
+ # VotifierClient.vote(...) automatically determines the protocol and key format
+ await client.vote("username", "user address")
+ await client.vote("user2")
+
+ await client.v1_vote("username", "user address") # only supports v1 protocol
+ await client.nu_vote("username", "user address") # only supports NuVotifier/v2 protocol
+
+asyncio.run(main())
+```
+
+## Documentation
+#### *class* aiovotifier.**VotifierClient**(host: *str*, port: *int*, service_name: *str*, secret: *str*)
+- Arguments:
+ - `host: str` - *The hostname or IP of the votifier server*
+ - `port: int` - *The port of the votifier server, commonly 8192*
+ - `service_name: str` - *The name of the service that sends the vote*
+ - `secret: str` - *The public RSA key or the token found in `config.yml`*
+- Methods:
+ - `vote(username: str, user_address: str = "127.0.0.1")` - *sends a vote to the votifier server, automatically detects and handles the protocol and type of secret*
+ - `v1_vote(username: str, user_address: str = "127.0.0.1")` - *sends a Votifier v1 vote to a votifier v1 server*
+ - `nu_vote(username: str, user_address: str = "127.0.0.1") -> dict` - *sends a NuVotifier / v2 vote to a NuVotifier server, returns the response from the server*
+
+#### *class* aiovotifier.**VotifierHeader**(header: *bytes*, version: *str*, token: *str* = None)
+- Arguments:
+ - `header: bytes` - *The header received from the votifier server*
+ - `version: str` - *The version of the votifier server*
+ - `challenge: str = None` - *The challenge, included only if the votifier server is v2/NuVotifier*
+- Methods:
+ - `@classmethod parse(header: bytes)` - *Returns a new `VotifierHeader`, parsed from the input bytes*
+
+#### *function* aiovotifier.**votifier_v1_vote**(r: *asyncio.StreamReader*, w: *asyncio.StreamWriter*, service_name: *str*, username: *str*, user_address: *str*, key: *cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey*)
+- *Sends a Votifier v1 vote to a Votifier v1 server*
+
+#### *function* aiovotifier.**nuvotifier_vote**(r: *asyncio.StreamReader*, w: *asyncio.StreamWriter*, service_name: *str*, username: *str*, user_address: *str*, token: *str*, challenge: *str*) -> *dict*
+- *Sends a NuVotifier / v2 vote to a NuVotifier server*
+
+#### *exception* aiovotifier.**VotifierError**
+- *Base class that all votifier exceptions derive from*
+
+#### *exception* aiovotifier.**VotifierHeaderError**
+- *Raised when the header from the votifier server is invalid*
+
+#### *exception* aiovotifier.**UnsupportedVersionError**
+- *Raised when the votifier version is unsupported*
+
+#### *exception* aiovotifier.**NuVotifierResponseError**
+- *Raised when the response from the votifier server contains a status that is not OK*
+
+## Credits
+*aiovotifier was based off the code and documentation below*
+- https://github.com/ano95/votifier2-py
+- https://www.npmjs.com/package/votifier-client/v/0.1.0?activeTab=dependents
+- https://github.com/vexsoftware/votifier
+- https://github.com/NuVotifier/NuVotifier/wiki/Technical-QA
+
+
+%package -n python3-aiovotifier
+Summary: An asynchronous MInecraft server votifier client in Python
+Provides: python-aiovotifier
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-aiovotifier
+# Aio-Votifier ![Code Quality](https://www.codefactor.io/repository/github/iapetus-11/aio-votifier/badge) ![PYPI Version](https://img.shields.io/pypi/v/aiovotifier.svg) ![PYPI Downloads](https://img.shields.io/pypi/dw/aiovotifier?color=0FAE6E) ![Views](https://api.ghprofile.me/view?username=iapetus-11.aio-votifier&color=0FAE6E&label=views&style=flat)
+*An asynchronous MInecraft server votifier client in Python*
+
+## Example Usage:
+```py
+from aiovotifier import VotifierClient
+import asyncio
+
+async def main():
+ client = VotifierClient("127.0.0.1", 8192, "testservicename", "token/rsa key")
+
+ # VotifierClient.vote(...) automatically determines the protocol and key format
+ await client.vote("username", "user address")
+ await client.vote("user2")
+
+ await client.v1_vote("username", "user address") # only supports v1 protocol
+ await client.nu_vote("username", "user address") # only supports NuVotifier/v2 protocol
+
+asyncio.run(main())
+```
+
+## Documentation
+#### *class* aiovotifier.**VotifierClient**(host: *str*, port: *int*, service_name: *str*, secret: *str*)
+- Arguments:
+ - `host: str` - *The hostname or IP of the votifier server*
+ - `port: int` - *The port of the votifier server, commonly 8192*
+ - `service_name: str` - *The name of the service that sends the vote*
+ - `secret: str` - *The public RSA key or the token found in `config.yml`*
+- Methods:
+ - `vote(username: str, user_address: str = "127.0.0.1")` - *sends a vote to the votifier server, automatically detects and handles the protocol and type of secret*
+ - `v1_vote(username: str, user_address: str = "127.0.0.1")` - *sends a Votifier v1 vote to a votifier v1 server*
+ - `nu_vote(username: str, user_address: str = "127.0.0.1") -> dict` - *sends a NuVotifier / v2 vote to a NuVotifier server, returns the response from the server*
+
+#### *class* aiovotifier.**VotifierHeader**(header: *bytes*, version: *str*, token: *str* = None)
+- Arguments:
+ - `header: bytes` - *The header received from the votifier server*
+ - `version: str` - *The version of the votifier server*
+ - `challenge: str = None` - *The challenge, included only if the votifier server is v2/NuVotifier*
+- Methods:
+ - `@classmethod parse(header: bytes)` - *Returns a new `VotifierHeader`, parsed from the input bytes*
+
+#### *function* aiovotifier.**votifier_v1_vote**(r: *asyncio.StreamReader*, w: *asyncio.StreamWriter*, service_name: *str*, username: *str*, user_address: *str*, key: *cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey*)
+- *Sends a Votifier v1 vote to a Votifier v1 server*
+
+#### *function* aiovotifier.**nuvotifier_vote**(r: *asyncio.StreamReader*, w: *asyncio.StreamWriter*, service_name: *str*, username: *str*, user_address: *str*, token: *str*, challenge: *str*) -> *dict*
+- *Sends a NuVotifier / v2 vote to a NuVotifier server*
+
+#### *exception* aiovotifier.**VotifierError**
+- *Base class that all votifier exceptions derive from*
+
+#### *exception* aiovotifier.**VotifierHeaderError**
+- *Raised when the header from the votifier server is invalid*
+
+#### *exception* aiovotifier.**UnsupportedVersionError**
+- *Raised when the votifier version is unsupported*
+
+#### *exception* aiovotifier.**NuVotifierResponseError**
+- *Raised when the response from the votifier server contains a status that is not OK*
+
+## Credits
+*aiovotifier was based off the code and documentation below*
+- https://github.com/ano95/votifier2-py
+- https://www.npmjs.com/package/votifier-client/v/0.1.0?activeTab=dependents
+- https://github.com/vexsoftware/votifier
+- https://github.com/NuVotifier/NuVotifier/wiki/Technical-QA
+
+
+%package help
+Summary: Development documents and examples for aiovotifier
+Provides: python3-aiovotifier-doc
+%description help
+# Aio-Votifier ![Code Quality](https://www.codefactor.io/repository/github/iapetus-11/aio-votifier/badge) ![PYPI Version](https://img.shields.io/pypi/v/aiovotifier.svg) ![PYPI Downloads](https://img.shields.io/pypi/dw/aiovotifier?color=0FAE6E) ![Views](https://api.ghprofile.me/view?username=iapetus-11.aio-votifier&color=0FAE6E&label=views&style=flat)
+*An asynchronous MInecraft server votifier client in Python*
+
+## Example Usage:
+```py
+from aiovotifier import VotifierClient
+import asyncio
+
+async def main():
+ client = VotifierClient("127.0.0.1", 8192, "testservicename", "token/rsa key")
+
+ # VotifierClient.vote(...) automatically determines the protocol and key format
+ await client.vote("username", "user address")
+ await client.vote("user2")
+
+ await client.v1_vote("username", "user address") # only supports v1 protocol
+ await client.nu_vote("username", "user address") # only supports NuVotifier/v2 protocol
+
+asyncio.run(main())
+```
+
+## Documentation
+#### *class* aiovotifier.**VotifierClient**(host: *str*, port: *int*, service_name: *str*, secret: *str*)
+- Arguments:
+ - `host: str` - *The hostname or IP of the votifier server*
+ - `port: int` - *The port of the votifier server, commonly 8192*
+ - `service_name: str` - *The name of the service that sends the vote*
+ - `secret: str` - *The public RSA key or the token found in `config.yml`*
+- Methods:
+ - `vote(username: str, user_address: str = "127.0.0.1")` - *sends a vote to the votifier server, automatically detects and handles the protocol and type of secret*
+ - `v1_vote(username: str, user_address: str = "127.0.0.1")` - *sends a Votifier v1 vote to a votifier v1 server*
+ - `nu_vote(username: str, user_address: str = "127.0.0.1") -> dict` - *sends a NuVotifier / v2 vote to a NuVotifier server, returns the response from the server*
+
+#### *class* aiovotifier.**VotifierHeader**(header: *bytes*, version: *str*, token: *str* = None)
+- Arguments:
+ - `header: bytes` - *The header received from the votifier server*
+ - `version: str` - *The version of the votifier server*
+ - `challenge: str = None` - *The challenge, included only if the votifier server is v2/NuVotifier*
+- Methods:
+ - `@classmethod parse(header: bytes)` - *Returns a new `VotifierHeader`, parsed from the input bytes*
+
+#### *function* aiovotifier.**votifier_v1_vote**(r: *asyncio.StreamReader*, w: *asyncio.StreamWriter*, service_name: *str*, username: *str*, user_address: *str*, key: *cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey*)
+- *Sends a Votifier v1 vote to a Votifier v1 server*
+
+#### *function* aiovotifier.**nuvotifier_vote**(r: *asyncio.StreamReader*, w: *asyncio.StreamWriter*, service_name: *str*, username: *str*, user_address: *str*, token: *str*, challenge: *str*) -> *dict*
+- *Sends a NuVotifier / v2 vote to a NuVotifier server*
+
+#### *exception* aiovotifier.**VotifierError**
+- *Base class that all votifier exceptions derive from*
+
+#### *exception* aiovotifier.**VotifierHeaderError**
+- *Raised when the header from the votifier server is invalid*
+
+#### *exception* aiovotifier.**UnsupportedVersionError**
+- *Raised when the votifier version is unsupported*
+
+#### *exception* aiovotifier.**NuVotifierResponseError**
+- *Raised when the response from the votifier server contains a status that is not OK*
+
+## Credits
+*aiovotifier was based off the code and documentation below*
+- https://github.com/ano95/votifier2-py
+- https://www.npmjs.com/package/votifier-client/v/0.1.0?activeTab=dependents
+- https://github.com/vexsoftware/votifier
+- https://github.com/NuVotifier/NuVotifier/wiki/Technical-QA
+
+
+%prep
+%autosetup -n aiovotifier-1.0.6
+
+%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-aiovotifier -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Thu May 18 2023 Python_Bot <Python_Bot@openeuler.org> - 1.0.6-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..2d1f0bb
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+a12477a7f3d205849807081bd34933b5 aiovotifier-1.0.6.tar.gz