worker-automate-hub 0.5.66__py3-none-any.whl → 0.5.67__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-0.5.66.dist-info → worker_automate_hub-0.5.67.dist-info}/METADATA +1 -1
- {worker_automate_hub-0.5.66.dist-info → worker_automate_hub-0.5.67.dist-info}/RECORD +5 -5
- {worker_automate_hub-0.5.66.dist-info → worker_automate_hub-0.5.67.dist-info}/WHEEL +0 -0
- {worker_automate_hub-0.5.66.dist-info → worker_automate_hub-0.5.67.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(
|
@@ -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
|
@@ -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.67.dist-info/entry_points.txt,sha256=sddyhjx57I08RY8X7UxcTpdoOsWULAWNKN9Xr6pp_Kw,54
|
80
|
+
worker_automate_hub-0.5.67.dist-info/METADATA,sha256=sMG87H1stQsWzYw7LdW4Mrnf2Rtg28wOOrx2pp-x2eU,2894
|
81
|
+
worker_automate_hub-0.5.67.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
82
|
+
worker_automate_hub-0.5.67.dist-info/RECORD,,
|
File without changes
|
{worker_automate_hub-0.5.66.dist-info → worker_automate_hub-0.5.67.dist-info}/entry_points.txt
RENAMED
File without changes
|