diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-aiovotifier.spec | 268 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 270 insertions, 0 deletions
@@ -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     +*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     +*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     +*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 @@ -0,0 +1 @@ +a12477a7f3d205849807081bd34933b5 aiovotifier-1.0.6.tar.gz |