Пробую интегрировать работу с форматом vCard (RFC 6350) в Guile-ICS, поскольку этот формат крайне похож на iCalendar (RFC 5545.) Хочу ещё добавить также конвертацию табличных данных в vCard, чтобы массово можно было создавать карточки контактов на основе некой адресной книги (актуальная задача по работе сейчас.)
Для чтения табличных данных как раз можно использовать Guile-DSV. ^_^
Пример данных vCard:
Пример описания содержимого vCard утилитой
Режим "pretty print":
#projects #guile #ics #parser #rfc5545 #rfc6350
Для чтения табличных данных как раз можно использовать Guile-DSV. ^_^
Пример данных vCard:
BEGIN:VCARD
VERSION:4.0
UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
FN;PID=1.1:J. Doe
N:Doe;J.;;;
EMAIL;PID=1.1:jdoe@example.com
EMAIL;PID=2.1:boss@example.com
TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
TEL;PID=2.1;VALUE=uri:tel:+1-666-666-6666
CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
END:VCARD
Пример описания содержимого vCard утилитой
ics
, которая идёт в комплекте к Guile-ICS:$ ics describe vcard.vcf
;;; VCARD
;;; CLIENTPIDMAP (TEXT: Text type: RFC5545, 3.3.11)
;;; 1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
;;; TEL (TEXT: Text type: RFC5545, 3.3.11)
;;; tel:+1-666-666-6666
;;; VALUE uri
;;; PID 2.1
;;; TEL (TEXT: Text type: RFC5545, 3.3.11)
;;; tel:+1-555-555-5555
;;; VALUE uri
;;; PID 1.1
;;; EMAIL (TEXT: Text type: RFC5545, 3.3.11)
;;; boss@example.com
;;; PID 2.1
;;; EMAIL (TEXT: Text type: RFC5545, 3.3.11)
;;; jdoe@example.com
;;; PID 1.1
;;; N (TEXT: Text type: RFC5545, 3.3.11)
;;; Doe;J.;;;
;;; FN (TEXT: Text type: RFC5545, 3.3.11)
;;; J. Doe
;;; PID 1.1
;;; UID (TEXT: Text type: RFC5545, 3.3.11)
;;; urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
;;; VERSION (TEXT: Text type: RFC5545, 3.3.11)
;;; 4.0
Режим "pretty print":
$ ics print vcard.vcf
BEGIN: VCARD
CLIENTPIDMAP: 1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
TEL;VALUE=uri;PID=2.1: tel:+1-666-666-6666
TEL;VALUE=uri;PID=1.1: tel:+1-555-555-5555
EMAIL;PID=2.1: boss@example.com
EMAIL;PID=1.1: jdoe@example.com
N: Doe;J.;;;
FN;PID=1.1: J. Doe
UID: urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
VERSION: 4.0
END: VCARD
#projects #guile #ics #parser #rfc5545 #rfc6350
GitHub
GitHub - artyom-poptsov/guile-ics: iCalendar/vCard parser for GNU Guile.
iCalendar/vCard parser for GNU Guile. Contribute to artyom-poptsov/guile-ics development by creating an account on GitHub.
❤1
Выпустил релиз Guile-ICS 0.4.0:
https://github.com/artyom-poptsov/guile-ics/releases/tag/v0.4.0
Анонс в списке рассылки GNU Guile:
https://lists.gnu.org/archive/html/guile-user/2022-10/msg00075.html
Основные изменения:
- Добавлена базовая поддержка формата vCard (RFC 6350), используемого для передачи контактных данных.
- Улучшена утилита командной строки
С помощью
Например, пусть у вас в файле
То из него можно получить легко контактные карточки через
Отправил также патч с обновлением Guile-ICS в GNU Guix:
https://mail.gnu.org/archive/html/guix-patches/2022-10/msg01846.html
#projects #guile #rfc5545 #rfc6350 #parser
https://github.com/artyom-poptsov/guile-ics/releases/tag/v0.4.0
Анонс в списке рассылки GNU Guile:
https://lists.gnu.org/archive/html/guile-user/2022-10/msg00075.html
Основные изменения:
- Добавлена базовая поддержка формата vCard (RFC 6350), используемого для передачи контактных данных.
- Улучшена утилита командной строки
ics
: теперь она лучше структуирована и поддерживает команды print
, describe
и convert
.С помощью
ics convert
теперь можно делать преобразование данных DSV (Delimiter-Separated Values) в iCalendar/vCard.Например, пусть у вас в файле
data.csv
есть следующие данные:ORG,TITLE,FN,EMAILКак можно видеть, первая строка таблицы содержит названия параметров карточки пользователя, тогда как каждая строка описывает по сути одну такую карточку.
Example Organisation,Programmer,Eva Luator,eva@example.org
Example Organisation,Programmer,Random J. Hacker,rjh@example.org
То из него можно получить легко контактные карточки через
ics convert
:$ ics convert data.csvЕсли вывод
BEGIN:VCARD
EMAIL:eva@example.org
FN:Eva Luator
TITLE:Programmer
ORG:Example Organisation
END:VCARD
BEGIN:VCARD
EMAIL:rjh@example.org
FN:Random J. Hacker
TITLE:Programmer
ORG:Example Organisation
END:VCARD
ics convert
перенаправить в файл, то получится файл с контактными данными. Потом этот файл можно загрузить в почтовый клиент, или приложение контактов в мобильном устройстве, и таким образом сделать массовую загрузку контактов (реальная задача, которая меня и сподвигла на реализацию этой возможности.)Отправил также патч с обновлением Guile-ICS в GNU Guix:
https://mail.gnu.org/archive/html/guix-patches/2022-10/msg01846.html
#projects #guile #rfc5545 #rfc6350 #parser
GitHub
Release v0.4.0 · artyom-poptsov/guile-ics
Version 0.4.0
👍1