worker-automate-hub 0.4.447__py3-none-any.whl → 0.4.449__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -24,7 +24,7 @@ async def get_new_task(stop_event: threading.Event) -> RpaProcessoEntradaDTO:
24
24
  headers_basic = {"Authorization": f"Basic {env_config["API_AUTHORIZATION"]}"}
25
25
  data = await get_new_task_info()
26
26
 
27
- async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
27
+ async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=True)) as session:
28
28
  async with session.post(
29
29
  f"{env_config["API_BASE_URL"]}/robo/new-job",
30
30
  data=data,
@@ -53,7 +53,7 @@ async def notify_is_alive(stop_event: threading.Event):
53
53
  headers_basic = {"Authorization": f"Basic {env_config["API_AUTHORIZATION"]}"}
54
54
  data = await get_system_info()
55
55
 
56
- async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
56
+ async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=True)) as session:
57
57
  async with session.put(
58
58
  f"{env_config["API_BASE_URL"]}/robo/last-alive",
59
59
  data=data,
@@ -89,7 +89,7 @@ async def get_historico_by_processo_identificador(identificador, process_name):
89
89
  }
90
90
 
91
91
  try:
92
- async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
92
+ async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=True)) as session:
93
93
  async with session.post(
94
94
  f"{env_config['API_BASE_URL']}/historico/by-identificador",
95
95
  headers=headers_basic,
@@ -131,7 +131,7 @@ async def get_processo(uuidProcesso: str) -> RpaProcesso:
131
131
  headers_basic = {"Authorization": f"Basic {env_config["API_AUTHORIZATION"]}"}
132
132
 
133
133
 
134
- async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
134
+ async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=True)) as session:
135
135
  async with session.get(
136
136
  f"{env_config["API_BASE_URL"]}/processo/{uuidProcesso}",
137
137
  headers=headers_basic,
@@ -164,7 +164,7 @@ async def get_workers():
164
164
 
165
165
  headers_basic = {"Authorization": f"Basic {env_config["API_AUTHORIZATION"]}"}
166
166
 
167
- async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
167
+ async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=True)) as session:
168
168
  async with session.get(
169
169
  f"{env_config["API_BASE_URL"]}/robo/workers",
170
170
  headers=headers_basic,
@@ -207,7 +207,7 @@ async def get_config_by_name(name: str) -> RpaConfiguracao:
207
207
  try:
208
208
  headers_basic = {"Authorization": f"Basic {env_config["API_AUTHORIZATION"]}"}
209
209
 
210
- async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
210
+ async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=True)) as session:
211
211
  async with session.get(
212
212
  f"{env_config["API_BASE_URL"]}/configuracao/api/{name}",
213
213
  headers=headers_basic,
@@ -297,7 +297,7 @@ async def send_gchat_message(message: str) -> None:
297
297
  try:
298
298
  headers_basic = {"Authorization": f"Basic {env_config['API_AUTHORIZATION']}"}
299
299
 
300
- async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
300
+ async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=True)) as session:
301
301
  async with session.post(
302
302
  f"{env_config['API_BASE_URL']}/google-chat",
303
303
  data={"message": message},
@@ -376,7 +376,7 @@ async def get_index_modelo_emsys(filial: str, descricao_documento: str):
376
376
 
377
377
  try:
378
378
  async with aiohttp.ClientSession(
379
- connector=aiohttp.TCPConnector(verify_ssl=False)
379
+ connector=aiohttp.TCPConnector(verify_ssl=True)
380
380
  ) as session:
381
381
  async with session.post(f"{env_config['API_BASE_URL']}/emsys/buscar-index-documento-fiscal", data=body,
382
382
  headers=headers_basic) as response:
@@ -420,7 +420,7 @@ async def get_status_nf_emsys(chave: int):
420
420
 
421
421
  try:
422
422
  async with aiohttp.ClientSession(
423
- connector=aiohttp.TCPConnector(verify_ssl=False)
423
+ connector=aiohttp.TCPConnector(verify_ssl=True)
424
424
  ) as session:
425
425
  async with session.get(url, headers=headers_basic) as response:
426
426
  if response.status != 200:
@@ -14,7 +14,7 @@ async def burn_queue(id_fila: str):
14
14
  headers_basic = {"Authorization": f"Basic {env_config["API_AUTHORIZATION"]}"}
15
15
 
16
16
 
17
- async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
17
+ async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=True)) as session:
18
18
  async with session.delete(
19
19
  f"{env_config["API_BASE_URL"]}/fila/burn-queue/{id_fila}",
20
20
  headers=headers_basic,
@@ -41,7 +41,7 @@ async def unlock_queue(id: str):
41
41
  headers_basic = {"Authorization": f"Basic {env_config["API_AUTHORIZATION"]}"}
42
42
 
43
43
 
44
- async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
44
+ async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=True)) as session:
45
45
  async with session.get(
46
46
  f"{env_config["API_BASE_URL"]}/fila/unlock-queue/{id}",
47
47
  headers=headers_basic,
@@ -36,7 +36,7 @@ async def store(data: RpaHistoricoRequestDTO) -> dict:
36
36
  }
