From d09155bcb8ce047d33ce97c34ae0c972281fe99d Mon Sep 17 00:00:00 2001 From: defanor Date: Wed, 6 Dec 2017 10:18:54 +0300 Subject: Add a web.archive.org shortcut into the default configuration Finding the last HTTP 200 response via the availability API, so a dummy "web-archive" scheme is added into the default configuration in order to use a custom command. The URI_ESCAPED environment variable is also introduced, though not used here -- but may be handy for similar custom commands. --- Pancake/Configuration.hs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'Pancake/Configuration.hs') diff --git a/Pancake/Configuration.hs b/Pancake/Configuration.hs index 7c537bc..9ad60dc 100644 --- a/Pancake/Configuration.hs +++ b/Pancake/Configuration.hs @@ -82,9 +82,12 @@ instance Default Config where [ ("ssh", "scp \"${URI_REGNAME}:${URI_PATH}\" /dev/stdout" ++ " && echo -e '\n-pancake-'") , ("gopher", "curl \"${URI}\"" - ++ " -w \"\n-pancake-\n\"")] - , defaultCommand = "curl --compressed -4 -L \"${URI}\"" - ++ " -w \"\n-pancake-\nuri: %{url_effective}\ntype: %{content_type}\n\"" + ++ " -w \"\n-pancake-\n\"") + , ("web-archive", concat + [ curl + , "\"$(curl \"https://archive.org/wayback/available${URI_QUERY}" + , "\" | jq -r '.archived_snapshots.closest.url')\"" ])] + , defaultCommand = curl ++ "\"${URI}\"" , externalViewers = M.fromList $ map (flip (,) "emacsclient -n \"${FILE}\"") ["hs", "cabal", "c", "h", "el", "scm", "idr"] @@ -98,12 +101,17 @@ instance Default Config where , ("g", "https://m.gutenberg.org/ebooks/search.mobile/?query=") , ("xiph", "http://dir.xiph.org/search?search=") , ("gp", "gopher://gopherpedia.com:70/7/lookup?") - , ("vs", "gopher://gopher.floodgap.com/7/v2/vs?")] + , ("vs", "gopher://gopher.floodgap.com/7/v2/vs?") + , ("wa", "web-archive:///?url=")] , paginate = True , historyDepth = 100 , referenceDigits = "0123456789" , indentDivs = False } + where + curl = concat + [ "curl --compressed -4 -L " + , "-w \"\n-pancake-\nuri: %{url_effective}\ntype: %{content_type}\n\" "] -- | Loads configuration from an XDG config directory. loadConfig :: MonadIO m => m Config -- cgit v1.2.3