Add option to delete older videos if a total size limit is reached
This commit is contained in:
parent
06db124eac
commit
99e5ea11a2
1 changed files with 12 additions and 0 deletions
12
script.rb
12
script.rb
|
@ -12,6 +12,11 @@ OptionParser.new do |parser|
|
|||
parser.on("-f", "--feed FEED", "Feed to download videos from") do |feed|
|
||||
options[:feed]=feed
|
||||
end
|
||||
|
||||
parser.on("-m", "--max-storage SIZE", "Maximum bytes on disk to occupy with videos") do |maxstorage|
|
||||
options[:maxstorage]=maxstorage
|
||||
end
|
||||
|
||||
end.parse!
|
||||
|
||||
raise OptionParser::MissingArgument, "You must specify a feed (-f)" if options[:feed].nil?
|
||||
|
@ -38,5 +43,12 @@ open(options[:feed]) do |rss|
|
|||
:filename => "#{video.filename}",
|
||||
:filesize => File.size("#{video.filename}"),
|
||||
:downloaded => DateTime.now)
|
||||
if not options[:maxstorage].empty?
|
||||
while videos.sum(:filesize) > options[:maxstorage].to_i
|
||||
oldest=videos.order(:downloaded).first
|
||||
File.delete(oldest[:filename])
|
||||
videos.where(:id => oldest[:id]).delete
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Reference in a new issue