Last active
October 7, 2019 07:22
-
-
Save PatPeter/999cbe422c3a2de2f5564338159ddd1b to your computer and use it in GitHub Desktop.
Validates the PatreonRanks.csv file with a CSV downloaded from Patreon
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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