基于文件的联系人管理

bguo的Python项目详细描述


基于文件的联系人管理

概念

每个联系人对应于bguo目录中的单个文件。 应在此目录中编辑联系人信息,然后导出 以供其他程序使用的各种输出格式。他们也可以 大致导入到此目录,但您必须校对 结果:进口商的目的是一次性进口,而不是 与其他程序定期同步。

就我们而言,联系人是一个名字的东西。 人员、邮件列表和组织都可以 联络。bguo没有对联系人进行分组的特殊功能。

bUO联系人文件格式

下面是一个联系人文件的示例。

name: Thomas Levine
email: sngmscrmrchroh@thomaslevine.com
phone: 8835 1000 990 2082
x-favorite-color: pink

联系人文件格式与电子邮件类似 (RFC-5322互联网消息) 除了以下变化。

  • 标题名称不同。(见下文。)
  • 换行符不需要包含回车符; 可以用crlf或lf断线。
  • 标题中可以包含非ascii数据;mime编码的单词语法是 可选。
  • 消息正文必须为空。

联系人文件可以包含以下任何不区分大小写的字段 任何以“x-”或“x-”开头的字段。

名称
姓名、邮件列表、组织和C.
拉丁语名称
与“name”相同,但在输出不接受“name”时使用 格式化,因为它使用不同的字母表
电话
电话号码
电子邮件*
电子邮件地址
进给*
新闻提要地址,例如rss或atom提要
网络
网址
发布
邮政地址

如果存在任何其他字段,bguo将报告错误。 标有“*”的字段可以包含多次; 其他字段只能包含一次。

用法

安装

pip3 install bguo

seltzer导入程序有一个特殊的依赖项。如果你需要的话 导入程序,按此方式安装以确保满足依赖项。

pip3 install ‘bguo[seltzer]’

帮助

bguo -h

示例与包一起分布在“examples”目录中。 pip下载包,但您可以下载包 from PyPI,你可以下载 开发版本 from 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)使用过的格式。 让我们把格式分成两组。第一组格式 用于与其他软件的特定集成。

kontel
Konftel 300IP电话簿文件
mh
MH别名文件
羊肉
Muttalias_file
新闻服务器
Newsbeuter~/.newsbeuter/urls
塞尔策
Seltzer CRM成员列表(/?q=members
VOIPMS
VoIP.ms电话簿导出

第二类是通用出口,可能有助于 你自己的出口。

python(默认值)
python字符串表示,作为dict列表,每个联系人一个dict
自定义
您自己的格式,指定为python format string, 使用可以用bguo format子命令检查的字段

格式参数包括联系人文件中的所有原始字段 格式(名称、拉丁名和C)和以下派生字段。

电话号码
删除非数字字符的“phone”(电话)字段中的电话号码
后格式化
来自“post”字段的邮政地址,格式为包含在 带有联系人姓名或标识符和斜线的字母 替换为换行符。

对于大多数格式,只支持导入或导出, 不是两者都有。下表对此进行了总结。

FormatImportExport
KonftelNoYes
MHYesYes
MuttYesYes
NewsbeuterYesYes
SeltzerYesNo
VoIP.msYesNo
PythonNoYes
CustomNoYes

对于导入,命令行progr我希望你从 只有一种格式。要在导出期间合并多个格式, 用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')"

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Android Java在活动之间传递值   java当实体中存在关系时,我可以只使用实体的id而不是从DB中获取实体吗?   bouncycastle Java运行SSHD服务器错误未找到类定义   java SWT/Swing>Threads n'Hell   java多线程数据库读取   java如何在Eclipse中轻松提交Git   java在哪里可以找到字符串相等比较的一组特定排序规则?   无连接表的java单向单域关系   java扩展三角文件   java spring。杰克逊。序列化。failonemptybeans   java无法加载请求的类:oracle。jdbc。驾驶员OracleDriver   java通过数组进行索引循环并打印出元素?   找不到eclipse错误类中的java提交Hadoop作业   Java:随机设定种子   java片段、异步任务和侦听器   java在分号后使用{}