@ -20,6 +20,7 @@ import com.fr.plugin.basic.version.Version;
import com.fr.plugin.basic.version.VersionIntervalFactory ;
import com.fr.stable.ArrayUtils ;
import com.fr.stable.EncodeConstants ;
import com.fr.stable.ProductConstants ;
import java.io.UnsupportedEncodingException ;
import java.net.URLEncoder ;
@ -29,7 +30,7 @@ import java.util.ArrayList;
import java.util.Comparator ;
import java.util.List ;
import java.util.Map ;
import java.util.function.ToLongFunction ;
import java.util.stream.Collectors ;
/ * *
* Created by XiaXiang on 2017 / 3 / 27 .
@ -120,7 +121,7 @@ public class PluginSearchManager implements AlphaFineSearchProvider {
return lessModelList ;
}
SearchResult noConnectList = AlphaFineHelper . getNoConnectList ( Holder . INSTANCE ) ;
if ( noConnectList ! = null ) {
if ( noConnectList ! = null ) {
return noConnectList ;
}
for ( int j = 0 ; j < searchText . length ; j + + ) {
@ -184,7 +185,7 @@ public class PluginSearchManager implements AlphaFineSearchProvider {
List < PluginModel > pluginModels = new ArrayList < > ( ) ;
pluginModels . addAll ( parseDefaultPluginModel ( plugins ) ) ;
pluginModels . forEach ( m - > this . defaultModelList . add ( m ) ) ;
pluginModels . forEach ( m - > this . defaultModelList . add ( m ) ) ;
} catch ( Exception e ) {
FineLoggerFactory . getLogger ( ) . error ( "plugin search error :" + e . getMessage ( ) ) ;
@ -196,33 +197,31 @@ public class PluginSearchManager implements AlphaFineSearchProvider {
/ * *
* 将jsonobject转化为PluginModel
* 并按照更新时间排序 , 取最新的10个
* * /
* 并按照更新时间排序 , 取最新的10个 , 并过滤掉不是当前版本的
* /
List < PluginModel > parseDefaultPluginModel ( List < Map > jsonObjects ) {
List < PluginModel > pluginModels = new ArrayList < > ( ) ;
String version = "v" + ProductConstants . MAIN_VERSION ;
if ( ! Collections . isEmpty ( jsonObjects ) ) {
SimpleDateFormat format = new SimpleDateFormat ( TIME_FORMAT ) ;
try {
jsonObjects . sort ( Comparator . comparingLong ( new ToLongFunction < Map > ( ) {
@Override
public long applyAsLong ( Map value ) {
long time = 0L ;
try {
time = format . parse ( ( String ) value . get ( UPLOAD_TIME ) ) . getTime ( ) ;
} catch ( ParseException e ) {
FineLoggerFactory . getLogger ( ) . error ( e , e . getMessage ( ) ) ;
}
return time ;
}
} ) ) ;
} catch ( Exception e ) {
FineLoggerFactory . getLogger ( ) . error ( e , e . getMessage ( ) ) ;
}
for ( int i = 0 ; i < DEFAULT_LIST_SIZE ; i + + ) {
pluginModels . add ( getPluginModel ( new JSONObject ( jsonObjects . get ( i ) ) , false ) ) ;
}
pluginModels = jsonObjects . stream ( )
. filter ( o - > ( ( Integer ) o . get ( version ) ) = = 1 )
. sorted ( ( Map map1 , Map map2 ) - > Long . compare ( parseTime ( map2 ) , parseTime ( map1 ) ) )
. limit ( DEFAULT_LIST_SIZE )
. map ( jsonObject - > getPluginModel ( new JSONObject ( jsonObject ) , false ) )
. collect ( Collectors . toList ( ) ) ;
}
return pluginModels ;
}
private static long parseTime ( Map value ) {
SimpleDateFormat format = new SimpleDateFormat ( TIME_FORMAT ) ;
long t = 0L ;
try {
t = format . parse ( ( String ) value . get ( UPLOAD_TIME ) ) . getTime ( ) ;
} catch ( ParseException e ) {
FineLoggerFactory . getLogger ( ) . error ( e , e . getMessage ( ) ) ;
}
return t ;
}
}