37
37
  try:
38
38
  async with aiohttp.ClientSession(
39
- connector=aiohttp.TCPConnector(verify_ssl=False)
39
+ connector=aiohttp.TCPConnector(verify_ssl=True)
40
40
  ) as session:
41
41
  payload = data.model_dump_json()
42
42
 
@@ -86,7 +86,7 @@ async def update(data: RpaHistoricoRequestDTO) -> dict:
86
86
  raise TypeError("Parâmetro data deve ser do tipo RpaHistoricoRequestDTO")
87
87
  try:
88
88
  async with aiohttp.ClientSession(
89
- connector=aiohttp.TCPConnector(verify_ssl=False)
89
+ connector=aiohttp.TCPConnector(verify_ssl=True)
90
90
  ) as session:
91
91
  if not data.uuidHistorico:
92
92
  raise ValueError("Parâmetro uuidHistorico deve ser informado")
@@ -3,6 +3,7 @@ import platform
3
3
  import subprocess
4
4
  import socket
5
5
  import pyautogui
6
+ import os
6
7
  import pygetwindow as gw
7
8
  from rich.console import Console
8
9
  import pygetwindow as gw
@@ -55,16 +56,10 @@ class RDPConnection:
55
56
  return ping_alcancado and porta_aberta
56
57
 
57
58
  async def clicar_no_titulo(self):
58
- """
59
- Função para clicar no título das janelas de Conexão de Área de Trabalho Remota
60
- com o botão direito do mouse e executar comandos.
61
- """
62
59
  janelas_rdp = [
63
60
  win
64
61
  for win in gw.getAllTitles()
65
- if "Ligação ao Ambiente de Trabalho Remoto" in win
66
- or "Remote Desktop Connection" in win
67
- or "Conexão de Área de Trabalho Remota" in win
62
+ if self.ip in win
68
63
  ]
69
64
 
70
65
  for titulo in janelas_rdp:
@@ -74,88 +69,98 @@ class RDPConnection:
74
69
  continue
75
70
 
76
71
  console.print(f"Processando janela: {titulo}")
77
-
78
- # Obtém as coordenadas da janela
79
72
  x, y = janela.left, janela.top
80
73
 
81
74
  try:
82
- # Move o mouse para o título da janela e clica com o botão direito
83
- pyautogui.moveTo(x + 10, y + 10) # Ajuste para alinhar ao título da janela
84
- pyautogui.click(button="right")
85
-
86
- await worker_sleep(5)
87
- pyautogui.press("down", presses=7, interval=0.1)
88
- await worker_sleep(5)
75
+ pyautogui.moveTo(x + 2, y + 2)
76
+ pyautogui.hotkey("alt", "space")
77
+ await worker_sleep(2)
78
+ pyautogui.press("down", presses=6, interval=0.1)
79
+ await worker_sleep(2)
89
80
  pyautogui.hotkey("enter")
90
- await worker_sleep(5)
81
+ await worker_sleep(2)
91
82
  pyautogui.hotkey("enter")
92
83
  break
93
84
 
94
85
  except Exception as e:
95
86
  console.print(f"Erro ao interagir com a janela {titulo}: {e}")
