dots/bin/bin/paul.sh

49 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
exit_m() {
echo "$1"
exit 1
}
# curl with cache! (in "/tmp")
curl_cache(){
local cache_path=`echo $1 | sed 's|/|_|g'`
local cache_path="/tmp/$cache_path"
[ -f "$cache_path" ] || curl -s "$1" -o "$cache_path"
echo "$cache_path"
}
domain="https://tutorial.math.lamar.edu/"
file=`curl_cache "$1"` # main file, that has all questions
q_num=$(( $2 - 1 )) #numbering starts at 1
# naive method to check for only args!
[ -n "$file" ] || exit_m "No Files Given"
[ -n "$q_num" ] || exit_m "No Questoin Number Given!"
[ ! -n "$3" ] || exit_m "Incorrect number of args :("
# get all practice questions
question_text=`cat $file | pup 'body .practice-problems li json{}' |
jq ".[${q_num}].text" | tr -d '"'`
# get all solution *links*
solution_path=`cat $file | pup 'body .practice-problems li json{}' |
jq -r ".[${q_num}].children[0].href"`
solution_url="$domain/$solution_path"
# ==== get solution =========
# download if not already downloaded
solution_path=`curl_cache "$solution_url"`
echo "$question_text"
echo "\n"
cat "$solution_path" | pup 'body .soln-content p text{}'