worker-automate-hub 0.5.66__py3-none-any.whl → 0.5.68__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- 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
|