96
-
87
+
88
+ async def open_rdp(self):
89
+ base_path = os.path.join("worker_automate_hub", "tasks", "jobs")
90
+ rdp_file_path = os.path.join(base_path, "connection.rdp")
91
+ os.makedirs(base_path, exist_ok=True)
92
+
93
+ rdp_content = f"""screen mode id:i:1
94
+ desktopwidth:i:1920
95
+ desktopheight:i:1080
96
+ use multimon:i:0
97
+ session bpp:i:32
98
+ compression:i:1
99
+ keyboardhook:i:2
100
+ displayconnectionbar:i:1
101
+ disable wallpaper:i:0
102
+ allow font smoothing:i:1
103
+ allow desktop composition:i:1
104
+ disable full window drag:i:0
105
+ disable menu anims:i:0
106
+ disable themes:i:0
107
+ disable cursor setting:i:0
108
+ bitmapcachepersistenable:i:1
109
+ full address:s:{self.ip}
110
+ username:s:{self.user}
111
+ winposstr:s:0,1,{(1920 // 4)},{(1080 // 4)},{(1920 // 4) + (1920 // 2)},{(1080 // 4) + (1080 // 2)}
112
+ """
113
+
114
+ try:
115
+ with open(rdp_file_path, "w") as file:
116
+ file.write(rdp_content)
117
+ print(f"Arquivo RDP criado: {rdp_file_path}")
118
+ except Exception as error:
119
+ print(f"Erro ao montar o arquivo RDP: {error}")
120
+ return
121
+
122
+ try:
123
+ subprocess.Popen(["mstsc", rdp_file_path], close_fds=True, start_new_session=True)
124
+ console.print("Conexão RDP iniciada.")
125
+ except Exception as error:
126
+ console.print(f"Erro ao abrir a conexão RDP: {error}")
127
+
97
128
  async def conectar(self):
98
129
  console.print(f"Iniciando cliente RDP para {self.ip}")
99
130
  try:
