Skip to main content

基于 CardDAV 的通讯录工具

项目描述

pyCardDAV是一个简单易用的CardDAV CLI 客户端。它内置了对 mutt 的query_command的支持,但也可以很好地单独运行(以及与其他 MUA 一起使用)。

pyCardDAVpycardsyncer(一个用于将 CardDAV 资源同步到本地数据库的程序)和pc_query(一个用于查询本地数据库的程序)组成。pyCardDAV是一些丑陋的python代码(实际上,它不再 那么糟糕了……),它把vobjectlxmlrequestspysqlite结合在一起。

特征

(或者更确切地说:限制)

  • pyCardDAV仅针对 davical、owncloud 和 sabredav 进行测试

  • pyCardDAV可以直接从mutt导入发件人地址

  • pyCardDAV可以备份和导入到/从 .vcf 文件

  • pyCardDAV可以直接从 mutt 添加电子邮件地址

  • pyCardDAV只理解 VCard 3.0

  • pyCardDAV尚不兼容 python 3

反馈

如果pyCardDAV适合您,或者更重要的是,如果它不适合您,请务必提供反馈。您可以通过 pycarddav (at) lostpackets (dot) de 的电子邮件、geier (at) jabber (dot) lostpackets (dot) de 的 jabber/XMPP 或通过github与我联系

安装

您可以从上面的下载链接下载pyCardDAV,也可以从 git(在 github)查看。然后通过执行python setup.py install安装pyCardDAV。如果你觉得更有冒险精神,你可以随时在 github 上 开发分支,它应该始终处于可用状态。pyCardDAV 也可以在pypi上使用,可以通过 pip install pycarddav 或 easy_install pycarddav 安装。

复制并编辑提供的 pycard.conf.sample 文件(默认位置是 ~/.config/pycard/pycard.conf)。如果您不想在配置文件中以明文形式存储密码,pyCardDAV会在同步时要求输入密码。

确保已安装 sqlite3(通常默认可用)、vobject、lxml(>2)、requests (>0.10)、urwid (>0.9) pyxdg。python 2.6 的用户还需要安装 argparse。

到目前为止, pyCardDAV已经成功地在最新版本的 FreeBSD、NetBSD、Debian 和 Ubuntu 上使用 python 2.6 和 2.7 以及针对 davical 0.9.9.4 - 1.0.1 进行了测试(以后的版本应该也可以,但 0.9.9.3 和更早的版本不要' t 似乎工作),owncloud 和 sabredav。

用法

pyCardDAV由三个脚本组成,pycardsyncer用于将本地数据库与服务器同步,pc_query用于与本地数据库交互,pycard-import用于从 mutt 导入电子邮件地址。

执行 pycardsyncer 将您的地址同步到本地数据库。您可以使用以下方法测试 pc_query:

% pc_query searchstring

默认情况下, pyCardDAV仅打印与搜索字符串匹配的联系人的姓名、电子邮件地址和电话号码,以查看所有 vCard 属性使用“-A”选项。

对于 mutt 等,pyCardDAV也可以只打印 mutt 友好格式的电子邮件地址(使用“-m”选项)。编辑你的 mutt 配置,让 query_command 使用 pc_query:

来自 .muttrc 的示例:

set query_command="/home/username/bin/pc_query -m '%s'"

当前版本具有实验性写入支持。如果您想对此进行测试,请首先确保您有数据备份(但请 不要依赖pc_query –backup来完成此操作),然后您可以输入以下代码:

write_support = YesPleaseIDoHaveABackupOfMyData

在您的配置文件中(需要放入您要启用写入支持的每个帐户部分)。

您还可以导入、删除或备份单张卡片(备份也适用于整个收藏,但请不要依赖它)。请参阅pc_query –help 了解如何使用这些以及更多选项。

pycarddav可以配置为使用不同的 CardDAV 帐户,有关详细信息,请参阅示例配置。可以使用所有三个实用程序的-a account_name指定一个帐户。如果未选择任何帐户,则所有搜索和同步操作都将使用所有配置的帐户,而在添加卡时,将使用第一个配置的帐户。

密钥环支持

pycarddav支持keyring,(版本> = 3.0)。要使用它,您需要通过以下方式向密钥环添加密码:

keyring set pycarddav:$account $username

其中 $account 是配置文件中配置的帐户名称,$username 是相应的用户名(然后没有为该帐户配置密码)。有关配置密钥环的更多详细信息,请查看其文档

从 Mutt 导入地址

您可以直接将发件人地址从 mutt 添加到pyCardDAV,将它们添加到现有联系人或创建新联系人。如果启用了写入支持,它们将在下一次同步期间上传到服务器上。

来自 .muttrc 的示例:

macro index,pager A "<pipe-message>pycard-import<enter>" "add sender address to pycardsyncer"

SSL

如果您使用 SSL 与您的 CardDAV 服务器交互(您可能应该)并且您没有由您的操作系统供应商信任的 CA 签名的证书(例如自签名证书或由 CAcert 签名的证书),您可以将verify设置为CA 根文件的路径(必须是 pem 格式)。如果您不希望将任何证书检查设置false禁用任何ssl 证书检查(不建议这样做)。

解决冲突

如果发生冲突编辑(本地 VCard 更改,而远程 VCard 也更改),pycarddav 通过用远程 VCard 覆盖本地 VCard 来“解决”(这意味着在这种情况下本地编辑丢失)。更频繁地同步可以防止这种情况。

附加信息

目前,没有显示没有值的 VCard 属性。

此外,您应该能够将pyCardDAV的 CardDAV 实现用于其他项目。请参阅pycarddav/carddav.py中的CardDAV类。

根据 RFC 6352,由 pyCardDAV 导入或更改的所有 VCard 将自动获得一个随机 UID(如果它们还没有),因为某些 CardDAV 服务器,例如 Owncloud 需要这些。

Debian Wheezy 快速入门

apt-get install python-requests python-vobject python-pytest python-urwid python-lxml python-pyxdg sudo python setup.py install mkdir -p ~/.config/pycard chmod 700 ~/.config/pycard cp pycard.conf。示例 ~/.config/pycard/pycard.conf

执照

pyCardDAV在 Expat/MIT 许可下发布:

版权所有 (c) 2011-2014 Christian Geier 和贡献者

特此免费授予任何人获得本软件和相关文档文件(“软件”)的副本,以不受限制地处理本软件,包括但不限于使用、复制、修改、合并的权利、发布、分发、再许可和/或出售本软件的副本,并允许向其提供本软件的人这样做,但须符合以下条件:

上述版权声明和本许可声明应包含在本软件的所有副本或大部分内容中。

本软件按“原样”提供,不提供任何形式的明示或暗示保证,包括但不限于对适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任承担任何责任,无论是在合同、侵权或其他方面,由本软件或本软件的使用或其他交易引起或与之相关。软件。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pyCardDAV-0.7.0.tar.gz (36.7 kB 查看哈希

已上传 source