Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit126d550

Browse files
yihong0618jdneo
authored andcommitted
add leetcode user -c that user can login with cookie (#31)
1 parent07e8e7f commit126d550

File tree

3 files changed

+40
-1
lines changed

3 files changed

+40
-1
lines changed

‎README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#leetcode-cli
88

99
>Note: This repository is forked from[leetcode-cli](https://github.com/skygragon/leetcode-cli) for temporary usage.
10+
>Note: Copy cookie from webbrowser and Using**leetcode user -c** can temporary fix can't[login problem](https://github.com/jdneo/vscode-leetcode/issues/478).
1011
1112
<imgsrc="https://github.com/skygragon/leetcode-cli/raw/master/docs/logo.png"align="right">
1213

@@ -39,6 +40,7 @@ Great thanks to leetcode.com, a really awesome website!
3940

4041
Read help first $ leetcode help
4142
Login with your leetcode account $ leetcode user -l
43+
Cookie login with cookie$ leetcode user -c
4244
Browse all questions $ leetcode list
4345
Choose one question $ leetcode show 1 -g -l cpp
4446
Coding it!

‎lib/commands/user.js

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ const cmd = {
2121
default:false,
2222
describe:'Login'
2323
})
24+
.option('c',{
25+
alias:'cookie',
26+
type:'boolean',
27+
default:false,
28+
describe:'cookieLogin'
29+
})
2430
.option('L',{
2531
alias:'logout',
2632
type:'boolean',
@@ -29,6 +35,7 @@ const cmd = {
2935
})
3036
.example(chalk.yellow('leetcode user'),'Show current user')
3137
.example(chalk.yellow('leetcode user -l'),'User login')
38+
.example(chalk.yellow('leetcode user -c'),'User Cookie login')
3239
.example(chalk.yellow('leetcode user -L'),'User logout');
3340
}
3441
};
@@ -59,7 +66,22 @@ cmd.handler = function(argv) {
5966
log.info('Successfully logout as',chalk.yellow(user.name));
6067
else
6168
log.fail('You are not login yet?');
62-
}else{
69+
}elseif(argv.cookie){
70+
// session
71+
prompt.colors=false;
72+
prompt.message='';
73+
prompt.start();
74+
prompt.get([
75+
{name:'login',required:true},
76+
{name:'cookie',required:true}
77+
],function(e,user){
78+
if(e)returnlog.fail(e)
79+
core.cookieLogin(user,function(e,user){
80+
if(e)returnlog.fail(e);
81+
log.info('Successfully cookie login as',chalk.yellow(user.name));
82+
});
83+
});
84+
}else{
6385
// show current user
6486
user=session.getUser();
6587
if(user){

‎lib/plugins/leetcode.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,4 +538,19 @@ plugin.login = function(user, cb) {
538538
});
539539
};
540540

541+
plugin.cookieLogin=function(user,cb){
542+
// re pattern for cookie chrome or firefox
543+
constSessionPattern=/LEETCODE_SESSION=(.+?)(;|$)/;
544+
constcsrfPattern=/csrftoken=(.+?)(;|$)/;
545+
constreSessionResult=SessionPattern.exec(user.cookie);
546+
constreCsrfResult=csrfPattern.exec(user.cookie);
547+
if(reSessionResult===null||reCsrfResult===null){
548+
returncb('invalid cookie?')
549+
}
550+
user.sessionId=reSessionResult[1];
551+
user.sessionCSRF=reCsrfResult[1];
552+
session.saveUser(user);
553+
plugin.getUser(user,cb);
554+
}
555+
541556
module.exports=plugin;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp