Skip to content

Latest commit

 

History

History
123 lines (80 loc) · 5.2 KB

README.md

File metadata and controls

123 lines (80 loc) · 5.2 KB

NodeJS Client Library for Codeforces API

Build Status Coverage Status npm version

codeforces-api-node is a simple NodeJS library for Codeforces Api with streaming support.

Install

$ npm install codeforces-api

Usage

codeforces-api-node supports both ES5 and ES6.

Basic

//ES5
var Codeforces = require('codeforces-api');

//ES2015
import Codeforces from 'codeforces-api';

//set API keys for authentication
Codeforces.setApis('your_codeforces_api_key', 'your_codeforces_api_secret');


Codeforces.method( parameters , callback );

Usage

Codeforces.user.rating({ handle: 'user_handle' } , function (err, data) {

    if (err) {
        //handle error and return
    }

    //use data
});

Methods & Parameters

Method Parameters Description
blogEntry.comments blogEntryId More
blogEntry.view blogEntryId More
contest.hacks contestId More
contest.list gym More
contest.ratingChanges contestId More
contest.standings contestId , from , count , handles , room , showUnofficial More
contest.status contestId , handle , from , count More
problemset.problems tags More
problemset.recentStatus count More
recentActions maxCount More
user.blogEntries handle More
user.friends onlyOnline More
user.info handles More
user.ratedList activeOnly More
user.rating handle More
user.status handle , from , count More

Authorization

To access data, API key must be needed.To generate API and SECRET KEY visit: http://codeforces.com/settings/api

Return Data

All data return as JSON format.For more details about every data format visit: http://codeforces.com/api/help/objects

Streaming

This feature and example from npm request pakages. For more have a look : https://github.com/request/request

You can stream responses to a file stream.When json data is huge, you may need this feature.

Codeforces.user.ratedList( parameters, callback ).pipe( fs.createWriteStream('./rateedList.json') );

Also emits response events.

Codeforces.user.ratedList( parameters, function(err, data){

    if(err){ //request error  }
    
    //data also available here

}).on('data', function(data) {
    // decompressed data as it is received
    console.log('decoded chunk: ' + data)
})
.on('response', function(response) {

    // unmodified http.IncomingMessage object
    response.on('data', function(data) {
        // compressed data as it is received
        console.log('received ' + data.length + ' bytes of compressed data')
    });
       
}).pipe( fs.createWriteStream('./ratedList.json') );

License