key
end
- def create_zip_entries(path)
- zip = Archivers::Zip.new(path)
- zip.each_entry do |ent|
+ def create_entries(path)
+ archiver = Archiver.load(path, extname)
+ unless archiver
+ puts "archiver not found: #{path}"
+ return
+ end
+ archiver.each_entry do |ent|
case ent
when /\.pmd\z/
puts [ code, ent ].join(' ')
locked = bowl.locked?
arc = site.create_arc(name, summary, size, date, origname, locked)
- arc.create_zip_entries("/Volumes/uploader/arc/#{site.code}/#{name}") unless locked
+ arc.create_entries("/Volumes/uploader/arc/#{site.code}/#{name}") unless locked
puts
end
if scrap.match(line)
name, summary, size, date, origname, locked = scrap.row
arc = site.create_arc(name, summary, size, date, origname, locked)
- arc.create_zip_entries("/Volumes/uploader/arc/#{site.code}/#{name}") unless locked
+ arc.create_entries("/Volumes/uploader/arc/#{site.code}/#{name}") unless locked
puts
end
end
puts "error: " + exc.message
end
end
+
+module_function
+
+ def class_from_extname(extname)
+ case extname
+ when 'lzh'
+ Lzh
+ when 'rar'
+ Rar
+ when 'zip'
+ Zip
+ end
+ end
+
+ def load(path, extname)
+ klass = class_from_extname(extname)
+ klass.new(path) if klass
+ end
+
end