LINUX.ORG.RU

DoubleContact 0.1

 , , ,


7

7

DoubleContact - это автономный и независимый от DE редактор контактов, преимущественно ориентированный на редактирование, сравнение и слияние телефонных книг.

Возможности программы:

  • загрузка адресных книг форматов VCF (поддерживаются vCard 2.1 и 3.0, а также возможность загрузки каталога, содержащего множество файлов VCF, как единой адресной книги), UDX (Philips Xenium), MPB (резервная копия MyPhoneExplorer) и сохранение адресных книг в указанных форматах;
  • просмотр контактов в табличном виде, с фильтрацией и сортировкой;
  • двухпанельный режим просмотра двух адресных книг, с возможностью копирования и перемещения групп контактов;
  • редактирование отдельных записей;
  • групповые операции над выбранными записями:
    • перестановка имени и фамилии;
    • разделение имён;
    • перевод телефонных номеров в международный формат (например, замена 8 на +7 для России, аналогичные преобразования для некоторых других стран);
    • разделение контакта по телефонам для экспорта на SIM-карту;
    • слияние контактов;
    • удаление спецсимволов;
    • генерация форматированного (полного) имени;
  • сравнение двух адресных книг с подсветкой совпадающих, несовпадающих и частично совпадающих контактов;
  • интерактивное слияние контактов по результатам сравнения.

Программа написана на языке C++ с применением библиотек Qt 4/5 и распространяется по лицензии GNU General Public License версии 2 или более поздней.

>>> Руководство пользователя

>>> Страница загрузки

>>> Исходники на GitHub

>>> Подробности

★★★★★

Проверено: jollheef ()

Экспорт контактов из всяческих сервисов (OwnCloud, Гугл, Эпл) поддерживается? А импорт?

MrClon ★★★★★ ()

Звучит как «двойное проникновение»

anonymous ()

Спасибо! Нужная в деловой среде вещь. А то что-то совсем не видно нормальных редакторов/просмотрщиков контаков под линь.

cheshire_cat ★★ ()
Ответ на: комментарий от MrClon

Экспорт контактов из всяческих сервисов (OwnCloud, Гугл, Эпл) поддерживается? А импорт?

Пока нет. Мысли о добавлении этой функции в будущем имеются, но скорее всего, не раньше, чем будет сделана поддержка CSV.

Вообще, одной из целей написания программы было дать пользователю возможность обойтись БЕЗ подобных сервисов. Что, разумеется, не исключает добавления работы с ними в будущем.

hobbit ★★★★★ ()
Ответ на: комментарий от RazrFalcon

И ни одного скрина...

Один есть - если перейти по ссылке «Подробности» и чуть пролистнуть. Там как раз показан вид главного окна при сравнении адресных книг в двухпанельном режиме. Но чувствую, что надо будет добавить.

hobbit ★★★★★ ()
Ответ на: комментарий от cheshire_cat

Нужная в деловой среде вещь.

Для именно деловой среды, скорее всего, понадобится добавить побольше форматов (например, LDIF, хотя бы на импорт). Планы такие есть. Сейчас она больше всё-таки заточена под упорядочивание информации с личных гаджетов.

А то что-то совсем не видно нормальных редакторов/просмотрщиков контаков под линь.

Их и под винду, ЕМНИП, не очень много. Например, тот ужас, который по умолчанию ассоциирован в Windows 8 с файлами vcf, не очень дружит с русскими буквами и вместо отображения списка сразу открывает диалоговое окно на каждый (!) контакт в файле. Т.е. если в файле 150 контактов (а для vcf, скачанного со смартфона, это совершенно штатная ситуация), пользователю придётся 150 раз нажать Esc - ну или снять задачу через диспетчер. На этом фоне штатные адресные книги Gnome и KDE выглядят довольно пристойно. Правда, функциональность у них только базовая, и они слишком привязаны к своим DE.

hobbit ★★★★★ ()
Ответ на: комментарий от hobbit

Гуглоябловские облака это зачастую самый простой способ импорта/экспорта контактов из/в телефон

