How-To 1: Logging in#
Intro#
Firstly, let's install the library using the command from "Common install" section.
pip install python-aternos
Also, register an Aternos account if you haven't one.
Now you are ready.
Authorization with password#
Import python-aternos module:
from python_aternos import Client
Then, you can log in to your account using from_credentials method specifying your username and password.
at = Client.from_credentials('username', 'password')
This line will create Client object and save it to at
variable.
Okay, we are logged in. What's next?
Servers list#
Request the list of your servers:
servers = at.list_servers()
This variable must contain something like:
[<python_aternos.atserver.AternosServer object at 0x7f97bd8b5690>]
If you have only one server in your account, get it by the zero index:
serv = servers[0]
Otherwise, iterate over the list to find it by IP or subdomain:
# 1st way: For-loop
# Our server: test.aternos.me
# Find by IP (domain)
serv = None
for s in servers:
if s.domain == 'test.aternos.me':
serv = s
# Or find by subdomain
# (part before .aternos.me)
serv = None
for s in servers:
if s.subdomain == 'test':
serv = s
# Important check
if serv is None:
print('Not found!')
exit()
# 2nd way: Dict comprehension
serv = {
'serv': s
for s in servers
if s.subdomain == 'test'
}.get('serv', None)
if serv is None:
print('Not found!')
exit()
serv
is an AternosServer object. I'll explain it more detailed in the next part.
Now, let's just try to start and stop server:
# Start
serv.start()
# Stop
serv.stop()
Saving session#
In the version v2.0.1
and above,
python-aternos automatically saves and restores session cookie,
so you don't need to do it by yourself now.
Before, you should save session manually:
# This code is useless in new versions,
# because they do it automatically.
from python_aternos import Client
at = Client.from_credentails('username', 'password')
myserv = at.list_servers()[0]
...
at.save_session()
# Closing python interpreter
# and opening it again
from python_aternos import Client
at = Client.restore_session()
myserv = at.list_servers()[0]
...
Function save_session()
writes session cookie and cached servers list to .aternos
file in your home directory.
restore_session()
creates Client object from session cookie and restores servers list.
This feature reduces the count of network requests and allows you to log in and request servers much faster.
If you created a new server, but it doesn't appear in list_servers
result, call it with cache=False
argument.
# Refreshing list
servers = at.list_servers(cache=False)
Username, email, password#
Change them using the corresponding methods:
at.change_username('new1cool2username3')
at.change_password('old_password', 'new_password')
at.change_email('new@email.com')
Hashing passwords#
For security reasons, Aternos API takes MD5 hashed passwords, not plain.
from_credentials
hashes your credentials and passes to from_hashed
classmethod.
change_password
also hashes passwords and calls change_password_hashed
.
And you can use these methods too.
Python-Aternos contains a handy function Client.md5encode
that can help you with it.
>>> from python_aternos import Client
>>> Client.md5encode('old_password')
'0512f08120c4fef707bd5e2259c537d0'
>>> Client.md5encode('new_password')
'88162595c58939c4ae0b35f39892e6e7'
from python_aternos import Client
my_passwd = '0512f08120c4fef707bd5e2259c537d0'
new_passwd = '88162595c58939c4ae0b35f39892e6e7'
at = Client.from_hashed('username', my_passwd)
at.change_password_hashed(my_passwd, new_passwd)