- PVSM.RU - https://www.pvsm.ru -
Прошло немало времени с тех пор, как замечательный веб-сервис Grooveshark [1] — онлайн-радио, проигрыватель и поисковик музыки — перешел с Flash-интерфейса на HTML5. Как и прежде, сервис сопровождается рекламнымы баннерами на четверть экрана, и часть функций проигрывателя была доступна только платным подписчикам.
Как постоянному его пользователю и как веб-разработчику, склонному к реверс-инжинирингу, мне стало интересно, насколько удастся «открыть» этот новый веб-интерфейс.
Открытие Grooveshark началась около года назад (задолго до того, как мне посчастливилось получить аккаунт на хабре), и с тех пор архитектура веб-интерфейса была частично переработана, поэтому часть описанного уже стала историей. Но, несмотря на это, актуальная версия по-прежнему позволяет провести описанные манипуляции.
Прежде чем начать движение к цели, было необходимо определить, с чем предстоит иметь дело.
Веб-интерфейс Grooveshark реализован с использованием JavaScript, HTML и CSS в лучших традициях современных веб-приложений. В качестве основной библиотеки используется jQuery. В основе некоторых элементов интерфейса — компоненты jQuery UI.
Первое, что бросалось в глаза — это реклама, которой не место на небольшом экране ноутбука. Её нужно было скрыть в первую очередь, при этом не поломав само приложение.
Сейчас существует несколько дополнений к браузерам, которые реализуют блокирование рекламы и других выбранных пользователем элементов на веб-страницах. Самое популярное из них, как заявлено на сайте дополнения — Adblock Plus [2] — оно доступно для Firefox и Chrome. Есть решения и для Internet Explorer [3].
В комментарии [4] к предыдущей статье о Grooveshark [5] было предложено дополнение для Chrome [6], но к настоящему моменту по ссылке, к сожалению, лишь страница с ошибкой, что ничего не найдено.
Дальнейший анализ и разработку было решено проводить в Chrome — к тому времени он уже был моим основным браузером для веб-серфинга, и Developer Tools уже были намного приятнее в использовании, чем довольно медлительная связка Firefox+Firebug. Все описанные манипуляции можно также проводить в любом браузере, предоставляющем JavaScript-консоль в контексте страницы.
После анализа глобальных переменных (свойств объекта window
)
(function () { for (var x in window) if (window.hasOwnProperty(x)) { console.log(x); } }());
...
$
jQuery
_
GS
...
был обнаружен интересный объект GS
— по-видимому, аббревиатура от GrooveShark. А в нем — объект user
со свойством IsPremium: false
. Вот это находка!
При обновлении приложения обновилась и структура объектов. Но, к счастью пользователей и несчастью разработчиков, открыть подписку заново не составило большого труда.
Автор: sompylasar
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/9174
Ссылки в тексте:
[1] Grooveshark: http://grooveshark.com/
[2] Adblock Plus: http://adblockplus.org/ru/
[3] решения и для Internet Explorer: http://www.wintuts.com/adblock-plus-filters-internet-explorer-8
[4] комментарии: http://habrahabr.ru/post/79939/#comment_2347033
[5] предыдущей статье о Grooveshark: http://habrahabr.ru/post/79939/
[6] дополнение для Chrome: http://www.chromeextensions.org/other/grooveshark-ad-remover/
Нажмите здесь для печати.