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 +9 -2
- csc_cia_stne/utilitarios/functions/func_rdp.py +53 -11
- {csc_cia_stne-0.0.77.dist-info → csc_cia_stne-0.0.80.dist-info}/METADATA +3 -2
- {csc_cia_stne-0.0.77.dist-info → csc_cia_stne-0.0.80.dist-info}/RECORD +7 -7
- {csc_cia_stne-0.0.77.dist-info → csc_cia_stne-0.0.80.dist-info}/WHEEL +1 -1
- {csc_cia_stne-0.0.77.dist-info → csc_cia_stne-0.0.80.dist-info/licenses}/LICENCE +0 -0
- {csc_cia_stne-0.0.77.dist-info → csc_cia_stne-0.0.80.dist-info}/top_level.txt +0 -0
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
|
-
|
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
|
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
|
-
|
49
|
-
|
50
|
-
|
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
|
-
|
53
|
-
|
54
|
-
|
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
|
-
|
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
|
102
|
+
return verificar_sessao_rdp()
|
61
103
|
|
62
104
|
except Exception as e:
|
63
|
-
|
64
|
-
log.error(f"
|
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.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: csc_cia_stne
|
3
|
-
Version: 0.0.
|
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=
|
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=
|
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.
|
30
|
-
csc_cia_stne-0.0.
|
31
|
-
csc_cia_stne-0.0.
|
32
|
-
csc_cia_stne-0.0.
|
33
|
-
csc_cia_stne-0.0.
|
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,,
|
File without changes
|
File without changes
|