donderdag, 31 juli, 2008
Na een paar uur programmeren en content schrijven is gisteren RubyWeb gelanceerd, een Nederlandstalige nieuws en community website voor Ruby (en Rails) enthousiastelingen.
De website is een kopie van de engelse variant RubyFlow, maar het is de bedoeling de site uit te breiden zodat er meer met de Nederlandse Ruby community gedaan wordt. RubyWeb is tevens open source! Development is te volgen op Github
Geschreven door:
Tom-Eric
Geplaatst in Ruby |
Geen reacties »
vrijdag, 12 oktober, 2007
Voor sites zoals gitaar.nu, is het handig als je een backup van de geëmbedde video’s die je toevoegt hebt. Het zou natuurlijk zomaar kunnen dat er door YouTube in één keer alle video’s van een gebruiker verwijderd worden, waar misschien net die paar video’s bij zaten die jij op je site had staan. Met je eigen backup kan je deze dan later weer toevoegen.
Om deze video’s te downloaden, moet je natuurlijk eerst weten waar de video staat. Elke provider doet dit weer anders, dus dit zelf programmeren zou veel tijd kosten. De site KeepVid, genereert download links van een heleboel video sites, waaronder YouTube, Google Video en Metacafe. Met behulp van Hpricot heb je zoiets redelijk snel gerealiseerd. Hieronder een voorbeeld:
def keepvid_uri(movie_url)
# Eerst parsen we het formulier op keepvid om erachter te komen waar we
# naar moeten posten
uri = URI(Hpricot(URI('http://keepvid.com/').read).at('form')['action'])
# Open een HTTP connectie
Net::HTTP.start(uri.host, uri.port) do |http|
# doe een POST request met de goede argumenten
doc = Hpricot(http.post(uri.path, "url=#{movie_url}&site=aa").body)
# Vind het anchor (a) element met de download link en return hem
anchor = (doc/:a).find{ |a| a.to_s =~ /Download Link/ and
a.next_node.to_s =~ /flv/ }
return URI(anchor['href']) if anchor
end
end
Alhoewel bovenstaande oplossing prima werkt, is het natuurlijk afhankelijk van de HTML die KeepVid aanlevert. Aangezien dit bij bijvoorbeeld een redesign kan veranderen, zou ik dit soort dingen liever via een API doen. Helaas heb ik deze nog niet kunnen vinden op het web.
Geschreven door:
Tom-Eric
Geplaatst in Ruby |
Geen reacties »