Files
forge/forge-gui/tools/scryfallEditionParser.sh
2018-09-05 08:59:38 +01:00

58 lines
1.8 KiB
Bash

#!/bin/bash
declare -A types
types=( ["commander"]="Other" ["core"]="Core")
declare -A rarities
rarities=( ["mythic"]="M" ["rare"]="R" ["uncommon"]="U" ["common"]="C" ["rare"]="R" )
setname=$1
wget -q -O /tmp/setinfo.json "https://api.scryfall.com/sets/$setname?format=json"
wget "https://api.scryfall.com/cards/search?order=set&unique=art&q=set%3D$setname" -q -O /tmp/set.json
cat /tmp/set.json | jq ".data | .[].collector_number" | sed "s/\"//g" > /tmp/cardidlist
hasmore=`cat /tmp/set.json | jq ".has_more" | sed "s/\"//g"`
nextpage=`cat /tmp/set.json | jq ".next_page" | sed "s/\"//g"`
while [ $hasmore ] ; do
sleep 0.01
wget "$nextpage" -q -O /tmp/next.json
cat /tmp/next.json | jq ".data | .[].collector_number" | sed "s/\"//g" >> /tmp/cardidlist
hasmore=`cat /tmp/next.json | jq ".has_more" | sed "s/\"//g"`
nextpage=`cat /tmp/next.json | jq ".next_page" | sed "s/\"//g"`
done
cardIDs=($(cat /tmp/cardidlist))
sleep 0.1
echo "[metadata]"
code=`echo "$1" | awk '{print toupper($0)}'`
dateReleased=`cat /tmp/setinfo.json | jq ".released_at" | sed "s/\"//g"`
name=`cat /tmp/setinfo.json | jq ".name" | sed "s/\"//g"`
echo "Code=$code"
echo "Date=$dateReleased"
echo "Name=$name"
echo "Code2=$code"
echo "MciCode=$1"
echo "Type=Other"
echo ""
echo "[cards]"
for i in "${cardIDs[@]}"
do
sleep 0.01
wget -q -O /tmp/$i.json "https://api.scryfall.com/cards/$setname/$i?format=json"
name=`cat /tmp/$i.json | jq .name | sed "s/\"//g"`
basiclandtype=`cat /tmp/$i.json | jq .type_line | sed "s/\"//g" | grep "Basic Land" | wc -l`
if [ $basiclandtype -gt 0 ]; then
rarity="L"
else
rarityString=`cat /tmp/$i.json | jq .rarity | sed "s/\"//g"`
rarity=${rarities[$rarityString]}
fi
cnumber=`cat /tmp/$i.json | jq .collector_number | sed "s/\"//g"`
echo "$cnumber $rarity $name"
done