Store references as metadata

This commit is contained in:
David Eisinger
2023-04-04 20:15:46 -04:00
parent 49ca2bd736
commit 39b932a708
6 changed files with 74 additions and 42 deletions

View File

@@ -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)