diff --git a/src/parsers/codingninjas.js b/src/parsers/codingninjas.js new file mode 100644 index 0000000..258c11b --- /dev/null +++ b/src/parsers/codingninjas.js @@ -0,0 +1,25 @@ +const axios = require('axios'); +const { parserErrorHandler } = require('./../utils'); + +const PLATFORM = 'codingninjas'; +const CODINGNINJAS_API_URL = 'https://codingninjas.in/api/v3/events'; +const CODINGNINJAS_URL = 'https://www.codingninjas.in/'; + +const codingninjas = () => axios.get(CODINGNINJAS_API_URL, { timeout: 15000 }) + .then((response) => { + const contests = response.data.data.latest_events; + return contests.map((contest) => { + const startTime = new Date(contest.event_start_time).getTime(); + const endTime = new Date(contest.event_end_time).getTime(); + return { + name: contest.name, + url: CODINGNINJAS_URL, + platform: PLATFORM, + startTime, + endTime, + }; + }); + }) + .catch(parserErrorHandler(PLATFORM)); + +module.exports = codingninjas; diff --git a/src/runner.js b/src/runner.js index 80da4f9..fd63a49 100644 --- a/src/runner.js +++ b/src/runner.js @@ -12,6 +12,7 @@ const atcoder = require('./parsers/atcoder'); const csacademy = require('./parsers/csacademy'); const coj = require('./parsers/coj'); const kaggle = require('./parsers/kaggle'); +const codingninjas = require('./parsers/codingninjas'); const runner = () => axios.all([ codeforces(), @@ -24,6 +25,7 @@ const runner = () => axios.all([ csacademy(), coj(), kaggle(), + codingninjas(), ]) .then((contestsByPlatform) => { const contests = flat(contestsByPlatform.filter(it => Array.isArray(it))); @@ -46,4 +48,4 @@ const runner = () => axios.all([ }); }); -module.exports = runner; +module.exports = runner; \ No newline at end of file