diff options
-rwxr-xr-x | blm | 5 | ||||
-rwxr-xr-x | blq | 29 | ||||
-rwxr-xr-x | xii | 5 |
3 files changed, 31 insertions, 8 deletions
@@ -1,11 +1,10 @@ #!/bin/sh -# Format Blocket.se search results +# Format Blocket.se search results as mboxu -# Convert json to mbox jq -r '.data[] | "From BLOCKET " + (.list_time | sub("\\+[0-9][0-9]:00$"; "Z") | fromdate | strftime("%a %b %e %T %Y")) + "\n" + - "From: " + .advertiser.name + ", " + .location[0].name + " (" + .advertiser.type + ")\n" + + "From: \"" + .advertiser.name + ", " + .location[0].name + " (" + .advertiser.type + ")\" <noreply@localhost>\n" + "Subject: " + "(" + (.price.value | tostring) + ") " + .subject + "\n" + ([.images[].url] | map("X-Image: " + . + "?type=original") | join("\n")) + "\n" + "\n" + .body + "\n" + @@ -2,7 +2,24 @@ # Perform a search on Blocket.se (API v6, Nov 2020) -test -z "$1" && { echo usage: $0 query 1>&2; exit 1; } +usage() { echo usage: $0 query 1>&2; exit 1; } + +if which mutt 1>&- +then : ${MAILER:=mutt -e "set folder=."} +else : ${MAILER:=mailx} +fi + +# Parse options +r= +while getopts rc o +do + case $o in + r) r=1 ;; # process with blm and read in MAILER + ?) usage ;; + esac +done +shift $((OPTIND-1)) +test -z "$1" && usage # Format query string q=`printf '%s\n' "$1" | sed 's/ /%20/g'` @@ -11,4 +28,12 @@ q=`printf '%s\n' "$1" | sed 's/ /%20/g'` tok=`curl -s "https://www.blocket.se/annonser/hela_sverige?q=$q" | awk '/id="initialState"/ {getline; print}' | jq -r .authentication.bearerToken` # Retrieve search results -curl -s -H "authorization: Bearer $tok" "https://api.blocket.se/search_bff/v1/content?lim=40&q=$q&st=s&include=all&gl=3&include=extend_with_shipping" +curl -s -H "authorization: Bearer $tok" "https://api.blocket.se/search_bff/v1/content?lim=40&q=$q&st=s&include=all&gl=3&include=extend_with_shipping" | +{ + test ! -z "$r" && { + f=/tmp/blq.$RANDOM + blm > $f + eval $MAILER -f $f < /dev/tty + rm $f + } || cat +} @@ -8,13 +8,12 @@ dir=/tmp/$RANDOM mkdir $dir -grep '^X-Image: ' | -sed 's/^X-Image: //' | +sed -n 's/^X-Image: //p' | while read url do curl "$url" > $dir/$RANDOM done # Display images and delete them afterwards -$VIEWER $dir/* < /dev/tty +eval $VIEWER $dir/* < /dev/tty rm -r $dir |