MrClon ★★★★★ ()
Ответ на: комментарий от GaIEoAUatIC

Osmo это органайзер, и он вроде как не умеет проводить сравнительные манипуляции с контактами.

cheshire_cat ★★ ()
Ответ на: комментарий от GaIEoAUatIC

Osmo рулез

Там уже починили работу хотя бы с VCF (могли и починить, я давно на него не смотрел)? Не говоря про другие форматы и всякие специальные задачи?

Хотя сам по себе, как «компактная программа, ничего лишнего», Osmo мне очень даже понравился. Более того, если кто хочет сделать аналог DoubleContact на GTK, имеет смысл взять за основу Osmo и допилить нужное.

hobbit ★★★★★ ()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от hobbit

Да, да и ещё раз да. Безумно не хватает какой-нибудь стационарной базы данных, в которой можно было бы проводить различные манипуляции контактов, синхронизации с другими мобильными устройствами и т.д. Вот например тот момент, когда есть два телефона (не симки, а именно аппараты), один из которых предназначен для ведения дел, а второй для личного использования. Я не пользуюсь облачными фишками хранения и синхронизацией, ну не доверяю им, всё своё держу только при себе, без доступа к сети. Вот и приходится вручную вносить контакты на два телефона... Ах, если бы DC умел в базу данных...

Кстати, в текущей части проги не хватает сортировки списка по фамилиям «а-я», например. А то мои все 233 контакта как-то салатом идут). Самый левый столбец с нумерацией строк вообще непонятно к чему привязан. Но а в целом на фоне остального очень годно: http://i90.fastpic.ru/big/2017/0205/a4/7a849f4cfc4187674646df8d4ed0c6a4.png

cheshire_cat ★★ ()
Ответ на: комментарий от cheshire_cat

Спасибо за скрин!

Кстати, в текущей части проги не хватает сортировки списка по фамилиям «а-я», например. А то мои все 233 контакта как-то салатом идут).

Странно. А включить сортировку (F4) и пощёлкать по заголовку столбца «Фамилия» не пробовал? Состав столбцов в настройках можно отрегулировать, если что.

Ах, если бы DC умел в базу данных...

В качестве локального аналога базы данных можно взять какой-нибудь мега-vcf и держать его на ПК. Программа запоминает последний открытый файл, если что. И даже есть список недавних файлов, как в некоторых текстовых редакторах.

И на всякий случай напомню, что правую панель главного окна можно отключить, если она на данный момент не нужна.

Самый левый столбец с нумерацией строк вообще непонятно к чему привязан.

Он чисто информационный, да. Возможно, подумаю над его отключением...

hobbit ★★★★★ ()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от hobbit

Да, после F4 работает. Я просто сразу машинально по столбцу щёлкнул, думал оно сработает автоматом). Сейчас просто не дома, поэтому взглянул на DC одним глазом. Уже вечером буду разбираться, скажу только что годная вещь, которой очень нехватало). Спасибо!

По поводу столбца - вместо него подошла бы какая-нибудь строка с итоговым количеством контактов (ради информативности). А так, я полагаю что нумерация в столбце никакой нагрузки не несёт, и при изменении списка контактов всё равно перестраивается.

cheshire_cat ★★ ()

Отличная вещь, судя по описанию, а синхронизация с учётками в интете - имеется?

pon4ik ★★★★★ ()
Ответ на: комментарий от cheshire_cat

В программе, кстати, и отдельное окно статистики есть, через меню вызывается.

hobbit ★★★★★ ()

Хм, не слышал про Coverity Scan, попробую-ка.

orm-i-auga ★★★★★ ()
Ответ на: комментарий от hobbit

Сам я ленивая задница, но предполагаю, что синхронизация с гугловской учёткой резко повысила бы целевую аудиторию.

Для меня например основной юзекейс был бы как раз сгонять воедино базу именно в гугловскую учётку.

pon4ik ★★★★★ ()

Нужная программка. Присоединяюсь к жаждущим поддержки гуглоконтактов etc.

slimblyandysh ()

