Skip to content

Commit 3ca477a

Browse files
committed
add
1 parent fb4d27e commit 3ca477a

File tree

8 files changed

+377
-2
lines changed

8 files changed

+377
-2
lines changed

18-gerador_documentos/fr_faker.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ def __init__(self, parent):
2222
self.et_fone = ttk.Entry(self.fr_left)
2323
self.et_email = ttk.Entry(self.fr_left)
2424
self.et_dataNasc = ttk.Entry(self.fr_left)
25-
25+
self.bt_nomeCopy = ttk.Button(self.fr_left, text='Copy')
26+
self.bt_foneCopy = ttk.Button(self.fr_left, text='Copy')
27+
self.bt_emailCopy = ttk.Button(self.fr_left, text='Copy')
28+
self.bt_dataNascCopy = ttk.Button(self.fr_left, text='Copy')
2629
# frame right ==================
2730
self.lb_rua = ttk.Label(self.fr_right, text='Rua:')
2831
self.lb_numero = ttk.Label(self.fr_right, text='Número:')
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import ttkbootstrap as ttk
2+
from ttkbootstrap.constants import *
3+
4+
import pyperclip as pc
5+
6+
7+
8+
class Fr_dataNasci(ttk.Labelframe):
9+
def __init__(self, parent, faker):
10+
super().__init__(parent)
11+
self.faker = faker
12+
13+
# dataNasci =================================================
14+
self.configure(text='DataDeNascimento', padding=20)
15+
self.et = ttk.Entry(self)
16+
self.bt_gerar = ttk.Button(self, text='Gerar', bootstyle=SUCCESS, command=self.gerar)
17+
self.bt_copy = ttk.Button(self, text='Copiar', bootstyle=INFO, command=self.copiar)
18+
19+
self.et.grid(row=0, column=0, padx=2, pady=5, columnspan=2, sticky=EW)
20+
self.bt_copy.grid(row=1, column=0, padx=2, pady=5, sticky=EW)
21+
self.bt_gerar.grid(row=1, column=1, padx=2, pady=5, sticky=EW)
22+
23+
24+
# gerando =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
25+
self.gerar()
26+
self.bind('<Enter>', self.enter_lbfr)
27+
self.bind('<Leave>', self.leave_lbfr)
28+
29+
30+
def enter_lbfr(self, event=None):
31+
self.config(bootstyle=SUCCESS)
32+
33+
def leave_lbfr(self, event=None):
34+
self.config(bootstyle=NORMAL)
35+
36+
def gerar(self):
37+
self.et.delete(0, END)
38+
data = self.faker.date_of_birth(minimum_age=18, maximum_age=70, ).strftime("%d/%m/%Y")
39+
40+
self.et.insert(0, data)
41+
42+
43+
def copiar(self):
44+
pc.copy(self.etd.get())
45+
46+
47+
48+
if __name__ == '__main__':
49+
from faker import Faker
50+
faker = Faker('pt-br')
51+
52+
window = ttk.Window()
53+
window.place_window_center()
54+
fr = Fr_dataNasci(window, faker)
55+
fr.pack()
56+
fr.et.config(width=25)
57+
window.style.theme_use('cyborg')
58+
window.bind('q', lambda x: window.quit())
59+
window.mainloop()
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import ttkbootstrap as ttk
2+
from ttkbootstrap.constants import *
3+
4+
import pyperclip as pc
5+
6+
7+
8+
class Fr_nome(ttk.Labelframe):
9+
def __init__(self, parent, faker, nome):
10+
super().__init__(parent)
11+
self.faker = faker
12+
13+
# Nome =================================================
14+
self.configure(text='Nome', padding=20)
15+
self.et = ttk.Entry(self)
16+
self.bt_gerar = ttk.Button(self, text='Gerar', bootstyle=SUCCESS, command=self.gerar)
17+
self.bt_copy = ttk.Button(self, text='Copiar', bootstyle=INFO, command=self.copiar)
18+
19+
self.et.grid(row=0, column=0, padx=2, pady=5, columnspan=2, sticky=EW)
20+
self.bt_copy.grid(row=1, column=0, padx=2, pady=5, sticky=EW)
21+
self.bt_gerar.grid(row=1, column=1, padx=2, pady=5, sticky=EW)
22+
23+
24+
# gerando =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
25+
self.gerar()
26+
self.bind('<Enter>', self.enter_lbfr)
27+
self.bind('<Leave>', self.leave_lbfr)
28+
29+
30+
def enter_lbfr(self, event=None):
31+
self.config(bootstyle=SUCCESS)
32+
33+
def leave_lbfr(self, event=None):
34+
self.config(bootstyle=NORMAL)
35+
36+
def gerar(self):
37+
self.et.delete(0, END)
38+
email = nome.replace(' ', '') +'@' + choice(self.emails_links)
39+
self.et.insert(0, email)
40+
41+
42+
def copiar(self):
43+
pc.copy(self.etd.get())
44+
45+
46+
47+
if __name__ == '__main__':
48+
from faker import Faker
49+
faker = Faker('pt-br')
50+
51+
window = ttk.Window()
52+
window.place_window_center()
53+
fr = Fr_nome(window, faker, faker.name())
54+
fr.pack()
55+
fr.et.config(width=25)
56+
window.style.theme_use('cyborg')
57+
window.bind('q', lambda x: window.quit())
58+
window.mainloop()
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import ttkbootstrap as ttk
2+
from ttkbootstrap.constants import *
3+
4+
import pyperclip as pc
5+
6+
7+
8+
class Fr_nome(ttk.Labelframe):
9+
def __init__(self, parent, faker):
10+
super().__init__(parent)
11+
self.faker = faker
12+
13+
# Nome =================================================
14+
self.configure(text='Nome', padding=20)
15+
self.et = ttk.Entry(self)
16+
self.bt_gerar = ttk.Button(self, text='Gerar', bootstyle=SUCCESS, command=self.gerar)
17+
self.bt_copy = ttk.Button(self, text='Copiar', bootstyle=INFO, command=self.copiar)
18+
19+
self.et.grid(row=0, column=0, padx=2, pady=5, columnspan=2, sticky=EW)
20+
self.bt_copy.grid(row=1, column=0, padx=2, pady=5, sticky=EW)
21+
self.bt_gerar.grid(row=1, column=1, padx=2, pady=5, sticky=EW)
22+
23+
24+
# gerando =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
25+
self.gerar()
26+
self.bind('<Enter>', self.enter_lbfr)
27+
self.bind('<Leave>', self.leave_lbfr)
28+
29+
30+
def enter_lbfr(self, event=None):
31+
self.config(bootstyle=SUCCESS)
32+
33+
def leave_lbfr(self, event=None):
34+
self.config(bootstyle=NORMAL)
35+
36+
def gerar(self):
37+
self.et.delete(0, END)
38+
self.et.insert(0, self.faker.name())
39+
40+
41+
def copiar(self):
42+
pc.copy(self.etd.get())
43+
44+
45+
46+
if __name__ == '__main__':
47+
from faker import Faker
48+
faker = Faker('pt-br')
49+
50+
window = ttk.Window()
51+
window.place_window_center()
52+
fr = Fr_nome(window, faker)
53+
fr.pack()
54+
fr.et.config(width=25)
55+
window.style.theme_use('cyborg')
56+
window.bind('q', lambda x: window.quit())
57+
window.mainloop()
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import ttkbootstrap as ttk
2+
from ttkbootstrap.constants import *
3+
4+
import pyperclip as pc
5+
6+
7+
8+
class Fr_nome(ttk.Labelframe):
9+
def __init__(self, parent, faker):
10+
super().__init__(parent)
11+
self.faker = faker
12+
13+
# Nome =================================================
14+
self.configure(text='Nome', padding=20)
15+
self.et = ttk.Entry(self)
16+
self.bt_gerar = ttk.Button(self, text='Gerar', bootstyle=SUCCESS, command=self.gerar)
17+
self.bt_copy = ttk.Button(self, text='Copiar', bootstyle=INFO, command=self.copiar)
18+
19+
self.et.grid(row=0, column=0, padx=2, pady=5, columnspan=2, sticky=EW)
20+
self.bt_copy.grid(row=1, column=0, padx=2, pady=5, sticky=EW)
21+
self.bt_gerar.grid(row=1, column=1, padx=2, pady=5, sticky=EW)
22+
23+
24+
# gerando =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
25+
self.gerar()
26+
self.bind('<Enter>', self.enter_lbfr)
27+
self.bind('<Leave>', self.leave_lbfr)
28+
29+
30+
def enter_lbfr(self, event=None):
31+
self.config(bootstyle=SUCCESS)
32+
33+
def leave_lbfr(self, event=None):
34+
self.config(bootstyle=NORMAL)
35+
36+
def gerar(self):
37+
self.et.delete(0, END)
38+
self.et.insert(0, self.faker.name())
39+
40+
41+
def copiar(self):
42+
pc.copy(self.etd.get())
43+
44+
45+
46+
if __name__ == '__main__':
47+
from faker import Faker
48+
faker = Faker('pt-br')
49+
50+
window = ttk.Window()
51+
window.place_window_center()
52+
fr = Fr_nome(window, faker)
53+
fr.pack()
54+
fr.et.config(width=25)
55+
window.style.theme_use('cyborg')
56+
window.bind('q', lambda x: window.quit())
57+
window.mainloop()
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from faker import Faker
2+
3+
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
from random import choice, randint
2+
from faker import Faker
3+
import re
4+
5+
FAKER = Faker('pt-br')
6+
7+
# links dos emails
8+
EMAIL_LINKS= ['yahoo.com', 'yahoo.com.br',
9+
'outlook.com', 'outlook.com.br',
10+
'hotmail.com', 'hotmail.com.br',
11+
'gmail.com', 'icloud.com', 'aol.com',
12+
'live.com', 'bol.com.br', 'uol.com.br',
13+
'terra.com.br', 'ig.com.br', 'r7.com',
14+
'zipmail.com.br','protonmail.com','yandex.com']
15+
16+
# remove palavras com acentos e siglas
17+
def remove_things(word:str) -> str:
18+
chars = {
19+
'á':'a',
20+
'é':'e',
21+
'í':'i',
22+
'ó':'o',
23+
'ú':'u',
24+
'ñ':'n',
25+
'ỹ':'y',
26+
'ý':'y',
27+
'ã':'a',
28+
'ẽ':'e',
29+
'ĩ':'i',
30+
'õ':'o',
31+
'ũ':'u',
32+
'ç':'c',
33+
'à':'a',
34+
'è':'e',
35+
'ì':'i',
36+
'ò':'o',
37+
'ù':'u',
38+
'â':'a',
39+
'ê':'e',
40+
'î':'i',
41+
'ô':'o',
42+
'û':'u',
43+
'ŷ':'y',
44+
'ĉ':'c',
45+
'ŝ':'s',
46+
'ĵ':'j',
47+
48+
49+
'dra\.\s': '',
50+
'dr\.\s': '',
51+
'sr\.\s': '',
52+
'sra\.\s': '',
53+
'srta\.\s': '',
54+
}
55+
56+
for k, v in chars.items():
57+
# print(k, v, '=', word)
58+
# print(k, v, '=', word)
59+
word = re.sub(k, v, word)
60+
return word
61+
62+
# gera um email utilizando nome
63+
def generate_email(nome:str='', date:str=''):
64+
if not nome: nome = FAKER.name()
65+
66+
nome = nome.lower()
67+
nome = remove_things(nome)
68+
nome = nome.split(' ')
69+
# print(nome)
70+
q:list = [True, False]
71+
if choice(q):
72+
if choice(q):
73+
for i, n in enumerate(nome):
74+
if choice(q) and i == 0:
75+
nome[0] = n[:2]
76+
elif choice(q):
77+
nome[i] = n[:4]
78+
else:
79+
nome[i] = n[:3]
80+
elif choice(q):
81+
nome[0] = nome[0][:2]
82+
83+
# data de nascimento
84+
85+
date = date.split(('/' if '/' in date else '-'))
86+
if choice(q):
87+
date = date[0] if len(date[0]) == 4 else date[-1]
88+
else:
89+
date = ''
90+
# -------------------
91+
92+
if choice(q):
93+
nome = nome[0], nome[-1]
94+
nome = '.'.join(nome)
95+
else:
96+
nome = ''.join(nome)
97+
98+
return nome +date+'@' + choice(EMAIL_LINKS)
99+
100+
101+
102+
def gen_date():
103+
dia = str(randint(0, 30))
104+
mes = str(randint(1, 12))
105+
ano = str(randint(1990, 2010))
106+
return f'{dia}/{mes}/{ano}'
107+
108+
109+
110+
111+
112+
# for i in range(200):
113+
# date = gen_date()
114+
# nome = FAKER.name()
115+
# email = generate_email(nome, date)
116+
# print('email:', email)
117+
# print(' nome:', nome)
118+
# print('----------------------')
119+
120+
for _ in range(10):
121+
email = generate_email()
122+
print('|>'+email+'<|')
123+
print('-'*len(email)+'----')
124+
125+
# nome = 'Dra. Letícia da Costa'
126+
# email = generate_email(nome)
127+
# print(email)
128+
# nome = 'Sr. Daniel Rocha'
129+
# email = generate_email(nome)
130+
# print(email, nome)
131+
# nome = 'Dr. Luiz Otávio da Costa'
132+
# email = generate_email(nome)
133+
# print(email, '|nome:' + nome)
134+
# nome = 'Srta. Alice Sales'
135+
# email = generate_email(nome)
136+
# print(email, '|nome:' + nome)
137+
# Ana Laura Rocha
138+

0 commit comments

Comments
 (0)