summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-minestat.spec346
-rw-r--r--sources1
3 files changed, 348 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..f100c6a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/minestat-2.6.1.tar.gz
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 <Python_Bot@openeuler.org> - 2.6.1-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..047ea89
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+20db85edf99eac5277ad1ccfc6e75112 minestat-2.6.1.tar.gz