Package: python-aternos
[UNMAINTAINED] Python AternosAn unofficial Aternos API written in Python.It usesaternos' private API and html parsing.[!WARNING]This library is no longer maintained, because:Aternos started detecting all automated requests (and, therefore, ToS violations)
via JS code inAJAX_TOKENwhich is executed incorrectly in Js2Py and
requires a NodeJS DOM library (at least) or a browser engine.
For details, see#85.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.Last Aternos API update broke nearly everything.I have no more motivation and not enough time to work on this, nor need in using Aternos.I'm so sorry. If you want to continue development of python-aternos,contact me, but I think it's better to write from scratch.Python Aternos supports:Logging in to account with password (plain or hashed) orATERNOS_SESSIONcookie valueSaving session to the file and restoringChanging username, email and passwordParsing Minecraft servers listParsing server info by its IDStarting/stoping server, restarting, confirming/cancelling launchUpdating server info in real-time (seeWebSocket API)Changing server subdomain and MOTD (message-of-the-day)Managing files, settings, players (whitelist, operators, etc.)InstallCommon$pipinstallpython-aternosNotefor Windows usersInstalllxmlpackage fromhereif you have problems with it, and then execute:pip install --no-deps python-aternosDevelopment$gitclonehttps://github.com/DarkCat09/python-aternos.git
$cdpython-aternos
$pipinstall-e.[dev]UsageTo use Aternos API in your Python script, import it
and login with your username and password or its MD5 hash.Then request the servers list usinglist_servers().You can start/stop your Aternos server, callingstart()orstop().Here is an example how to use the API:# Importfrompython_aternosimportClient# Create objectatclient=Client()# Log in# with username and passwordatclient.login('example','test123')# ----OR----# with username and MD5 hashed passwordatclient.login_hashed('example','cc03e747a6afbbcbf8be7668acfebee5')# ----OR----# with session cookieatclient.login_with_session('ATERNOS_SESSION cookie value')# Get AternosAccount objectaternos=atclient.account# Get servers listservs=aternos.list_servers()# Get the first servermyserv=servs[0]# Startmyserv.start()# Stopmyserv.stop()# You can also find server by IPtestserv=Noneforservinservs:ifserv.address=='test.aternos.org':testserv=serviftestservisnotNone:# Prints the server software and its version# (for example, "Vanilla 1.12.2")print(testserv.software,testserv.version)# Starts servertestserv.start()More examplesDocumentationHow-To GuideChangelogVersionDescriptionv0.3Implemented files API, added typization.v0.4Implemented configuration API, some bugfixes.v0.5The API was updated corresponding to new Aternos security methods. Huge thanks tolusm554.v0.6/v1.0.0Code refactoring, websockets API and session saving to prevent detecting automation access.v1.0.xLots of bugfixes, changed versioning (SemVer).v1.1.xDocumentation, unit tests, pylint, bugfixes, changes in atwss.v1.1.2/v2.0.0Solution for#25(Cloudflare bypassing), bugfixes in JS parser.v2.0.xDocumentation, automatically saving/restoring session, improvements in Files API.v2.1.xFixes in websockets API, atconnect (including cookie refreshing fix). Support for captcha solving services (view#52).v2.2.xNode.JS interpreter support.v3.0.0Partially rewritten, API updates.v3.0.5Unmaintained.v3.1.xTODO: Full implementation of config API.v3.2.xTODO: Shared access API and maybe Google Drive backups.Reversed API SpecificationPrivate Aternos API requests were captured intothis HAR fileand were imported toa Postman Workspace.You can use both resources to explore the API.Any help with improving this library is welcome.LicenseLicense Notice:Copyright 2021-2022 All contributors

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.