worker-automate-hub 0.5.66__py3-none-any.whl → 0.5.68__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- worker_automate_hub/tasks/jobs/conexao_rdp.py +60 -5
- worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py +19 -7
- {worker_automate_hub-0.5.66.dist-info → worker_automate_hub-0.5.68.dist-info}/METADATA +1 -1
- {worker_automate_hub-0.5.66.dist-info → worker_automate_hub-0.5.68.dist-info}/RECORD +6 -6
- {worker_automate_hub-0.5.66.dist-info → worker_automate_hub-0.5.68.dist-info}/WHEEL +0 -0
- {worker_automate_hub-0.5.66.dist-info → worker_automate_hub-0.5.68.dist-info}/entry_points.txt +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(
|
@@ -216,19 +216,31 @@ async def gerar_nosso_numero(task: RpaProcessoEntradaDTO) -> RpaRetornoProcessoD
|
|
216
216
|
button_ok.click()
|
217
217
|
|
218
218
|
await worker_sleep(60)
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
219
|
+
boleto_argenta = None
|
220
|
+
max_trys = 5
|
221
|
+
trys = 0
|
222
|
+
while boleto_argenta != None and trys <= max_trys:
|
223
|
+
try:
|
224
|
+
app = Application().connect(title="BOLETO ARGENTA_1")
|
225
|
+
boleto_argenta = app["BOLETO ARGENTA_1"]
|
226
|
+
console.log("Boleto Argenta sendo fechado", style="bold green")
|
227
|
+
boleto_argenta.close()
|
228
|
+
break
|
229
|
+
except:
|
230
|
+
console.print("Tela de boleto Argenta ainda não encontrada", style="bold yellow")
|
231
|
+
|
232
|
+
trys += 1
|
233
|
+
await worker_sleep(60)
|
234
|
+
|
235
|
+
await worker_sleep(5)
|
225
236
|
#Confirmando tela de impressão
|
226
237
|
#Clica em "Yes"
|
227
238
|
# pyautogui.click(900, 561)
|
228
239
|
#Clica em "No"
|
229
240
|
pyautogui.click(1000, 561)
|
230
241
|
|
231
|
-
await worker_sleep(
|
242
|
+
await worker_sleep(5)
|
243
|
+
|
232
244
|
if boleto_argenta:
|
233
245
|
return RpaRetornoProcessoDTO(
|
234
246
|
sucesso=True,
|
@@ -35,7 +35,7 @@ worker_automate_hub/models/dto/rpa_sistema_dto.py,sha256=sLkmJei8x6sl-1-IXUKDmYQ
|
|
35
35
|
worker_automate_hub/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
36
36
|
worker_automate_hub/tasks/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
37
37
|
worker_automate_hub/tasks/jobs/coleta_dje_process.py,sha256=UkLWTC5Ub2qBb0yY-8IZ0DLLOVJOfNTq_z9krx_t25Q,29476
|
38
|
-
worker_automate_hub/tasks/jobs/conexao_rdp.py,sha256=
|
38
|
+
worker_automate_hub/tasks/jobs/conexao_rdp.py,sha256=S6QC4xhuo0pB5FjaUJZNMm1LIgEjpjifReCTBDqxH-U,11719
|
39
39
|
worker_automate_hub/tasks/jobs/descartes.py,sha256=0bMCJ0xIcK8TLSgjF6taAbGFLMU-sGDVFIhUYSRtrbg,41092
|
40
40
|
worker_automate_hub/tasks/jobs/devolucao_prazo_a_faturar.py,sha256=Ao8z3KrJn8sdglp65tdW0sMp-g5EPlo5JOv7fMSF4yc,79854
|
41
41
|
worker_automate_hub/tasks/jobs/ecac_estadual_go.py,sha256=dKkf22nH5gp3RErq5u0UzRsKyJ81fc6ZZ4vLtUuMwHA,21002
|
@@ -58,7 +58,7 @@ worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py,sha256=iXbkjdg02r3tdt3eH
|
|
58
58
|
worker_automate_hub/tasks/jobs/entrada_de_notas_9.py,sha256=vUj25yHxkCNhpyOU5Vk81gsYcTTH1TJ3yn-b8N00JfQ,52857
|
59
59
|
worker_automate_hub/tasks/jobs/exemplo_processo.py,sha256=nV0iLoip2FH2-FhLmhX3nPqsfl_MPufZ3E5Q5krJvdc,3544
|
60
60
|
worker_automate_hub/tasks/jobs/fechar_conexao_rdp.py,sha256=8GVImU7EnncCSxbbuEC4-EBE8oGTk6CJ-HFNqJ5OiMs,5564
|
61
|
-
worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py,sha256=
|
61
|
+
worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py,sha256=fnTXtf6TKtmiChqzap1BdAfBpnQv2l05-3VS3xUmbKg,10980
|
62
62
|
worker_automate_hub/tasks/jobs/fidc_remessa_cobranca_cnab240.py,sha256=QBGm6eS5JghgNWNqZlk1g2a2iV8LnBLiOTBBL3Giet0,4181
|
63
63
|
worker_automate_hub/tasks/jobs/login_emsys.py,sha256=scdKsseFOL-7UQ5D743VaZZzWBKaEfq0XzYNmROUOgE,5703
|
64
64
|
worker_automate_hub/tasks/jobs/login_emsys_versao_especifica.py,sha256=jcfhppG-MhuZYKEIt8O8NaJfdV3figNXrKt4zPqeQi0,5644
|
@@ -76,7 +76,7 @@ worker_automate_hub/utils/updater.py,sha256=en2FCGhI8aZ-JNP3LQm64NJDc4awCNW7UhbV
|
|
76
76
|
worker_automate_hub/utils/util.py,sha256=_uPyZOzb8puEKXUmcFkaf7HesJBs8yITRQkOqViyugU,161430
|
77
77
|
worker_automate_hub/utils/utils_nfe_entrada.py,sha256=iYpOs7fb7C3bY61QHySr00xlDNzrrCP0zaexOpBPuaQ,31930
|
78
78
|
worker_automate_hub/worker.py,sha256=CT-poyP1ZYvubArYsnnNd9oJ53SPaDwgr6p6keS3nI4,6248
|
79
|
-
worker_automate_hub-0.5.
|
80
|
-
worker_automate_hub-0.5.
|
81
|
-
worker_automate_hub-0.5.
|
82
|
-
worker_automate_hub-0.5.
|
79
|
+
worker_automate_hub-0.5.68.dist-info/entry_points.txt,sha256=sddyhjx57I08RY8X7UxcTpdoOsWULAWNKN9Xr6pp_Kw,54
|
80
|
+
worker_automate_hub-0.5.68.dist-info/METADATA,sha256=4NOBuSV3_WQconVJIWJ3KImwE9k_CBR8WK1W4GPS608,2894
|
81
|
+
worker_automate_hub-0.5.68.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
82
|
+
worker_automate_hub-0.5.68.dist-info/RECORD,,
|
File without changes
|
{worker_automate_hub-0.5.66.dist-info → worker_automate_hub-0.5.68.dist-info}/entry_points.txt
RENAMED
File without changes
|