Skip to content

Instantly share code, notes, and snippets.

@PatPeter
Last active October 7, 2019 07:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PatPeter/999cbe422c3a2de2f5564338159ddd1b to your computer and use it in GitHub Desktop.
Save PatPeter/999cbe422c3a2de2f5564338159ddd1b to your computer and use it in GitHub Desktop.
Validates the PatreonRanks.csv file with a CSV downloaded from Patreon
#!/bin/bash
echo -en "" > ReservedSlots.txt
echo "76561197974998697 # PatPeter" >> ReservedSlots.txt
echo "76561198096889432 # 11 Corgis on a Computer" >> ReservedSlots.txt
#echo "76561198309869930 # LostInMyThoughts" >> ReservedSlots.txt
#echo "76561198005366267 # Roartex" >> ReservedSlots.txt
echo "76561198170933298 # Craz" >> ReservedSlots.txt
#echo "76561198098544254 # SentinelBlue" >> ReservedSlots.txt
#echo "76561198201989204 # TheBlade" >> ReservedSlots.txt
echo "76561198149941372 # DotSpecific" >> ReservedSlots.txt
echo "76561198100633777 # Sexually Aggressive Starfish" >> ReservedSlots.txt
declare -A patreon_ranks
while read -r line
do
name=`echo $line | cut -d, -f1`
id=`echo $line | cut -d, -f2`
rank=`echo $line | cut -d, -f5`
#if [ "$rank" = "o5council" ]
#then
# echo "$id # $name" >> ReservedSlots.txt
#fi
patreon_ranks[$id]=$line
done < PatreonRanks.csv
#echo ${#patreon_ranks[@]}
#echo ${!patreon_ranks[@]}
# TODO COMPARE EACH LINE OF ReservedSlots.txt TO PatreonRanks.csv
# INSTEAD OF GENERATING A NEW FILE
while read -r line
do
patreon_status=`echo $line | cut -d, -f4`
#echo $patreon_status
pledge=`echo $line | cut -d, -f7`
pledge=${pledge//\$/}
custom_data=`echo $line | cut -d, -f20`
steam_id=`echo $custom_data | cut -d';' -f1`
if [ -z "$steam_id" ]
then
#echo [NO STEAM ID] No Steam ID exists for line $line
continue
fi
name=`echo $custom_data | cut -d';' -f2`
if [ "$patreon_status" = "Active patron" ]
then
disabled_steam_id=${steam_id}_disabled
if [ -n "${patreon_ranks[$disabled_steam_id]}" ]
then
echo [MISSING REWARDS] $patreon_status $name IS ACTIVE BUT HAS NO PATRON REWARDS! $steam_id
old_rank_line=${patreon_ranks[$disabled_steam_id]}
patreon_rank_line=$old_rank_line
patreon_rank_line=${patreon_rank_line//$disabled_steam_id/$steam_id}
patreon_rank_line=${patreon_rank_line//former_/}
patreon_rank_line=${patreon_rank_line//disabled_/}
#echo $patreon_rank_line
sed -i.bak "s~$old_rank_line~$patreon_rank_line~" PatreonRanks.csv
else
old_rank_line=${patreon_ranks[$steam_id]}
patreon_rank_line=${patreon_ranks[$steam_id]}
patreon_rank=`echo $patreon_rank_line | cut -d, -f5`
#if [ -z $patreon_rank ]
#then
# echo "[MISSING RANK] $patreon_rank_line"
#fi
if [ $pledge -le 4 ]
then
if [ "$patreon_rank" != "dclass" ]
then
echo [WRONG TIER] $patreon_status $name IS A dclass BUT IS SET TO $patreon_rank! $steam_id
patreon_rank_line=${patreon_rank_line//,$patreon_rank/,dclass}
sed -i.bak "s~$old_rank_line~$patreon_rank_line~" PatreonRanks.csv
fi
# else player is a dclass
elif [ $pledge -le 9 ]
then
if [ "$patreon_rank" != "scientist" ]
then
echo [WRONG TIER] $patreon_status $name IS A scientist BUT IS SET TO $patreon_rank! $steam_id
patreon_rank_line=${patreon_rank_line//,$patreon_rank/,scientist}
sed -i.bak "s~$old_rank_line~$patreon_rank_line~" PatreonRanks.csv
fi
# else player is a scientist
elif [ $pledge -le 14 ]
then
if [ "$patreon_rank" != "ci" ]
then
echo [WRONG TIER] $patreon_status $name IS A ci BUT IS SET TO $patreon_rank $steam_id
patreon_rank_line=${patreon_rank_line//,$patreon_rank/,ci}
sed -i.bak "s~$old_rank_line~$patreon_rank_line~" PatreonRanks.csv
fi
# else player is a ci
elif [[ $pledge -le 19 ]]
then
if [ "$patreon_rank" != "ntf" ]
then
echo [WRONG TIER] $patreon_status $name IS AN ntf BUT IS SET TO $patreon_rank! $steam_id
patreon_rank_line=${patreon_rank_line//,$patreon_rank/,ntf}
sed -i.bak "s~$old_rank_line~$patreon_rank_line~" PatreonRanks.csv
fi
# else player is a ntf
elif [ $pledge -ge 20 ]
then
if [ "$patreon_rank" != "o5council" ]
then
echo [WRONG TIER] $patreon_status $name IS AN o5council BUT IS SET TO $patreon_rank! $steam_id
patreon_rank_line=${patreon_rank_line//,$patreon_rank/,o5council}
sed -i.bak "s~$old_rank_line~$patreon_rank_line~" PatreonRanks.csv
fi
# else player is a o5council
fi
fi
elif [[ "$patreon_status" = "Former patron" || "$patreon_status" = "Declined patron" ]]
then
disabled_steam_id=${steam_id}_disabled
if [ -n "${patreon_ranks[$steam_id]}" ]
then
# Check the rank before deciding if this is a freerider
old_rank_line=${patreon_ranks[$steam_id]}
patreon_rank_line=$old_rank_line
patreon_rank_line=${patreon_rank_line//$steam_id/$disabled_steam_id}
patreon_rank=`echo $patreon_rank_line | cut -d, -f5`
if [[ $patreon_rank == "scp" ]]
then
echo "[IGNORED] Ignoring SCP user $name $steam_id"
continue
fi
if [[ $patreon_rank == "nitro_booster" ]]
then
echo "[IGNORED] Ignoring Nitro Boosted user $name $steam_id"
continue
fi
if [[ $patreon_rank == "blacklisted_"* ]]
then
echo "[BLACKLISTED] Ignoring blacklisted user $name $steam_id"
continue
fi
echo [FREERIDER] $patreon_status $name STILL HAS ACTIVE PATREON REWARDS! $steam_id
patreon_rank_new=`echo $patreon_status | cut -d' ' -f1 | tr '[:upper:]' '[:lower:]'`
patreon_rank_new=${patreon_rank_new}_${patreon_rank}
patreon_rank_line=${patreon_rank_line//,$patreon_rank/,$patreon_rank_new}
#echo $patreon_rank_line
sed -i.bak "s~$old_rank_line~$patreon_rank_line~" PatreonRanks.csv
fi
fi
done < "Members_1773990.csv"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment