From c012c648e0691868370a5a8c1eb468020fef6330 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 18 Jun 2014 22:29:04 -0700 Subject: wherein I revive some of my 30+year old shell scripting skills so that we can process arbitrary api endpoints which generate arbitrary json and be able to crunch all of these on the command line. Getting the arbitrary query arguments into a form where they could be signed as part of the oauth packet was a challenge. (It still might be - I haven't tried querying any Chinese photo album names yet). But you can now do something like for a in `util/shredder/shredder -c red/photos -q album=2013 | jshon -e photos -a -e src` ; do wget $a; done and download all the photos in your 2013 album --- util/shredder/ShredOAuth.sh | 23 ++++++++++++++++++++--- util/shredder/shredder | 6 ++++-- 2 files changed, 24 insertions(+), 5 deletions(-) (limited to 'util') diff --git a/util/shredder/ShredOAuth.sh b/util/shredder/ShredOAuth.sh index 76858d73c..9e808a2d6 100755 --- a/util/shredder/ShredOAuth.sh +++ b/util/shredder/ShredOAuth.sh @@ -174,17 +174,34 @@ FO_statuses_home_timeline () { FO_command () { local command="$1" - + local opts="$2" local params=( $(OAuth_param 'screen_name' $screen_name) $(OAuth_param 'count' $count) ) +#echo ${opts[@]} + + convscreen=$(OAuth_PE "$screen_name"); + data="screen_name=${convscreen}&count=${count}" + + if [ ${#opts[@]} != 0 ]; then + for b in ${opts[@]}; do + lhs=`echo $b | awk -F= '{print $1};'` + rhs=`echo $b | awk -F= '{print $2};'` + params=("${params[@]}" $(OAuth_param $lhs $rhs)) + data=$data"&"$lhs=$rhs + done + fi + +#echo ${params[@]} + +#echo $data + local auth_header=$(OAuth_authorization_header 'Authorization' "$redmatrix_url" '' '' 'GET' "${redmatrix_url}/api/${command}.json" ${params[@]}) - convscreen=$(OAuth_PE "$screen_name"); - FO_ret=$(curl -s --get "${redmatrix_url}/api/${command}.json" --data "screen_name=${convscreen}&count=${count}" --header "${auth_header}") + FO_ret=$(curl -s --get "${redmatrix_url}/api/${command}.json" --data "${data}" --header "${auth_header}") FO_rval=$? return $FO_rval diff --git a/util/shredder/shredder b/util/shredder/shredder index b8d298175..c46dfe0ec 100755 --- a/util/shredder/shredder +++ b/util/shredder/shredder @@ -158,8 +158,9 @@ main () { fcli_file= fcli_help_flag= JS_Fields=() + fcli_opts= - while getopts "C:c:s:r:f:h:i" name + while getopts "C:c:s:r:f:i:q:h" name do case $name in c) fcli_command="$OPTARG";; @@ -168,6 +169,7 @@ main () { r) fcli_in_reply_to_status_id="$OPTARG";; f) fcli_file="$OPTARG";; h) fcli_help_flag="1";; + q) fcli_opts=("${fcli_opts[@]}" "$OPTARG");; i) JS_Fields=("${JS_Fields[@]}" "$OPTARG");; ?) usage exit 2;; @@ -216,7 +218,7 @@ main () { return $FO_rval ;; *) - FO_command $fcli_command + FO_command $fcli_command ${fcli_opts[@]} echo $FO_ret -- cgit v1.2.3