replaycli-py/api/autoit/cli.py

76 lines
2.3 KiB
Python
Raw Normal View History

2022-01-11 11:54:51 +00:00
import os
import requests
import json
class AutoIt:
"""
## AutoIt Client
---
Esta classe utiliza o serviço "svc_autoit" para realizar operações AutoIt no computador através do Python.
Para que esta biblioteca funcione corretamente, é necessário que você tenha o AutoIt instalado na máquina, com o caminho do mesmo apontado pela variável de ambiente PATH.
2022-01-11 14:22:40 +00:00
- Baixar AutoIt: https://www.autoitscript.com/site/autoit/downloads/
2022-01-11 11:54:51 +00:00
"""
2022-01-11 14:22:40 +00:00
2022-01-11 11:54:51 +00:00
ep: str = ""
2022-01-11 13:36:15 +00:00
def __init__ (self):
self.ep = os.environ.get("REPLAY_ADDR")
2022-01-11 11:54:51 +00:00
2022-01-11 13:36:15 +00:00
def __request_raw_post__ (self, path: str, data: str = ""):
2022-01-11 11:54:51 +00:00
"""
## HTTP RAW POST
---
Este método é responsável por realizar requisições HTTP do tipo POST para objetos RAW.
Ele retorna o corpo de resposta da requisição, ou uma mensagem de erro, que indica qual foi a irregularidade ocorrida ao chamar a API.
"""
url = self.ep + path
print("Calling: " + url)
apikey = os.environ.get('REPLAY_APIKEY')
headers = {"X-API-KEY": apikey}
res = requests.post(url, data = data, headers = headers, verify = False)
if res.status_code >= 400:
raise Exception(f"HTTP ERROR: {str(res.status_code)} - {res.text}")
if res.headers.get("Content-Type") != None and res.headers.get("Content-Type").find("json") != -1:
return json.loads(res.text)
else:
2022-01-11 13:36:15 +00:00
return res.text
def test (self):
"""
## AutoIt test
Este método é utilizado para testar se o AutoIt está corretamente instalado na máquina do usuário, além de garantir que o serviço também está instalado e funcionando corretamente.
---
#### Parâmetros:
---
---
#### Retorna:
-> "Autoit Svc Ok" caso tudo esteja funcionando corretamente.
"""
return self.__request_raw_post__ ("/ipc/autoit/test")
def do (self, command: str):
"""
## AutoIt Do
Realiza algum comando Autoit passado como parâmetro.
---
#### Parâmetros:
- command: Comando autoit que se deseja executar
---
#### Retorna:
-> O retorno do comando, se houver.
"""
return self.__request_raw_post__ ("/ipc/autoit/do", command)