mirror of
https://github.com/getbible/getverse.git
synced 2025-04-09 15:21:50 +00:00
Added option to get scripture by book number.
This commit is contained in:
parent
4ffde4983a
commit
a2f43aefc2
@ -9,23 +9,37 @@ command -v curl >/dev/null 2>&1 || {
|
|||||||
echo >&2 "We require curl for this script to run, but it's not installed. Aborting."
|
echo >&2 "We require curl for this script to run, but it's not installed. Aborting."
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
# set the query
|
# set the query (default: 1 John 3:16-18)
|
||||||
QUERY="${1:-1 John 3:16-18}"
|
QUERY="${1:-62 3:16-18}"
|
||||||
# set the translation
|
# set the translation (default: kjv)
|
||||||
VERSION="${2:-kjv}"
|
VERSION="${2:-kjv}"
|
||||||
# get the name from the query
|
# get the name from the query TODO: find better filter
|
||||||
BOOKNAME=$(echo ${QUERY%%[0-9]?:*} | xargs echo -n)
|
BOOKNAME=$(echo ${QUERY%%[0-9]?:*} | xargs echo -n)
|
||||||
BOOKNAME=$(echo ${BOOKNAME%%[0-9]:*} | xargs echo -n)
|
BOOKNAME=$(echo ${BOOKNAME%%[0-9]:*} | xargs echo -n)
|
||||||
|
# check if the name was given by number
|
||||||
|
re='^[0-9]+$'
|
||||||
|
if [[ "$BOOKNAME" =~ $re ]]; then
|
||||||
|
BOOK_NR="${BOOKNAME}"
|
||||||
|
else
|
||||||
|
# get the list of books from the API to get the book number
|
||||||
BOOKS=$(curl -s "https://getbible.net/v2/${VERSION}/books.json")
|
BOOKS=$(curl -s "https://getbible.net/v2/${VERSION}/books.json")
|
||||||
NUMBERS=$(echo "${QUERY//$BOOKNAME/}" | xargs echo -n)
|
|
||||||
CHAPTER_NR=$(echo "${NUMBERS%:*}" | xargs echo -n)
|
|
||||||
VERSES_NR=$(echo "${NUMBERS#*:}" | xargs echo -n)
|
|
||||||
BOOK_NR=$(echo "$BOOKS" | jq -r ".[] | select(.name == \"${BOOKNAME}\") | .nr")
|
BOOK_NR=$(echo "$BOOKS" | jq -r ".[] | select(.name == \"${BOOKNAME}\") | .nr")
|
||||||
|
fi
|
||||||
|
# get chapter and verses numbers
|
||||||
|
NUMBERS=$(echo "${QUERY/$BOOKNAME/}" | xargs echo -n)
|
||||||
|
# get chapter number
|
||||||
|
CHAPTER_NR=$(echo "${NUMBERS%:*}" | xargs echo -n)
|
||||||
|
# get verses numbers
|
||||||
|
VERSES_NR=$(echo "${NUMBERS#*:}" | xargs echo -n)
|
||||||
|
# get chapter text from getBible API
|
||||||
CHAPTER=$(curl -s "https://getbible.net/v2/${VERSION}/${BOOK_NR}/${CHAPTER_NR}.json")
|
CHAPTER=$(curl -s "https://getbible.net/v2/${VERSION}/${BOOK_NR}/${CHAPTER_NR}.json")
|
||||||
|
# read verses into array by comma separator
|
||||||
IFS=',' read -ra VERSES_NR_ARRAY <<<"${VERSES_NR}"
|
IFS=',' read -ra VERSES_NR_ARRAY <<<"${VERSES_NR}"
|
||||||
|
# start the scripture array
|
||||||
SCRIPTURE=()
|
SCRIPTURE=()
|
||||||
for VER_NR in "${VERSES_NR_ARRAY[@]}"
|
# load the verses in this loop over the verse numbers sets
|
||||||
do
|
for VER_NR in "${VERSES_NR_ARRAY[@]}"; do
|
||||||
|
# check if this is a range of verses
|
||||||
if [[ "${VER_NR}" == *"-"* ]]; then
|
if [[ "${VER_NR}" == *"-"* ]]; then
|
||||||
IFS='-' read -ra VER_NR_ARRAY <<<"${VER_NR}"
|
IFS='-' read -ra VER_NR_ARRAY <<<"${VER_NR}"
|
||||||
START=${VER_NR_ARRAY[0]}
|
START=${VER_NR_ARRAY[0]}
|
||||||
@ -42,6 +56,5 @@ do
|
|||||||
SCRIPTURE+=("${VER_NR} ${TEXT}")
|
SCRIPTURE+=("${VER_NR} ${TEXT}")
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# we return the scripture one verse per/line
|
# we return the scripture one verse per/line
|
||||||
IFS=$'\n'; echo "${SCRIPTURE[*]}"
|
IFS=$'\n'; echo "${SCRIPTURE[*]}"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user