forked from skygragon/leetcode-cli
-
Notifications
You must be signed in to change notification settings - Fork 52
/
Copy pathuser.js
77 lines (72 loc) · 2.01 KB
/
user.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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
'use strict';
var prompt = require('prompt');
var h = require('../helper');
var config = require('../config');
var chalk = require('../chalk');
var log = require('../log');
var core = require('../core');
var session = require('../session');
var sprintf = require('../sprintf');
const cmd = {
command: 'user',
aliases: ['account'],
desc: 'Manage account',
builder: function(yargs) {
return yargs
.option('l', {
alias: 'login',
type: 'boolean',
default: false,
describe: 'Login'
})
.option('L', {
alias: 'logout',
type: 'boolean',
default: false,
describe: 'Logout'
})
.example(chalk.yellow('leetcode user'), 'Show current user')
.example(chalk.yellow('leetcode user -l'), 'User login')
.example(chalk.yellow('leetcode user -L'), 'User logout');
}
};
cmd.handler = function(argv) {
session.argv = argv;
let user = null;
if (argv.login) {
// login
prompt.colors = false;
prompt.message = '';
prompt.start();
prompt.get([
{name: 'login', required: true},
{name: 'pass', required: true, hidden: true}
], function(e, user) {
if (e) return log.fail(e);
core.login(user, function(e, user) {
if (e) return log.fail(e);
log.info('Successfully login as', chalk.yellow(user.name));
});
});
} else if (argv.logout) {
// logout
user = core.logout(user, true);
if (user)
log.info('Successfully logout as', chalk.yellow(user.name));
else
log.fail('You are not login yet?');
} else {
// show current user
user = session.getUser();
if (user) {
log.info(chalk.gray(sprintf(' %-9s %-20s %s', 'Premium', 'User', 'Host')));
log.info(chalk.gray('-'.repeat(60)));
log.printf(' %s %-20s %s',
h.prettyText('', user.paid || false),
chalk.yellow(user.name),
config.sys.urls.base);
} else
return log.fail('You are not login yet?');
}
};
module.exports = cmd;