@@ -2,13 +2,14 @@ var cheerio = require('cheerio'),
22 request = require ( 'request' ) ,
33 _ = require ( 'underscore' ) ;
44
5- var config = require ( './config' ) ;
5+ var config = require ( './config' ) ,
6+ h = require ( './helper' ) ;
67
78function makeOpts ( url ) {
89 var opts = { url : url , headers : { } } ;
910 var core = require ( './core' ) ;
1011 if ( core . isLogin ( ) ) {
11- var user = core . getUserSync ( ) ;
12+ var user = core . getUser ( ) ;
1213 opts . headers [ 'Cookie' ] = 'PHPSESSID=' + user . session_id + ';csrftoken=' + user . session_csrf + ';' ;
1314 }
1415 return opts ;
@@ -60,24 +61,12 @@ leetcode_client.getProblem = function(problem, cb) {
6061 } ) ;
6162} ;
6263
63- function getCookie ( resp , name ) {
64- var cookies = resp . headers [ 'set-cookie' ] ;
65- if ( ! cookies ) return null ;
66- for ( var i = 0 ; i < cookies . length ; ++ i ) {
67- var sections = cookies [ i ] . split ( ';' ) ;
68- for ( var j = 0 ; j < sections . length ; ++ j ) {
69- var kv = sections [ j ] . trim ( ) . split ( '=' ) ;
70- if ( kv [ 0 ] == name ) return kv [ 1 ] ;
71- }
72- }
73- }
74-
7564leetcode_client . login = function ( user , cb ) {
7665 request ( config . LOGIN_URL , function ( e , resp , body ) {
7766 if ( e ) return cb ( e ) ;
7867 if ( resp . statusCode != 200 ) return cb ( 'HTTP failed:' + resp . statusCode ) ;
7968
80- user . csrf = getCookie ( resp , 'csrftoken' ) ;
69+ user . csrf = h . getSetCookieValue ( resp , 'csrftoken' ) ;
8170
8271 var opts = {
8372 url : config . LOGIN_URL ,
@@ -96,9 +85,9 @@ leetcode_client.login = function(user, cb) {
9685 if ( e ) return cb ( e ) ;
9786 if ( resp . statusCode != 302 ) return cb ( 'HTTP failed:' + resp . statusCode ) ;
9887
99- user . session_csrf = getCookie ( resp , 'csrftoken' ) ;
100- user . session_id = getCookie ( resp , 'PHPSESSID' ) ;
101- user . name = getCookie ( resp , 'messages' ) . match ( 'Successfully signed in as ([^.]*)' ) [ 1 ] ;
88+ user . session_csrf = h . getSetCookieValue ( resp , 'csrftoken' ) ;
89+ user . session_id = h . getSetCookieValue ( resp , 'PHPSESSID' ) ;
90+ user . name = h . getSetCookieValue ( resp , 'messages' ) . match ( 'Successfully signed in as ([^.]*)' ) [ 1 ] ;
10291
10392 return cb ( null , user ) ;
10493 } ) ;
0 commit comments