csc-cia-stne 0.0.77__py3-none-any.whl → 0.0.80__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.
csc_cia_stne/email.py CHANGED
@@ -150,7 +150,7 @@ class Email():
150
150
  }
151
151
 
152
152
 
153
- def send_email( self, to : list , message : str , title : str , reply_to: str, attachments : list = [] , cc : list = [] , cco : list = [] ) -> dict:
153
+ def send_email( self, to : list , message : str , title : str , reply_to: str, attachments : list = [] , cc : list = [] , cco : list = [], from_mask: str = "" ) -> dict:
154
154
  """
155
155
  Envia um email com os parâmetros fornecidos.
156
156
  Args:
@@ -161,6 +161,7 @@ class Email():
161
161
  attachments (list, optional): Lista de caminhos dos arquivos anexos. Defaults to [].
162
162
  cc (list, optional): Lista de destinatários em cópia. Defaults to [].
163
163
  cco (list, optional): Lista de destinatários em cópia oculta. Defaults to [].
164
+ from_mask (str, optional): Mascara para definir como se o envio estivesse vindo de outro email
164
165
  Returns:
165
166
  dict: Dicionário com o status do envio do email. Se o envio for bem-sucedido, o dicionário terá a chave 'status' com valor True. Caso contrário, terá a chave 'status' com valor False e a chave 'error' com a descrição do erro.
166
167
  Raises:
@@ -189,8 +190,14 @@ class Email():
189
190
  try:
190
191
 
191
192
  msg = MIMEMultipart()
193
+
194
+ if from_mask != "":
192
195
 
193
- msg["From"] = self.email_sender
196
+ msg["From"] = from_mask
197
+
198
+ else:
199
+
200
+ msg["From"] = self.email_sender
194
201
 
195
202
  msg["To"] = (",").join(to)
196
203
 
@@ -3,6 +3,7 @@ import subprocess
3
3
  import time
4
4
  import pyautogui
5
5
  import psutil
6
+ import pygetwindow as gw
6
7
  import logging
7
8
  pyautogui.USE_MOUSEINFO = False
8
9
  log = logging.getLogger('__main__')
@@ -26,7 +27,21 @@ def obter_ip_conexao_rdp():
26
27
 
27
28
  return None
28
29
 
29
- def conectar_rdp(host, usuario, senha):
30
+ def verificar_sessao_rdp()->bool:
31
+ """Verifica se a sessão RDP está ativa"""
32
+ # Verifica se o processo mstsc.exe está rodando
33
+ for proc in psutil.process_iter(['name']):
34
+ if proc.info['name'] == 'mstsc.exe':
35
+ #return True
36
+
37
+ # Verifica se a janela da Área de Trabalho Remota está aberta
38
+ for window in gw.getAllTitles():
39
+ if "Área de Trabalho Remota" in window or "Remote Desktop" in window:
40
+ return True
41
+
42
+ return False
43
+
44
+ def conectar_rdp(host:str, usuario:str, senha:str)->bool:
30
45
  """Conecta via RDP em uma máquina remota
31
46
 
32
47
  Args:
@@ -45,23 +60,50 @@ def conectar_rdp(host, usuario, senha):
45
60
 
46
61
  try:
47
62
 
48
- # Inicia o mstsc
49
- cmd_conexao = f"start mstsc /v:{host} /f"
50
- subprocess.run(cmd_conexao, shell=True)
63
+ def criar_arquivo_rdp(host, usuario, caminho_rdp="conexao.rdp")->str:
64
+ """Cria um arquivo .rdp para conexão RDP
65
+ Args:
66
+ host (str): host do computador remoto
67
+ usuario (str): Usuário
68
+ caminho_rdp (str): Caminho do arquivo .rdp
69
+ Returns:
70
+ str: Caminho do arquivo .rdp
71
+ """
72
+ conteudo_rdp = f"""
73
+ screen mode id:i:2
74
+ desktopwidth:i:1920
75
+ desktopheight:i:1080
76
+ session bpp:i:32
77
+ winposstr:s:0,1,0,0,800,600
78
+ full address:s:{host}
79
+ username:s:{usuario}
80
+ """
81
+ with open(caminho_rdp, "w") as arquivo:
82
+ arquivo.write(conteudo_rdp.strip())
83
+
84
+ return caminho_rdp
51
85
 
