11var chalk = require ( 'chalk' ) ;
22var log = require ( 'loglevel' ) ;
33var prompt = require ( 'prompt' ) ;
4- var sprintf = require ( 'sprintf-js' ) . sprintf ;
54
65var core = require ( '../core' ) ;
76
@@ -20,31 +19,10 @@ var cmd = {
2019 type : 'boolean' ,
2120 default : false ,
2221 describe : 'Logout'
23- } ,
24- stat : {
25- alias : 's' ,
26- type : 'boolean' ,
27- default : false ,
28- describe : 'Show user statistics'
2922 }
3023 }
3124} ;
3225
33- function bar ( c , n ) {
34- return new Buffer ( n ) . fill ( c ) . toString ( ) ;
35- }
36-
37- function prettyLine ( key , done , all ) {
38- done = done || 0 ;
39- var n = 30 ;
40- var x = Math . ceil ( n * done / all ) ;
41- return sprintf ( '%-8s %3d/%-3d (%.2f%%)\t%s%s%s' ,
42- key , done , all , done * 100 / all ,
43- chalk . green ( '[' + bar ( chalk . enabled ? '.' : '+' , x ) ) ,
44- chalk . red ( bar ( '.' , n - x ) ) ,
45- done === all ? chalk . green ( ']' ) : chalk . red ( ']' ) ) ;
46- }
47-
4826cmd . handler = function ( argv ) {
4927 var user = null ;
5028 if ( argv . login ) {
@@ -78,38 +56,6 @@ cmd.handler = function(argv) {
7856 log . info ( 'You are now login as' , chalk . yellow ( user . name ) ) ;
7957 else
8058 return log . fail ( 'You are not login yet?' ) ;
81-
82- if ( argv . stat ) {
83- core . getProblems ( function ( e , problems ) {
84- if ( e ) return log . fail ( e ) ;
85-
86- var stats = { } ;
87- var statsNoLock = { } ;
88-
89- problems . forEach ( function ( problem ) {
90- var keyAll = 'all' + problem . level ;
91- var keyAC = problem . state + problem . level ;
92- stats [ keyAll ] = ( stats [ keyAll ] || 0 ) + 1 ;
93- stats [ keyAC ] = ( stats [ keyAC ] || 0 ) + 1 ;
94-
95- if ( ! problem . locked ) {
96- statsNoLock [ keyAll ] = ( statsNoLock [ keyAll ] || 0 ) + 1 ;
97- statsNoLock [ keyAC ] = ( statsNoLock [ keyAC ] || 0 ) + 1 ;
98- }
99- } ) ;
100-
101- log . info ( ) ;
102- log . info ( prettyLine ( 'Easy' , stats . acEasy , stats . allEasy ) ) ;
103- log . info ( prettyLine ( 'Medium' , stats . acMedium , stats . allMedium ) ) ;
104- log . info ( prettyLine ( 'Hard' , stats . acHard , stats . allHard ) ) ;
105-
106- log . info ( ) ;
107- log . info ( 'Without Locked:' ) ;
108- log . info ( prettyLine ( 'Easy' , statsNoLock . acEasy , statsNoLock . allEasy ) ) ;
109- log . info ( prettyLine ( 'Medium' , statsNoLock . acMedium , statsNoLock . allMedium ) ) ;
110- log . info ( prettyLine ( 'Hard' , statsNoLock . acHard , statsNoLock . allHard ) ) ;
111- } ) ;
112- }
11359 }
11460} ;
11561
0 commit comments