Improved handling %09-separated search URLs

This commit is contained in:
Luxferre
2023-03-29 18:59:13 +03:00
parent 6e0d3ac2d3
commit 3dd367c5fb
+9 -5
View File
@@ -126,18 +126,22 @@ amclick() { # args: AM line[, forcedl], output: AM line(s)
local rport="${fields[3]}" local rport="${fields[3]}"
local sel="${fields[4]}" local sel="${fields[4]}"
local input='' local input=''
if [[ 'I' == "$action" ]]; then local puresel="${sel%%\%09*}" # extract the pure selector (w/o possible input)
if [[ "$sel" != "$puresel" ]]; then # check selector for %09, if so, extract the input string
input="${sel##$puresel\%09}"
fi
if [[ 'I' == "$action" && -z "$input" ]]; then
read -p "${LINECLR}${CURSTART}Enter input for $rhost: " input read -p "${LINECLR}${CURSTART}Enter input for $rhost: " input
fi fi
[[ ! -z "$2" ]] && action='D' # force the download action [[ ! -z "$2" ]] && action='D' # force the download action
if [[ 'D' == "$action" ]]; then # download if [[ 'D' == "$action" ]]; then # download
local fname="${sel##*/}" # pure-bash version of basename local fname="${puresel##*/}" # pure-bash version of basename
[[ -z "$fname" ]] && fname='dl.dat' # just make sure that it's not empty [[ -z "$fname" ]] && fname='dl.dat' # just make sure that it's not empty
[[ ! -z "$input" ]] && fname="${fname}%09${input}.search.txt" [[ ! -z "$input" ]] && fname="${fname}%09${input}.search.txt"
gophetch "$rhost" "$rport" "$sel" "$input" > "$BOPHER_DLDIR/$fname" gophetch "$rhost" "$rport" "$puresel" "$input" > "$BOPHER_DLDIR/$fname"
printf 'E\tDownloaded %s to %s\n' "$(amtogopher "$1")" "$BOPHER_DLDIR/$fname" printf 'E\tDownloaded %s to %s\n' "$(amtogopher "$1")" "$BOPHER_DLDIR/$fname"
elif [[ 'I' == "$action" || 'M' == "$action" || 'P' == "$action" ]]; then # text content elif [[ 'I' == "$action" || 'M' == "$action" || 'P' == "$action" ]]; then # text content
readarray -t lines < <(gophetch "$rhost" "$rport" "$sel" "$input") readarray -t lines < <(gophetch "$rhost" "$rport" "$puresel" "$input")
for line in "${lines[@]}"; do # iterate over every fetched line for line in "${lines[@]}"; do # iterate over every fetched line
if [[ 'P' == "$action" ]]; then # generate a plaintext AM entry if [[ 'P' == "$action" ]]; then # generate a plaintext AM entry
printf 'E\t%s\n' "${line%%$'\r'}" # remove a trailing CR if it's there printf 'E\t%s\n' "${line%%$'\r'}" # remove a trailing CR if it's there
@@ -235,7 +239,7 @@ amload() { # args: AM line[, forcedl]
} }
clicklink() { # click the currently focused link clicklink() { # click the currently focused link
if (( $FOCUSLINEINDEX > -1 )); then if [[ ! -z "$FOCUSLINEINDEX" ]] && (( $FOCUSLINEINDEX > -1 )); then
AMHISTORY+=("$CURRENTAM") # update the history chain AMHISTORY+=("$CURRENTAM") # update the history chain
amload "${SCREENBUF[$FOCUSLINEINDEX]}" "$1" amload "${SCREENBUF[$FOCUSLINEINDEX]}" "$1"
fi fi