
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
A javascript module to scrap online judge and retrieve informations.
Currently supports scraping of UVa, Codeforces, HDU and SPOJ.
npm install --save ojscraper
const ojscraper = require('ojscraper');
ojscraper.getProblemInfo({
ojname: 'uva',
problemID: '100'
})
.then(function(info){
console.log(info);
/**
* {
"platform": "uva",
"problemID": "100",
"title": "The 3n + 1 problem",
"link": "http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=18&page=show_problem&problem=36"
}
*/
})
ojscraper.getUserInfo({
ojname: 'uva',
username: 'forthright48'
})
.then(function(info){
console.log(info);
/**
* {
"platform": "uva",
"username": "forthright48",
"userID": "128671",
"solveCount": 1464,
"solveList": [100, 101 ... too many to view]
}
*/
})
Only promise is returned. Callback is not supported.
There are only two methods:
getProblemInfo()It accepts an object as parameter. The object must have the following two fields: ojname and problemID. Look below for possible values of ojname and their corresponding problemID formats.
getUserInfo()It accepts an object as parameter. The object must have the following two fields: ojname and username. A list of problem Ids which have been solved by the user is returned.
ojnameWell, that's it for now.
problemIDproblemID must match the following regex:
^[A-Z0-9_]+$^\d+[A-Z]\d{4}\d{4}\d{4}^[A-Z0-9_]+$^\d{3,5}$Since the site is private, you need to provide a set of credential to access any info.
ojscraper.getProblemInfo({
ojname: 'loj',
problemID: '1000',
credential: {
userId: USERID_FOR_LOGIN,
password: PASSWORD_FOR_LOGIN
}
})
You can only get userinfo from vjudge, and that too for a particular sub oj.
ojscraper.getProblemInfo({
ojname: 'loj',
problemID: '1000',
subojname: 'uva'
})
//Output: All problems from UVa that user solved in Vjudge
FAQs
"A module that scraps user information from various OJ"
We found that ojscraper demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.