2022-01-11 14:22:40 +00:00
|
|
|
import os
|
|
|
|
import requests
|
|
|
|
import json
|
|
|
|
|
|
|
|
class AutoHotKey:
|
|
|
|
"""
|
|
|
|
## AutoHotKey
|
|
|
|
---
|
|
|
|
Esta classe utiliza o serviço svc_autohotkey para realizar operações AutoHotKey na máquina.
|
|
|
|
|
|
|
|
Para que o client funcione corretamente, é necessário que o autoHotKey esteja instalado na máquina e o caminho de seu executável gravado na variável de ambiente PATH.
|
|
|
|
|
|
|
|
- Baixar AutoHotKey: https://www.autohotkey.com/
|
|
|
|
"""
|
|
|
|
|
|
|
|
ep: str = ""
|
|
|
|
|
|
|
|
def __init__ (self):
|
2022-02-17 12:52:34 +00:00
|
|
|
self.ep = os.environ.get("REPLAY_ADDR")
|
2022-01-11 14:22:40 +00:00
|
|
|
|
|
|
|
def __request_raw_post__ (self, path: str, data: str = ""):
|
|
|
|
|
|
|
|
"""
|
|
|
|
## 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:
|
|
|
|
return res.text
|
|
|
|
|
2022-01-11 14:57:48 +00:00
|
|
|
def test (self):
|
|
|
|
"""
|
|
|
|
## AutoHotKey Test
|
|
|
|
Este método é utilizado para testar se o AutoHotKey está corretamente instalado na máquina do usuário, além de garantir que o serviço do mesmo também está instalado e funcionando corretamente.
|
|
|
|
|
|
|
|
---
|
|
|
|
#### Parâmetros:
|
|
|
|
---
|
|
|
|
|
|
|
|
---
|
|
|
|
#### Retorna:
|
|
|
|
-> "AHK Svc Ok" caso tudo esteja funcionando corretamente.
|
|
|
|
"""
|
|
|
|
return self.__request_raw_post__ ("/ipc/ahk/test")
|
|
|
|
|
|
|
|
def do (self, command: str):
|
|
|
|
"""
|
|
|
|
## AutoHotKey Do
|
|
|
|
Realiza algum comando AutoHotKey passado como parâmetro.
|
|
|
|
|
|
|
|
---
|
|
|
|
#### Parâmetros:
|
|
|
|
- command: Comando AutoHotKey que se deseja executar
|
|
|
|
|
|
|
|
---
|
|
|
|
#### Retorna:
|
|
|
|
-> O retorno do comando, se houver.
|
|
|
|
"""
|
|
|
|
|
|
|
|
return self.__request_raw_post__ ("/ipc/ahk/do", command)
|