用於聯絡人管理的三個開源工具

Kevin Sonney發表於2020-01-30

透過將聯絡人同步到本地從而更快訪問它。在我們的 20 個使用開源提升生產力的系列的第六篇文章中瞭解該如何做。

用於聯絡人管理的三個開源工具

去年,我在 19 天裡給你介紹了 19 個新(對你而言)的生產力工具。今年,我換了一種方式:使用你在使用或者還沒使用的工具,構建一個使你可以在新一年更加高效的環境。

用於聯絡人管理的開源工具

在本系列之前的文章中,我解釋瞭如何在本地同步你的郵件日曆。希望這些加速了你訪問郵件和日曆。現在,我將討論聯絡人同步,你可以給他們傳送郵件和日曆邀請。

abook

我目前收集了很多郵件地址。管理這些資料可能有點麻煩。有基於 Web 的服務,但它們不如本地副本快。

幾天前,我談到了用於管理日曆的 vdirsyncer。vdirsyncer 還使用 CardDAV 協議處理聯絡人。vdirsyncer 除了可以使用檔案系統儲存日曆外,還支援透過 google_contactscarddav 進行聯絡人同步,但 fileext 設定會被更改,因此你無法在日曆檔案中儲存聯絡人。

我在配置檔案新增了一塊配置,並從 Google 映象了我的聯絡人。設定它需要額外的步驟。從 Google 映象完成後,配置非常簡單:

[pair address_sync]
a = "googlecard"
b = "localcard"
collections = ["from a", "from b"]
conflict_resolution = "a wins"

[storage googlecard]
type = "google_contacts"
token_file = "~/.vdirsyncer/google_token"
client_id = "my_client_id"
client_secret = "my_client_secret"

[storage localcard]
type = "filesystem"
path = "~/.calendars/Addresses/"
fileext = ".vcf"

現在,當我執行 vdirsyncer discover 時,它會找到我的 Google 聯絡人,並且 vdirsyncer sync 將它們複製到我的本地計算機。但同樣,這隻進行到一半。現在我想檢視和使用聯絡人。需要 khardabook

khard search

為什麼選擇兩個應用?因為每個都有它自己的使用場景,在這裡,越多越好。khard 用於管理地址,類似於 khal 用於管理日曆條目。如果你的發行版附帶了舊版本,你可能需要透過 pip 安裝最新版本。安裝 khard 後,你需要建立 ~/.config/khard/khard.conf,因為 khard 沒有與 khal 那樣漂亮的配置嚮導。我的看起來像這樣:

[addressbooks]
[[addresses]]
path = ~/.calendars/Addresses/default/

[general]
debug = no
default_action = list
editor = vim, -i, NONE
merge_editor = vimdiff

[contact table]
display = first_name
group_by_addressbook = no
reverse = no
show_nicknames = yes
show_uids = no
sort = last_name
localize_dates = yes

[vcard]
preferred_version = 3.0
search_in_source_files = yes
skip_unparsable = no

這會定義源通訊簿(並給它一個友好的名稱)、顯示內容和聯絡人編輯程式。執行 khard list 將列出所有條目,khard list <some@email.adr> 可以搜尋特定條目。如果要新增或編輯條目,addedit 命令將使用相同的基本模板開啟配置的編輯器,唯一的區別是 add 命令的模板將為空。

editing in khard

abook 需要你匯入和匯出 VCF 檔案,但它為查詢提供了一些不錯的功能。要將檔案轉換為 abook 格式,請先安裝 abook 並建立 ~/.abook 預設目錄。然後讓 abook 解析所有檔案,並將它們放入 ~/.abook/addresses 檔案中:

apt install abook
ls ~/.calendars/Addresses/default/* | xargs cat | abook --convert --informat vcard --outformat abook > ~/.abook/addresses

現在執行 abook,你將有一個非常漂亮的 UI 來瀏覽、搜尋和編輯條目。將它們匯出到單個檔案有點痛苦,所以我用 khard 進行大部分編輯,並有一個 cron 任務將它們匯入到 abook 中。

abook 還可在命令列中搜尋,並有大量有關將其與郵件客戶端整合的文件。例如,你可以在 .config/alot/config 檔案中新增一些資訊,從而在 Nmuch 的郵件客戶端 alot 中使用 abook 查詢聯絡人:

[accounts]
  [[Personal]]
     realname = Kevin Sonney
     address = kevin@sonney.com
     alias_regexp = kevin\+.+@sonney.com
     gpg_key = 7BB612C9
     sendmail_command = msmtp --account=Personal -t
     # ~ expansion works
     sent_box = maildir://~/Maildir/Sent
     draft_box = maildir://~/Maildir/Drafts
    [[[abook]]]
        type = abook

這樣你就可以在郵件和日曆中快速查詢聯絡人了!


via: https://opensource.com/article/20/1/sync-contacts-locally

作者:Kevin Sonney 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章