-
-
Save gazs/420925 to your computer and use it in GitHub Desktop.
átírtuk, kicsit talán vállalhatóbb: http://github.com/gazs/mr2akusztik |
igen, az xpath különösen otromba. csokiért mondj rá jobbat... elvileg a string(/path) kéne működjön, de szembeköp :(. az ssdcode-ot is biztos lehetne szebben, de scriptkiddy vagyok :P
a curl pedig úriemberhez méltóan mindent átescape-el külön kérdés nélkül.
király kis cucc, el ne mbírod képzelni, mit agyaltam rajta, hogyan lehetne ezt scriptből megoldani. Megoldottad, grat! :-) Én meg köszönöm!
Egy elég hülye dologban viszont hibázik - ha megengedsz nekem ennyi kritikát, mert sokkal többet konyítasz a dologhoz; én csak script kiddie vagyok hozzád képest :-) Ha a performer nevében szóköz van, akkor hibázik, a listában első helyen lévő előadóhoz tartozó filet kezdi letölteni mindig. Szóval annyit varázsoltam a kódon, hogy tracklist letöltéséhez haszált curl hívásban a $PERFORMER változóban a space-eket lecseréltem %20-ra, seddel: sed "s/\ /%20/g"
Quick&Dirty, de müxik.
na, közben még cookie-val is szívatnak már a tracklist letöltésnél, de egy firebug meg a curl megoldotta. A lényeg, hogy meg kell keresni a akusztikplaya oldal által letöltött cookie-t, és azt odaadni paraméterként a curl-nek. Onnantól megy minden :-)
frissítve:
- sütis szivatásra sütik lementése és kérésre visszaböfögés a válasz.
- nicsak, az urlencode valóban zavarta, fixed.
- az xpath vállalhatatlanul csúnya volt. mint kiderült, ha elhalgattatom a sírását az STDERR-en, az STDOUT-ra azért kiírja a helyes megoldást.
- tuti volt mégvalami.
- ha wgettel töltenénk le curl helyett, kapnánk zenityzhető progressbart.
- az ssdcode csufi, hogyan lehet szebben?
na igen, aki tudja is használni a curl-t, annak a cookie is egyszerűbb :-) BTW, küldök magamnak szeretettel egy RTFM-et :-)
Sziasztok,
Elég régi már a post, működik még a letöltő? Én próbáltam, de sajna nem megy.
Ha valaki válaszol, akkor írok hibaüzenetet is.
várjuk a hibaüzenet
mr2.sh indítása után ezt kapom:
/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in gem_original_require': no such file to load -- getopt/long (LoadError) from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in
require'
from /home/attila3/Letöltések/Akusztik/mr2akusztik.rb:7
Ezt kapom, ha ./mr2akusztik.rb -l -t indítom:
attila3@attila-desktop:~/Letöltések/Akusztik$ ./mr2akusztik.rb -l
./mr2akusztik.rb: sor: 2: require: parancs nem található
./mr2akusztik.rb: sor: 3: require: parancs nem található
./mr2akusztik.rb: sor: 4: require: parancs nem található
./mr2akusztik.rb: sor: 5: require: parancs nem található
./mr2akusztik.rb: sor: 6: require: parancs nem található
./mr2akusztik.rb: sor: 7: require: parancs nem található
./mr2akusztik.rb: sor: 9: szintaktikai hiba „(” váratlan token közelében
./mr2akusztik.rb: sor: 9: `$http = Net::HTTP.new('www.mr2.hu')'
Előbbit azért kapod, mert a getopt/long gem nincs telepítve, ezt kellene felraknod, utóbbit pedig azért, mert a script elején nem szerepel shebang, ezért megpróbálja a Ruby scriptet shell scriptként értelmezni.
huh, elég rég óta nem nyúltam ehhez, most nálam valami egészen máshol száll el...
raktam shebanget a ruby script elé, illetve kijavítottam, hogy menjen 1.9.2 alatt (most ez van a gépemen) ... ennek megfelelően várhatóan 1.8 alatt eltörött, de kérlek mondjátok hogy mivan.
Bár a felét sem értek annak, amit írtok, kicsit instsallálgattam és MŰKÖDIK!!! Ezer köszönet Nektek!!!
nekem nagyon nem megy :/
le tudnátok írni pontosan, hogy kell használmi?! mit kell telepíteni stb....
vagy ha leírjátok, hogy néz ki pontosan egy link, akkor letöltöm egyenként, amit szeretnék
nem lehet simán link alapján letölteni, azért is kell ez az eszköz.
első körben rubyt kell telepítened, aztán a szükséges gemeket: nokogiri, progressbar, getopt, asszem ennyi (csinálok a hétvégéig egy Gemfile-t, hogy kicsit egyszerűbb legyen)
köszi :D
felraktam a gemeket, így már sikerült, köszi a segítséget :)
nice, különösen az xpath használat és az ssdcode regexp tetszik ;)
performert hogy-hogy nem zavarja az URL encoding hiánya?