@@ -441,7 +441,7 @@ class Search {
441441 filename : 'README.md'
442442 } ) ;
443443
444- self . request . get ( url , { retries : 5 , retryDelay : 100 } , function ( err , resp , data , perf ) {
444+ self . request . get ( url , { retries : 8 , retryDelay : 50 } , function ( err , resp , data , perf ) {
445445 if ( err ) return self . doError ( 'marketplace' , "Failed to fetch README: " + err , callback ) ;
446446
447447 // try to fix image src urls if relative
@@ -465,7 +465,7 @@ class Search {
465465 filename : 'xyops.json'
466466 } ) ;
467467
468- self . request . json ( url , false , { retries : 5 , retryDelay : 100 } , function ( err , resp , data , perf ) {
468+ self . request . json ( url , false , { retries : 8 , retryDelay : 50 } , function ( err , resp , data , perf ) {
469469 if ( err ) return self . doError ( 'marketplace' , "Failed to fetch data: " + err , callback ) ;
470470 callback ( { code : 0 , item, version : ver , data : data } ) ;
471471 } ) ;
@@ -479,7 +479,7 @@ class Search {
479479 filename : 'logo.png'
480480 } ) ;
481481
482- self . request . get ( url , { retries : 5 , retryDelay : 100 } , function ( err , resp , data , perf ) {
482+ self . request . get ( url , { retries : 8 , retryDelay : 50 } , function ( err , resp , data , perf ) {
483483 if ( err ) return self . doError ( 'marketplace' , "Failed to fetch README: " + err , callback ) ;
484484 callback ( "200 OK" , { 'Content-Type' : 'image/png' } , data ) ;
485485 } ) ;
@@ -489,16 +489,18 @@ class Search {
489489 } // id
490490 else if ( params . fields ) {
491491 // return all unique field values (tags, licenses, etc.)
492- var fields = { types : { } , requires : { } , tags : { } , licenses : { } } ;
492+ var fields = { types : { } , plugin_types : { } , requires : { } , tags : { } , licenses : { } } ;
493493
494494 metadata . rows . forEach ( function ( row ) {
495495 if ( row . type ) fields . types [ row . type ] = 1 ;
496+ if ( row . plugin_type ) fields . plugin_types [ row . plugin_type ] = 1 ;
496497 if ( row . license ) fields . licenses [ row . license ] = 1 ;
497498 ( row . requires || [ ] ) . forEach ( function ( req ) { fields . requires [ req ] = 1 ; } ) ;
498499 ( row . tags || [ ] ) . forEach ( function ( tag ) { fields . tags [ tag ] = 1 ; } ) ;
499500 } ) ;
500501
501502 fields . types = Tools . hashKeysToArray ( fields . types ) . sort ( ) ;
503+ fields . plugin_types = Tools . hashKeysToArray ( fields . plugin_types ) . sort ( ) ;
502504 fields . requires = Tools . hashKeysToArray ( fields . requires ) . sort ( ) ;
503505 fields . tags = Tools . hashKeysToArray ( fields . tags ) . sort ( ) ;
504506 fields . licenses = Tools . hashKeysToArray ( fields . licenses ) . sort ( ) ;
@@ -516,6 +518,7 @@ class Search {
516518 if ( ! text . includes ( params . query . toLowerCase ( ) ) ) return false ;
517519 }
518520 if ( params . type && ( row . type != params . type ) ) return false ;
521+ if ( params . plugin_type && ( row . plugin_type != params . plugin_type ) ) return false ;
519522 if ( params . license && ( row . license . toLowerCase ( ) != params . license . toLowerCase ( ) ) ) return false ;
520523 if ( params . tags && ! includesAllCI ( row . tags , params . tags ) ) return false ;
521524 if ( params . requires && ! includesAllCI ( row . requires , params . requires ) ) return false ;
@@ -537,7 +540,7 @@ class Search {
537540 if ( err || ( stats . mtimeMs / 1000 < Tools . timeNow ( ) - marketplace . ttl ) ) {
538541 // fetch from origin
539542 self . logDebug ( 5 , "Fetching marketplace metadata from origin: " + marketplace . metadata_url ) ;
540- self . request . json ( marketplace . metadata_url , false , { retries : 5 , retryDelay : 100 } , function ( err , resp , metadata , perf ) {
543+ self . request . json ( marketplace . metadata_url , false , { retries : 8 , retryDelay : 50 } , function ( err , resp , metadata , perf ) {
541544 if ( err ) return self . doError ( 'marketplace' , "Failed to fetch marketplace metadata: " + marketplace . metadata_url + ": " + err , callback ) ;
542545
543546 Tools . writeFileAtomic ( cache_file , JSON . stringify ( metadata ) , function ( err ) {
0 commit comments