From 72f712af60a26c4ea7588fa8e81353a98f517eec Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Thu, 18 May 2023 04:13:55 +0000 Subject: automatic import of python-minestat --- python-minestat.spec | 346 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 346 insertions(+) create mode 100644 python-minestat.spec (limited to 'python-minestat.spec') diff --git a/python-minestat.spec b/python-minestat.spec new file mode 100644 index 0000000..f12cf9b --- /dev/null +++ b/python-minestat.spec @@ -0,0 +1,346 @@ +%global _empty_manifest_terminate_build 0 +Name: python-minestat +Version: 2.6.1 +Release: 1 +Summary: A Minecraft server status checker +License: GNU General Public License v3 (GPLv3) +URL: https://github.com/FragLand/minestat +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/4d/5f/229603aaa96b27f23450fa4a6925776596200874d1190d0b6f59c095a2bb/minestat-2.6.1.tar.gz +BuildArch: noarch + +Requires: python3-dnspython + +%description +MineStat is a Minecraft server status checker library for Python, supporting a wide range of Minecraft servers: +- Java Edition since Minecraft version Beta 1.8 (September 2011), +- Bedrock Edition starting with Minecraft version 0.14 (March 2018), maybe earlier. +Supports [Minecraft SRV record resolution](https://minecraft.fandom.com/wiki/Tutorials/Setting_up_a_server#The_SRV_record), +which requires the package [`dnspython`](https://pypi.org/project/dnspython/). +This mechanism allows server operators to use a custom port or host without the player having to type it. +One common server utilizing this feature example is `2b2t`: The actual server is at `connect.2b2t.org`, while users simply use `2bt2.org`. +MineStat supports querying both, if `dnspython` is installed. +### Python example +[![PyPI](https://img.shields.io/pypi/v/minestat?color=green&label=PyPI%20package&style=plastic)](https://pypi.org/project/minestat/) +To use the PyPI package: `pip install minestat` +```python +import minestat +ms = minestat.MineStat('minecraft.frag.land', 25565) +print('Minecraft server status of %s on port %d:' % (ms.address, ms.port)) +if ms.online: + print('Server is online running version %s with %s out of %s players.' % (ms.version, ms.current_players, ms.max_players)) + # Bedrock-specific attribute: + if ms.gamemode: + print('Game mode: %s' % ms.gamemode) + print('Message of the day: %s' % ms.motd) + print('Message of the day without formatting: %s' % ms.stripped_motd) + print('Latency: %sms' % ms.latency) + print('Connected using protocol: %s' % ms.slp_protocol) +else: + print('Server is offline!') +``` +#### Available parameters +The following parameters exist for the `MineStat` object: +- `address`: str, + - Hostname or IP address of the Minecraft server. +- `port`: int = 0, + - Optional port of the Minecraft server. Defaults to auto detection (25565 for Java Edition, 19132 for Bedrock/MCPE). +- `timeout`: int = DEFAULT_TIMEOUT, + - Optional timeout in seconds for each connection attempt. Defaults to 5 seconds. +- `query_protocol`: SlpProtocols = SlpProtocols.ALL, + - Optional protocol to use. See minestat.SlpProtocols for available choices. Defaults to auto detection. +- `resolve_srv`: Optional[bool] = None + - Optional, whether to resolve Minecraft SRV records. Requires dnspython to be installed. +Minimal example with port auto-detection: +```python +import minestat +ms = minestat.MineStat('minecraft.frag.land') +print(f"Is online? {ms.online=}") +``` +#### Available attributes +The following attributes are available on the `MineStat` object: +- `online`: bool + - Whether the server is online and reachable with the specified protocol. True if online. +- `address`: str + - Addresss (domain or IP-address) of the server to connect to. +- `port`: int + - Port of the server to connect to. +- `version`: str + - String describing the server Minecraft version. In vanilla servers the version number (e.g. 1.18.2), + may be modified by the server (e.g. by ViaVersion). On Bedrock servers includes the Edition (MCEE/MCPE) + and the server info. +- `motd`: str + - The raw MOTD returned by the server. May include formatting codes (§) or JSON chat components. + - Examples (See https://github.com/FragLand/minestat/issues/84#issuecomment-895375890): + - With formatting codes: `§6~~§r §3§lM§7§lA§2§lG§9§lI§4§lC§r1.16 v3§6~~§r` + - JSON chat components: `{"extra": [{"color": "gold", "text": "~~"}, {"text": " "}, {"bold": true, "color": "dark_aqua", "text": "M"}, {"bold": true, "color": "gray", "text": "A"}, {"bold": true, "color": "dark_green", "text": "G"}, {"bold": true, "color": "blue", "text": "I"}, {"bold": true, "color": "dark_red", "text": "C"}, {"text": "1.16 v3"}, {"color": "gold", "text": "~~"}], "text": ""}` +- `stripped_motd`: str + - The MOTD with all formatting removed ("human readable"). + - Example (See https://github.com/FragLand/minestat/issues/84#issuecomment-895375890) + - Above MOTD example: `~~ MAGIC1.16 v3~~` +- `current_players`: int + - Count of players currently online on the server. +- `max_players`: int + - Count of maximum allowed players as reported by the server. +- `latency`: int + - Time in milliseconds the server took to respond to the information request. +- `slp_protocol`: minestat.SlpProtocol + - Protocol used to retrieve information from the server. +- `connection_status`: minestat.ConnStatus + - Status of connection ("SUCCESS", "CONNFAIL", "TIMEOUT", or "UNKNOWN"). +- `srv_record`: bool + - wether the server has a SRV record. +#### Extra attributes +The following attributes are not availabe with every protocol. +- `player_list`: list[str] (***UT3/GS4 Query specific***) + - List of online players, may be empty even if `current_players` is over 0. +- `plugins`: list[str] (***UT3/GS4 Query specific***) + - List of plugins returned by the Query protcol. +- `map`: str (***UT3/GS4 Query specific***) + - The name of the map the server is running on. +- `gamemode`: str (***Bedrock specific***) + - Gamemode currently active on the server (Creative/Survival/Adventure). +- `favicon_b64`: str (***SLP 1.7/JSON specific***) + - Base64-encoded favicon. +- `favicon`: str (***SLP 1.7/JSON specific***) + - Decoded favicon data. + +%package -n python3-minestat +Summary: A Minecraft server status checker +Provides: python-minestat +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-minestat +MineStat is a Minecraft server status checker library for Python, supporting a wide range of Minecraft servers: +- Java Edition since Minecraft version Beta 1.8 (September 2011), +- Bedrock Edition starting with Minecraft version 0.14 (March 2018), maybe earlier. +Supports [Minecraft SRV record resolution](https://minecraft.fandom.com/wiki/Tutorials/Setting_up_a_server#The_SRV_record), +which requires the package [`dnspython`](https://pypi.org/project/dnspython/). +This mechanism allows server operators to use a custom port or host without the player having to type it. +One common server utilizing this feature example is `2b2t`: The actual server is at `connect.2b2t.org`, while users simply use `2bt2.org`. +MineStat supports querying both, if `dnspython` is installed. +### Python example +[![PyPI](https://img.shields.io/pypi/v/minestat?color=green&label=PyPI%20package&style=plastic)](https://pypi.org/project/minestat/) +To use the PyPI package: `pip install minestat` +```python +import minestat +ms = minestat.MineStat('minecraft.frag.land', 25565) +print('Minecraft server status of %s on port %d:' % (ms.address, ms.port)) +if ms.online: + print('Server is online running version %s with %s out of %s players.' % (ms.version, ms.current_players, ms.max_players)) + # Bedrock-specific attribute: + if ms.gamemode: + print('Game mode: %s' % ms.gamemode) + print('Message of the day: %s' % ms.motd) + print('Message of the day without formatting: %s' % ms.stripped_motd) + print('Latency: %sms' % ms.latency) + print('Connected using protocol: %s' % ms.slp_protocol) +else: + print('Server is offline!') +``` +#### Available parameters +The following parameters exist for the `MineStat` object: +- `address`: str, + - Hostname or IP address of the Minecraft server. +- `port`: int = 0, + - Optional port of the Minecraft server. Defaults to auto detection (25565 for Java Edition, 19132 for Bedrock/MCPE). +- `timeout`: int = DEFAULT_TIMEOUT, + - Optional timeout in seconds for each connection attempt. Defaults to 5 seconds. +- `query_protocol`: SlpProtocols = SlpProtocols.ALL, + - Optional protocol to use. See minestat.SlpProtocols for available choices. Defaults to auto detection. +- `resolve_srv`: Optional[bool] = None + - Optional, whether to resolve Minecraft SRV records. Requires dnspython to be installed. +Minimal example with port auto-detection: +```python +import minestat +ms = minestat.MineStat('minecraft.frag.land') +print(f"Is online? {ms.online=}") +``` +#### Available attributes +The following attributes are available on the `MineStat` object: +- `online`: bool + - Whether the server is online and reachable with the specified protocol. True if online. +- `address`: str + - Addresss (domain or IP-address) of the server to connect to. +- `port`: int + - Port of the server to connect to. +- `version`: str + - String describing the server Minecraft version. In vanilla servers the version number (e.g. 1.18.2), + may be modified by the server (e.g. by ViaVersion). On Bedrock servers includes the Edition (MCEE/MCPE) + and the server info. +- `motd`: str + - The raw MOTD returned by the server. May include formatting codes (§) or JSON chat components. + - Examples (See https://github.com/FragLand/minestat/issues/84#issuecomment-895375890): + - With formatting codes: `§6~~§r §3§lM§7§lA§2§lG§9§lI§4§lC§r1.16 v3§6~~§r` + - JSON chat components: `{"extra": [{"color": "gold", "text": "~~"}, {"text": " "}, {"bold": true, "color": "dark_aqua", "text": "M"}, {"bold": true, "color": "gray", "text": "A"}, {"bold": true, "color": "dark_green", "text": "G"}, {"bold": true, "color": "blue", "text": "I"}, {"bold": true, "color": "dark_red", "text": "C"}, {"text": "1.16 v3"}, {"color": "gold", "text": "~~"}], "text": ""}` +- `stripped_motd`: str + - The MOTD with all formatting removed ("human readable"). + - Example (See https://github.com/FragLand/minestat/issues/84#issuecomment-895375890) + - Above MOTD example: `~~ MAGIC1.16 v3~~` +- `current_players`: int + - Count of players currently online on the server. +- `max_players`: int + - Count of maximum allowed players as reported by the server. +- `latency`: int + - Time in milliseconds the server took to respond to the information request. +- `slp_protocol`: minestat.SlpProtocol + - Protocol used to retrieve information from the server. +- `connection_status`: minestat.ConnStatus + - Status of connection ("SUCCESS", "CONNFAIL", "TIMEOUT", or "UNKNOWN"). +- `srv_record`: bool + - wether the server has a SRV record. +#### Extra attributes +The following attributes are not availabe with every protocol. +- `player_list`: list[str] (***UT3/GS4 Query specific***) + - List of online players, may be empty even if `current_players` is over 0. +- `plugins`: list[str] (***UT3/GS4 Query specific***) + - List of plugins returned by the Query protcol. +- `map`: str (***UT3/GS4 Query specific***) + - The name of the map the server is running on. +- `gamemode`: str (***Bedrock specific***) + - Gamemode currently active on the server (Creative/Survival/Adventure). +- `favicon_b64`: str (***SLP 1.7/JSON specific***) + - Base64-encoded favicon. +- `favicon`: str (***SLP 1.7/JSON specific***) + - Decoded favicon data. + +%package help +Summary: Development documents and examples for minestat +Provides: python3-minestat-doc +%description help +MineStat is a Minecraft server status checker library for Python, supporting a wide range of Minecraft servers: +- Java Edition since Minecraft version Beta 1.8 (September 2011), +- Bedrock Edition starting with Minecraft version 0.14 (March 2018), maybe earlier. +Supports [Minecraft SRV record resolution](https://minecraft.fandom.com/wiki/Tutorials/Setting_up_a_server#The_SRV_record), +which requires the package [`dnspython`](https://pypi.org/project/dnspython/). +This mechanism allows server operators to use a custom port or host without the player having to type it. +One common server utilizing this feature example is `2b2t`: The actual server is at `connect.2b2t.org`, while users simply use `2bt2.org`. +MineStat supports querying both, if `dnspython` is installed. +### Python example +[![PyPI](https://img.shields.io/pypi/v/minestat?color=green&label=PyPI%20package&style=plastic)](https://pypi.org/project/minestat/) +To use the PyPI package: `pip install minestat` +```python +import minestat +ms = minestat.MineStat('minecraft.frag.land', 25565) +print('Minecraft server status of %s on port %d:' % (ms.address, ms.port)) +if ms.online: + print('Server is online running version %s with %s out of %s players.' % (ms.version, ms.current_players, ms.max_players)) + # Bedrock-specific attribute: + if ms.gamemode: + print('Game mode: %s' % ms.gamemode) + print('Message of the day: %s' % ms.motd) + print('Message of the day without formatting: %s' % ms.stripped_motd) + print('Latency: %sms' % ms.latency) + print('Connected using protocol: %s' % ms.slp_protocol) +else: + print('Server is offline!') +``` +#### Available parameters +The following parameters exist for the `MineStat` object: +- `address`: str, + - Hostname or IP address of the Minecraft server. +- `port`: int = 0, + - Optional port of the Minecraft server. Defaults to auto detection (25565 for Java Edition, 19132 for Bedrock/MCPE). +- `timeout`: int = DEFAULT_TIMEOUT, + - Optional timeout in seconds for each connection attempt. Defaults to 5 seconds. +- `query_protocol`: SlpProtocols = SlpProtocols.ALL, + - Optional protocol to use. See minestat.SlpProtocols for available choices. Defaults to auto detection. +- `resolve_srv`: Optional[bool] = None + - Optional, whether to resolve Minecraft SRV records. Requires dnspython to be installed. +Minimal example with port auto-detection: +```python +import minestat +ms = minestat.MineStat('minecraft.frag.land') +print(f"Is online? {ms.online=}") +``` +#### Available attributes +The following attributes are available on the `MineStat` object: +- `online`: bool + - Whether the server is online and reachable with the specified protocol. True if online. +- `address`: str + - Addresss (domain or IP-address) of the server to connect to. +- `port`: int + - Port of the server to connect to. +- `version`: str + - String describing the server Minecraft version. In vanilla servers the version number (e.g. 1.18.2), + may be modified by the server (e.g. by ViaVersion). On Bedrock servers includes the Edition (MCEE/MCPE) + and the server info. +- `motd`: str + - The raw MOTD returned by the server. May include formatting codes (§) or JSON chat components. + - Examples (See https://github.com/FragLand/minestat/issues/84#issuecomment-895375890): + - With formatting codes: `§6~~§r §3§lM§7§lA§2§lG§9§lI§4§lC§r1.16 v3§6~~§r` + - JSON chat components: `{"extra": [{"color": "gold", "text": "~~"}, {"text": " "}, {"bold": true, "color": "dark_aqua", "text": "M"}, {"bold": true, "color": "gray", "text": "A"}, {"bold": true, "color": "dark_green", "text": "G"}, {"bold": true, "color": "blue", "text": "I"}, {"bold": true, "color": "dark_red", "text": "C"}, {"text": "1.16 v3"}, {"color": "gold", "text": "~~"}], "text": ""}` +- `stripped_motd`: str + - The MOTD with all formatting removed ("human readable"). + - Example (See https://github.com/FragLand/minestat/issues/84#issuecomment-895375890) + - Above MOTD example: `~~ MAGIC1.16 v3~~` +- `current_players`: int + - Count of players currently online on the server. +- `max_players`: int + - Count of maximum allowed players as reported by the server. +- `latency`: int + - Time in milliseconds the server took to respond to the information request. +- `slp_protocol`: minestat.SlpProtocol + - Protocol used to retrieve information from the server. +- `connection_status`: minestat.ConnStatus + - Status of connection ("SUCCESS", "CONNFAIL", "TIMEOUT", or "UNKNOWN"). +- `srv_record`: bool + - wether the server has a SRV record. +#### Extra attributes +The following attributes are not availabe with every protocol. +- `player_list`: list[str] (***UT3/GS4 Query specific***) + - List of online players, may be empty even if `current_players` is over 0. +- `plugins`: list[str] (***UT3/GS4 Query specific***) + - List of plugins returned by the Query protcol. +- `map`: str (***UT3/GS4 Query specific***) + - The name of the map the server is running on. +- `gamemode`: str (***Bedrock specific***) + - Gamemode currently active on the server (Creative/Survival/Adventure). +- `favicon_b64`: str (***SLP 1.7/JSON specific***) + - Base64-encoded favicon. +- `favicon`: str (***SLP 1.7/JSON specific***) + - Decoded favicon data. + +%prep +%autosetup -n minestat-2.6.1 + +%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-minestat -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Thu May 18 2023 Python_Bot - 2.6.1-1 +- Package Spec generated -- cgit v1.2.3