52
- # Aguarda um tempo para verificar se a conexão foi feita
53
- time.sleep(3) # tempo para o usuário tentar logar
54
- pyautogui.typewrite(senha)
86
+ caminho_rdp = criar_arquivo_rdp(host, usuario)
87
+ subprocess.run(f"start mstsc {caminho_rdp}", shell=True)
88
+ # Espera a conexão ser feita e confirma que realmente quer fazer a conexão com o computador remoto de forma insegura (certificado)
89
+ time.sleep(10)
90
+ pyautogui.press('left')
91
+ pyautogui.press('enter')
92
+ # Espera 3 segundos para digitar a senha e dar enter
93
+ time.sleep(3)
94
+ pyautogui.write(senha)
55
95
  pyautogui.press('enter')
56
- time.sleep(2)
96
+ # Espera 5 segundos para aparecer a tela sobre o certificado e aceitar a conexão de forma insegura (certificado)
97
+ time.sleep(5)
57
98
  pyautogui.press('left')
58
99
  pyautogui.press('enter')
100
+ # Aguarda 5 segundos e verifica se a conexão foi feita com sucesso
59
101
  time.sleep(5)
60
- return True
102
+ return verificar_sessao_rdp()
61
103
 
62
104
  except Exception as e:
63
-
64
- log.error(f"Falha ao tentar logar via RDP (Windows)\nErro: {str(e)}")
105
+
106
+ log.error(f"Erro ao conectar à área de trabalho remota:\n{e}")
65
107
  return False
66
108
 
67
109
  elif sistema == "Linux":
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: csc_cia_stne
3
- Version: 0.0.77
3
+ Version: 0.0.80
4
4
  Summary: Biblioteca do time CSC-CIA utilizada no desenvolvimento de RPAs
5
5
  License: MIT
6
6
  Keywords: karavela,csc,cia,stone,rpa,botcity,stne
@@ -29,6 +29,7 @@ Requires-Dist: botcity-maestro-sdk
29
29
  Requires-Dist: psutil
30
30
  Requires-Dist: cryptography
31
31
  Requires-Dist: pyautogui
32
+ Dynamic: license-file
32
33
 
33
34
  Essa biblioteca é desenvolvida e atualizada pelo time **CSC-CIA** da **Stone**
34
35
 
@@ -1,7 +1,7 @@
1
1
  csc_cia_stne/__init__.py,sha256=Io-gKis1evws5cHUqyOrcsZKNCQRviYj3zbp__5lgKU,2512
2
2
  csc_cia_stne/bc_correios.py,sha256=pQAnRrcXEMrx3N1MWydZVIhEQLerh3x8-0B045zZIzk,24174
3
3
  csc_cia_stne/bc_sta.py,sha256=xP664rwfq65VcQvzdWYVCNk7_Vevy3Es4AKf7z-8xiI,28914
4
- csc_cia_stne/email.py,sha256=RK_TzWBVnUfpP-s5NvjTJJjzhICy8e2fME9EuaiySMY,8162
4
+ csc_cia_stne/email.py,sha256=K0DcgxTPKa_Rz_SJekjbW8Nw_1L9s_iuDDxZ-69bZfM,8387
5
5
  csc_cia_stne/gcp_bigquery.py,sha256=jYxvqrWDOPkxc05U4aef7V5lL8ptqsE93lfn0dLFyvc,7385
6
6
  csc_cia_stne/google_drive.py,sha256=k6GnM8bxQUPbXhaK6Sa4JpWrCcJ0vzYgXP8Uexy7YR0,16073
7
7
  csc_cia_stne/karavela.py,sha256=jJCYX43D49gGuzmwwK6bN9XVnv2dXdp9iHnnV5H1LMQ,4794