Было бы здорово иметь возможность делать импорт/экспорт гугло- и эпплоконтактов.

sT331h0rs3 ★★★★★ ()
Ответ на: комментарий от MrClon

Кстати, если я благополучно дозрею до этого - что лучше использовать в качестве экспериментальной базы - OwnCloud или Nextcloud? Или сейчас это однохренственно?

hobbit ★★★★★ ()
Ответ на: комментарий от orm-i-auga

Попробуй, забавная штука. И она для своей работы даже не просит писать в исходниках «Dear Coverity Scan...»

hobbit ★★★★★ ()
Ответ на: комментарий от hobbit

А рядом с баннером Coverity Scan на github, стоит баннер build.passing, если по нему кликнуть то открывается изображение самого этого баннера.

anonymous ()
Ответ на: комментарий от hobbit

ХЗ, Nextcloud не использовал. OwnCloud по идее известнее, значит чаще используется.

MrClon ★★★★★ ()
Ответ на: комментарий от hobbit

С точки зрения поддержки Carddav однохерственно.

Aceler ★★★★★ ()

Нужно. Подобный софт под онтопиком в большом дефиците.

А киллер-фичу

возможность загрузки каталога, содержащего множество файлов VCF, как единой адресной книги

мы в последний раз видели в составе kde3, упоминание которого у малолетних kde4-дебилов вызывает неконтролируемые приступы гыгыканья.

Релевантный тред: www.linux.org.ru/forum/desktop/11608370

P.S. Сам тем временем ушёл в монастырь org-mode и храню всё в одном plaintext-файле.
А org-agenda заботливо подсвечивает дни рождения в календаре.

aidaho ★★★★★ ()

По ссылке:

Статьи и обзоры: * Мирный кач в WoW 1-5 уровни.

Единственная статья.

anonymous ()
Ответ на: комментарий от aidaho

Нужно-пренужно! Но, Шура! Пилите, пожалуйста, работу с облаками. Ибо маргиналам, мне подобным сие важно, а самому пилить - рукоблудие пальцы погнуло.

adstudio ()
Ответ на: комментарий от hobbit

Некстклоуд это старая команда программистов-основателей овнклоуда, свалившая от припухших маркетолухов, так что он православные.

anonymous ()

где вы были 6 лет назад? я тогда 380 контактов вручную редактировал gedit'ом в этом xml'е >_<

eR ★★★★★ ()

1. Ошибки: Вот экспорт IceDove (Thunderbird) в формате vcf:

begin:vcard
fn;quoted-printable:=D0=98=D0=B2=D0=B0=D0=BD =D0=98=D0=B2=D0=B0=D0=BD=D0=BE=D0=B2  
n;quoted-printable;quoted-printable:=D0=98=D0=B2=D0=B0=D0=BD=D0=BE=D0=B2;=D0=98=D0=B2=D0=B0=D0=BD
email;internet:ivanivanov@mail.ru
version:2.1
end:vcard

При импорте quoted-printable не декодируется.

В csv:

Имя,Фамилия,Отображаемое имя,Псевдоним,Адрес электронной почты,Альтернативный адрес электронной почты,Интернет-пейджер,Рабочий телефон,Домашний телефон,Номер факса,Номер пейджера,Номер мобильного телефона,Адрес,Адрес 2,Город,Штат,Почтовый индекс,Страна,Адрес (раб.),Адрес 2 (раб.),Город (раб.),Штат (раб.),Почтовый индекс (раб.),Страна (раб.),Должность,Отдел,Организация,Веб-страница 1,Веб-страница 2,Год рождения,Месяц рождения,День рождения,Прочее 1,Прочее 2,Прочее 3,Прочее 4,Заметки,
Иван,Иванов,Иван Иванов  ,,ivanivanov@mail.ru,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Импорт по номерам полей. Не попадает. Как правильно сделать непонятно.

В ldif:

