codeforces_scraper/scripts/termforces

85 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
# Minimalistic script to interact with Codeforces
# Written by thematdev in 2023
load_rc() {
if [[ -e $1 ]]; then source $1; fi;
}
# Load .rc files
load_rc ~/.config/termforces/termforces.rc
load_rc ../termforces.rc
load_rc termforces.rc
login() {
if [[ $TF_PASS_CMD ]]
then
python3 -m termforces login "$1" --session-file "~/.config/termforces/termforces_cookies.json" --no-getpass <<< "$($TF_PASS_CMD)"
else
python3 -m termforces login "$1" --session-file "~/.config/termforces/termforces_cookies.json"
fi
}
whoami() {
python3 -m termforces whoami
}
submit() {
source_file=$1
# Calling from either parent or child directory
if [ $(dirname $1) = "." ]; then
p=$(pwd)
else
p=$(dirname $1)
fi
problem_index=${p:0-1}
python3 -m termforces submit --contest-id $contest_id $problem_index $source_file
}
results() {
python3 -m termforces results-my --contest-id $contest_id
}
strap() {
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-c|--contest-id)
contest_id="$2"
shift
shift
;;
-i|--indices)
indices="$2"
shift
shift
;;
-t|--template)
template="$2"
shift
shift
;;
*)
POSITIONAL+=("$1")
shift
;;
esac
done
read -a indices_arr <<< $indices
if [[ ! -d $template ]]; then echo "Template directory not found or not specified, will create empty"; fi;
for index in "${indices_arr[@]}"
do
if [[ -d $template ]]
then
cp -r $template problem$index
else
mkdir problem$index
fi
done
echo "contest_id=$contest_id" >> termforces.rc
}
"$@"