Na stronie Railscasts znajduje się masa screencastów o railsach, trochę irytowało mnie osobne ściąganie plików, sprawdzanie które już mam a których nie, wiec napisałem kawałek kodu. Skrypt pakujemy do katalogu w którym chcemy gromadzić filmiki, odpalamy, dostajemy listę dostępnych na stronie screencastow (pobrane są oznaczane na zielone, niepobrane na czerwono), następnie wpisujemy oddzielone spacjami numery screencastow do pobrania. Może komuś przypadkiem się przyda :)
#!/usr/bin/ruby
require 'open-uri'
require 'rss/2.0'
module RSS
class Rss
class Channel
class Item
def file_name
@file_name ||= self.enclosure.url.split(/\//).last
end
def file_number
file_name.split(/_/).first.to_i
end
def file_size
self.enclosure.length.to_f / 1024 / 1024
end
end
end
end
end
rss_content = ""
open("http://feeds.feedburner.com/railscasts") do |f|
rss_content = f.read
end
rss = RSS::Parser.parse(rss_content,false)
rss.items.reverse.each do |item|
if File.exists?(item.file_name)
printf "\e[32m%s (%.2f MB)\e[0m\n", item.title, item.file_size
else
printf "\e[31m%s (%.2f MB)\e[0m\n", item.title, item.file_size
end
end
puts "Podaj numery screencastow do pobrania"
numbers = STDIN.gets
numbers.split(' ').each do |n|
item = rss.items.detect{|i| i.file_number == n.to_i}
unless item.nil? or File.exists?(item.file_name)
system "wget -c #{item.enclosure.url}"
end
end
Ale … Gdybym wcześniej wiedział, że już jest coś takiego to bym nie pisał swojego. Ale moje dużo prostsze, trywialne wręcz bo pobiera wszystko.
super mały programik a jak cieszy i oszczedza czas
Hmmmm, lubisz przekombinowywac. Lepiej odpalic iTunes, dodać podcast i ściągnąć wszstkie odcinki.