@@ -18,7 +18,7 @@ var cmd = {
1818 alias : 'q' ,
1919 type : 'string' ,
2020 describe : 'Filter problems by conditions:\n' +
21- 'e(easy),m(medium),h(hard),d(done),l(locked)\n' +
21+ 'e(easy),m(medium),h(hard),d(done),l(locked),f(favor) \n' +
2222 'Uppercase means negative, e.g. D(not done)'
2323 } ,
2424 stat : {
@@ -41,6 +41,10 @@ function byLocked(x, q) {
4141 return x . locked ;
4242}
4343
44+ function byFavor ( x , q ) {
45+ return x . favor ;
46+ }
47+
4448var QUERY_HANDLERS = {
4549 e : byLevel ,
4650 E : _ . negate ( byLevel ) ,
@@ -51,7 +55,9 @@ var QUERY_HANDLERS = {
5155 l : byLocked ,
5256 L : _ . negate ( byLocked ) ,
5357 d : byStateAC ,
54- D : _ . negate ( byStateAC )
58+ D : _ . negate ( byStateAC ) ,
59+ f : byFavor ,
60+ F : _ . negate ( byFavor )
5561} ;
5662
5763cmd . handler = function ( argv ) {
@@ -75,11 +81,12 @@ cmd.handler = function(argv) {
7581 } ) ;
7682 }
7783
78- var stat = { locked : 0 } ;
84+ var stat = { locked : 0 , favor : 0 } ;
7985 problems . forEach ( function ( problem ) {
8086 stat [ problem . level ] = ( stat [ problem . level ] || 0 ) + 1 ;
8187 stat [ problem . state ] = ( stat [ problem . state ] || 0 ) + 1 ;
8288 if ( problem . locked ) ++ stat . locked ;
89+ if ( problem . favor ) ++ stat . favor ;
8390
8491 log . info ( sprintf ( '%s %s %s [%3d] %-60s %-6s (%.2f %%)' ,
8592 ( problem . favor ? chalk . yellow ( '★' ) : ' ' ) ,
@@ -93,8 +100,8 @@ cmd.handler = function(argv) {
93100
94101 if ( argv . stat ) {
95102 log . info ( ) ;
96- log . info ( sprintf ( ' All: %-9d Listed: %-9d Lock: %-9d' ,
97- all , problems . length , stat . locked ) ) ;
103+ log . info ( sprintf ( ' All: %-9d Listed: %-9d' , all , problems . length ) ) ;
104+ log . info ( sprintf ( ' Lock: %-9d Favor: %-9d' , stat . locked , stat . favor ) ) ;
98105 log . info ( sprintf ( ' AC: %-9d Not-AC: %-9d New: %-9d' ,
99106 ( stat . ac || 0 ) , ( stat . notac || 0 ) , ( stat . None || 0 ) ) ) ;
100107 log . info ( sprintf ( ' Easy: %-9d Medium: %-9d Hard: %-9d' ,
0 commit comments