velzevul (dubva1) wrote,
velzevul
dubva1

Janeth vkontakte-scrobbler. Last.fm + Vkontakte =


Janeth vkontakte-scrobbler. Last.fm + Vkontakte =

Разве не красота?


работает в Firefox, Opera;


Сопоставимость с Оперой было делом приоритетным. Понимаете ли, из 1200 строк кода код для Оперы занимает 500.


не просит ввода пароля;


А это означает, можно не мыслить о безопасности.


надежен в критериях нестабильного соединения;


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


верно выслеживает продолжительность проигрывания;


Если нажмете паузу — счетчик остановится. Вы скажете, это естесственно, но другой аналогичный скрипт не учитывает пауз!


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


Почему бы и не насладиться прекрасными картинами, пока музыка играет?. .


О безопасности


Неплохой новостью будет то, что скрипт вообщем не запрашивает вашего пароля ни от вконтакте,


ни от Last. fm (и, стало быть, нигде не хранит и никуда не посылает). Не то, что я просто вам это обещаю,


хоть какой может сам проверить это, потому что исходники стопроцентно открыты.


Применение


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


на Last. fm, смотрите статистику. Оно будет работать само.


Но любознательному читателю,


я все таки расскажу немножко подробнее. Едва вы установите скрипт


и загрузите всякую страничку с аудиозаписями


вконтакте в правом верхнем углу (либо ниже меню, если это страничка профиля либо группы) появится значок


Last. fm. Он бывает:


сероватым, если еще не подключился к серверу


Если кликнуть, он начнет подключаться.


сероватым анимационным, когда идет процесс соединения с сервером


красноватым с крестиком, если при подключении произошла ошибка


Если кликнуть, он попробует подключиться опять.


желтоватым с вопросиком, если вы не залогинились на last. fm.


Если кликнуть, вы окажетесь на странице входа на last. fm.


голубым, когда все прошло отлично и скробблер готов, простите, скробблить


Если кликнуть, вы попадете в собственный профиль на Last. fm.


Когда вы слушаете песню рядом отображается смешная иконка


(анимационная, пока песня играет, и остановленная во время паузы).


А во всплывающей подсказке к ней пишут, сколько времени осталось играть песни до того, как она заскробблится.


После отправки на сервер инфы о том, что вы прослушали песню,


появится галочка либо крестик, показывающие, удачно ли все прошло.


Если кликнуть во время проигрывания на вышеупомянутую смешную иконку, можно отредактировать создателя и заглавие композиции,


которые будут высланы на last. fm, также форсировать либо отменить отправку.


Установка


Испытано, Жанет работает в Opera 9. 6—10. 5, Firefox 3­­—3. 6 (Greasemonkey 0. 8) и еще в Гугл Chrome 2. 0 и 3. 0 (но не в 4. 0 и выше).


Вобщем, если у вас другая версия браузера все равно попытайтесь — вероятнее всего, все будет нормально.


В дальнейшем может быть портирование скробблера под IE и Safari. Если вы JS-разработчик,


сможете этим заняться. А если нет, просто входите чаще;).


Итак, внимание, основная кнопка:


Firefox


Установите расширение Greasemonkey.


Перейдите по ссылке «Установить» выше и согласитесь на установку скрипта.


???


profit;)


После чего на страничках с аудиозаписями вконтакте появится кнопка Last. fm, и


при проигрывании будет отображаться статус скробблера.


Opera


Тут чуток посложнее.


Поначалу сделайте папку, в которую будете ложить user-скрипты, в любом комфортном месте.


Кликните кнопку «Установить» выше и сохраните скрипт в избранную папку.


Потом откройте окно опций Оперы (Tools — Preferences либо Инструменты — Опции) и на вкладке Advanced (Дополнительно) в разделе Content (Содержимое) кликните кнопку «Javascript options» («Настроить JavaScript»).


В показавшемся окне в поле User Javascript files (Папка пользовательских файлов Javascript) изберите ту папку, которую сделали на первом шаге.


Гугл Chrome


В последних альфа-билдах Хрома скрипт не работает из-за ужесточения политики безопасности.


Что ожидается и текущие трудности


откуда еще поскробблим?? Пишите!


Chrome! Chrome! Chrome!


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


и запросы на дополнительные способности в комменты.


История версий


Бета 8 (2010-10-05)


Пофиксан скробблинг в заметках.


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


Бета 7 (2010-09-27)


Прошел целый год! Вы представляете?


Скрипты вконтакте поменялись, и Джанет стала с ними не совместима


И вот сейчас, ура, я поправил скрипт!


Поддерживаются престижные стенки, музыка в сообщениях и остальные новаторства вконтакте


Инфа об альбоме опять отображается


Бета 5 (2009-09-29)


Бета 4 (2009-06-27)


багфикс насчет российских заглавий треков


отображение инфы о версии по клику на сероватый значок скробблера


Бета 3 (2009-05-26)


багфикс для ФФ


