Skip to main content

一些实用工具

Project description

山东工商学院acm辅助工具

OJ网站账号移植

[ 介绍 ]

将一个账号所做过的所有题移植到另一个账号,部分题目无法转移

[ 纯新手教程 ]

如果您不是第一次接触python,可以跳过这一步

  1. 下载python3.9并安装(Mac用户自行下载任意大于3.6的python版本),安装时请勾选Add Python 3.9 to PATH Windows下载
  2. 下载开发工具,这里推荐使用Pycharm(Mac用户自行下载),下载后安装
  3. 打开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
获取方法:

  1. 打开链接:https://wvpn.sdtbu.edu.cn并扫码登录, 如果您已经登录过wvpn,则跳过此步骤zzuN0x.png
  2. 打开开发者工具(通常为F12),切换到Network选项卡(中文为"网络"),然后点击刷新按钮(或者按下F5)zzuwtO.png
  3. 此时会出现大量网络请求,点击第一个网络请求,此时「 wengine_vpn_ticketwvpn_sdtbu_edu_cn 」的值便是我们所需的token,如果该值显示不完整,请调整窗口直至调整至完全显示为止(以下操作将采用图中的token值演示)zzu59g.md.png 然后您可以使用以下代码进行登录
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()

效果如下
zzK1VP.png
zzKY8g.png

[ 贡献代码 ]

如果您想帮助我们完善测试数据库,您可以将您账户的代码贡献给我们,您可以使用以下代码保存您的数据

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.

Source Distribution

sdtbu-acm-tool-1.1.1.tar.gz (59.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page