@@ -17,7 +17,7 @@ csc_cia_stne/utilitarios/functions/__init__.py,sha256=nUcjSI23FxfX18AQ8Q_Gimyxme
17
17
  csc_cia_stne/utilitarios/functions/func_b64.py,sha256=XGU34BIQQXWXBS0yM2B4A2wDlcrMl1unIJXjq4lpLnk,1254
18
18
  csc_cia_stne/utilitarios/functions/func_converters.py,sha256=EY1zvlBaRX7G1MceVSiRXwwKDQDZwUO9iECBL0fe5iU,481
19
19
  csc_cia_stne/utilitarios/functions/func_get_secret.py,sha256=khTtUTE-acdA9lIM8l7weejDSqoTYlf59ypBdC_F_lw,2150
20
- csc_cia_stne/utilitarios/functions/func_rdp.py,sha256=2B3DjctfU72i0i0TVO1Zk3JdEJCYcwa1MElJtKdkfk4,2855
20
+ csc_cia_stne/utilitarios/functions/func_rdp.py,sha256=bHzMEv2mofRLMB0DswW1-mLtYqQdrGPz3Lnt6xQNxFA,4713
21
21
  csc_cia_stne/utilitarios/functions/func_recriar_pastas.py,sha256=4whZpB3aJQaCPJ3osMAQpKrzEhqYtJbljGWlx_OvKIM,826
22
22
  csc_cia_stne/utilitarios/functions/func_settings.py,sha256=XwlfqdcfocXQ8kTsDKZ6GsAtpzr0_u44AOTIMtdem7U,2059
23
23
  csc_cia_stne/utilitarios/functions/func_titulo.py,sha256=bH4tYxovTARF-g2kWUK_GIzzXt8egbVdp6mWD6fc_3I,5345
@@ -26,8 +26,8 @@ csc_cia_stne/utilitarios/validations/GoogleDriveValidator.py,sha256=Q1oZTae4hDJ2
26
26
  csc_cia_stne/utilitarios/validations/ServiceNowValidator.py,sha256=yleKUIo1ZfyloP9fDPNjv3JJXdLcocT81WIgRSYmqEA,14423
27
27
  csc_cia_stne/utilitarios/validations/__init__.py,sha256=O_qyEU2ji3u6LHUXZCXvUFsMpoMWL625qqHTXyXivTA,106
28
28
  csc_cia_stne/utilitarios/validations/web_validator.py,sha256=HYKYSpDv1RvRjZIuwTPt-AbEz-9392MxM_O329iYuSA,5722
29
- csc_cia_stne-0.0.77.dist-info/LICENCE,sha256=LPGMtgKki2C3KEZP7hDhA1HBrlq5JCHkIeStUCLEMx4,1073
30
- csc_cia_stne-0.0.77.dist-info/METADATA,sha256=ELHxOjlCLXjPi9F8uBFlph3qWwhRxCSLHvutQteMSR0,1340
31
- csc_cia_stne-0.0.77.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
32
- csc_cia_stne-0.0.77.dist-info/top_level.txt,sha256=ldo7GVv3tQx5KJvwBzdZzzQmjPys2NDVVn1rv0BOF2Q,13
33
- csc_cia_stne-0.0.77.dist-info/RECORD,,
29
+ csc_cia_stne-0.0.80.dist-info/licenses/LICENCE,sha256=LPGMtgKki2C3KEZP7hDhA1HBrlq5JCHkIeStUCLEMx4,1073
30
+ csc_cia_stne-0.0.80.dist-info/METADATA,sha256=o2YDi4wW42_I7H-U6gd2upFKV3ojXqwszFRrlODzah4,1362
31
+ csc_cia_stne-0.0.80.dist-info/WHEEL,sha256=DK49LOLCYiurdXXOXwGJm6U4DkHkg4lcxjhqwRa0CP4,91
32
+ csc_cia_stne-0.0.80.dist-info/top_level.txt,sha256=ldo7GVv3tQx5KJvwBzdZzzQmjPys2NDVVn1rv0BOF2Q,13
33
+ csc_cia_stne-0.0.80.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (76.0.0)
2
+ Generator: setuptools (78.0.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5