UNPKG

cf-wrapper

Version:

The definitive CF wrapper to be able to perform anything that can be done through the UI.

79 lines (57 loc) 1.56 kB
# The definitive CF js wrapper Cf-wrapper is an attempt to programatically interact with codeforces as its current API lacks a lot of features. Lots to add left, but slow and steady does the job. ## Installation Install with npm ```bash npm install cf-wrapper ``` ## Usage/Examples ```javascript import Cf from 'cf-wrapper'; const client = new Cf('username', 'password'); const main = async () => { const cf = new Cf('username', 'password'); await cf.login(); const submission = await cf.submit('1020', 'A', '61', 'int main(void) {\n cin >> a >> b;\n cout << a + b;\n return 0;\n}'); console.log(submission); const contestList = await cf.getContestList(false); console.log(contestList); } main(); ``` Output: ```console 167297949 [ { id: 1699, name: 'Codeforces Round #804 (Div. 2)', type: 'CF', phase: 'BEFORE', frozen: false, durationSeconds: 7200, startTimeSeconds: 1656945300, relativeTimeSeconds: -762227 }, { id: 1698, name: 'Codeforces Round #803 (Div. 2)', type: 'CF', phase: 'BEFORE', frozen: false, durationSeconds: 7200, startTimeSeconds: 1656426900, relativeTimeSeconds: -243829 }, ... ``` ## Roadmap - Add CLI interface - Add methods for endpoints exposed by the official codeforces API. - Proper error handling + error types and messages. - Add other important methods (e.g. check submission status...) ## Contributing Contributions are always welcome! ## License [MIT](https://choosealicense.com/licenses/mit/)