Pull to refresh

Экспорт Дней рождения из вКонтакте в Google Calendar

Reading time3 min
Views41K
UPD: Скрипт устарел, он больше не работает и не поддерживается. Попробуйте использовать более новые аналоги, например вот этот.



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



Я думаю, многие здесь, как и я, имеют аккаунт в популярной социальной сети вКонтакте. Пользуетесь вы ей или нет, любите или нет, дело сугубо ваше. Однако, мне кажется, все согласятся с тем, что чем-то вКонтакте всё-же полезен. Например, я теперь знаю, когда у моих знакомых День рождения (люблю я делать приятное людям, поздравляя их с этим праздником, однако у меня совсем плохая память на даты). Не смотря на удобство размещения дней рождения в одном месте, вКонтакте явно не собирается упускать потенциальных пользователей этой функции — не предусмотрено никаких уведомлений о предстоящих событиях, то есть, чтобы наблюдать за событиями, нужно «быть вКонтакте». Это ограничение кажется весьма досадным, но для нас, программистов, повелителей информации, подобные ограничения представляют собой лишь задачу, которую интересно решить.

Вначале стоит определиться с тем, чего бы хотелось получить в результате. Для меня это было уведомление о предстоящих событиях на почту, а также, возможно, просмотр списка событий, который всегда «под рукой». Поскольку я являюсь активным пользователем сервисов гугла, то в качестве альтернативы календарю вКонтакта был выбран именно Google Calendar.

Плюсы этого решения:
  • возможность добавления множества уведомлений (почта, смс)
  • интеграция с другими веб-сервисами гугла (gmail, igoogle)
  • возможность импорта календаря из файла


Собственно, последний пункт и сделал возможным перенос дат из вКонтакта в Google Calendar.

Сразу оговорюсь, изначально скрипт я делал для себя и под себя. Поэтому не стоит упрекать меня в (возможном) отсутствии кроссбраузерности или ещё в чём-то. Скрипт по сути является одноразовым, поэтому, как мне кажется, те, кто действительно нуждается, могут даже поставить «чужой» браузер, greasemonkey, выполнить скрипт, удалить и забыть.

Системные рекомендации


(на этой конфигурации работоспособность скрипта была протестирована):
  • Firefox 3.5.5
  • Greasemonkey 0.8.2


Инструкция по эксплуатации:


  • Устанавливаем скрипт отсюда
  • Заходим на сайт http://vkontakte.ru, логинимся
  • Кликаем правой кнопкой в иконку гризманки, выбираем пункт «Команды скрипта», далее пункт «Get Birthdays!»
  • Должна появиться форма со списком друзей
  • Выбираем нужных (или всех) друзей и нажимаем «Экспорт»
  • Ждём, долго, я понимаю, но во вКонтакте какое-то ограничение на скорость открытия однотипных страниц, я один раз попался во время отладки скрипта. Поэтому (1.5 сек + скорость загрузки + скорость обработки) на одного друга.
  • После окончания обработки всех выбранных друзей вам будет предложено сохранить файл с нечитаемым именем. Это список событий в формате iCal
  • Заходите в Google Calendar.
  • Выбираете пункт «Настройки» под списком календарей
  • Выбираете пункт «Импорт календаря», можно предварительно создать новый календарь специально для дней рождения.
  • Наслаждаетесь новыми событиями в вашем календаре


Замечания


Повторюсь, скрипт писался под себя. Изначально там не было даже того примитивного интерфейса, который есть сейчас.
Промежуточный файл в формате iCal. По крайней мере, гугл его понимает. Формат этот был мной получен путём изучения исходников файла календаря, экспортированного из гугла, и удалением оттуда некоторых «ненужных полей». Расширение файла должно быть .ics, но для импорта это не обязательно.
В теле скрипта можно найти библиотеку jQuery. Да, я её засунул туда полностью.
Скрипт может тормозить браузер на слабых машинах.
Рекомендую удалить или отключить скрипт после использования, поскольку скрипт относительно тяжёлый и загружается для всего домена vkontakte.ru.

Собственно, всё. Если есть какие-то вопросы или пожелания, прошу.

upd
Решение от пользователя Putin для Chrome

Tags:
Hubs:
Total votes 125: ↑117 and ↓8+109
Comments94

Articles