Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2010, 17:14   #1
fezilk24
Заблокирован
 
Регистрация: 16.11.2009
Сообщений: 85
Счастье

И снова здравствуйте =)
Так как на форуме одна тема- один вопрос, создаю новую тему.

И так, в последнее время развелось очень много программ - фейков для вконтакта. Некоторые программы ищут музыку вконтакте, и дают возможность скачать её. Программам этим я не доверяю, и решил сделать свою, для себя. Разубеждать меня не надо =)

Вопрос: как получить ссылку на скачивание той или иной музыки?
Исходный код audio.php перерыл, ссылок не нашел, хорошо, видать, Дуров защитил =)

Может, кто поможет.. Я не прошу написать за меня код, прошу просто подсказки. Копирование из кеша неподойдет.

Т.е. в audio.php видимо ссылки есть, а в поиске нету..

Последний раз редактировалось Stilet; 05.02.2011 в 16:05.
fezilk24 вне форума Ответить с цитированием
Старый 13.06.2010, 18:54   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

кхм, музыка которая уже в аудио, там ссылки прямым текстом лежат вообще то.
Код HTML:
<div class="audioRow" id="audio77344591">
<a name='77344591'></a>
 <table width="100%"><tbody>
 <tr><td style="width: 20px; vertical-align:top">
 <img class="playimg" onclick="return operate(77344591,'[B]http://cs4113.vkontakte.ru/u17565635/audio/c13ff51891c1.mp3[/B]',282);" id="imgbutton77344591" nosorthandle="true" src="images/play.gif"/>
 </td>
 <td style="width: 360px;"><div class="audioTitle">
  <b id="performer77344591"><a href='gsearch.php?section=audio&c[q]=Belle'>Belle</a></b><span>&nbsp;-&nbsp;</span><span id="title77344591">АСМИРАЛЬДА</span> </div>
  <div class="duration">4:42</div>
 </td>
 </tr>
 </tbody></table>

<div style="height:14px;margin-left:28px;">
<div id="line77344591" class="playline"></div>
<div id="toddler77344591" class="toddler">
</div>
<div id="player77344591" style="display: none;" class="playerClass">
</div>
</div>

<div id="lyrics77344591"></div>
</div>
а если из поиска то там посмотрите с помощью снифера(запрос при нажатии кнопки плай), как из функции operate составляется ссылка(потом если что могу сказать))
JS читайте короче
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 13.06.2010 в 20:32.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.06.2010, 20:04   #3
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Цитата:
Исходный код audio.php перерыл
И хде ж вы его взяли-то? =\\
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 13.06.2010, 20:16   #4
fezilk24
Заблокирован
 
Регистрация: 16.11.2009
Сообщений: 85
По умолчанию

Пепел Феникса, Спасибо! =)

DomiNick, Ну понятно же, что html-код страницы по адресу vkontakte.ru/audio.php

лучше бы советом помогли

Хотя я уже додумался. Вот решение:
ищем кнопку, по нажатии на которую играет музыка, видим код:
Код:
<img class="playimg" onclick="return operate(93113035,5007,86541345,'db632ccba843',283);" id="imgbutton93113035" nosorthandle="true" src="images/play.gif"/>
Ссылка на скачивание: _http://cs5007.vkontakte.ru/u86541345/audio/db632ccba843.mp3

Теперь нужно как-то парсить, чтобы вывести Название и кнопку для скачивания. Что посоветуете, динамические button и label, Listbox и массивы, или как лучше? =)

Последний раз редактировалось fezilk24; 13.06.2010 в 20:18.
fezilk24 вне форума Ответить с цитированием
Старый 13.06.2010, 20:26   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию


