Exemple #1
0
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")
Exemple #2
0
def cmdgenerator():
    testinfo = parser()
    newperson = Person(information=testinfo)
    tmplist = newperson.generate_password()
    print(tmplist)
    for i in tmplist:
        print(i)
    def on_edit_member(self, widget, path = None, view_column = None):
        selection = self.member_tree_view.get_selection()
        model, path = selection.get_selected()

        if path:
            person_to_edit = Person.get(model[path][0])
            self.start_edit_dialoge(person_to_edit, path)
Exemple #4
0
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()
Exemple #5
0
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)
    def on_delete_member(self, widget):
        dialog = gtk.MessageDialog(self.main_window, gtk.DIALOG_DESTROY_WITH_PARENT,
                                   gtk.MESSAGE_QUESTION,
                                   gtk.BUTTONS_OK_CANCEL,
                                   "Do you really want to delete this person?")
        result = dialog.run()
        dialog.destroy()

        if(result == gtk.RESPONSE_OK):
            selection = self.member_tree_view.get_selection()
            model, path = selection.get_selected()

            if path:
              person_id = model[path][0]
              self.member_list.remove(path)
              Person.delete(person_id)
Exemple #7
0
def mind_action(unique_id, action):
    person = Person.load(unique_id)
    if action in person:
        res = person[action](request.form)
        return jsonify({'response': res})
    else:
        return jsonify(
            {'response': 'Failed to execute action: "' + action + '"'})
 def on_card_found(self, cardnumber):
     self.statusbar.pop(1)
     person = Person.get_by_cardnumber(cardnumber)
     person_list = list(person)
     if len(person_list):
         person_list[0].add_date()
         print "Member found :" + str(person_list[0].id)
         gobject.idle_add(self.start_edit_dialoge, person_list[0])
     else:
         print "No Member with cardnumber : " + cardnumber
Exemple #9
0
def main():
    args = cmd_parser()
    person = Person()
    if args.file:
        raise NotImplementedError
    else:
        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')

    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)
Exemple #10
0
#coding=utf-8

import os
import lib.person
from lib.person import Person

exit = False
john = Person("John","Man","0912228","*****@*****.**")
john.name = "as"
print john

while not exit:
    
    print "歡迎使用通訊錄管理系統!"
    print "*********************"
    print "請選擇功能:"
    print "1.開啟檔案"
    print "2.離開"
    print "*********************"
    choice = raw_input("選擇代號:")

    if choice == "1":
        name = raw_input("請輸入檔案名稱:")
        if os.path.exists(name):
            print (name + "檔案存在!\n")
            file = open(name,"r")
            content = file.read()
            print(content)
            file.close()
        else:
            print "檔案不存在!\n"
Exemple #11
0
def mind_view(unique_id):
    person = Person.load(unique_id)
    return render_template('view.html', person=person)
Exemple #12
0
def mind_list():
    global common
    return render_template('list.html', people=Person.list())
Exemple #13
0
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}"
        }
Exemple #14
0
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)
Exemple #15
0
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)
Exemple #16
0
def functiongenerator(dict_of_info):
    target = Person(information=dict_of_info)
    return target.generate_username(), target.generate_password()
 def show_all_members(self):
     members = Person.select()
     self.show_members(members)
    def __init__(self, glade_file):

        db_dir = "db"
        Person.init_db(db_dir)

        try:
            self.card = Card(self.reading_card_result, self.on_card_found)
        except:
            print "No reader found"
            dialog = gtk.MessageDialog(None, gtk.DIALOG_DESTROY_WITH_PARENT,
                                   gtk.MESSAGE_WARNING,
                                   gtk.BUTTONS_OK,
                                   "No RFID reader found")
            result = dialog.run()
            dialog.destroy()
            self.card = None

        self.glade_file = glade_file
        self.blink = False

        self.builder = gtk.Builder()
        self.builder.add_from_file(glade_file)

        signals = {
            "quit" : self.quit,
            "on_buttonQuit_clicked" : self.quit,
            "on_window_destroy" : self.quit,
            "on_add_member" : self.on_add_member,
            "on_edit_member" : self.on_edit_member,
            "on_start_stop_rfid_reader" : self.on_start_stop_rfid_reader,
            "on_find" : self.on_search_button,
            "on_delete_member" : self.on_delete_member,
            "on_card_found" : self.on_card_found,
            "on_clear_search" : self.on_clear_search,
            "on_row_activated" : self.on_edit_member,
            "on_changed" : self.on_search_button,
        }
        self.builder.connect_signals(signals)

        self.member_tree_view = self.builder.get_object("memberview")
        self.member_tree_view.set_rules_hint(True)

        self.add_columns_to_tree_view(self.member_tree_view, Person)

        # The * is used to expand the tuple in to arguments for the function.
        self.member_list = gtk.ListStore(*Person.get_column_types())
        self.member_tree_view.set_model(self.member_list)

        #Class variables
        self.statusbar = self.builder.get_object("statusbar")
        self.main_window = self.builder.get_object("main_window")

        self.show_all_members()

        #Last words, start state. ugly and for the love of god remove this
        self.card.start()
        button = self.builder.get_object("start_stop_button")
        image = gtk.image_new_from_icon_name("gtk-media-stop", gtk.ICON_SIZE_BUTTON)
        image.show()
        button.set_icon_widget(image)

        self.main_window.show()
        gtk.main()
Exemple #19
0
def generate_id_string(data, rule):
    id_string = map(lambda x: x.split('@')[0], data)
    return set(Person.generator_map(id_string, rule))
Exemple #20
0
def generate_name(data, rule):
    pinyin = PinYin(PINYIN)
    pinyin.load_word()
    name_pinyin_list = map(pinyin.hanzi2pinyin, data)
    return Person.generator_map(name_pinyin_list, rule)
 def on_search_button(self, widget):
     firstname = self.builder.get_object("firstname_search_entry").get_text()
     lastname = self.builder.get_object("lastname_search_entry").get_text()
     members = Person.get_by_name(firstname,lastname)
     self.show_members(members)