[ChromeExt] Fix Last.fm free player in accordance to new last.fm design


Last.fm потихоньку внедряет новый дизайн. И наш любимый “Last.fm free player” не может взять имя исполнителя, т.к. изменена структура html. Фиксим…

Необходимо подкорректировать один файл расширения, а именно: manager.js.
В файле необходимо найти блок условия:

if(artist_container){
  var link = artist_container.querySelector('a')
  if(link)
    this.artist = link.innerHTML
  else
    this.artist = artist_container.innerHTML
} 

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

if(artist_container){
  var link = artist_container.querySelector('a')
  if(link)
    this.artist = link.innerHTML
  else
    this.artist = artist_container.innerHTML
} else {
   if(document.querySelector('.top-crumb a'))
     this.artist = document.querySelector('.top-crumb a').textContent
   else
     this.artist = document.querySelector('.page-head h1').innerHTML
}

После чего сохранить файл и перезагрузить браузер.
Проверена рабоспособность на странице исполнителя.
Расположение этого файла:

# Win XP:
"C:\Documents and Settings\*UserName*\Local Settings\Application Data\Google\Chrome\User Data\Default\Extensions\bbncpldmanoknoahidbgmkgobgmhnafh\2.9.691_0\javascript\manager.js"

# Win 7:
"C:\Users\*UserName*\AppData\Local\Google\Chrome\User Data\Default\Extensions\bbncpldmanoknoahidbgmkgobgmhnafh\2.9.691_0\javascript\manager.js"

# Linux:
"~/.config/google-chrome/Default/Extensions/bbncpldmanoknoahidbgmkgobgmhnafh/2.9.691_0/javascript/manager.js"

# Mac OS:
"/Users/*UserName*/Library/Application Support/Google/Chrome/Default/Extensions/bbncpldmanoknoahidbgmkgobgmhnafh/2.9.691_0/javascript/manager.js"
Advertisements

20 comments

  1. matt · August 3, 2012

    Many thanks for the fix, gentlemen.

  2. Ufuk Ömür · August 3, 2012

    Find this part:

    if(artist_container){
    var link = artist_container.querySelector('a')
    if(link)
    this.artist = link.innerHTML
    else
    this.artist = artist_container.innerHTML
    }
    

    Then replace with this:

    if(artist_container){
    var link = artist_container.querySelector('a')
    if(link)
    this.artist = link.innerHTML
    else
    this.artist = artist_container.innerHTML
    } else {
    this.artist = document.querySelector('.top-crumb a').textContent.replace(/^\s\s*/, '').replace(/\s\s*$/, '')
    }
    

    Enjoy the music.

    • Sfate · August 3, 2012

      Ufuk Ömür,
      1. This will not work at all. In new design there is not present ‘.top-crumb a’ element.
      2. There is no need to replace spaces from artist name.

      • Ufuk Ömür · August 3, 2012

        Sfate;

        1. If you inspect elements you will see that there is a div.top-crumb at the very top of the div.crumb-wrapper, and an a inside it.
        2. It just trims the spaces which remain after striping the img.crumb-image.

        • Sfate · August 3, 2012

          Ufuk Ömür,
          1. There is no ‘div.top-crumb’ or ‘div.crumb-wrapper’ element on page. Did you’re using a new last.fm design?
          2. As i say before.. there is no need in that.

  3. Fellow · August 3, 2012

    Извините, но где найти этот чертов manager.js.?

    • Sfate · August 4, 2012

      А вы статью до конца читали?
      Там для каждой операционной системы указан путь к этому файлу.

      • Fellow · August 4, 2012

        Прошу прощения, как отправил комментарий – так и заметил.
        А вот что делать, когда хочешь разрешить доступ к аккаунту на ласт.фм, а тебя перенаправляет на какую-то глючную страницу яндекс-поиска и так всегда – с любого браузера. После этого ничего не меняется и предложение продолжает спрашивать “Want scrobbling?”
        Не подскажите?

        • Sfate · August 4, 2012

          Точно пока не могу сказать.
          Как найду решение – напишу.

          • Fellow · August 6, 2012

            Спасибо, буду ждать решения 🙂

  4. Dezmont · August 4, 2012

    Меняйте на этот код. Работает на большинстве страниц.
    if(artist_container){
    var link = artist_container.querySelector(‘a’)
    if(link)
    this.artist = link.innerHTML
    else
    this.artist = artist_container.innerHTML
    } else {
    if(document.querySelector(‘.top-crumb a’))
    this.artist = document.querySelector(‘.top-crumb a’).textContent
    else
    this.artist = document.querySelector(‘.page-head h1’).innerHTML
    }

    • Sfate · August 4, 2012

      Спасибо, обновил статью.

  5. MrMojoRisin · August 6, 2012

    Большое спасибо.
    Вот только появилась/осталась одна проблема. Не могу включить scrobbling. нажимаю want scrobbling? –> Yes, allow access. открывается следующий линк. http://ya.ru/white?token=0a84cd15f7d9a47d07117f9fb60d6d08
    может у кого то тоже такая проблема.

    • Sfate · August 7, 2012

      Исправлено в новой версии плеера.

  6. Leonid Bugaev · August 9, 2012

    Спасибо за активность! В новой версии плеера все починилось. В следующий раз рекомендую использовать наш github, http://github.com/chromus/chromus

    • Sfate · August 9, 2012

      Окей, будем знать. Спасибо.

  7. Freenel · July 11, 2013

    Здравствуйте.
    Столкнулся с такой проблемой может вы сможете помочь.
    Дело в том что когда заканчивает проигрываться 1ая песня то плеер показывает 2 нуля и останавливается.
    И тем самым приходится самому включать следующую песню.
    Не знаете в чем проблема?
    Заранее благодарен.

    • Sfate · July 17, 2013

      И вам не хворать 😉
      Проблема эта старая. Там что-то с остановкой песни, до нее не доходит очередь и плеер не переходит на следующий трек.
      По возможности посмотрю подробнее.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s