Skip to content

Instantly share code, notes, and snippets.

@rkoopmann
Last active March 4, 2024 18:56
Show Gist options
  • Save rkoopmann/a9e0244e68d1c982efbbc5f3a4f5558a to your computer and use it in GitHub Desktop.
Save rkoopmann/a9e0244e68d1c982efbbc5f3a4f5558a to your computer and use it in GitHub Desktop.
sketch-share-solve-answers
#!/bin/bash
# determine which version you're working with, then uncomment the corresponding commit id
versionCommit="9ac64f8c52129970034e636296810db10283c988" # v1.0.0 2022-02-28
#versionCommit="e660070cd210d8ad81fc5679a1782b197e573ec3" # v1.1.0 2022-03-12
#versionCommit="fa8e0c20ef5d24ab5d8ed66c53088c0443940b4e" # v1.1.1 2022-04-29
#versionCommit="dff1b0e7f6274b6d69c99eb3d7ca45b272d5f88b" # v1.2.0 2022-05-21
#versionCommit="fb75f6a73af2571f2db4692a60c2d8f492a75410" # v1.2.1 2022-05-31
#versionCommit="7d73f2a282d7ad7a076f4a15ef8212e41e2820cd" # v1.4.0 2022-12-22
#versionCommit="5ae7cc8232895e417d71dfe95d79e8c7af167f28" # v2.0.0 2023-01-22
#versionCommit="3bf8529c4df2f5c8e76ba839b095b8f49ebca995" # v2.0.1 2023-01-22
#versionCommit="5bccf289eaf519b848b30a2fa1f0f4a3c5763db0" # v2.0.2 2023-01-22
#versionCommit="2b43b9d09f4cd0622904420f821cf2ed61863445" # v2.1.0 2023-02-04
#versionCommit="6ee2a66d553a64951205ecd5e71f64a47167a828" # v2.1.1 2023-02-13
#versionCommit="c0c4d2837d259fa75acc013c34593bfd9625a164" # v2.1.2 2023-05-07
#versionCommit="" # the current version
if [ "${versionCommit}" != "" ]; then
keyUrl="https://raw.githubusercontent.com/veu/sketch-share-solve/${versionCommit}/src/import/rdk.json"
else
keyUrl="https://raw.githubusercontent.com/veu/sketch-share-solve/main/src/import/rdk.json" # current
fi
# grab json data to temp file
jsonData=$(mktemp)
curl -s "${keyUrl}" \
> "${jsonData}"
# generate a temp file of sed patterns to number the puzzles
sedPatterns1=$(mktemp)
jq -r '.profiles[] | .created | @tsv' "${jsonData}" \
| tr $'\t' $'\n' \
| awk '{print "s/"$0"/!"NR"!/"}' \
> "${sedPatterns1}"
sedPatterns2=$(mktemp)
jq -r '.profiles[] | .created | @tsv' "${jsonData}" \
| tr $'\t' $'\n' \
| awk '{print "s/!"NR"!/"$0"/"}' \
> "${sedPatterns2}"
# print out the (semi-)sorted solutions
jq -r '.puzzles[] | [.id, .title, .grid] | @tsv' "${jsonData}" \
| sed -f "${sedPatterns1}" \
| sort -k1 \
| sed -f "${sedPatterns2}" \
| awk -F\t '{ print "\n", $1, $2; for (i = 1; i <= length($3); i+=15) print substr($3, i, 15); }' \
| tr '01' '🏴🏳️' \
| sed -f "${sedPatterns1}" \
| tr -d '!'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment