An API that allows you to communicate with AMP installations from within Python.
Project description
ampapi-py
Note: This library is 95% generated code with no soul whatsoever. If you're more interested in a nicer developer experience, check out k8thekat's AMPAPI_Python
An API that allows you to communicate with AMP installations from within Python.
Documentation for available API calls can be found by appending /API to the URL of any existing AMP installation.
Support:
- Ping
@thepotatoking3452
in the#development
channel of the AMP Discord - My own development Discord
Installation
pip install ampapi
You also need the following packages installed:
pip install requests aiohttp json dataclass_wizard
Examples
NOTE: THESE ARE CURRENTLY OUTDATED AFTER THE REWRITE
CommonAPI Example
from ampapi.modules.CommonAPI import CommonAPI
def main():
# If you know the module that the instance is using, specify it instead of CommonAPI
API = CommonAPI("http://localhost:8080/", "admin", "myfancypassword123")
API.Login()
# API call parameters are simply in the same order as shown in the documentation.
API.Core.SendConsoleMessage("say Hello Everyone, this message was sent from the Python API!")
currentStatus = API.Core.GetStatus()
CPUUsagePercent = currentStatus.Metrics["CPU Usage"].Percent
print(f"Current CPU usage is: {CPUUsagePercent}%")
main()
Async CommonAPI Example
import asyncio
from ampapi.modules.CommonAPI import CommonAPI
async def main():
# If you know the module that the instance is using, specify it instead of CommonAPI
API = CommonAPI("http://localhost:8080/", "admin", "myfancypassword123")
await API.LoginAsync()
# API call parameters are simply in the same order as shown in the documentation.
await API.Core.SendConsoleMessageAsync("say Hello Everyone, this message was sent from the Python API!")
currentStatus = await API.Core.GetStatusAsync()
CPUUsagePercent = currentStatus.Metrics["CPU Usage"].Percent
print(f"Current CPU usage is: {CPUUsagePercent}%")
asyncio.run(main())
Example using the ADS to manage an instance
from ampapi.modules.ADS import ADS
API = ADS("http://localhost:8080/", "admin", "myfancypassword123")
API.Login()
# Get the available instances
targets = API.ADSModule.GetInstances()
# In this example, my Hub server is on the second target
# If you're running a standalone setup, you can just use targets[1]
target = targets[1]
hub_instance_id = ""
# Get the available instances
instances = target.AvailableInstances
for instance in instances:
# Find the instance named "Hub"
if instance.InstanceName == "Hub":
hub_instance_id = instance.InstanceID
break
# Use the instance ID to get the API for the instance
Hub = API.InstanceLogin(hub_instance_id, "Minecraft")
# Get the current CPU usage
currentStatus = Hub.Core.GetStatus()
CPUUsagePercent = currentStatus.Metrics["CPU Usage"].Percent
# Send a message to the console
Hub.Core.SendConsoleMessage(f"say Current CPU usage is {CPUUsagePercent}%")
CommonAPI Example, handling the sessionId and rememberMeToken manually (not recommended)
from ampapi.modules.CommonAPI import CommonAPI
try:
API = CommonAPI("http://localhost:8080/")
# The third parameter is either used for 2FA logins, or if no password is specified to use a remembered token from a previous login, or a service login token.
loginResult = API.Core.Login("admin", "myfancypassword123", "", False)
if loginResult.success:
print("Login successful")
API.sessionId = loginResult.sessionID
API.Core.sessionId = loginResult.sessionID
# API call parameters are simply in the same order as shown in the documentation.
API.Core.SendConsoleMessage("say Hello Everyone, this message was sent from the Python API!")
currentStatus = API.Core.GetStatus()
CPUUsagePercent = currentStatus.Metrics["CPU Usage"].Percent
print(f"Current CPU usage is: {CPUUsagePercent}%")
else:
print("Login failed")
print(loginResult)
except Exception as err:
# In reality, you'd handle this exception better
raise Exception(err)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ampapi-2604.4.2.tar.gz
(40.4 kB
view details)
Built Distribution
ampapi-2604.4.2-py3-none-any.whl
(39.1 kB
view details)
File details
Details for the file ampapi-2604.4.2.tar.gz
.
File metadata
- Download URL: ampapi-2604.4.2.tar.gz
- Upload date:
- Size: 40.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9878bb956fa8b048e582fb31a59755a54dbd5e4418fab63ffa875b42cc67ab5 |
|
MD5 | f43028edba30cf018becbb6c4bc61e25 |
|
BLAKE2b-256 | a11a40a984e4c8b32964ccb903c0b6219d6610bef295211f346906aef7c98f18 |
File details
Details for the file ampapi-2604.4.2-py3-none-any.whl
.
File metadata
- Download URL: ampapi-2604.4.2-py3-none-any.whl
- Upload date:
- Size: 39.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b65c23977f1da37bb71d878c8f0fbb1305c27997df998fe0795038c4c43bf2b4 |
|
MD5 | 1b6d829cafcc2f5c1ee2a692b54a9e2d |
|
BLAKE2b-256 | 3486e01cef7b0e9ee522d8082bd3568c378e27dabfdddf1f9c2bf4cdc6ce34cb |