Skip to content

Instantly share code, notes, and snippets.

@YDX-2147483647
Last active September 4, 2023 12:33
Show Gist options
  • Select an option

  • Save YDX-2147483647/e7e6dbd042a7c04f772955eaa6cadf97 to your computer and use it in GitHub Desktop.

Select an option

Save YDX-2147483647/e7e6dbd042a7c04f772955eaa6cadf97 to your computer and use it in GitHub Desktop.
提交作业到 course.educg.net
#!/usr/bin/env bash
set -euo pipefail
help() {
cat <<'EOF'
提交作业到 course.educg.net
Usage
submit PROBLEM_ID ASSIGN_ID FOLDER
Arguments
PROBLEM_ID 题目 ID,获取方法请见“初次提交前”
ASSIGN_ID 作业 ID,获取方法请见“初次提交前”
FOLDER 要提交的目录名,例如“exp_3_1_vgg”
Options
-h, --help Display this message
--extend-files 需打包提交而不是 {stu_upload,src}/*.{py,npy,pb} 的文件
将 ./FOLDER/{stu_upload,src}/ 打包为 ./submissions/FOLDER.zip,然后提交到希冀评测平台。
首次使用
请访问作业网页,打开浏览器调试工具,切换到“网络”,单击任意一项(如空请刷新重试)。
然后找到消息头 → 请求头 → Cookie,右键单击,复制值。(结果形如“JSESSIONID=……”)
接着在 shell 运行:
export COOKIE="<复制的内容>"
初次提交前
请访问作业网页,打开浏览器调试工具,切换到“控制台”,运行:
filesubmit.toString().match(/(?<=jsp\?).+(?=&doSubmit)/)[0]
记录 PROBLEM_ID 和 ASSIGN_ID。
EOF
}
args=()
extend_files=()
while test $# -gt 0; do
case $1 in
--help | -h)
help
exit 0
;;
--extend-files)
shift
extend_files+=("$1")
;;
*)
args+=("$1")
;;
esac
shift
done
problem_id=${args[0]}
assign_id=${args[1]}
folder=${args[2]}
if [ -z ${COOKIE+x} ]; then
echo '$COOKIE is missing.' >&2
exit 1
fi
mkdir -p submissions
echo "📁 Making the archive…"
zip --junk-paths submissions/${folder}.zip ${folder}/{stu_upload,src}/*.{py,npy,pb} ${extend_files[*]-}
if command -v https >/dev/null 2>&1; then
echo "🚀 Submitting using HTTPie…"
https --form course.educg.net/assignment/showOJPProcessMsg.jsp FILE1@./submissions/${folder}.zip problemID==${problem_id} assignID==${assign_id} doSubmit==true wtime==225 "Cookie:${COOKIE}" >/dev/null
else
echo "🚀 Submitting using cURL…"
curl --form FILE1=@./submissions/${folder}.zip "https://course.educg.net/assignment/showOJPProcessMsg.jsp?problemID=${problem_id}&assignID=${assign_id}&doSubmit=true&wtime=1202" -H "Cookie: ${COOKIE}" >/dev/null
fi
echo "✅ Done."
@YDX-2147483647
Copy link
Author

YDX-2147483647 commented Aug 25, 2023

作业、题目 ID 与用户无关。

使用示例

$ export COOKIE = "JSESSIONID=…"
$ ./submit.sh 590035 18981 exp_2_1_mnist_mlp
$ ./submit.sh 590044 18981 code_chap_5_1_student \
  --extend-files 'code_chap_5_1_student/src/bangc/PluginPowerDifferenceOp/plugin_power_difference_kernel.*' \
  --extend-files code_chap_5_1_student/src/bangc/PluginPowerDifferenceOp/powerDiff.cpp

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment