Здравствуй, уважаемое хабрасообщество!
Сегодня я хочу поделиться с тобой одним, весьма полезным, на мой взгляд, скриптом. Если вам уже всё понятно из картинки для привлечения внимания, вот
линк.
Я думаю, многие здесь, как и я, имеют аккаунт в популярной социальной сети вКонтакте. Пользуетесь вы ей или нет, любите или нет, дело сугубо ваше. Однако, мне кажется, все согласятся с тем, что чем-то вКонтакте всё-же полезен. Например, я теперь знаю, когда у моих знакомых День рождения (люблю я делать приятное людям, поздравляя их с этим праздником, однако у меня совсем плохая память на даты). Не смотря на удобство размещения дней рождения в одном месте, вКонтакте явно не собирается упускать потенциальных пользователей этой функции — не предусмотрено никаких уведомлений о предстоящих событиях, то есть, чтобы наблюдать за событиями, нужно «быть вКонтакте». Это ограничение кажется весьма досадным, но для нас, программистов, повелителей информации, подобные ограничения представляют собой лишь задачу, которую интересно решить.
Вначале стоит определиться с тем, чего бы хотелось получить в результате. Для меня это было уведомление о предстоящих событиях на почту, а также, возможно, просмотр списка событий, который всегда «под рукой». Поскольку я являюсь активным пользователем сервисов гугла, то в качестве альтернативы календарю вКонтакта был выбран именно 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
_________
Текст подготовлен в
ХабраРедакторе
комментарии (87)
www.chromeextensions.org/other/matt-monkey/
Сохраните сценарий параметров
Изменение
Удалить
Отключить / Open
Все Открытый
Чтобы обновить формат данных MM0.2.1
Имя сценария
вот бы ещё он телефончики дёргал)))))
а вообще было бы здорово если скрипт создавал что то типа копии данных о друзьях из vkontake… =)
m.habrahabr.ru/post/63043/
Спасибо. Сейчас этим займусь :)
Экспортировал в gкалендарь, оттуда в аутлук, из аутлука в нокийский сьют — вуаля, в телефоне все дни рождений. Уж теперь то никто не будет обделен вниманием)
Я хотел сказать, что если конечная цель вашей цепочки была — телефон, то можно было бы пропустить одно звено и сделать:
«Сохранить iCal с помощью скрипта, оттуда в аутлук, из аутлука в нокийский сьют»
Синхронизиремся с гуглом
Благодарим автора
PROFIT!
Спасибо огромное!!!
С этим я столкнулся когда захотел синхронизировать друзей из Facebook с Контактами на iPhone. Почти все мои друзья запретили доступ :(
Фишку надо ждать не от Вконтакте, а от разработчиков софта для андроида. Ведь эту информацию можно получить и без какой-либо помощи со стороны сайта. Я думаю если кто-нибудь захочет реализовать эту идею, то непреодолимых сложностей у него не возникнет.
Я, кстати, тоже использую коммуникатор с андроидом.
/me ушел делать)
лично для меня в календаре гугла удобно смс уведомление.
Браво автор! Друзья не будут забыты :), благодаря вам!
немного подправив его под себя
Люблю Google календарь! + с недавних времен Google научился присылать СМСки в Беларусь )
Скрипт установился. Но меню найти не могу :)
А ещё вы можете поставить Firefox portable, greasemonkey, запустить скрипт, потом всё удалить и забыть.
Добавляет ссылку «Get birthdays» под «Мои настройки», результаты выводятся в новом окне(хром правда блокирует его, так что надо просить показать =(, плохо но ничего лучше пока не придумал), содержимое которого надо скопировать в нужный файл.
Обработано 0 мероприятий.
Не удалось импортировать мероприятия: Не удается обработать файл iCal/CSV…
Error at line 1: Expected [VCALENDAR], read [VCALENDAR PRODID]
В хроме все получилось, в FF в Greasmonkey опция «команды скрипта» была не активна.
Большое спасибо!!!
В Опере(9.60) сработало без проблем.
Кнопка команды скрипта появилась в верхем правом углу окна, при нажатии — появляется пункт Get Birthdays. Дальше дело техники))
У меня только вышла непонятка… Контакты импортировал, в Google загнал… Он мне написал что «890 событий импортировано...» и… все… Т.е. ничего нигде не появилось. Где я ошибся? Или не сразу должно появиться?
Но вот специально я его добавлять не стану. А это значит что пользователи которые имеют доступ к моему календарю не увидят когда у меня день рождения. И не поздравят :(
:-)
В качестве «фичи» можно было бы поздравление для «себя любимого» добавить :)
Кстати, еще вопрос. Оно работает через API?
а вообще мои 220 друзей экспортировались, минут за 10 может чуть-чуть больше
В идеальных условиях (быстрый интернет и компьютер) экспорт одного друга занимает 2-3 секунды, из которых 1.5 сек — просто задержка.
у контакта во встречах есть календарь
Core Quad, 2.5 Mbit оптоволокно, потерь пакетов в жизни не было.
Еще варианты?
Что если получить даты и ID юзеров отсюда:
vk.com/events.php?act=calendar
А имена юзеров через API? Хотя даже в календаре сразу можно видеть, так что и брать можно оттуда. Что думаете?
граббер дней рождений писл для себя
вайпалка версия не актуальная
должно работать…
clip2net.com/page/m0/267104
это после использования скрипта.
в общем, там скрин с 4 запросами на дружбу.
явно от троллей (в сообщении с предложением дружбы есть бессмысленные цифры и символы).
в профайлах — рекламные ссылки.
экспортировал даты рождения (кстати, из моих 130+ контактов ни один не попал в файл экспорта, хотя у многих указаны даты рождения) и сразу — 4 запроса одновременно. впервые такое количество подряд за столь малое время.
Так как скрипт генерирует немаленькую активность — то боты и накинулись.
У меня после работы скрипта ничего не произошло.
Или за пять минут — 9 ботов в друзьях. Причем как только вошел
Контакт мстит за обход его возможностей?:)
наверное, мстит.
* представляет Пашу Дурова в процессе отслеживания пользовательской активности и жОстко мстящего всем с помощью спам-ботов.