worker-automate-hub 0.5.66__py3-none-any.whl → 0.5.67__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-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
|