Бета 2 (2009-05-24)


Сопоставимость с новым интерфейсом поиска вконтакте


Поддержка Гугл Chrome


И еще, спасибо Павлу Мельникову за поддержку скрипта пока мне было не до того


Бета 1 (2009-04-07)


Получен client identifier. Можно и бетой назваться;)


При обновлении в FF не забудьте удалить старенькую версию (а не то у вас будет два скробблера установлено)


Альфа 6 (2009-03-28)


сейчас скробблер именуется Janeth. Вообщем практика именовать программки женскими именами очень сексапильна. Спасибо Антону Че за придумывание такового красивого называния, и Евгению Геращенко за убеждение меня, что оно отлично.


сэкономлена память


сообщения об ошибках поближе к юзеру


переписан Requester


Альфа 5 (2009-03-19)


minor bug-fixes


Альфа 4 (2009-03-18)


трек-инфо при скробллинге больше уезжает из поля зрения


огромные обложки сейчас не вылезают куда не следует


прекрасная кнопка Установить


маленькие багфиксы


подвинул album-art поближе к наименованию альбома, а не наименованию трека


редактирование автора-названия для отправки (кликните значок играющего трека)


скробблим со стенок


возможность включить/выключить скробблер


больше не даем юзеру подключаться по собственному желанию


возможность отменить либо повторить плохой скробблинг


очень переделана архитектура: убрал рисование кнопочек из объекта scrobbler, и хранение состояния из conn


достигнул еще большей надежности. Ни один трек не будет забыт


Альфа 3 (2009-03-03)


аааааа… В FF в имени исполнителя два раза экранировались пробелы. Сейчас все отлично.


еще пара каких-либо мелочей


Альфа 2 (2009-03-01)


появилась загрузка картинок альбома и инфы о произведении с Last. fm


написан обычный текст тут, управление по использованию и установке


решена неувязка с анимацией в Firefox: время от времени значок проигрывания замирает


Альфа 1 (2009-02-28)


1-ый релиз. Что еще сказать?


Код


Вот репозиторий на Гугл Code. Не смущяйтесь его клонировать.


Если вы JS-программист, никто вам не мешает чего-нибудть в этом скрипте поменять,


потому что лицензия — LGPL.


В особенности приветствуется, если вы портируете его под Chrome, Safari либо IE


(для их есть свои Greasemonkey движки).


Мне на этот момент лень обрисовывать как это все работает. Перечислю только объекты, задействованные в процессе:


scrobbler — объект, инкапсулирующий поведение на страничке вконтакте. Когда музыку включают/выключают,


у него вызываются надлежащие способы. Он несет ответственность за то, чтоб создавать объекты Track и отправлять им


надлежащие наружные действия.


scrobbler. fm. Он инкапсулирует сервис Last. fm. Логинит, когда нужно, когда нужно ставит запрос в очередь,


склонен парсить ответы ласт. фма. В него слудует с течением времени передвинуть хранение состояния из scrobbler. fm. conn.


ScrobblerIcon показывает значок ласт. фма и показывает статус соединения. Является observer'ом scrobbler. fm'а.


PlayingIcon показывает статус проигрываемого трека. Является observer'ом Track'а.


AdvancedControl инкапсулирует интерфейс редактирования инфы о треке и управления его скробблингом (то, что отображается по клику на PlayingIcon). Является observer'ом Track'а.


InfoPanel — панелька с информациейй о композиции. Смотрит за Track'ом.


Track инкапсулирует проигрываемый трек.


scrobbler. fm. conn. Инкапсулирует соединение. Бывает различным для Оперы и для FF. Все так как Опера не


разрешает кросс-доменных запросов даже из UserJS (и, видимо, не разрешит). FF-ный conn работает


делает запросы в Iframe'ах, передавая данные через window. name.


Для этого употребляет вспомогательный объект


Requester, который в свою очередь возвращает данные через самопальный Deferred. Кто разберется в таких


дебрях — большой молодец.


Таким макаром браузерно-специфичной частью является fm. conn. Он находится в зависимости от метода отправки асинхронных запросов.


Таким макаром, меняя его можно вынудить скробблер работать в других браузерах.


Сайто-специфичными являются scrobbler, ScrobblerIcon, PlayingIcon, AdvancedControl и InfoPanel.


Для того, чтобы скробблер работал на других веб-сайтах (не считая вконтакте) нужно воплотить интерфейс scrobbler и, опционально,


объекты отображающие состояние.


Что еще почитать


проект на Гугл Code


моя заметка вконтакте, где я жду ваших комментариев


группа про last. fm вконтакте (они там спали и лицезрели таковой скрипт)


другой скробблер vkontakte (но он хреновый: ненадежный, просит пароль, не совместим с оперой, некорректно считает время проигрывания)


красивый скрипт, чтоб впрямую ходить по наружным ссылкам (под Оперой лучше его дополнить этим).


про Greasemonkey


про UserJS
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments