Синхронизация закладок браузеров

В силу ряда причин у меня имеется три браузера, которыми я с той или иной интенсивностью пользуюсь. Это Firefox, Chromium и Opera. Естественно, хотелось бы иметь возможность без лишней мороки синхронизировать закладки между этими тремя браузерами, чтобы в каждом имелась актуальная версия закладок. Первым делом я задействовал Хрустальный Шар, но он мне показал исключительно сервисы онлайн. Я не хочу онлайн. Не доверяю. Хочу всё локально. Так родилась идея написать программу, которая бы и занималась синхронизацией под Linux. Данный текст не просьба, не жалоба, а попытка составить полное техническое задание на написание программы. Вариантов написания "сперва начнём, а там будет видно" я не приемлю. А как говорил мой знакомый программист на Си -- "правильная постановка задачи нуждается только в переводе на язык программирования". на чём это будет писаться? Не знаю. Думаю, что на Gambas. Но там посмотрим.

Итак, приступим.

Необходимо получить интерфейс с тремя полями. В каждое из них вводится расположение файла с закладками. Первое поле является полем браузера-донора (из него берём данные). Оставшиеся два поля для браузеров-акцепторов -- туда переносим данные. Работа программы для пользователя выглядит следующим образом: нажатие на кнопки, на экране прогресс-бар показывает процент выполнения, затем выводится рапорт о готовности. Важно предусмотреть возможность исключить некоторые данные в списке экспортируемых/удаляемых нашей программой. Например, Firefox имеет в закладках сайт mozilla.ru, который не обязательно отправлять остальным браузерам.

Работа программы представляется следующим образом. Сперва закладки из браузера-донора конвертируются в форматы остальных двух браузеров. Далее открываются файлы, где уже лежат закладки и производится проверка на наличие закладок, совпадающих с вновь вносимыми. Строки, совпадающие с уже имеющимися, игнорируются. Новые строки вносятся. Если у донора отсутствует ряд закладок, то необходимо их удалить и у акцепторов (должно настраиваться).

Необходимая информация:

1. Выясняем место хранения закладок во всех трёх браузерах

1.1 Firefox -- ~/.mozilla/firefox/какой-то бред/bookmarks.html;
1.2 Chromium -- ~/.config/chromium/Default/Bookmarks;
1.3 Opera -- ~/.opera/bookmarks.adr.

2. Выясняем формат хранения закладок во всех трёх браузерах

2.1 Firefox -- html;
2.2 Chromium -- JSON (прочитать здесь о парсинге);
2.3 Opera -- свой формат (пока не понял, как делать контрольные суммы).

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

Если у кого-то есть мысли по поводу алгоритмов считывания, парсинга и записи -- с интересом прочитаю. Короче -- давайте составим грамотную постановку, а уж на какой язык это переводить разберёмся по ходу дела.

+1
trubadur4ik - 4 Январь, 2012 - 12:37
Изображение пользователя trubadur4ik.

Так все ж браузеры поддерживают импорт/экспорт закладок в ХТМЛ, всё везде совместимо, никаких проблем не испытывал, это поможет избежать возможных проблем при конвертации форматов файла закладок Разве что подумать, как оттуда "выкинуть лишнее".

0
Vlad_W_1999 - 4 Январь, 2012 - 12:40

Вызывать каждый браузер, в нём вызывать экспорт, закрывать каждый браузер, парсить получившиеся файлы, вызывать браузеры, импортировать всё назад... Мне кажется, или это таки через задний проход?

0
trubadur4ik - 4 Январь, 2012 - 13:22
Изображение пользователя trubadur4ik.

Не нужно вызывать сам браузер полностью, нужен лишь менеджер закладок.
Может и кажется, а может и через проход.

0
Vlad_W_1999 - 4 Январь, 2012 - 17:13

Можно. Но того функционала, который я хочу, не получится.

0
dyug - 4 Январь, 2012 - 13:23

Если бы не упоминалась опера, я бы посоветовал хмарк, с настройкой своего (локального) сервера, благо там две команды.
Но вот опера... :-(

0
Vlad_W_1999 - 4 Январь, 2012 - 17:15

Я тоже об этом думал. И тоже споткнулся об оперу. Потому, собственно, появилась идея писать что-то своё. Но пока погряз в документации и голова начинает пухнуть уже.

0
dyug - 4 Январь, 2012 - 17:30

ну мне проще, я не оперун... :-)
Я оперофоб, скорее...
Ну НЕ НРАВИТСЯ она мне, ОЧЕНЬ не нравится.

0
Vlad_W_1999 - 4 Январь, 2012 - 17:47

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

0
Mikhail_LTS - 5 Январь, 2012 - 22:46
Изображение пользователя Mikhail_LTS.

