diff options
author | Rodrigo Arias Mallo <rodarima@gmail.com> | 2025-01-07 19:05:12 +0100 |
---|---|---|
committer | Rodrigo Arias Mallo <rodarima@gmail.com> | 2025-01-07 19:07:11 +0100 |
commit | 13fd6cd8bc8a4fcfdc0fd1e89dc57ea9c1d1b3c0 (patch) | |
tree | 74f1a0eba45b268265359155914d2a9c0141642f /rdrview.filter.dpi |
Diffstat (limited to 'rdrview.filter.dpi')
-rwxr-xr-x | rdrview.filter.dpi | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/rdrview.filter.dpi b/rdrview.filter.dpi new file mode 100755 index 0000000..f1a2f84 --- /dev/null +++ b/rdrview.filter.dpi @@ -0,0 +1,55 @@ +#!/bin/bash +# Copyright (c) 2025 Rodrigo Arias Mallo +# SPDX-License-Identifier: GPL-3.0-or-later + +IFS= read -d '>' auth # Ignore auth +IFS= read -d '>' cmd +dir="$(dirname $(readlink -f $0))" + +case "$cmd" in + "<cmd='open_url' url='"*);; + *) echo $cmd; exit;; +esac + +url=${cmd#"<cmd='open_url' url='"} +url=${url%"' '"} + +serve_error() { + printf "<cmd='start_send_page' url='' '>\n" + printf "Content-type: text/plain\r\n\r\n" + echo "Error: $@" + exit 0 +} + +serve_page() { + # For debug: + #set -x + url="$1" + url=${url#"rdrview:"} + + tmpfile=$(mktemp "${TMPDIR:-/tmp}/rdrview.XXXXXX") + + curl -L "$url" -o "$tmpfile" || serve_error "cannot download URL: $url" + + printf "<cmd='start_send_page' url='' '>\n" + printf "Content-type: text/html\r\n\r\n" + echo "<!DOCTYPE html>" + echo "<html>" + echo "<head>" + rdrview -M < "$tmpfile" | grep '^Title' | sed 's/^Title: //g;s/^/<title>/;s_$_</title>_' + echo "<style>" + cat "$dir/style.css" + echo "</style>" + echo "</head>" + echo "<body>" + rdrview -u "$url" -T title,body -E utf-8 -H < "$tmpfile" + echo "</body>" + echo "</html>" + + rm -f "$tmpfile" +} + +case "$url" in + rdrview:*) serve_page "$url";; + *) serve_error "unknown URL: ${url}";; +esac |