Store references as metadata
This commit is contained in:
31
bin/backup
31
bin/backup
@@ -2,25 +2,18 @@
|
||||
|
||||
require "uri"
|
||||
require "digest"
|
||||
require "time"
|
||||
|
||||
filename, *urls = ARGV
|
||||
path, *urls = ARGV
|
||||
|
||||
unless filename && urls.any?
|
||||
warn "Please supply a filename and url"
|
||||
unless path && urls.any?
|
||||
warn "Please supply a path and url"
|
||||
exit 1
|
||||
end
|
||||
|
||||
path = filename.sub(File.basename(filename), "")
|
||||
content = File.read(filename)
|
||||
puts "references:"
|
||||
|
||||
urls.each do |url|
|
||||
link_id = content.scan(/\[(\d+)\]: #{url}/).first.first
|
||||
|
||||
unless link_id
|
||||
warn "Link not found"
|
||||
exit 1
|
||||
end
|
||||
|
||||
page_content = `curl -s #{url}`
|
||||
text_content = `w3m #{url}`
|
||||
|
||||
@@ -41,12 +34,14 @@ urls.each do |url|
|
||||
.join
|
||||
.downcase
|
||||
|
||||
link_filename = "#{URI.parse(url).host.gsub(".", "-")}-#{hash}.txt"
|
||||
filename = "#{URI.parse(url).host.gsub(".", "-")}-#{hash}.txt"
|
||||
|
||||
File.write("#{path}/#{link_filename}", text_content)
|
||||
File.write("#{path}/#{filename}", text_content)
|
||||
|
||||
content.gsub!(/\[#{link_id}\]([^:])/, "[#{link_id}][^#{link_id}-backup]\\1")
|
||||
content << "\n[^#{link_id}-backup]: \"<a href=\"#{url}\">#{title}</a>\"; <a href=\"#{link_filename}\">backed up #{Time.now.utc}</a>"
|
||||
puts <<~STR
|
||||
- title: "#{title}"
|
||||
url: #{url}
|
||||
date: #{Time.now.utc.iso8601}
|
||||
file: #{filename}
|
||||
STR
|
||||
end
|
||||
|
||||
File.write(filename, content)
|
||||
|
||||
Reference in New Issue
Block a user