commit 107f99192e218daeb97c00df06698b69cb55c8d1
parent 14180ce12a86d768302f7a0a090650bfaff316cb
Author: David Eisinger <[email protected]>
Date: Mon, 3 Apr 2023 23:52:09 -0400
Add URL backup script
Diffstat:
| A | bin/backup | | | 40 | ++++++++++++++++++++++++++++++++++++++++ |
1 file changed, 40 insertions(+), 0 deletions(-)
diff --git a/bin/backup b/bin/backup
@@ -0,0 +1,40 @@
+#!/usr/bin/env ruby
+
+require "uri"
+require "digest"
+
+filename, url = ARGV
+
+unless filename && url
+ warn "Please supply a filename and url"
+ exit 1
+end
+
+path = filename.sub(File.basename(filename), "")
+content = File.read(filename)
+
+link_id = content.scan(/\[(\d+)\]: #{url}/).first.first
+
+unless link_id
+ warn "Link not found"
+ exit 1
+end
+
+uri = URI.parse(url)
+
+link_content = `w3m #{url}`
+
+hash = Digest::MD5.base64digest(url + link_content)
+ .scan(/[a-z0-9]/i)
+ .first(6)
+ .join
+ .downcase
+
+link_filename = "#{uri.host.gsub(".", "-")}-#{hash}.txt"
+
+File.write("#{path}/#{link_filename}", link_content)
+
+content.gsub!(/\[#{link_id}\]([^:])/, "[#{link_id}][^#{link_id}-backup]\\1")
+
+File.write(filename, content)
+File.write(filename, "\n[^#{link_id}-backup]: <a href=\"#{link_filename}\">Backed up #{Time.now}</a>", mode: "a+")