Manejo de personas
This commit is contained in:
40
src/address_book.py
Normal file
40
src/address_book.py
Normal file
@ -0,0 +1,40 @@
|
||||
import os
|
||||
import json
|
||||
|
||||
|
||||
class Contact:
|
||||
def __init__(self):
|
||||
self.names = ''
|
||||
self.last_name = ''
|
||||
self.maiden_name = ''
|
||||
self.emails = []
|
||||
self.phones = []
|
||||
|
||||
def full_name(self):
|
||||
return ' '.join([self.names, self.last_name, self.maiden_name])
|
||||
|
||||
|
||||
class AddressBook:
|
||||
def __init__(self, data_folder):
|
||||
filename = os.path.join(data_folder, 'address_book.json')
|
||||
with open(filename, 'r') as f:
|
||||
data = json.load(f)
|
||||
|
||||
self.contacts = []
|
||||
for c in data:
|
||||
contact = Contact()
|
||||
for k, val in c.items():
|
||||
setattr(contact, k, val)
|
||||
self.contacts.append(contact)
|
||||
|
||||
def find(self, name):
|
||||
for c in self.contacts:
|
||||
if c.full_name() == name or c.names == name or c.last_name == name:
|
||||
return c
|
||||
return None
|
||||
|
||||
def find_id(self, name):
|
||||
for (k, c) in enumerate(self.contacts):
|
||||
if c.full_name() == name or c.names == name or c.last_name == name:
|
||||
return k
|
||||
return -1
|
37
src/bosses.py
Normal file
37
src/bosses.py
Normal file
@ -0,0 +1,37 @@
|
||||
import os
|
||||
import json
|
||||
from src.address_book import AddressBook
|
||||
|
||||
|
||||
class Boss:
|
||||
def __init__(self):
|
||||
self.full_name = ''
|
||||
self.aliases = []
|
||||
self.contact = None
|
||||
|
||||
|
||||
class Bosses:
|
||||
def __init__(self, data_folder):
|
||||
filename = os.path.join(data_folder, 'bosses.json')
|
||||
with open(filename, 'r') as f:
|
||||
data = json.load(f)
|
||||
self.bosses = []
|
||||
addrs = AddressBook(data_folder)
|
||||
for b in data:
|
||||
boss = Boss()
|
||||
for k, val in b.items():
|
||||
setattr(boss, k, val)
|
||||
boss.contact = addrs.find(boss.full_name)
|
||||
self.bosses.append(boss)
|
||||
|
||||
def is_boss(self, name):
|
||||
for boss in self.bosses:
|
||||
if boss.full_name in name:
|
||||
return True
|
||||
for m in boss.contact.emails:
|
||||
if m in name:
|
||||
return True
|
||||
for a in boss.aliases:
|
||||
if a in name:
|
||||
return True
|
||||
return False
|
Reference in New Issue
Block a user