worker-automate-hub 0.5.65__tar.gz → 0.5.67__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/PKG-INFO +1 -1
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/pyproject.toml +1 -1
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/conexao_rdp.py +60 -5
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/devolucao_prazo_a_faturar.py +1 -1
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/README.md +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/__init__.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/api/__init__.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/api/ahead_service.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/api/client.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/api/helpers/__init__.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/api/helpers/api_helpers.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/api/rdp_service.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/api/rpa_fila_service.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/api/rpa_historico_service.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/api/webhook_service.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/cli.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/config/__init__.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/config/settings.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/config.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/core/so_manipulation.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/decorators/__init__.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/decorators/deprecation.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/decorators/rate_limit.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/decorators/repeat.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/decorators/retry.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/decorators/singleton.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/decorators/timeit.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/models/__init__.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dao/__init__.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dao/rpa_configuracao.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dao/rpa_fila.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dao/rpa_historico.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dao/rpa_processo.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dao/rpa_robo.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dto/__init__.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dto/rpa_historico_request_dto.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dto/rpa_processo_entrada_dto.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dto/rpa_processo_rdp_dto.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dto/rpa_sistema_dto.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/__init__.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/__init__.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/coleta_dje_process.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/descartes.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/ecac_estadual_go.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/ecac_estadual_main.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/ecac_estadual_mt.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/ecac_estadual_sc.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/ecac_estadual_sp.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/ecac_federal.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_15.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_16.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_207.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_32.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_33.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_34.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_36.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_39.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_500.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_505.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_9.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/exemplo_processo.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/fechar_conexao_rdp.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/fidc_remessa_cobranca_cnab240.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/login_emsys.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/login_emsys_versao_especifica.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/playground.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/sped_fiscal.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/transferencias.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/task_definitions.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/task_executor.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/__init__.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/env.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/get_creds_gworkspace.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/logger.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/toast.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/updater.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/util.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/utils_nfe_entrada.py +0 -0
- {worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/worker.py +0 -0
@@ -1,5 +1,6 @@
|
|
1
1
|
import asyncio
|
2
2
|
import platform
|
3
|
+
import re
|
3
4
|
import subprocess
|
4
5
|
import socket
|
5
6
|
import pyautogui
|
@@ -7,7 +8,7 @@ import os
|
|
7
8
|
import pygetwindow as gw
|
8
9
|
from rich.console import Console
|
9
10
|
import pygetwindow as gw
|
10
|
-
from pywinauto import Application
|
11
|
+
from pywinauto import Application, Desktop
|
11
12
|
from worker_automate_hub.api.client import change_robot_status_true
|
12
13
|
from worker_automate_hub.models.dto.rpa_historico_request_dto import RpaHistoricoStatusEnum, RpaRetornoProcessoDTO, RpaTagDTO, RpaTagEnum
|
13
14
|
from worker_automate_hub.models.dto.rpa_processo_rdp_dto import RpaProcessoRdpDTO
|
@@ -127,6 +128,23 @@ class RDPConnection:
|
|
127
128
|
except Exception as error:
|
128
129
|
console.print(f"Erro ao abrir a conexão RDP: {error}")
|
129
130
|
|
131
|
+
async def verificar_conexao_estabelecida(self):
|
132
|
+
janelas_rdp = [
|
133
|
+
win
|
134
|
+
for win in gw.getAllTitles()
|
135
|
+
if self.ip in win
|
136
|
+
]
|
137
|
+
|
138
|
+
janela = None
|
139
|
+
|
140
|
+
for titulo in janelas_rdp:
|
141
|
+
janela = gw.getWindowsWithTitle(titulo)[0]
|
142
|
+
if not janela:
|
143
|
+
console.print(f"Erro ao localizar a janela: {titulo}")
|
144
|
+
continue
|
145
|
+
else:
|
146
|
+
return True
|
147
|
+
|
130
148
|
async def conectar(self):
|
131
149
|
console.print(f"Iniciando cliente RDP para {self.ip}")
|
132
150
|
try:
|
@@ -163,8 +181,41 @@ class RDPConnection:
|
|
163
181
|
except Exception as e:
|
164
182
|
console.print(f"Erro ao ativar a janela RDP: {e}", style="bold red")
|
165
183
|
|
184
|
+
app_window = None
|
185
|
+
possible_titles_patterns = [
|
186
|
+
re.compile(r"Conexão de Área de Trabalho Remota", re.IGNORECASE),
|
187
|
+
re.compile(r"Ligação ao ambiente de trabalho remoto", re.IGNORECASE),
|
188
|
+
re.compile(r"Segurança do Windows", re.IGNORECASE)
|
189
|
+
]
|
190
|
+
|
191
|
+
janelas = Desktop(backend="uia").windows()
|
192
|
+
for janela in janelas:
|
193
|
+
titulo = janela.window_text()
|
194
|
+
for pattern in possible_titles_patterns:
|
195
|
+
if pattern.search(titulo):
|
196
|
+
try:
|
197
|
+
app = Application(backend="uia").connect(title_re=pattern)
|
198
|
+
app_window = app.window(title_re=pattern)
|
199
|
+
console.print(f"Janela encontrada: {titulo}")
|
200
|
+
break
|
201
|
+
except Exception as e:
|
202
|
+
console.print(f"Erro ao conectar a janela '{titulo}': {e}")
|
203
|
+
if app_window:
|
204
|
+
break
|
205
|
+
|
206
|
+
await worker_sleep(2)
|
207
|
+
|
208
|
+
if app_window:
|
209
|
+
try:
|
210
|
+
app_window.restore()
|
211
|
+
app_window.set_focus()
|
212
|
+
console.print("Foco definido com sucesso.")
|
213
|
+
except Exception as e:
|
214
|
+
console.print(f"Erro ao definir foco na janela: {e}")
|
215
|
+
else:
|
216
|
+
console.print("Nenhuma janela correspondente foi encontrada.")
|
217
|
+
|
166
218
|
await worker_sleep(5)
|
167
|
-
|
168
219
|
console.print("Inserindo senha.")
|
169
220
|
pyautogui.write(self.password, interval=0.1)
|
170
221
|
pyautogui.press("enter")
|
@@ -175,8 +226,6 @@ class RDPConnection:
|
|
175
226
|
console.print("Credenciais inseridas.")
|
176
227
|
await worker_sleep(5)
|
177
228
|
|
178
|
-
console.print("Conexão RDP ativa. Mantendo o script em execução.")
|
179
|
-
|
180
229
|
try:
|
181
230
|
base_path = os.path.join("worker_automate_hub", "tasks", "jobs")
|
182
231
|
rdp_file_path = os.path.join(base_path, "connection.rdp")
|
@@ -184,8 +233,13 @@ class RDPConnection:
|
|
184
233
|
os.remove(rdp_file_path)
|
185
234
|
except Exception as error:
|
186
235
|
console.print(f"Erro ao deletar arquivo 'connection.rdp'. Error: {error}")
|
236
|
+
|
237
|
+
conexao_rdp_aberta = await self.verificar_conexao_estabelecida()
|
238
|
+
if conexao_rdp_aberta is not True:
|
239
|
+
raise ConnectionError("Não foi possível estabelecer conexão RDP.")
|
187
240
|
|
188
241
|
return True
|
242
|
+
|
189
243
|
except Exception as e:
|
190
244
|
logger.error(f"Erro ao tentar conectar via RDP: {e}")
|
191
245
|
return False
|
@@ -202,6 +256,7 @@ async def conexao_rdp(task: RpaProcessoRdpDTO) -> RpaRetornoProcessoDTO:
|
|
202
256
|
retorno="Não foi possível estabelecer conexão RDP. Verifique o IP e a disponibilidade da porta.",
|
203
257
|
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
204
258
|
)
|
259
|
+
|
205
260
|
sucesso_conexao = await rdp.conectar()
|
206
261
|
if sucesso_conexao:
|
207
262
|
console.print("Processo de conexão RDP executado com sucesso.")
|
@@ -224,7 +279,7 @@ async def conexao_rdp(task: RpaProcessoRdpDTO) -> RpaRetornoProcessoDTO:
|
|
224
279
|
status=RpaHistoricoStatusEnum.Falha, tags=[RpaTagDTO(descricao=RpaTagEnum.Tecnico)]
|
225
280
|
)
|
226
281
|
except Exception as ex:
|
227
|
-
err_msg = f"Erro ao executar
|
282
|
+
err_msg = f"Erro ao executar conexão RDP: {ex}"
|
228
283
|
logger.error(err_msg)
|
229
284
|
console.print(err_msg, style="bold red")
|
230
285
|
return RpaRetornoProcessoDTO(
|
@@ -392,7 +392,7 @@ async def devolucao_prazo_a_faturar(task: RpaProcessoEntradaDTO) -> RpaRetornoPr
|
|
392
392
|
|
393
393
|
await worker_sleep(5)
|
394
394
|
# VERIFICANDO A EXISTENCIA DE ERRO
|
395
|
-
erro_pop_up = await is_window_open_by_class("TMessageForm")
|
395
|
+
erro_pop_up = await is_window_open_by_class("TMessageForm","TMessageForm")
|
396
396
|
if erro_pop_up["IsOpened"] == True:
|
397
397
|
retorno = f"Nota não encontrada no EMsys na tela de Pesquisa Vendas para Devolução \nEtapas Executadas:\n{steps}"
|
398
398
|
return RpaRetornoProcessoDTO(
|
File without changes
|
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/api/__init__.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/api/ahead_service.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/api/rdp_service.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/api/webhook_service.py
RENAMED
File without changes
|
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/config/__init__.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/config/settings.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/decorators/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/decorators/repeat.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/decorators/retry.py
RENAMED
File without changes
|
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/decorators/timeit.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/models/__init__.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dao/__init__.py
RENAMED
File without changes
|
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dao/rpa_fila.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dao/rpa_robo.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dto/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/__init__.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/task_executor.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/logger.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/toast.py
RENAMED
File without changes
|
{worker_automate_hub-0.5.65 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/updater.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|