为 iPhone 英文环境添加拼音字段索引联系人 py 版

2012-12-18 00:04:28 +08:00
 yangzh
英文环境,中文联系人不能按拼音排序。

看到 http://www.v2ex.com/t/55077 的方法,但是 vcard 格式似乎不是很兼容。

这里有一个 py 版本的加拼音字段的程序,兼容于 itools 导出的 vcard 文件:

https://gist.github.com/4318816
11057 次点击
所在节点    iPhone
5 条回复
hpyhacking
2012-12-19 10:49:02 +08:00
我使用的是Mac系统自带Contacts导出的,格式会略有差异,逻辑很简单,全部文本原样输出,只是在FN后面检查一下有没有拼音的两个字段,如果有跳过,如果没有,添加拼音的两个字段(如果只有名或者姓就添加一个LAST的字段)。

如果用iTools就无能为力了,没Windows。

没用过Python,但67行代码确实够多的。
yangzh
2012-12-22 00:50:49 +08:00
@hpyhacking 其实就是没有mac系统。于是那个 ruby 版本的东西我用不了,自己弄个 py 版的 win 和 linux 下跑。也没有用 itunes 来导出(不清楚如何导出)。于是我没有样本知道 contacts 的格式是怎样的。至于 67 行代码,那是因为我的思路很蠢:转成列表的列表来处理,而且不想用高级特性;看起来我觉得还是挺清晰的。
hpyhacking
2012-12-22 21:50:36 +08:00
@yangzh ruby也可以在windows和linux下跑的很好。
yangzh
2012-12-23 00:22:26 +08:00
@hpyhacking 不是 ruby 的问题,是通讯录格式的问题。没有 mac 就没有 contacts 这个程序来导出通讯录,就不知道 contacts 导出通讯录的精确格式是怎样的。
hpyhacking
2012-12-23 07:52:03 +08:00
@yangzh 其实我的程序不太关心具体格式,我只是在看拼音的两个字段(FIRST和LAST)有没有顺利出现在相应的位置上,Mac上Contacts应用程序导出的vcard文件,拼音两个字段是紧接着FN字段出现的,这就是我的判断依据,其他的都是原样输出。

另外如果你的联系人数据是通过iCloud同步的,你也可以试试Web上iCloud的Contacts导出vcard联系人,看了一下你给出的sample数据,感觉iTools给出的格式略微复杂一些。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/55173

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX