Last active
September 4, 2023 12:33
-
-
Save YDX-2147483647/e7e6dbd042a7c04f772955eaa6cadf97 to your computer and use it in GitHub Desktop.
提交作业到 course.educg.net
This file contains hidden or 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
| #!/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." |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
作业、题目 ID 与用户无关。
使用示例