#!/usr/bin/env bash

set -e -u -o pipefail

params=(
  action=query
  list=categorymembers
  cmtitle=Category%3AProgramming_Languages
  cmprop=title
  cmlimit=1500
  format=json
)

url=https://rosettacode.org/w/api.php?$(IFS='&'; echo "${params[*]}")

more=''

while true; do
  json=$(curl -s "$url$more")

  <<<"$json" jq -r '.query .categorymembers | .[] .title' |
    grep -E '^Category:[.a-zA-Z0-9]' |
    sed 's/^Category://'

  cmcontinue=$(<<<"$json" jq -r .continue.cmcontinue)
  [[ $cmcontinue == null ]] && break

  more="&cmcontinue=$cmcontinue"
done
