воскресенье, 22 мая 2011 г.

Загрузка музыки “оптом” из vkontakte.ru. Скрипт для кнопки Custom buttons.

Загрузить найденные с помощью поиска музыки vkontakte  музыкальные файлы средствами обычного загрузчика оказалось не так просто. Например взять плагин для Firefox DonloadThemAll, он просто ищет на странице ссылки и предлагает закачать файлы, находящиеся именно по тем ссылкам. Но в результатах поиска музыки, адреса аудиофайлов находятся не в ссылках, а в полях hidden, например так

<input 
type="hidden" 
id="audio_info65616706_106246809_4" 
value="http://cs4246.vkontakte.ru/u14371044/audio/65a4ce75cfe4.mp3,189"
/>



При этом каждый из результатов поиска находится в таблице и в соседней ячейке можно найти название и имя исполнителя.



Задача решается с помощью плагина для Firefox Custom buttons. Просто надо добавить кнопку на панель и в редакторе кода кнопки ввести следующий текст:

1: /*CODE*/
2: function getContentWin() 
3: {  
4: var cont = getBrowser().contentWindow;  
5: try 
6:   {    
7:     cont = new XPCNativeWrapper(cont).wrappedJSObject;
8:   } 
9:   catch(e) {}  
10:   return cont;
11: }
12: function getContentDoc() 
13: {  
14: var cont = getBrowser().contentDocument;  
15: try 
16:   {    
17:     cont = new XPCNativeWrapper(cont).wrappedJSObject;
18:   } 
19:   catch(e) {}  
20:   return cont;
21: }
22: var _window = getContentWin();
23: var _document = getContentDoc();
24: 
25: var newwin = _window.open("about:blank");
26: newwin.onload = function()
27: {
28:     var inputs = _window.document.getElementsByTagName("input");
29:     for(var i = 0; i < inputs.length; i++)
30:     {
31:       var input = inputs.item(i);
32:       if(input.type == "hidden" && input.id.indexOf("audio_info") == 0)
33:       {
34:         var row = input.parentNode.parentNode;
35:         
36:         var songLinks = row.getElementsByTagName("a");
37:         var autor = songLinks[1].innerHTML;
39:         var song = songLinks[1].parentNode.nextSibling.nextSibling.innerHTML;
40:         var link = newwin.document.createElement("a");
41:         link.href = input.value.split(",")[0];
42:         link.innerHTML = autor + " - " + song;
43:         newwin.document.body.appendChild(link);
44:         newwin.document.body.appendChild(newwin.document.createElement("br"));
45:       }
46:     }
47:   
48: }



Этот код открывает новую страницу в новой вкладке, извлекает адреса музыкальных файлов, исполнителей и названия треков, после чего формирует список ссылок на эти адреса и вставляет их во вновь созданную страницу. После этого, когда у нас есть страница со ссылками, можно закачать с помощью любого загрузчика, интегрированного в браузер, включая DonloadThemAll.

Комментариев нет :

Отправить комментарий