Refactor links script
This commit is contained in:
54
bin/links
54
bin/links
@@ -5,46 +5,40 @@ require "open-uri"
|
|||||||
|
|
||||||
FEED_URL = "https://bookmarks.davideisinger.com/u:dce.json"
|
FEED_URL = "https://bookmarks.davideisinger.com/u:dce.json"
|
||||||
|
|
||||||
index = (ARGV.pop || 1).to_i
|
# Mutable state
|
||||||
|
index = (ARGV.pop || 1).to_i
|
||||||
content = []
|
content = []
|
||||||
links = []
|
links = []
|
||||||
refs = []
|
refs = []
|
||||||
|
|
||||||
item_content = ->(item) do
|
# Helpers
|
||||||
title = "[#{item["title"]}][#{index}]"
|
archive_url = ->(url) { `bin/archive "#{url}"`.sub("references:\n", "") }
|
||||||
|
|
||||||
|
link_def = ->(i, url) { "[#{i}]: #{url}" }
|
||||||
|
|
||||||
|
item_content = ->(item, i) do
|
||||||
|
title = "[#{item["title"]}][#{i}]"
|
||||||
|
title += " ([via][#{i + 1}])" if item["referrer"]
|
||||||
|
|
||||||
|
desc = (item["description"] || "").to_s.tr("\n", " ").squeeze(" ")
|
||||||
|
|
||||||
if item["referrer"]
|
|
||||||
title += " ([via][#{index + 1}])"
|
|
||||||
end
|
|
||||||
|
|
||||||
<<~OUT
|
<<~OUT
|
||||||
* #{title}
|
* #{title}
|
||||||
|
|
||||||
> #{item["description"].tr("\n", " ").squeeze(" ")}
|
> #{desc}
|
||||||
OUT
|
OUT
|
||||||
end
|
end
|
||||||
|
|
||||||
item_link = ->(item) do
|
add_url = ->(url) do
|
||||||
"[#{index}]: #{item["url"]}"
|
links << link_def[index, url]
|
||||||
|
refs << archive_url[url]
|
||||||
|
index += 1
|
||||||
end
|
end
|
||||||
|
|
||||||
add_item = ->(item) do
|
add_item = ->(item) do
|
||||||
ref = `bin/archive "#{item["url"]}"`.gsub("references:\n", "")
|
content << item_content[item, index]
|
||||||
|
add_url[item["url"]]
|
||||||
content << item_content[item]
|
add_url[item["referrer"]] if item["referrer"]
|
||||||
links << item_link[item]
|
|
||||||
refs << ref
|
|
||||||
|
|
||||||
index += 1
|
|
||||||
|
|
||||||
if item["referrer"]
|
|
||||||
ref = `bin/archive "#{item["referrer"]}"`.gsub("references:\n", "")
|
|
||||||
|
|
||||||
links << "[#{index}]: #{item["referrer"]}"
|
|
||||||
refs << ref
|
|
||||||
|
|
||||||
index += 1
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
result = -> do
|
result = -> do
|
||||||
@@ -61,8 +55,8 @@ end
|
|||||||
process_item = ->(item) do
|
process_item = ->(item) do
|
||||||
puts <<~OUT
|
puts <<~OUT
|
||||||
|
|
||||||
#{item_content[item]}
|
#{item_content[item, index]}
|
||||||
#{item_link[item]}
|
#{link_def[index, item["url"]]}
|
||||||
|
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user