Homepage: http://meltin.net/hacks/emacs
Author: Len Trigg, Martin Schwenke, Reiner Steib
Updated:
Export phone entries from BBDB to gnokii contacts file
Exports BBDB phone entries to a contacts file that can be used by
gnokii to write them to a Nokia mobile phone.
No responsibility for blowing up your phone... blah, blah, blah...
I recommend dumping your phone book to a file (using xgnokii, say)
and keeping it in a safe place until you are sure that
bbdb-gnokii.el doesn't do anything stupid.
The latest version of this file is available via:
http://meltin.net/hacks/emacs/
The gnokii web site is
http://www.gnokii.org/
bbdb-gnokii.el is loosely based on JWZ's bbdb-pilot-jwz.el.
gnokii expects a file with the following format:
name;number;memory_type;entry_location;caller_group_number;\
subentry_type;subentry_number_type;subentry_id;subentry_text
The length and syntax of "name" and "number" are limited, so some
munging goes on. You can adjust the munging to your needs by
customizing the variables `bbdb-gnokii-firstname-transform',
`bbdb-gnokii-lastname-transform' and
`bbdb-gnokii-location-transform'.
The default settings of these variables reflect Martin's preferences.
Here is a combination of alternative settings used by Reiner:
(setq
;; Use long firstnames and lastnames and a short location:
bbdb-gnokii-firstname-transform 'bbdb-gnokii-transform-word
bbdb-gnokii-lastname-transform 12
bbdb-gnokii-location-transform 'bbdb-gnokii-transform-location
bbdb-gnokii-max-name-length 16)
The memory_type specifies where to write the contacts (phone memory
or SIM card). See variable `bbdb-gnokii-default-memory-type' and
it's documentation for details.
Configuration:
Add this to your ~/.emacs or equivalent:
(autoload
'bbdb-gnokii-export
"bbdb-gnokii"
"Export phone entries from BBDB to a Gnokii contacts file."
t)
If you want to add some standard entries to your phone, you can put
them in a file and set the following variable:
(setq bbdb-gnokii-extras-file
(expand-file-name "~/.bbdb-gnokii-extras.txt"))
The contents of the specified file get appended to the file
generated from the BBDB (cf. `bbdb-gnokii-extras-file-position').
My phone vendor preloads a bunch of their numbers into the SIM
card, and I'm keeping them until I'm sure they're not useful!
Entries are only extracted from the BBDB for entries that have a
gnokii field. In general, if this field is present, then all of
the phone numbers (except those that have locations listed in
`bbdb-gnokii-exclude-locations') will be exported.
For example:
Fred Smith - Widget, Inc.
mobile: (04) 1234 5678
home: (02) 1234 5678
gnokii: t
will have 2 items exported:
Fred S mobile;0412345678;...
Fred S home;0212345678;...
For entries with a name, the default generated name is the first
word of firstname, space, first letter of lastname.
For entries without a name, but with a company, the default
generated name is the first word of the company name.
The phone number locations are only appended if there is more than
1 phone entry exported.
If the gnokii field contains a string in double-quotes, then it
will be used as the name.
If the gnokii field contains something like location=X then the
number for location will be put into speed-dial location X. All
other entries are put between `bbdb-gnokii-general-min-location'
and `bbdb-gnokii-general-max-location'.
If the gnokii field contains something like (Y) then the entry will
belong to caller group Y, otherwise
`bbdb-gnokii-default-caller-group' is used.
So,
Fred Smith - Widget, Inc.
mobile: (04) 1234 5678
home: (02) 1234 5678
fax: (02) 8765 4321
gnokii: "Freddy" (0) mobile=2 home=3
will have 2 items exported:
Freddy mobile;0412345678;...;0;
Freddy home;0212345678;...;0;
No item is exported for the fax number because it is a member of
`bbdb-gnokii-exclude-locations'.
If the gnokii field contains "skip=foo", the phone number corresponding to
the location "foo" will not be exported.
You can also export a whole BBDB record to a single gnokii entry by
setting `bbdb-gnokii-phonebook-style' to `multi' or `mega'. In
this style the default phone number can be set by specifying the
associated location in the BBDB gnokii field. For example, if the
gnokii field contains "[work]" then the phone number with location
"work" will be the default one. If no default location is
specified in the gnokii field, then the order of preference is
determined by `bbdb-gnokii-preferred-phone-locations'. If
`bbdb-gnokii-phonebook-style' is set to `mega', an email address
and postal address are also added to the gnokii entry, when
available.
See the variables and code below for more details. You may check all
customizable variables using `M-x customize-group RET bbdb-gnokii RET'.