一些实用工具
Project description
山东工商学院acm辅助工具
OJ网站账号移植
[ 介绍 ]
将一个账号所做过的所有题移植到另一个账号,部分题目无法转移
[ 纯新手教程 ]
如果您不是第一次接触python,可以跳过这一步
- 下载python3.9并安装(Mac用户自行下载任意大于3.6的python版本),安装时请勾选
Add Python 3.9 to PATH
Windows下载 - 下载开发工具,这里推荐使用Pycharm(Mac用户自行下载),下载后安装
- 打开Pycharm并创建新项目,并在下方找到
Terminal
,点击Create New Terminal
(中文终端
),在弹出的窗口中输入pip install sdtbu-acm-tool
,等待安装完成
[ 使用说明 ]
1. 安装依赖
如果您的python版本大于3.9或者您的操作系统非Windows系统,则无法开启验证码自动识别模式,需要手动输入验证码
如果确定您的python版本小于3.9且您的操作系统为Windows系统,则使用以下命令安装依赖
pip install ddddocr -i https://pypi.mirrors.ustc.edu.cn/simple
2. 用户登录
「 校内使用 」
必须保证您的电脑已经连接到校园网,然后使用以下代码登录
from acm.oj import OJ
user = OJ(user_id='您的账号',
password='您的密码',
mode='校内', # 访问模式 [校内/校外]
code_mode='自动', # 验证码识别模式 [自动/手动]
).login()
或者使用以下代码登录
from acm.oj import OJ
user = OJ('你的账号', '你的密码').login()
「 校外使用 」
在使用之前,您需要先获取wvpn的token
获取方法:
- 打开链接:https://wvpn.sdtbu.edu.cn并扫码登录, 如果您已经登录过wvpn,则跳过此步骤
- 打开开发者工具(通常为F12),切换到Network选项卡(中文为"网络"),然后点击刷新按钮(或者按下F5)
- 此时会出现大量网络请求,点击第一个网络请求,此时「 wengine_vpn_ticketwvpn_sdtbu_edu_cn 」的值便是我们所需的token,如果该值显示不完整,请调整窗口直至调整至完全显示为止(以下操作将采用图中的token值演示) 然后您可以使用以下代码进行登录
from acm.oj import OJ
user = OJ(user_id='您的账号',
password='您的密码',
mode='校外', # 访问模式 [校内/校外]
code_mode='自动', # 验证码识别模式 [自动/手动]
wvpn_token='39a7de9aad39f158'
).login()
或者使用以下代码登录
from acm.oj import OJ
user = OJ('你的账号', '你的密码', wvpn_token='39a7de9aad39f158').login()
3. 功能演示
[ 移植账号 ]
注意:校外访问模式同时只能登录一个账号,如果您已经登录了一个账号,那么您将无法再登录另一个账号,如果您需要登录另一个账号,那么您需要先退出当前账号,然后再登录另一个账号
一个转移账号的例子:
from acm.oj import OJ
user_1 = OJ('你的账号', '你的密码', wvpn_token='39a7de9aad39f158').login()
user_1.save('user_1.json') # 保存账号信息
user_2 = OJ('你的账号', '你的密码', wvpn_token='39a7de9aad39f158').login()
user_2.load_and_submit(
'user_1.json',
10 # 题目提交间隔时间(单位: 秒),速度过快可能会导致提交失败
) # 加载账号信息并提交题目
[ 提交题目 ]
一个提交题目的例子:
from acm.oj import OJ
user = OJ('你的账号', '你的密码', wvpn_token='39a7de9aad39f158').login()
user.submit(
10, # 题目ID
'你的代码类型', # 代码类型
'你的代码', # 代码
)
其中代码类型有以下几种:
C
C++
Pascal
Java
Ruby
Python
[ 用户注册 ]
一个用户注册的例子:
from acm.oj import OJ
user = OJ('需要注册的账号', '你的密码', wvpn_token='39a7de9aad39f158').register()
[ 修改用户信息 ]
一个修改用户信息的例子:
from acm.oj import OJ
user = OJ('你的账号', '你的密码', wvpn_token='39a7de9aad39f158').login()
user.modify(
nickname='你的新昵称', # 昵称
email='你的新邮箱', # 邮箱
password='你的新密码', # 密码
)
只需要修改其中几项即可,无需全部填写
[ 获取已完成题目信息 ]
一个获取已完成题目信息的例子:
from acm.oj import OJ
user = OJ('你的账号', '你的密码', wvpn_token='39a7de9aad39f158').login()
datas = user.info()
print(datas)
[ 测试提交代码 ]
一个测试提交代码的例子:
from acm.oj import OJ
user = OJ('你的账号', '你的密码', wvpn_token='39a7de9aad39f158').login()
user.submit_test_code()
[ 贡献代码 ]
如果您想帮助我们完善测试数据库,您可以将您账户的代码贡献给我们,您可以使用以下代码保存您的数据
from acm.oj import OJ
user = OJ('你的账号', '你的密码', wvpn_token='39a7de9aad39f158').login()
user.save('data.json') # 保存账号信息
然后将生成的data.json
文件发送至我们的邮箱 1838696034@qq.com ,我们会将您的数据添加到测试数据库中,感谢您对我们的支持
注意事项
请勿使用此项目进行非法操作,否则后果自负
此仓库仅供学习交流使用,不得用于非法商业用途
反馈邮箱: 1838696034@qq.com
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.