cli-games/godville-tracker/godville-tracker

104 lines
3.5 KiB
Bash
Executable File

#!/bin/bash
#If there is more than one command line arg something is wrong
if [ $# -gt 1 ] ; then
echo "usage:
$0 godname"
exit 1
fi
#set godName variable if it was passed from the command line
if [ $# -eq 1 ] ; then
godName="$1"
fi
#read from file if it exists, and name wasn't passed in on command line
if [ -f .godville-trackerrc -a $# -eq 0 ] ; then
source .godville-trackerrc
fi
#if name is not set in file, prompt for it here
if [ -z "$godName" ] ; then
read -p "Please enter the god's name? " godName
fi
#Counter variable initialization
i=60
#main update loop
while [ "${continue^}" != "Q" ] ; do
#Update info every minute
if [ $i -ge 60 ] ; then
godvilleInfo="$(curl -Ss "http://godvillegame.com/gods/api/${godName}.json")"
#godvilleInfo="$(cat tmp.txt)"
clear
#remove most of the json stuff, and other formatting goodness
godvilleInfo="$(echo "$godvilleInfo" | sed -e 's/":"/ /g' -e 's/","/\n/g')"
godvilleInfo="$(echo "$godvilleInfo" | sed -e 's/":/ /g' -e 's/,"/\n/g')"
godvilleInfo="$(echo "$godvilleInfo" | sed -e 's/{"//g' -e 's/"}//g' -e 's/}}//g' -e 's/\\u201[c|d]/"/g')"
#load info into variables
alignment="$(echo "$godvilleInfo" | grep "^alignment" | cut -d ' ' -f2-)"
bricks_cnt="$(echo "$godvilleInfo" | grep "^bricks_cnt" | cut -d ' ' -f2-)"
bricks_cnt=$(echo "scale=1;$bricks_cnt * 0.1" | bc)
clan="$(echo "$godvilleInfo" | grep "^clan " | cut -d ' ' -f2-)"
clan_position="$(echo "$godvilleInfo" | grep "^clan_position" | cut -d ' ' -f2-)"
gender="$(echo "$godvilleInfo" | grep "^gender" | cut -d ' ' -f2-)"
gold_approx="$(echo "$godvilleInfo" | grep "^gold_approx" | cut -d ' ' -f2-)"
inventory="$(echo "$godvilleInfo" | grep "^inventory " | cut -d ' ' -f2-)"
inventory_max_num="$(echo "$godvilleInfo" | grep "^inventory_max_num" | cut -d ' ' -f2-)"
level="$(echo "$godvilleInfo" | grep "^level" | cut -d ' ' -f2-)"
name="$(echo "$godvilleInfo" | grep "^name" | cut -d ' ' -f2-)"
max_health="$(echo "$godvilleInfo" | grep "^max_health" | cut -d ' ' -f2-)"
motto="$(echo "$godvilleInfo" | grep "^motto" | cut -d ' ' -f2-)"
pet_class="$(echo "$godvilleInfo" | grep "^pet_class" | cut -d ' ' -f2-)"
pet_level="$(echo "$godvilleInfo" | grep "^pet_level" | cut -d ' ' -f2-)"
pet_name="$(echo "$godvilleInfo" | grep "^pet pet_name" | cut -d ' ' -f3-)"
quest="$(echo "$godvilleInfo" | grep "^quest" | cut -d ' ' -f2-)"
temple_completed_at="$(echo "$godvilleInfo" | grep "^temple_completed_at" | cut -d ' ' -f2-)"
if [ "$temple_completed_at" != "null" ] ; then
temple_completed_at="$(date --date="$temple_completed_at" +'%I:%M%p %A, %B %d, %Y')"
fi
#display Information
echo "God
Name: $godName
Hero
Name: $name ($gender)
Motto: $motto
Personality: $alignment"
#Not everyone is in a clan:
if [ -n "$clan" ] ; then
echo "Guild: $clan ($clan_position)"
fi
echo "Level: $level
Inventory: ### / $inventory_max_num
Health: ### / $max_health
Quest: $quest
Gold: $gold_approx
Bricks for Temple: $bricks_cnt%"
#Not everyone has completed their temple
if [ "$temple_completed_at" != "null" ] ; then
echo "Temple Completed: $temple_completed_at"
fi
#Not everyone has a pet
if [ -n "$pet_name" ] ; then
echo
echo "Pet
Name: $pet_name
Class $pet_class"
#Not all pets show a level
if [[ "$pet_level" =~ ^[0-9]+$ ]] ; then
echo "Level: $pet_level"
fi
fi
#reset counter variable
i=0
fi
#Wait for user input and sleep for 1 second
read -t1 -n1 continue
#Incriment counter
let i++
done
echo
exit 0