@@ -54,68 +54,12 @@ var cmd = {
5454 }
5555} ;
5656
57- function byLevel ( x , q ) {
58- return x . level [ 0 ] . toLowerCase ( ) === q . toLowerCase ( ) ;
59- }
60-
61- function byStateAC ( x , q ) {
62- return x . state === 'ac' ;
63- }
64-
65- function byLocked ( x , q ) {
66- return x . locked ;
67- }
68-
69- function byStarred ( x , q ) {
70- return x . starred ;
71- }
72-
73- var QUERY_HANDLERS = {
74- e : byLevel ,
75- E : _ . negate ( byLevel ) ,
76- m : byLevel ,
77- M : _ . negate ( byLevel ) ,
78- h : byLevel ,
79- H : _ . negate ( byLevel ) ,
80- l : byLocked ,
81- L : _ . negate ( byLocked ) ,
82- d : byStateAC ,
83- D : _ . negate ( byStateAC ) ,
84- s : byStarred ,
85- S : _ . negate ( byStarred )
86- } ;
87-
88- function hasTag ( o , tag ) {
89- return _ . isArray ( o ) &&
90- _ . some ( o , function ( x ) { return x . indexOf ( tag . toLowerCase ( ) ) >= 0 ; } ) ;
91- }
92-
9357cmd . handler = function ( argv ) {
9458 session . argv = argv ;
95- core . getProblems ( function ( e , problems ) {
59+ core . filterProblems ( argv , function ( e , problems ) {
9660 if ( e ) return log . fail ( e ) ;
9761
98- var all = problems . length ;
99-
100- if ( argv . query ) {
101- argv . query . split ( '' ) . forEach ( function ( q ) {
102- var f = QUERY_HANDLERS [ q ] ;
103- if ( ! f ) return ;
104-
105- problems = _ . filter ( problems , _ . partial ( f , _ , q ) ) ;
106- } ) ;
107- }
108-
109- argv . tag . forEach ( function ( tag ) {
110- // TODO: fill company/tags in problems
111- problems = _ . filter ( problems , function ( p ) {
112- return p . category === tag ||
113- hasTag ( p . companies , tag ) ||
114- hasTag ( p . tags , tag ) ;
115- } ) ;
116- } ) ;
117-
118- var word = String ( argv . keyword ) . toLowerCase ( ) ;
62+ var word = argv . keyword . toLowerCase ( ) ;
11963 if ( word ) {
12064 if ( word . endsWith ( word . substr ( - 1 ) . repeat ( 6 ) ) ) {
12165 log . warn ( 'Hmmm...you might need a new keyboard?' ) ;
@@ -148,10 +92,9 @@ cmd.handler = function(argv) {
14892
14993 if ( argv . stat ) {
15094 log . info ( ) ;
151- log . printf ( ' All: %-9d Listed: %-9d' , all , problems . length ) ;
152- log . printf ( ' Locked: %-9d Starred: %-9d' , stat . locked , stat . starred ) ;
153- log . printf ( ' Accept: %-9d Not-AC: %-9d New: %-9d' , stat . ac , stat . notac , stat . None ) ;
154- log . printf ( ' Easy: %-9d Medium: %-9d Hard: %-9d' , stat . Easy , stat . Medium , stat . Hard ) ;
95+ log . printf ( ' Listed: %-9d Locked: %-9d Starred: %-9d' , problems . length , stat . locked , stat . starred ) ;
96+ log . printf ( ' Accept: %-9d Not-AC: %-9d Remain: %-9d' , stat . ac , stat . notac , stat . None ) ;
97+ log . printf ( ' Easy: %-9d Medium: %-9d Hard: %-9d' , stat . Easy , stat . Medium , stat . Hard ) ;
15598 }
15699 } ) ;
157100} ;
0 commit comments