dn:: Y2490JjQstCw0L0g0JjQstCw0L3QvtCyICAsbWFpbD1pdmFuaXZhbm92QG1haWwucnU=
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
objectclass: mozillaAbPersonAlpha
givenName:: 0JjQstCw0L0=
sn:: 0JjQstCw0L3QvtCy
cn:: 0JjQstCw0L0g0JjQstCw0L3QvtCyICA=
mail: ivanivanov@mail.ru
modifytimestamp: 0

Импорта, экспорта нет.

2. Спасибо за программу. Надеюсь, что в будущем получится её использовать.

anonymous ()

Программа написана на языке C++ с применением библиотек Qt 4/5

Это победа! Пошел качать.

anonymous ()
Ответ на: комментарий от anonymous

Работа с CSV и LDIF пока в планах. Точнее, некая экспериментальная поддержка CSV в исходниках имеется, но она настолько э... экспериментальная, что я его не стал включать в видимый список поддерживаемых форматов (читается только CSV от телефонов Explay, запись вообще не работает, по-хорошему, там надо поддержку разных профилей CSV делать - чем я и собираюсь в ближайшее время заняться).

А вот с VCF уже интереснее. Quoted-printable у меня, конечно, поддерживается, но судя по приведённому примеру, в тегах N и FN опущено имя атрибута ENCODING=. Опущенный TYPE= я встречал (например, в VCFах со старых сонэриков, они у меня читаются нормально), а вот чтобы ENCODING - с таким сталкиваюсь впервые. :( Буду исправлять.

Ну и спасибо за наводку в сторону Thunderbird. То, что он умеет LDIF, это я знал, а вот на то, что он может писать ещёи VCF - как-то не приметил.

А Вы программу из исходников собирали, или воспользовались сборкой, и если да, то какой?

hobbit ★★★★★ ()
Ответ на: комментарий от anonymous

Хорошо, попробую поправить пока на уровне исходников. Для отдельного релиза всё же стоит побольше исправлений набрать...

hobbit ★★★★★ ()
Ответ на: комментарий от hobbit

Для csv в профиле нужно иметь: 1. Карта соответствия номеров полей 2. Символ разделителя полей 3. Символ квотирования 4. Кодировка 5. Номер первой строки данных для импорта 6. Наличие заголовочной строки для экспорта

Вполне влезает в простой текстовый файл.

Например:


[map]
n=1
ln=2
fn=3
email=5

[cfg]
sep=','
quot='"'
importenc='utf-8'
exportenc='koi-8'
importbegin=1
exportheader=yes 

anonymous ()
Ответ на: комментарий от anonymous

Ах. если бы всё было так просто...

Нет, для импорта частных CSV, которые генерируются другими программами и телефонами, такая схема сойдёт. Но ни один из тех вариантов, которые я видел, не является vCard-полным. А вот если задаться задачей сохранить в CSV всё, что заполнено в контакте...

Начать с того, что в контакте может быть произвольное число телефонов. Каждому из них может быть присвоен либо стандартный тип из RFC, либо комбинация этих стандартных типов. Конечно, в большинстве случаев тип выбирается из набора (home, work, cell, voice), один из которых может комбинироваться с типом «предпочтительный». Но никто не запрещает и другие произвольные комбинации. Ещё более запутывает ситуацию то, что реально почти любое современное устройство с тем же Андроидом на борту позволяет задать и нестандартные типы.

Аналогичная ситуация с емейлами, только для них нестандартные типы разрешены прямо в RFC. Почтовых адресов тоже может быть несколько.

А вот теперь подумаем, как всю эту хреновину (это же ОДИН контакт) вместить в ОДНУ строчку CSV так, чтобы файл оказался читаемым как для машины, так и для человека, и при этом обратимым. Задача нетривиальная, у меня в голове по крайней мере два алгоритма её реализации, и ни один из них не идеален.

(Под RFC я имел в виду, в основном, RFC 2426, регламентирующий vCard 3.0. Вообще уже давно появился vCard 4.0, но в него мало кто пишет - в обороте либо 3.0, либо 2.1, причём с годом выпуска аппарата номер версии коррелирует крайне слабо.)

hobbit ★★★★★ ()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от cheshire_cat

Offtopic

Не закрывайте сенситивные данные размытием, пожалуйста, закрывайте монолитными черными прямоугольниками. А то кое-что видно прямо невооруженным глазом. А все остальное можно будет легко восстановить.

slvrn ★★ ()
Ответ на: комментарий от anonymous

Кстати, я понял, почему vcf из Thunderbird прошёл мимо меня. В стареньком 24.5.0, который у меня на ноуте, для экспорта поддерживались только ldif, csv и tsv. В Icedove из Debian Jessie уже есть и vcf, погоняю его...

hobbit ★★★★★ ()
Ответ на: комментарий от anonymous

Вот экспорт IceDove (Thunderbird) в формате vcf

Подправил, теперь файл vcf из моего IceDove загружается нормально. Он, кстати, во многих отношениях необычен, например, присутствуют пустые строки между контактами - но они-то у меня и раньше корректно игнорировались...

hobbit ★★★★★ ()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

Большое спасибо. Но всплыла ещё одна засада. Рвёт строки.

begin:vcard
fn;quoted-printable:=D0=AD=D0=BA=D0=B2=D0=B8=D0=BB=D0=B8=D0=B1=D1=80=D0=B8=D1=81=D1=82=D1=83=D0=
	=BD =D0=AD=D0=BA=D0=B2=D0=B8=D0=BB=D0=B8=D0=B1=D1=80=D0=B8=D1=81=D1=82=D1=
	=87=D0=B5=D0=BD=D0=BA=D0=BE=D0=B2
n;quoted-printable;quoted-printable:=D0=AD=D0=BA=D0=B2=D0=B8=D0=BB=D0=B8=D0=B1=D1=80=D0=B8=D1=81=D1=82=D1=83=D0=
	=BD =D0=AD=D0=BA=D0=B2=D0=B8=D0=BB=D0=B8=D0=B1=D1=80=D0=B8=D1=81=D1=82=D1=
	=87=D0=B5=D0=BD=D0=BA=D0=BE=D0=B2;=D0=AD=D0=BA=D0=B2=D0=B8=D0=BB=D0=B8=D0=B1=D1=80=D0=B8=D1=81=D1=82=D1=83=D0=
	=BD
email;internet:ekvilibristunekvilibritchenkov@veryverylongnamesite.org
version:2.1
end:vcard

После загрузки и сохранения doublecontact, результат:

BEGIN:VCARD
VERSION:2.1
N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=D0=AD=D0=BA=D0=B2=D0=B8=D0=BB=D0=
=B8=D0=B1=D1=80=D0=B8=D1=81=D1=82=D1=83=EF=BF=BD	=EF=BF=BD =D0=AD=D0=BA=D0=
=B2=D0=B8=D0=BB=D0=B8=D0=B1=D1=80=D0=B8=D1=81=D1=82=EF=BF=BD	=EF=BF=BD=D0=
=B5=D0=BD=D0=BA=D0=BE=D0=B2;=D0=AD=D0=BA=D0=B2=D0=B8=D0=BB=D0=B8=D0=B1=D1=
=80=D0=B8=D1=81=D1=82=D1=83=EF=BF=BD	=EF=BF=BD
FN;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=D0=AD=D0=BA=D0=B2=D0=B8=D0=BB=
=D0=B8=D0=B1=D1=80=D0=B8=D1=81=D1=82=D1=83=EF=BF=BD	=EF=BF=BD =D0=AD=D0=BA=
=D0=B2=D0=B8=D0=BB=D0=B8=D0=B1=D1=80=D0=B8=D1=81=D1=82=EF=BF=BD	=EF=BF=BD=
=D0=B5=D0=BD=D0=BA=D0=BE=D0=B2
EMAIL;INTERNET:ekvilibristunekvilibritchenkov@veryverylongnamesite.org
END:VCARD

Причина: https://dxr.mozilla.org/comm-central/source/mailnews/addrbook/src/nsVCardObj.cpp?q=%2Bfunction%3A%22writeQPString%28OFile+*%2C+const+char+*%29%22&redirect_type=single#1039

Экспорт в LDIF из Thunderbird выглядит более чистым.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.