100
- pyautogui.hotkey("win", "d")
101
- await worker_sleep(5) # Tempo para garantir que todas as janelas sejam minimizadas
102
- console.print("Todas as janelas minimizadas com sucesso.")
103
-
104
- subprocess.Popen(["mstsc", f"/v:{self.ip}"], close_fds=True, start_new_session=True)
105
- await worker_sleep(10) # Tempo aumentado para garantir abertura
106
-
107
- console.print("Procurando janela 'Ligação ao ambiente de trabalho remoto'")
108
- try:
109
- windows = gw.getWindowsWithTitle("Ligação ao ambiente de trabalho remoto")
110
- except:
111
- windows = gw.getWindowsWithTitle("Conexão de Área de Trabalho Remota")
112
-
113
- if not windows:
114
- logger.warning("Tentando encontrar janela com título em inglês 'Remote Desktop Connection'")
115
- windows = gw.getWindowsWithTitle("Remote Desktop Connection")
116
-
117
- if not windows:
118
- logger.error("Janela de RDP não encontrada.")
119
- return False
120
-
121
- rdp_window = windows[0]
122
- console.print(f"Janela '{rdp_window.title}' encontrada. Focando na janela.")
123
-
124
- # Restaurar janela se estiver minimizada
125
- if rdp_window.isMinimized:
126
- rdp_window.restore()
127
- await worker_sleep(5)
128
-
129
- # Redimensionar para 50% da tela
130
- screen_width, screen_height = pyautogui.size()
131
- new_width = screen_width // 2
132
- new_height = screen_height // 2
133
- rdp_window.resizeTo(new_width, new_height)
134
- rdp_window.moveTo(screen_width // 4, screen_height // 4)
135
- console.print(f"Janela redimensionada para {new_width}x{new_height}.")
136
-
137
- rdp_window.activate()
138
- await worker_sleep(5) # Tempo extra para garantir que a janela está ativa
139
-
140
- # Clique para garantir o foco
141
- pyautogui.click(rdp_window.left + 50, rdp_window.top + 50)
142
131
  await worker_sleep(3)
132
+ await self.open_rdp()
133
+ await worker_sleep(5)
143
134
 
144
- # Inserir credenciais
145
-
135
+ console.print("Procurando janela RDP")
146
136
  try:
147
- app = Application(backend="uia").connect(title="Segurança do Windows")
148
- dialog = app.window(title="Segurança do Windows")
149
-
150
- edit_field = dialog.child_window(auto_id="EditField_1", control_type="Edit")
151
-
152
- if edit_field.exists():
153
- console.print("Inserindo usuário.")
154
- pyautogui.write(self.user, interval=0.1)
155
- pyautogui.press("tab")
156
- await worker_sleep(5)
157
- except:
158
- pass
137
+ possible_titles = ["Conexão de Área de Trabalho Remota", "Ligação ao ambiente de trabalho remoto"]
138
+ app = None
139
+ app_window = None
140
+
141
+ for title in possible_titles:
142
+ try:
143
+ app = Application(backend="uia").connect(title=title)
144
+ app_window = app.window(title=title)
145
+ console.print(f"Janela encontrada: {title}")
146
+ break
147
+ except Exception:
148
+ continue
149
+
150
+ if not app or not app_window:
151
+ raise Exception("Nenhuma janela com título correspondente foi encontrada.")
152
+
153
+ app_window.set_focus()
154
+ console.print("Janela RDP ativada.")
155
+
156
+ pyautogui.press("left")
157
+ await worker_sleep(1)
158
+ pyautogui.hotkey("enter")
159
+ await worker_sleep(3)
160
+
161
+ except Exception as e:
162
+ console.print(f"Erro ao ativar a janela RDP: {e}", style="bold red")
163
+
159
164
 
160
165
  console.print("Inserindo senha.")
161
166
  pyautogui.write(self.password, interval=0.1)
@@ -165,9 +170,18 @@ class RDPConnection:
165
170
  await worker_sleep(5)
166
171
  pyautogui.press("enter")
167
172
  console.print("Credenciais inseridas.")
168
- await worker_sleep(5) # Tempo para conexão ser concluída
173
+ await worker_sleep(5)
169
174
 
170
175
  console.print("Conexão RDP ativa. Mantendo o script em execução.")
176
+
177
+ try:
178
+ base_path = os.path.join("worker_automate_hub", "tasks", "jobs")
179
+ rdp_file_path = os.path.join(base_path, "connection.rdp")
180
+ if os.path.exists(rdp_file_path):
181
+ os.remove(rdp_file_path)
182
+ except Exception as error:
183
+ console.print(f"Erro ao deletar arquivo 'connection.rdp'. Error: {error}")
184
+
171
185
  return True
172
186
  except Exception as e:
173
187
  logger.error(f"Erro ao tentar conectar via RDP: {e}")
@@ -191,7 +205,6 @@ async def conexao_rdp(task: RpaProcessoRdpDTO) -> RpaRetornoProcessoDTO:
191
205
 
192
206
  await rdp.clicar_no_titulo()
193
207
 
194
- # Mantém o script ativo para manter a conexão RDP aberta
195
208
  return RpaRetornoProcessoDTO(
196
209
  sucesso=True,
197
210
  retorno="Conexão RDP estabelecida com sucesso.",
@@ -650,7 +650,7 @@ async def api_simplifica(
650
650
 
651
651
  try:
652
652
  async with aiohttp.ClientSession(
653
- connector=aiohttp.TCPConnector(verify_ssl=False)
653
+ connector=aiohttp.TCPConnector(verify_ssl=True)
654
654
  ) as session:
655
655
  async with session.post(f"{urlSimplifica}", data=data) as response:
656
656
  if response.status != 200:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: worker-automate-hub
3
- Version: 0.4.447
3
+ Version: 0.4.449
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,11 +1,11 @@
1
1
  worker_automate_hub/__init__.py,sha256=LV28uQvBfpPIqudGIMJmVB8E941MjXHcu8DMoX5n8AM,25
2
2
  worker_automate_hub/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  worker_automate_hub/api/ahead_service.py,sha256=0tX-i1ACRg3_yOI-_AfFEZ6FNU3L8Zb316n3QUkSwL0,2027
4
- worker_automate_hub/api/client.py,sha256=qsnyd_B26q199i5fCNWvwLKdQu9bVcS5NjU4L_0xjUw,18791
4
+ worker_automate_hub/api/client.py,sha256=fU7Br8RZEHc_zYb-i4nkSdvp96fCvKs-VQJGd3dw-Kk,18782
5
5
  worker_automate_hub/api/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  worker_automate_hub/api/helpers/api_helpers.py,sha256=SkheO2fXexeh-a4shr8Qzsz_kZhuSG0DJ7kbODctRbM,3696
7
- worker_automate_hub/api/rpa_fila_service.py,sha256=DxBEghdoF2DZQDnkThEEQDkoak4yVRM9kooV1fm0syg,2102
8
- worker_automate_hub/api/rpa_historico_service.py,sha256=WhTMVW-uNlJO3YZakhx63xlsw3_XDeWnSD-3MVEzzdk,4763
7
+ worker_automate_hub/api/rpa_fila_service.py,sha256=K_8EL5P6Y_CHs-f9ZGTsuUUjMd2fu4wN4NieHvMijKs,2100
8
+ worker_automate_hub/api/rpa_historico_service.py,sha256=GZ3umxvSGNecQsffIRwgfmgpXHDFWq8EiBuAYqtrMNQ,4761
9
9
  worker_automate_hub/api/webhook_service.py,sha256=9KvTv1U02CSYpf_vLnqs4RZqZzR7Mn0v1OVOI451yOM,1762
10
10
  worker_automate_hub/cli.py,sha256=JB45pjPJ8_E-4xw0OjqDMcAw-tpDV0mjmvwJRTnTzY0,6862
11
11
  worker_automate_hub/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -32,7 +32,7 @@ worker_automate_hub/models/dto/rpa_sistema_dto.py,sha256=sLkmJei8x6sl-1-IXUKDmYQ
32
32
  worker_automate_hub/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
33
  worker_automate_hub/tasks/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
34
  worker_automate_hub/tasks/jobs/coleta_dje_process.py,sha256=rf4fW-FaHUl1MS7b03z4cwI3zHfNw8FWxvjvNY3Xn20,28773
35
- worker_automate_hub/tasks/jobs/conexao_rdp.py,sha256=4eEf3Hsm9TCGESn5cK-uSpHwbCYeCOBG44Q4cBYwmvc,9293
35
+ worker_automate_hub/tasks/jobs/conexao_rdp.py,sha256=vbbEsGdpgISBBVnJo8FI81zqzponqEPIAT1kNLsxizQ,9183
36
36
  worker_automate_hub/tasks/jobs/descartes.py,sha256=RIjrZIzkW77NiKeXbxFN9k872cz3fl9cG1m5TJpjmmY,40134
37
37
  worker_automate_hub/tasks/jobs/ecac_estadual_go.py,sha256=aPckQRlRozFS_OK3C9wNdMCmqO6AM4djwqY2uSSaPmo,20687
38
38
  worker_automate_hub/tasks/jobs/ecac_estadual_main.py,sha256=FFpAdtZLO4uelWZooCVpm4JePv_iDt5nwVKrk1ipZJQ,1599
@@ -67,10 +67,10 @@ worker_automate_hub/utils/get_creds_gworkspace.py,sha256=ZJ0IIEjM4IXIV9rwfbOZ1V1
67
67
  worker_automate_hub/utils/logger.py,sha256=FYV9fg0_RAYJF_ZOCJEbqQAiCXlXk2gMpvUU1rzT_xs,671
68
68
  worker_automate_hub/utils/toast.py,sha256=xPHc5r5uOxB_cZlCzm13Kt2qSKLLFZALncU6Qg3Ft68,1162
69
69
  worker_automate_hub/utils/updater.py,sha256=en2FCGhI8aZ-JNP3LQm64NJDc4awCNW7UhbVlwDl49Y,7972
70
- worker_automate_hub/utils/util.py,sha256=h0AoZgFND72mR0HufpvT0KB-QBa5lRml0pDKh_7pyrI,125955
70
+ worker_automate_hub/utils/util.py,sha256=JkSKFgnI6geDEIlpaJJ5Btd7XdPllfUSFcjvPAaG-bo,125954
71
71
  worker_automate_hub/utils/utils_nfe_entrada.py,sha256=p5r_L5k7gqCBvV8v6dbLFM6INKiSpGc4Gegid0_YAh4,29017
72
72
  worker_automate_hub/worker.py,sha256=tftQpX8liC-_0_bOUf1YYzXSCvloMQBvjmQ6lzfEE-c,4816
73
- worker_automate_hub-0.4.447.dist-info/entry_points.txt,sha256=sddyhjx57I08RY8X7UxcTpdoOsWULAWNKN9Xr6pp_Kw,54
74
- worker_automate_hub-0.4.447.dist-info/METADATA,sha256=C5PY7SvzFlnrrdFBhCf0vxBXyfRwi2-59whX-t6Bul4,2895
75
- worker_automate_hub-0.4.447.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
76
- worker_automate_hub-0.4.447.dist-info/RECORD,,
73
+ worker_automate_hub-0.4.449.dist-info/entry_points.txt,sha256=sddyhjx57I08RY8X7UxcTpdoOsWULAWNKN9Xr6pp_Kw,54
74
+ worker_automate_hub-0.4.449.dist-info/METADATA,sha256=VrWE59j1n-zIdItKYymXrHmkzwmCADS3IXdY8LfuM7w,2895
75
+ worker_automate_hub-0.4.449.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
76
+ worker_automate_hub-0.4.449.dist-info/RECORD,,