я думаю ТС имел в виду, что исходный код HTML страницы которую генерирует этот скрипт.
Код HTML:
<div class="audioRow" id="audio79000995">
 <table><tbody>
 <tr><td style="width: 18px; vertical-align:top">
 <img class="playimg" onclick="return operate(79000995,[COLOR="#ff00ff"]4586[/COLOR],[COLOR="Cyan"]2663363[/COLOR],'[COLOR="#0000ff"]61bea91731fc[/COLOR]',1564);" id="imgbutton79000995" nosorthandle="true" src="images/play.gif"/>
 </td>
 <td><div class="audioTitle">
  <b id="performer79000995">Dean Clea &amp; Emir Hot</b><span>&nbsp;-&nbsp;</span><span id="title79000995">At The Place Where Angels Dare To Live (Instrumental) (4:33)</span> <small class="fl_l">(<a href='/id2663363'>Е. Юрич</a>)</small></div>
  <div class="duration">26:04</div>
 </td>
 <td class="audioActions"><div id="actions79000995" style="width:70px;">
  <span style="color:#777777;"><a class='addAudioLink' href="" onclick="addAudio(this, {act:'a_add',add:1,gid:0,aid:79000995,oid:2663363,album_id:0,hash:'39b05ae937aca51624cbe5b2bf305d28'});return false;">Добавить</a></span>
</div>
http://cs4586.vkontakte.ru/u2663363/audio/61bea91731fc.mp3
вот, надеюсь понятно?)) (правда запоздал немного)
вот моя старая функция(раньше то везде ссылок чистых не было)
Код:
function WB_AudioLinkMP3(sourse:string):string;
var s:string;
begin
 s:=sourse;
 if Pos('operate',s)=0 then exit;
 Delete(s,1,PosEx('(',s,Pos('operate',s)));
 Delete(s,1,Pos(',',s));
 sourse:='http://cs'+Copy(s,1,pos(',',s)-1);
 Delete(s,1,Pos(',',s));
 sourse:=sourse+'.vkontakte.ru/u'+Copy(s,1,pos(',',s)-1);
 Delete(s,1,Pos(',',s));
 sourse:=sourse+'/audio/'+Copy(s,2,pos(',',s)-3)+'.mp3';
 Result:=Sourse;
end;
правда он не очень оптимизирован

можно и лист бокс, раньше я когда то занимался этим(сейчас то вернусь в эту тему...но не раньше чем разберусь со своей библиотекой классов на С++/Delphi(правда С++ важнее в этом плане))
я юзал листбокс, а если парсить и далее этой кнопки(данные песни) то можно и в листвиев все запихать как угодно
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 13.06.2010 в 20:32.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.06.2010, 20:33   #6
fezilk24
Заблокирован
 
Регистрация: 16.11.2009
Сообщений: 85
По умолчанию

Спасибо за труд, но опоздали вы чуть чуть =)

За функцию тоже спасибо.

А насчет листбокса вопрос - если названия туда пихать, и при нажатии на названии допустим должен скачиваться файл, куда ссылку на файл привязать?

Последний раз редактировалось fezilk24; 13.06.2010 в 20:35.
fezilk24 вне форума Ответить с цитированием
Старый 13.06.2010, 20:41   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

можно использовать параллельный массив с ссылками.
можно использовать св-во TStrings.Objects(связанные со строками обьекты)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.06.2010, 21:44   #8
fezilk24
Заблокирован
 
Регистрация: 16.11.2009
Сообщений: 85
По умолчанию

Можете рассказать подробнее про TStrings.Objects? Не нашел такого..
fezilk24 вне форума Ответить с цитированием
Старый 14.06.2010, 00:38   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

массив будет проще вам
а вообще ListView в руки(с его субитемами)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.06.2010, 03:00   #10
fezilk24
Заблокирован
 
Регистрация: 16.11.2009
Сообщений: 85
По умолчанию

вопрос: как добавить итем с субитемом (динамически)

помогли:
Код:
 li:=ListView1.Items.Add;
 li.Caption:=fullname;
 li.SubItems.Add(link);
Пепел Феникса, функция возвращает пустую строку =(
ps. извиняюсь за флуд

Последний раз редактировалось fezilk24; 14.06.2010 в 15:56.
fezilk24 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц