worker-automate-hub 0.5.66__tar.gz → 0.5.67__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/PKG-INFO +1 -1
  2. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/pyproject.toml +1 -1
  3. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/conexao_rdp.py +60 -5
  4. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/README.md +0 -0
  5. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/__init__.py +0 -0
  6. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/api/__init__.py +0 -0
  7. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/api/ahead_service.py +0 -0
  8. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/api/client.py +0 -0
  9. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/api/helpers/__init__.py +0 -0
  10. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/api/helpers/api_helpers.py +0 -0
  11. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/api/rdp_service.py +0 -0
  12. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/api/rpa_fila_service.py +0 -0
  13. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/api/rpa_historico_service.py +0 -0
  14. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/api/webhook_service.py +0 -0
  15. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/cli.py +0 -0
  16. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/config/__init__.py +0 -0
  17. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/config/settings.py +0 -0
  18. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/config.py +0 -0
  19. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/core/so_manipulation.py +0 -0
  20. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/decorators/__init__.py +0 -0
  21. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/decorators/deprecation.py +0 -0
  22. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/decorators/rate_limit.py +0 -0
  23. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/decorators/repeat.py +0 -0
  24. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/decorators/retry.py +0 -0
  25. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/decorators/singleton.py +0 -0
  26. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/decorators/timeit.py +0 -0
  27. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/models/__init__.py +0 -0
  28. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dao/__init__.py +0 -0
  29. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dao/rpa_configuracao.py +0 -0
  30. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dao/rpa_fila.py +0 -0
  31. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dao/rpa_historico.py +0 -0
  32. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dao/rpa_processo.py +0 -0
  33. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dao/rpa_robo.py +0 -0
  34. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dto/__init__.py +0 -0
  35. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dto/rpa_historico_request_dto.py +0 -0
  36. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dto/rpa_processo_entrada_dto.py +0 -0
  37. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dto/rpa_processo_rdp_dto.py +0 -0
  38. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/models/dto/rpa_sistema_dto.py +0 -0
  39. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/__init__.py +0 -0
  40. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/__init__.py +0 -0
  41. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/coleta_dje_process.py +0 -0
  42. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/descartes.py +0 -0
  43. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/devolucao_prazo_a_faturar.py +0 -0
  44. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/ecac_estadual_go.py +0 -0
  45. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/ecac_estadual_main.py +0 -0
  46. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/ecac_estadual_mt.py +0 -0
  47. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/ecac_estadual_sc.py +0 -0
  48. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/ecac_estadual_sp.py +0 -0
  49. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/ecac_federal.py +0 -0
  50. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_15.py +0 -0
  51. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_16.py +0 -0
  52. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_207.py +0 -0
  53. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_32.py +0 -0
  54. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_33.py +0 -0
  55. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_34.py +0 -0
  56. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_36.py +0 -0
  57. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_39.py +0 -0
  58. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_500.py +0 -0
  59. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_505.py +0 -0
  60. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py +0 -0
  61. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/entrada_de_notas_9.py +0 -0
  62. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/exemplo_processo.py +0 -0
  63. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/fechar_conexao_rdp.py +0 -0
  64. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py +0 -0
  65. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/fidc_remessa_cobranca_cnab240.py +0 -0
  66. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/login_emsys.py +0 -0
  67. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/login_emsys_versao_especifica.py +0 -0
  68. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/playground.py +0 -0
  69. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/sped_fiscal.py +0 -0
  70. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/jobs/transferencias.py +0 -0
  71. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/task_definitions.py +0 -0
  72. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/tasks/task_executor.py +0 -0
  73. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/__init__.py +0 -0
  74. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/env.py +0 -0
  75. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/get_creds_gworkspace.py +0 -0
  76. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/logger.py +0 -0
  77. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/toast.py +0 -0
  78. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/updater.py +0 -0
  79. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/util.py +0 -0
  80. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/utils/utils_nfe_entrada.py +0 -0
  81. {worker_automate_hub-0.5.66 → worker_automate_hub-0.5.67}/worker_automate_hub/worker.py +0 -0
@@ -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
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "worker-automate-hub"
3
- version = "0.5.66"
3
+ version = "0.5.67"
4
4
  description = "Worker Automate HUB é uma aplicação para automatizar rotinas de RPA nos ambientes Argenta."
5
5
  authors = ["Joel Paim"]
6
6
  readme = "README.md"
@@ -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(