跳转到主要内容

基于文件的联系人管理

项目描述

基于文件的联系人管理

概念

每个联系人对应于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

导出工作流程

让我们将导出分为两种类型。

  1. 将STDOUT发送到配置文件。

  2. 将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 (12.2 kB 查看哈希值)

上传时间 源代码

支持