I needed an online address book, but didn't want to hand over all my data to strangers at a free 'online desktop' service. Besides, I wanted it to be organized just the way I liked. So I wrote this. You can use it, too, and modify it. Enjoy!
- Keeps data in an XML file that you can edit by hand
- Allows each entry to have unlimited phone numbers, email addresses, physical addresses, important dates, tags, and notes attached
- Supports 'sloppy data entry':
- Strips extra white space from input
- Lets you leave any field blank
- Stores fields as Unicode strings without format requirements
- Removes data objects that contain absolutely no content
- Written in Python
The CGI Wrapper - 'bookman.cgi'
This CGI script lives in /cgi-bin/ and just sets up some environment and runs the Manager. Adjust paths to suit.
#!/usr/bin/env bash export db_dir=/PATH/TO/MY/DATABASE/DIR export script_name=$SCRIPT_NAME python bookman.py
The Manager - 'bookman.py'
- Click 'Add new entry' to put in your first address
Click on any of the words Phone, Internet, Address, Date, Tag, or Note to create a new field for data entry (yeah, this is non-obvious)
Click Submit to finish editing and return to master list
I use the Internet field for email addresses and URLs
In Dates I put in anniversaries and birthdays, including those of spouse and kids
Tag allows arbitrary grouping of people, such as by where you met them, where you worked with them, if they are a musician or a programmer or whatever
The Base Classes - 'adbook.py'
The module adbook.py contains the classes that define the pieces of the address book and how they are marshalled to/from XML. This module can be used by non-CGI programs to read, edit, and write the address book. For example, for converting to/from other address book formats.
Here are a couple short Python scripts that mine the data in your address book:
query_emails.py produces a list of names and email addresses. It too needs a CGI wrapper, just like the one above.
query_birthdays.py produces a list of people's birthdays, going forward from today. It too needs a CGI wrapper, just like the one above. And it makes these assumptions:
Birthdays are date fields containing the substring birth somewhere in the tag
- Years are entered as YYYY, months as MM, and days as DD (with leading zeros where needed)
wearing sexy lingerie | teen kelly masturbating | full porno | milf hunter vid | free gay redheads | sucking clitoris | ffm japan | great ass babes | housewife amateur sex | bisexual photoshoot | fats domino mp3 | lactating female | teenager marijuana help | fat teens nude | funny gay mpg | nasty ebony cumshots | tgirl tight 001 | teen dildo | breastfeeding while pregnant | fist video | gaping pregnant pussy | cum double penetration | pantiehose redhead | dildo teens | masturbate orgasm mpeg | pussy spanking fetish | partner masturbation techniques | preggo b | teenage lesbian masterbation | cum granny face | interacial cuckold wife | carly squirt new