def __add_members(family): add_members = True template = Person().to_json() fields = sorted(template.keys()) while add_members: print("----- Add Family Member -----") member_data = template.copy() for name in fields: if name in ('photo'): continue if name == 'relationships': member_data['relationships'] = Prompt.relationships() elif name == 'phone': member_data['phone'] = Prompt.phone() else: new_value = Prompt.input("%s: " % (name)) member_data[name] = new_value if new_value else "" member_data['birthday'] = Prompt.input("birthday (YYYY-MM-DD)? ") member_data['photo'] = re.sub('\W', '-', member_data['name'].lower()) + ".jpeg" new_member = Person(**member_data) family.add(new_member) add_members = Prompt.more(msg="Add More Members")
def main(): args = cmd_parser() if args.file: if not os.path.exists(args.file): print('File not Exist') sys.exit(0) with open(args.file) as f: data = f.read() person = Person(json.loads(data)) else: person = Person() person.name = parse_input(args.name) person.username = parse_input(args.username) person.qq_number = parse_input(args.qq_number, 'int') person.email = parse_input(args.email, 'email') person.mobile_phone = parse_input(args.mobile_phone, 'int') try: person.birthday = time.strptime(args.birthday, '%Y-%m-%d') except (ValueError, TypeError): person.birthday = None if args.with_dict: passwords = person.generate_password_with_dict() else: passwords = person.generate_password() for password in passwords: print(password)
def vcf(ctx, vcf_file): """Import VCF Card""" config = ctx.obj['config'] directory = Directory(config.path('data:path', 'directory.json')) vcf = VCFParser(photo_dir=config.path('data:path', 'photos')) data = vcf.parse(vcf_file) print("----- %s - %s -----" % (data['last_name'], data['address'])) family = directory.get(data['last_name']) family = Prompt.choose_from_list(family, "Which Family") if family: person = family.get(data['name']) if person: print("%s already exists." % (data['name'])) else: new_person = Person(**data) family.add(new_person) directory.save() else: new_family = Family(name=data['last_name'], address=data['address'], city=data['city'], state=data['state'], zip=data['zip'], members=[data]) directory.add(new_family) directory.save()
def cmdgenerator(): testinfo = parser() newperson = Person(information=testinfo) tmplist = newperson.generate_password() print(tmplist) for i in tmplist: print(i)
def parser(): parser=argparse.ArgumentParser() parser.add_argument('-n', '--name', dest='name', action='store', help='real name of target', nargs='*', default=[]) parser.add_argument('-u', '--username', dest='username', action='store', help='usernames of target, English only', nargs='*', default=[]) parser.add_argument('-q', '--qq', dest='qq', action='store', help='QQ numbers of target', nargs='*', type=int, default=[]) parser.add_argument('-e', '--email', dest='email', action='store', help='email addresses of target', nargs='*', type=email, default=[]) parser.add_argument('-m', '--mobile', dest='mobile', action='store', help='mobile phone/phone numbers of target', nargs='*', type=int, default=[]) parser.add_argument('-b', '--birthday', dest='birthday', action='store', help='birthday of target, format: %%Y-%%m-%%d', type=date, default=None) parser.add_argument('-c', '--company', dest='company', nargs='*', action='store', help='company / website domain of target', type=str, default=[]) parser.add_argument('--with-dict', dest='with_dict', action='store_true', help='generate passwords with weak password dictionary') parser.add_argument('-o', '--output', dest='output_file', action='store', help='output result to a json file', type=argparse.FileType('w')) args = parser.parse_args() print(args) print(args.__dict__) if not any(args.__dict__.values()): parser.print_help() raise SystemExit person_list = [] person_list.append(Person(information=args.__dict__)) return (args, person_list)
from oracle import ORACLE from random import shuffle from lib.person import Person from lib.utils import GET_TRUNC_NORM, GLOBALS with open("resources/first_names.txt","r") as names: first_names = [x.strip() for x in names.readlines()] shuffle(first_names) with open("resources/last_names.txt","r") as names: last_names = [x.strip() for x in names.readlines()] shuffle(last_names) people = [] for i in range(10): people.append(Person(GET_TRUNC_NORM(40,1,GLOBALS["MAX_AGE"],25), (first_names.pop(), last_names.pop()))) for p in people: print(p)
def functiongenerator(dict_of_info): target = Person(information=dict_of_info) return target.generate_username(), target.generate_password()
from typing import List from fastapi import FastAPI from lib.person import Person app = FastAPI() people: List[Person] = [ Person(name="Alice", age=50), Person(name="Bob", age=30), ] @app.get("/") async def hello_world(name: str = "World"): return {"success": True, "message": f"Hello {name}"} @app.get("/people/") async def fetch_all_people(): return {"success": True, "message": {"people": people}} @app.get("/people/{person_id}") async def find_person(person_id: str): filtered: List[Person] = [p for p in people if str(p.id_) == person_id] if filtered == []: return { "success": False, "message": f"Can't find the person for id = {person_id}" }