hnshhslsh / virtual-judge

Holding contests using problems from other OJs!!
52 stars 26 forks source link

怎么自动更新题目 #10

Open KiroScarlet opened 4 years ago

KiroScarlet commented 4 years ago

请问怎么自动更新所有题目呢?

hnshhslsh commented 4 years ago

现有的逻辑是,某道题目被访问的时候,如果这道题长时间未更新,就会去更新他。不改源码的话,你可以用浏览器的开发者工具看下访问题目的时候调的是哪个接口,然后写个脚本自动批量调用一下。

KiroScarlet commented 4 years ago

ok,谢谢你的回答,然后我还有一个问题:就是所有的题目都需要手动一个个添加嘛,有没有自动抓取所有oj题目的逻辑呢?

zhblue commented 4 years ago

建议不要一下全抓,造成负荷说不定被封ip。题太多也会造成系统变慢。

hnshhslsh commented 4 years ago

当你搜索或者在比赛中添加某道题的时候,如果这道题不存在,是会自动添加的,所以我不是很明白你为什么要全部抓取。你一定要批量添加的话,拿js写一个枚举题号然后调接口很快的,注意每两次访问加上时间间隔。

KiroScarlet commented 4 years ago

嗯,我理解了,主要是有些oj不知道题号,感觉一个个添加比较麻烦,感谢你的回答。 哦,对了,我想问下你的整个源码是https://vjudge.net/ 这个网站的源码嘛,感觉没有用户管理的功能,如果给很多学生用的话不太够。

hnshhslsh commented 4 years ago

这套源码是我基于vjudge.net的开源版本进行的非官方维护,14年后它的官方源码就没更新了。后来vjudge.net进行了改版,所以现在的代码跟网站应该是有许多区别的。用户管理的话的确很弱,现有的功能里有个比赛过题数的统计,然后你把某个账户在数据库里设置为管理员之后好像也就能看下当前登录用户的信息之类的简单操作,其它的我们基本上直接在数据库里弄了。