MkDocs, Readme, Files API, Automated session saving, v2.0.1
MkDocs: sphinx docstrings rewritten to google, improved config, written the major part of how-to.
Readme: centered title + logo, added badges, features list, updated changelog.
Improved Files API, added automatical session saving and restoring to Client.
Some changes in makefile and gitignore.
License Notice now refers to all contributors.
2022-08-26 15:14:07 +03:00
|
|
|
<div align="center">
|
|
|
|
<img src="https://i.ibb.co/3RXcXJ1/aternos-400.png" alt="Python Aternos Logo">
|
|
|
|
<h1>
|
2024-02-15 17:05:51 +03:00
|
|
|
[UNMAINTAINED] Python Aternos
|
MkDocs, Readme, Files API, Automated session saving, v2.0.1
MkDocs: sphinx docstrings rewritten to google, improved config, written the major part of how-to.
Readme: centered title + logo, added badges, features list, updated changelog.
Improved Files API, added automatical session saving and restoring to Client.
Some changes in makefile and gitignore.
License Notice now refers to all contributors.
2022-08-26 15:14:07 +03:00
|
|
|
<div>
|
|
|
|
<a href="https://pypi.org/project/python-aternos/">
|
|
|
|
<img src="https://img.shields.io/pypi/v/python-aternos">
|
|
|
|
</a>
|
|
|
|
<a href="https://www.apache.org/licenses/LICENSE-2.0.html">
|
|
|
|
<img src="https://img.shields.io/pypi/l/python-aternos">
|
|
|
|
</a>
|
|
|
|
<a href="https://github.com/DarkCat09/python-aternos/commits">
|
|
|
|
<img src="https://img.shields.io/github/last-commit/DarkCat09/python-aternos">
|
|
|
|
</a>
|
|
|
|
<a href="https://github.com/DarkCat09/python-aternos/issues">
|
|
|
|
<img src="https://img.shields.io/github/issues/DarkCat09/python-aternos">
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
</h1>
|
|
|
|
</div>
|
|
|
|
|
2021-09-17 10:21:51 +03:00
|
|
|
An unofficial Aternos API written in Python.
|
2022-04-01 16:00:02 +03:00
|
|
|
It uses [aternos](https://aternos.org/)' private API and html parsing.
|
2021-09-17 10:21:51 +03:00
|
|
|
|
2024-02-15 17:05:51 +03:00
|
|
|
> [!WARNING]
|
2023-06-03 09:50:51 +03:00
|
|
|
>
|
2024-02-15 17:05:51 +03:00
|
|
|
> This library is no longer maintained, because:
|
|
|
|
> 1. Aternos started detecting all automated requests (and, therefore, ToS violations)
|
|
|
|
> via JS code in `AJAX_TOKEN` which is executed incorrectly in Js2Py and
|
|
|
|
> requires a NodeJS DOM library (at least) or a browser engine.
|
|
|
|
> For details, see [#85](https://github.com/DarkCat09/python-aternos/issues/85).
|
|
|
|
> 2. Aternos frontend is protected with Cloudflare, so this library fails to parse pages
|
|
|
|
> in case of, for example, blocked or suspicious IP address (e.g. web hosting).
|
|
|
|
> CF shows IUAM page, often with captcha. We need a browser engine like undetected-chromedriver and an AI or a man solving captchas.
|
|
|
|
> 3. Last Aternos API update broke nearly everything.
|
|
|
|
> 4. I have no more motivation and not enough time to work on this, nor need in using Aternos.
|
2023-06-03 09:50:51 +03:00
|
|
|
>
|
2024-02-15 17:05:51 +03:00
|
|
|
> I'm so sorry. If you want to continue development of python-aternos,
|
|
|
|
> [contact me](https://url.dc09.ru/contact), but I think it's better to write from scratch.
|
2023-06-03 09:50:51 +03:00
|
|
|
|
MkDocs, Readme, Files API, Automated session saving, v2.0.1
MkDocs: sphinx docstrings rewritten to google, improved config, written the major part of how-to.
Readme: centered title + logo, added badges, features list, updated changelog.
Improved Files API, added automatical session saving and restoring to Client.
Some changes in makefile and gitignore.
License Notice now refers to all contributors.
2022-08-26 15:14:07 +03:00
|
|
|
Python Aternos supports:
|
|
|
|
|
2023-05-29 11:02:50 +03:00
|
|
|
- Logging in to account with password (plain or hashed) or `ATERNOS_SESSION` cookie value
|
|
|
|
- Saving session to the file and restoring
|
|
|
|
- Changing username, email and password
|
|
|
|
- Parsing Minecraft servers list
|
|
|
|
- Parsing server info by its ID
|
|
|
|
- Starting/stoping server, restarting, confirming/cancelling launch
|
2024-02-15 17:05:51 +03:00
|
|
|
- Updating server info in real-time (see [WebSocket API](https://python-aternos.codeberg.page/howto/websocket))
|
2023-05-29 11:02:50 +03:00
|
|
|
- Changing server subdomain and MOTD (message-of-the-day)
|
MkDocs, Readme, Files API, Automated session saving, v2.0.1
MkDocs: sphinx docstrings rewritten to google, improved config, written the major part of how-to.
Readme: centered title + logo, added badges, features list, updated changelog.
Improved Files API, added automatical session saving and restoring to Client.
Some changes in makefile and gitignore.
License Notice now refers to all contributors.
2022-08-26 15:14:07 +03:00
|
|
|
- Managing files, settings, players (whitelist, operators, etc.)
|
|
|
|
|
|
|
|
## Install
|
|
|
|
|
|
|
|
### Common
|
2021-09-17 10:21:51 +03:00
|
|
|
```bash
|
MkDocs, Readme, Files API, Automated session saving, v2.0.1
MkDocs: sphinx docstrings rewritten to google, improved config, written the major part of how-to.
Readme: centered title + logo, added badges, features list, updated changelog.
Improved Files API, added automatical session saving and restoring to Client.
Some changes in makefile and gitignore.
License Notice now refers to all contributors.
2022-08-26 15:14:07 +03:00
|
|
|
$ pip install python-aternos
|
|
|
|
```
|
|
|
|
> **Note** for Windows users
|
|
|
|
>
|
|
|
|
> Install `lxml` package from [here](https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml)
|
2022-08-29 12:57:45 +03:00
|
|
|
> if you have problems with it, and then execute:
|
MkDocs, Readme, Files API, Automated session saving, v2.0.1
MkDocs: sphinx docstrings rewritten to google, improved config, written the major part of how-to.
Readme: centered title + logo, added badges, features list, updated changelog.
Improved Files API, added automatical session saving and restoring to Client.
Some changes in makefile and gitignore.
License Notice now refers to all contributors.
2022-08-26 15:14:07 +03:00
|
|
|
> `pip install --no-deps python-aternos`
|
|
|
|
|
|
|
|
### Development
|
|
|
|
```bash
|
|
|
|
$ git clone https://github.com/DarkCat09/python-aternos.git
|
|
|
|
$ cd python-aternos
|
2023-07-04 13:24:47 +03:00
|
|
|
$ pip install -e .[dev]
|
2021-09-17 10:21:51 +03:00
|
|
|
```
|
|
|
|
|
2022-04-01 16:00:02 +03:00
|
|
|
## Usage
|
|
|
|
To use Aternos API in your Python script, import it
|
2023-05-29 11:02:50 +03:00
|
|
|
and login with your username and password or its MD5 hash.
|
2021-09-17 10:21:51 +03:00
|
|
|
|
2022-04-01 16:00:02 +03:00
|
|
|
Then request the servers list using `list_servers()`.
|
MkDocs, Readme, Files API, Automated session saving, v2.0.1
MkDocs: sphinx docstrings rewritten to google, improved config, written the major part of how-to.
Readme: centered title + logo, added badges, features list, updated changelog.
Improved Files API, added automatical session saving and restoring to Client.
Some changes in makefile and gitignore.
License Notice now refers to all contributors.
2022-08-26 15:14:07 +03:00
|
|
|
You can start/stop your Aternos server, calling `start()` or `stop()`.
|
2021-09-29 17:36:09 +03:00
|
|
|
|
2022-04-01 16:00:02 +03:00
|
|
|
Here is an example how to use the API:
|
2021-09-17 10:21:51 +03:00
|
|
|
```python
|
|
|
|
# Import
|
|
|
|
from python_aternos import Client
|
|
|
|
|
2023-05-29 11:02:50 +03:00
|
|
|
# Create object
|
2023-06-01 16:59:33 +03:00
|
|
|
atclient = Client()
|
2023-05-29 11:02:50 +03:00
|
|
|
|
2021-09-17 10:21:51 +03:00
|
|
|
# Log in
|
2023-05-29 11:02:50 +03:00
|
|
|
# with username and password
|
2023-06-01 16:59:33 +03:00
|
|
|
atclient.login('example', 'test123')
|
2021-09-29 17:36:09 +03:00
|
|
|
# ----OR----
|
2023-05-29 11:02:50 +03:00
|
|
|
# with username and MD5 hashed password
|
2023-06-01 16:59:33 +03:00
|
|
|
atclient.login_hashed('example', 'cc03e747a6afbbcbf8be7668acfebee5')
|
2022-05-13 17:05:23 +03:00
|
|
|
# ----OR----
|
2023-05-29 11:02:50 +03:00
|
|
|
# with session cookie
|
2023-06-01 16:59:33 +03:00
|
|
|
atclient.login_with_session('ATERNOS_SESSION cookie value')
|
|
|
|
|
|
|
|
# Get AternosAccount object
|
|
|
|
aternos = atclient.account
|
2021-09-17 10:21:51 +03:00
|
|
|
|
2023-05-29 11:02:50 +03:00
|
|
|
# Get servers list
|
2022-04-01 16:00:02 +03:00
|
|
|
servs = aternos.list_servers()
|
2021-09-29 17:36:09 +03:00
|
|
|
|
2023-05-29 11:02:50 +03:00
|
|
|
# Get the first server
|
2022-04-01 16:00:02 +03:00
|
|
|
myserv = servs[0]
|
2021-09-17 10:21:51 +03:00
|
|
|
|
|
|
|
# Start
|
|
|
|
myserv.start()
|
|
|
|
# Stop
|
|
|
|
myserv.stop()
|
2021-09-29 17:36:09 +03:00
|
|
|
|
2021-10-14 17:43:17 +03:00
|
|
|
# You can also find server by IP
|
2021-09-29 17:36:09 +03:00
|
|
|
testserv = None
|
2022-04-01 16:00:02 +03:00
|
|
|
for serv in servs:
|
2021-09-29 17:36:09 +03:00
|
|
|
if serv.address == 'test.aternos.org':
|
|
|
|
testserv = serv
|
MkDocs, Readme, Files API, Automated session saving, v2.0.1
MkDocs: sphinx docstrings rewritten to google, improved config, written the major part of how-to.
Readme: centered title + logo, added badges, features list, updated changelog.
Improved Files API, added automatical session saving and restoring to Client.
Some changes in makefile and gitignore.
License Notice now refers to all contributors.
2022-08-26 15:14:07 +03:00
|
|
|
|
|
|
|
if testserv is not None:
|
2022-11-03 17:01:53 +03:00
|
|
|
# Prints the server software and its version
|
2021-09-29 17:36:09 +03:00
|
|
|
# (for example, "Vanilla 1.12.2")
|
|
|
|
print(testserv.software, testserv.version)
|
|
|
|
# Starts server
|
|
|
|
testserv.start()
|
2021-09-17 10:21:51 +03:00
|
|
|
```
|
2022-04-01 16:00:02 +03:00
|
|
|
|
MkDocs, Readme, Files API, Automated session saving, v2.0.1
MkDocs: sphinx docstrings rewritten to google, improved config, written the major part of how-to.
Readme: centered title + logo, added badges, features list, updated changelog.
Improved Files API, added automatical session saving and restoring to Client.
Some changes in makefile and gitignore.
License Notice now refers to all contributors.
2022-08-26 15:14:07 +03:00
|
|
|
## [More examples](https://github.com/DarkCat09/python-aternos/tree/main/examples)
|
|
|
|
|
2024-02-15 17:05:51 +03:00
|
|
|
## [Documentation](https://python-aternos.codeberg.page)
|
MkDocs, Readme, Files API, Automated session saving, v2.0.1
MkDocs: sphinx docstrings rewritten to google, improved config, written the major part of how-to.
Readme: centered title + logo, added badges, features list, updated changelog.
Improved Files API, added automatical session saving and restoring to Client.
Some changes in makefile and gitignore.
License Notice now refers to all contributors.
2022-08-26 15:14:07 +03:00
|
|
|
|
2024-02-15 17:05:51 +03:00
|
|
|
## [How-To Guide](https://python-aternos.codeberg.page/howto/auth)
|
2021-09-17 10:21:51 +03:00
|
|
|
|
2021-11-01 17:04:19 +03:00
|
|
|
## Changelog
|
MkDocs, Readme, Files API, Automated session saving, v2.0.1
MkDocs: sphinx docstrings rewritten to google, improved config, written the major part of how-to.
Readme: centered title + logo, added badges, features list, updated changelog.
Improved Files API, added automatical session saving and restoring to Client.
Some changes in makefile and gitignore.
License Notice now refers to all contributors.
2022-08-26 15:14:07 +03:00
|
|
|
|Version|Description |
|
2022-01-01 11:07:04 +03:00
|
|
|
|:-----:|:-----------|
|
2021-11-01 17:04:19 +03:00
|
|
|
|v0.3|Implemented files API, added typization.|
|
|
|
|
|v0.4|Implemented configuration API, some bugfixes.|
|
|
|
|
|v0.5|The API was updated corresponding to new Aternos security methods. Huge thanks to [lusm554](https://github.com/lusm554).|
|
MkDocs, Readme, Files API, Automated session saving, v2.0.1
MkDocs: sphinx docstrings rewritten to google, improved config, written the major part of how-to.
Readme: centered title + logo, added badges, features list, updated changelog.
Improved Files API, added automatical session saving and restoring to Client.
Some changes in makefile and gitignore.
License Notice now refers to all contributors.
2022-08-26 15:14:07 +03:00
|
|
|
|**v0.6/v1.0.0**|Code refactoring, websockets API and session saving to prevent detecting automation access.|
|
2022-05-13 17:05:23 +03:00
|
|
|
|v1.0.x|Lots of bugfixes, changed versioning (SemVer).|
|
2022-07-26 09:22:49 +03:00
|
|
|
|v1.1.x|Documentation, unit tests, pylint, bugfixes, changes in atwss.|
|
MkDocs, Readme, Files API, Automated session saving, v2.0.1
MkDocs: sphinx docstrings rewritten to google, improved config, written the major part of how-to.
Readme: centered title + logo, added badges, features list, updated changelog.
Improved Files API, added automatical session saving and restoring to Client.
Some changes in makefile and gitignore.
License Notice now refers to all contributors.
2022-08-26 15:14:07 +03:00
|
|
|
|**v1.1.2/v2.0.0**|Solution for [#25](https://github.com/DarkCat09/python-aternos/issues/25) (Cloudflare bypassing), bugfixes in JS parser.|
|
|
|
|
|v2.0.x|Documentation, automatically saving/restoring session, improvements in Files API.|
|
2023-05-29 11:02:50 +03:00
|
|
|
|v2.1.x|Fixes in websockets API, atconnect (including cookie refreshing fix). Support for captcha solving services (view [#52](https://github.com/DarkCat09/python-aternos/issues/52)).|
|
|
|
|
|v2.2.x|Node.JS interpreter support.|
|
|
|
|
|v3.0.0|Partially rewritten, API updates.|
|
2024-02-15 17:05:51 +03:00
|
|
|
|v3.0.5|Unmaintained.|
|
|
|
|
|v3.1.x|TODO: Full implementation of config API.|
|
|
|
|
|v3.2.x|TODO: Shared access API and maybe Google Drive backups.|
|
2023-05-29 11:02:50 +03:00
|
|
|
|
|
|
|
## Reversed API Specification
|
|
|
|
Private Aternos API requests were captured into
|
|
|
|
[this HAR file](https://github.com/DarkCat09/python-aternos/blob/main/aternos.har)
|
|
|
|
and were imported to
|
|
|
|
[a Postman Workspace](https://www.postman.com/darkcat09/workspace/aternos-api).
|
|
|
|
You can use both resources to explore the API.
|
|
|
|
Any help with improving this library is welcome.
|
2021-11-01 17:04:19 +03:00
|
|
|
|
2021-09-17 10:21:51 +03:00
|
|
|
## License
|
2022-08-29 12:57:45 +03:00
|
|
|
[License Notice:](https://github.com/DarkCat09/python-aternos/blob/main/NOTICE)
|
2021-09-17 10:21:51 +03:00
|
|
|
```
|
MkDocs, Readme, Files API, Automated session saving, v2.0.1
MkDocs: sphinx docstrings rewritten to google, improved config, written the major part of how-to.
Readme: centered title + logo, added badges, features list, updated changelog.
Improved Files API, added automatical session saving and restoring to Client.
Some changes in makefile and gitignore.
License Notice now refers to all contributors.
2022-08-26 15:14:07 +03:00
|
|
|
Copyright 2021-2022 All contributors
|
2021-09-17 10:21:51 +03:00
|
|
|
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
```
|