Так все ж браузеры поддерживают импорт/экспорт закладок в ХТМЛ Смысл фразы первого коммента поможет дойти до истины возможно. Вот подумайте: есть горячие клавиши во всех браузерах... И,

Это примерный алгоритм: 1) открыть файл 1, файл 2, файл 3; 2) Копируем в буфер содержимое файла 1; 3) Вставляем содержимое буфера в файл 2 и файл 3; 4) Все сохраняем и закрываем.
0
Vlad_W_1999 - 6 Январь, 2012 - 15:32

Решение никуда не годится. Я не хочу запускать браузеры из своей программы.

Честно говоря, желание что-то делать уменьшается с каждым днём...

0
Mikhail_LTS - 6 Январь, 2012 - 16:18
Изображение пользователя Mikhail_LTS.

Да не надо браузеры запускать. Надо только то, что нужно записать туда, куда нужно (ведь изначально закладка - это ссылка на нужный адрес).

0
Vlad_W_1999 - 6 Январь, 2012 - 18:49

Люблю теоретиков! Я написал где именно базируются файлы, содержащие закладки. Советую открыть вышеозначенные файлы и посмотреть, как там на счёт "только то, что нужно".

0
Mikhail_LTS - 7 Январь, 2012 - 02:31
Изображение пользователя Mikhail_LTS.

Да, это я понял. Они в разных форматах: 2. Выясняем формат хранения закладок во всех трёх браузерах
2.1 Firefox -- html;
2.2 Chromium -- JSON (прочитать здесь о парсинге);
2.3 Opera -- свой формат (пока не понял, как делать контрольные суммы).

Но тогда каким образом происходит синхронизация закладок между браузерами, когда они запущены и мы жмем одноименную кнопку "синхронизация закладок"?

0
Vlad_W_1999 - 7 Январь, 2012 - 11:03

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

Если речь идёт о закачивании чужих закладок, то:
1. Firefox требует, чтобы ему скормили html (но умеет всасывать в себя из оперы -- надо разобраться как)
2. Chromium работает исключительно с html и ни с чем другим (как импорт, так и экспорт)
3. Opera экспортирует в html и в свой формат, а импортирует Opera, Firefox, Internet Explorer и по какой-то странной логике Konqueror.

Таким образом, получаем единственную возможность (если использовать браузеры) -- перегнать в html. Но это половинчатое решение. Мы не получим возможностей, которые мне бы хотелось видеть: отказаться от переноса некоторых закладок, сделать удаление и т.д.

0
Mikhail_LTS - 7 Январь, 2012 - 03:03
Изображение пользователя Mikhail_LTS.

Может конечно я фигню пишу, но вот прикинь: открываем браузер№1 горячей клавишей А, открываем диспетчер закладок горячей клавишей Б, Ctrl+A, Ctrl+C, открываем браузер№2 горячей клавишей В, открываем диспетчер закладок и жмем Ctrl+V и т.д. с браузером№3 (ну либо, если не прокатит из-за разных форматов, то жмем клавишу синхронизации закладок). Как уменьшить и упростить алгоритм действий:

0
Vlad_W_1999 - 7 Январь, 2012 - 11:05

Нет. Прямым копированием не получится. Такой возможности ни у одного из вышеозначенных браузеров нету.

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

0
Mikhail_LTS - 14 Февраль, 2012 - 21:01
Изображение пользователя Mikhail_LTS.

Есть идея: открываешь любой браузер и жмешь ctrl+D... Что получается? Правильно, открывается окно сохранения закладки... Вот, а если создать правило, что при сохранении закладки (при нажатии ctrl+D) адрес сайта сохранялся в одну и ту же папку... Как считаешь, можно такое реализовать?

0
Vlad_W_1999 - 15 Февраль, 2012 - 13:55

Думаю, что можно. Только не понимаю а) зачем, б) что это даст.

А вообще сейчас несколько не до того. Так что временно подзабросил.

0
Mikhail_LTS - 15 Февраль, 2012 - 22:10
Изображение пользователя Mikhail_LTS.

Ну это даст то, что в одной папке (либо файле) будут ссылки на все сайты с закладок и дальше можно подумать, как все ссылки одним нажатием комбинации клавиш открыть в любом браузере...

0
Vlad_W_1999 - 15 Февраль, 2012 - 22:16

Имеет смысл в html. Можно подумать.

0
Гость - 13 Ноябрь, 2012 - 01:01

Ну что там ребята, решение найдено?

0
a4_necromant - 13 Ноябрь, 2012 - 21:22
Изображение пользователя a4_necromant.

куча есть решений... Простой самый - встроенный в фаерфокс.....

0
Vlad_W_1999 - 14 Ноябрь, 2012 - 07:05

Да не решение это. И, на самом деле, решений нету. Я ещё пороюсь маленько и придётся писать.

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры