Страница 1 из 1

radiorecord.ru

СообщениеДобавлено: 28 май 2012 08:56
ViJIJIKA
Скрипт музыки! Что-бы считывал, что играет сайта http://www.radiorecord.ru/player/html5/
1) Радио рекорд
2) Транс
И выводил на канале! И помимо этого выводил ссылки, где можно скачать или посмотреть!

Re: radiorecord.ru

СообщениеДобавлено: 28 май 2012 11:12
tvrsh
Я не знаю как этот яваскриптовый сайт отпарсить. При просмотре исходного кода данных о исполнителе в нем нет.
Если кто-то подскажет как это сделать будет очень хорошо.

Re: radiorecord.ru

СообщениеДобавлено: 30 май 2012 10:15
ViJIJIKA
Вот может от сюда по лучиться! http://www.piter.fm/stations/FM_106.3

Re: radiorecord.ru

СообщениеДобавлено: 30 май 2012 16:37
tvrsh
Открываем вот этот пост post1958.html#p1958
И если все делать так, как там написано то в итоге получится вот что:
TCL: [ Скачать ] [ Скрыть ]
bind pub - !record parsing

proc parsing {nick uhost hand chan text} {
    putlog "bind: OK"

    ::http::config -useragent "Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320)"
    # Указываем ссылку на мобильную версию сайта. НА ней меньше информации и ее удобнее парсить.
    set parsing_tok [::http::geturl http://m.moskva.fm/stations/FM_98.4]
    set data [::http::data $parsing_tok]
    ::http::cleanup $parsing_tok

    if {[info exists ::sp_version]} {
        set data [encoding convertfrom cp1251 $data]
    } else {
        set data [encoding convertto cp1251 [encoding convertfrom utf-8 $data]]
    }

    regsub -all -- {\n} $data "" data

    # Забираем время когда началась песенка.
    regexp {<p><small>(.*?)</small><br/>} $data "" time

    # Забираем испонителей.
    regexp {<a href=.*? class="artist">(.*?)</a>} $data "" artist
   
    # Забираем название песенки.
    regexp {<a href=.*? class="song">(.*?)</a>} $data "" track

    putserv "PRIVMSG $chan :$time $artist $track"

}
putlog "parsing.tcl loaded..."
 

<tvrsh> !record
<@bionic> 16:29 DJ Fresh Feat. Rita Ora Hot Right Now

Re: radiorecord.ru

СообщениеДобавлено: 03 июн 2012 10:13
ViJIJIKA
[11:09:05] bind: OK
[11:09:05] Tcl error [parsing]: invalid command name "::http::config"

А еще можно что бы он выводил ссылки на скачку и прослушивание.

Re: radiorecord.ru

СообщениеДобавлено: 04 июн 2012 08:46
tvrsh
ViJIJIKA писал(а):[11:09:05] bind: OK
[11:09:05] Tcl error [parsing]: invalid command name "::http::config"

Перед загрузкой всех скриптов добавь в конфиг вот этот: http.tcl
Этот скрипт используется в большинстве скриптов работающих с интернет страницами.

ViJIJIKA писал(а):А еще можно что бы он выводил ссылки на скачку и прослушивание.

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

Re: radiorecord.ru

СообщениеДобавлено: 04 июн 2012 21:48
ViJIJIKA
Можно другие сайты например видео можно с ютуба
Вот еще что нашёл http://www.moreradio.ru/playlist_radio. ... &record_fm

Re: radiorecord.ru

СообщениеДобавлено: 20 июн 2012 17:52
tvrsh
Вот, со ссылкой на прослушивание и с раскраской, можешь поменять ее по своему усмотрению.

<tvrsh> !record
<@bionic> <17:44> Bobina - Quattro 372: http://www.moskva.fm/play/4028/1340199840

TCL: [ Скачать ] [ Скрыть ]
bind pub - !record parsing

proc parsing {nick uhost hand chan text} {

    set parsing_tok [::http::config -useragent "Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320)"]
    set parsing_tok [::http::geturl http://www.moskva.fm/stations/FM_98.4]
    set data [::http::data $parsing_tok]
    ::http::cleanup $parsing_tok

    if {[info exists ::sp_version]} {
        set data [encoding convertfrom cp1251 $data]
    } else {
        set data [encoding convertto cp1251 [encoding convertfrom utf-8 $data]]
    }

    regexp {<td class="msk-colorlist-songs-play-time">(.*?)<td class="msk-colorlist-songs-add-to-compilation">} $data "" data

    regsub -all -- {\n} $data "" data

    # время когда начался трэк.
    regexp {<small class="meta">(.*?)</small>} $data "" time

    # испонитель и название трэка.
    regexp {<a class="song" href="/artist/.*?><b>(.*?)</b>(.*?)</a>} $data "" artist track
   
    # ссылка на прослушивание.
    regexp {http://www.moskva.fm/play/(.*?)\">} $data "
" play
       
    putserv "
PRIVMSG $chan :\00303<\00304$time\00303> \002\00310$artist\002 \00314- $track: \00312\037http://www.moskva.fm/play/$play"

}
putlog "
record.tcl loaded..."

Re: radiorecord.ru

СообщениеДобавлено: 23 июн 2012 16:32
ViJIJIKA
[19:31:06] <09ViJIJIKA> !record
[19:31:08] <BotkaCola> ${myPlaylist.totalCount} Chris Garcia Feat. Sherry St. Germain I Rock Alone: 12http://www.moskva.fm/play/4028/1340454252
Что то с временем напутано.

Re: radiorecord.ru

СообщениеДобавлено: 23 июн 2012 17:04
tvrsh
Замени
    regexp {<td class="msk-colorlist-songs-play-time">(.*?)<td class="msk-colorlist-songs-add-to-compilation">} $data "" data

на
    regexp {<td class="msk-colorlist-songs-play-time">(.*?)</table>} $data "" data

Re: radiorecord.ru

СообщениеДобавлено: 23 июн 2012 22:39
ViJIJIKA
Спасибо, всё работает.