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.
@@ -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 conexao_rdp: {ex}"
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(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: worker-automate-hub
3
- Version: 0.5.66
3
+ Version: 0.5.67
4
4
  Summary: Worker Automate HUB é uma aplicação para automatizar rotinas de RPA nos ambientes Argenta.
5
5
  Author: Joel Paim
6
6
  Requires-Python: >=3.12,<4.0
@@ -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=lNjD-JxpPTXdvFEJAkajC_Ltyw81rIEJeu7FUfRf2qI,9586
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.66.dist-info/entry_points.txt,sha256=sddyhjx57I08RY8X7UxcTpdoOsWULAWNKN9Xr6pp_Kw,54
80
- worker_automate_hub-0.5.66.dist-info/METADATA,sha256=7Haa1PMIHptI8Y1IgJ2OdWNMZWLKYXFTzdN4sDFfk4I,2894
81
- worker_automate_hub-0.5.66.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
82
- worker_automate_hub-0.5.66.dist-info/RECORD,,
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,,