基于文件的联系人管理
项目描述
基于文件的联系人管理
概念
每个联系人对应于bguo目录内的单个文件。联系人信息应在此目录中编辑,然后导出为其他程序使用的各种输出格式。它们也可以大致导入到该目录,但您将需要校对结果;导入器旨在进行一次性导入,而不是与程序进行常规同步。
在我们的用途中,联系人是一个只有一个名称的东西。人、邮件列表和机构都可以是联系人。bguo没有为分组联系人提供特殊功能。
bguo 联系人文件格式
以下是一个联系人文件的示例。
name: Thomas Levine email: sngmscrmrchroh@thomaslevine.com phone: 8835 1000 990 2082 x-favorite-color: pink
联系人文件格式类似于电子邮件(RFC-5322互联网消息),但有以下变化。
头部名称不同。(见下文。)
换行符不需要包含回车符;使用CRLF或仅使用LF断行都是可接受的。
可以在头部中包含非ASCII数据;MIME编码单词语法是可选的。
消息体必须为空。
联系人文件可以包含以下任何不区分大小写的字段以及以“x-”或“X-”开头的任何字段。
- name
人、邮件列表、组织等的名称。
- name-latin
与“name”相同,但在“name”不适合输出格式(因为它使用不同的字母表)时使用。
- phone
电话号码。
- email*
电子邮件地址。
- feed*
新闻源地址,例如RSS或Atom源。
- web
网站地址。
- post
邮政地址。
如果存在其他任何字段,bguo将报告错误。带有“*”标记的字段可以多次包含;其他字段只能包含一次。
用法
安装
pip3 install bguo
“Seltzer”导入器有一个特殊的依赖关系。如果您需要使用“Seltzer”导入器,请按照以下步骤安装以确保满足依赖关系。
pip3 install ‘bguo[seltzer]’
帮助
bguo -h
示例与软件包一起分发,在“examples”目录中。pip会下载该软件包,但您可以从PyPI下载软件包,并且您可以从thomaslevine.com下载开发版本。
以下是下载开发版本并运行示例的方法。
wget https://thomaslevine.com/scm/bguo/tarball/bguo.tar.gz tar xzf bguo.tar.gz cd bguo/examples make clean make
支持的格式
bguo只支持我(Tom)使用过的格式。让我们将这些格式分为两组。第一组格式是针对与其他软件的特定集成。
- konftel
Konftel 300IP电话簿文件
- mh
MH别名文件
- mutt
Mutt 别名文件
- newsbeuter
Newsbeuter ~/.newsbeuter/urls
- seltzer
Seltzer CRM成员列表(/?q=members)
- voipms
VoIP.ms电话簿导出
第二组是通用的导出,可能有助于您制作自己的导出。
- python(默认)
Python字符串表示,作为联系人字典的列表,每个联系人一个字典
- custom
您自己的格式,指定为Python 格式字符串,使用您可以通过bguo格式子命令检查的字段
格式参数包括来自联系人文件格式的所有原始字段(名称、名称-latin等)以及以下派生字段。
- phone-numeric
从“电话”字段中移除非数字字符的电话号码
- post-formatted
从“邮编”字段中格式化邮政地址,以便包含在信件中,包括联系人的名称或标识符,并且用斜杠替换为换行符。
对于这些格式中的大多数,只支持导入或导出,不支持两者。以下表格对此进行了总结。
格式 |
导入 |
导出 |
---|---|---|
Konftel |
否 |
是 |
MH |
是 |
是 |
Mutt |
是 |
是 |
Newsbeuter |
是 |
是 |
Seltzer |
是 |
否 |
VoIP.ms |
是 |
否 |
Python |
否 |
是 |
Custom |
否 |
是 |
对于导入,命令行程序期望您只从一种格式转换为bguo。在导出时合并多个格式,请使用bguo.parse中的函数编写自定义合并程序。我为此做过一次电子邮件地址(MH)和电话号码(VoIP.MS)的转换;请参阅examples/merge.py。
导出工作流程
让我们将导出分为两种类型。
将STDOUT发送到配置文件。
将STDOUT直接发送到另一个程序。
前者类型的一个示例是MH格式;我运行以下命令,当我在编写电子邮件时,我的联系人是可用的。
bguo export ./my-contacts mh > ~/mh/aliases
后者类型的一个示例是将通用电话号码导出连接到会话初始化协议(SIP)客户端;我可以使用以下命令给自己打电话。
pjsua "$(bguo export ./thomas.levine custom 'sip:{phone-numeric}@paris.voip.ms')"
项目详情
bguo-0.2.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8d974c8c569ac7a53597a76e16381f42b40a43d5be5fea70a07c4cb8bf1415b1 |
|
MD5 | 944acb9424bef35a49cd3934756c35d4 |
|
BLAKE2b-256 | bd3304ec0c51dc0ff3c32001266e0864e0c7729bd0f19149e20cc0bec434db35 |