-
Notifications
You must be signed in to change notification settings - Fork 1
/
login.js
38 lines (27 loc) · 959 Bytes
/
login.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
'use strict'
const request = require('request').defaults({jar:true});
const options = require('./http_options');
const Promise = require('bluebird');
const cheerio = require('cheerio');
function login(username,password,eventEmitter){
return function(csrf_token){
return new Promise(function(resolve,reject){
let http_options=options();
http_options.url='http://codeforces.com/enter';
http_options.method='POST';
http_options.headers['Content-Type']='application/x-www-form-urlencoded';
http_options.body='csrf_token='+csrf_token+'&action=enter&handle='+username+'&password='+password;
request(http_options,function(err,res,body){
if(err){
return reject(err);
}
if(res.statusCode=='200'){
return reject(new Error('wrong handle or password.'))
}
eventEmitter.emit('login',true)
resolve('lool');
});
})
}
}
module.exports=login;