Update ali sort
This commit is contained in:
parent
dde5ec77ee
commit
aee772405f
|
|
@ -7,24 +7,27 @@ import java.util.List;
|
|||
public class Sorter implements Comparator<Item> {
|
||||
|
||||
private final String type;
|
||||
private final String order;
|
||||
|
||||
public static void sort(String type, List<Item> items) {
|
||||
Collections.sort(items, new Sorter(type));
|
||||
public static void sort(String type, String order, List<Item> items) {
|
||||
Collections.sort(items, new Sorter(type, order));
|
||||
}
|
||||
|
||||
public Sorter(String type) {
|
||||
public Sorter(String type, String order) {
|
||||
this.type = type;
|
||||
this.order = order;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compare(Item o1, Item o2) {
|
||||
boolean asc = order.equals("asc");
|
||||
switch (type) {
|
||||
case "name":
|
||||
return o1.getName().compareTo(o2.getName());
|
||||
return asc ? o1.getName().compareTo(o2.getName()) : o2.getName().compareTo(o1.getName());
|
||||
case "size":
|
||||
return Long.compare(o1.getSize(), o2.getSize());
|
||||
return asc ? Long.compare(o1.getSize(), o2.getSize()) : Long.compare(o2.getSize(), o1.getSize());
|
||||
case "date":
|
||||
return o1.getDate().compareTo(o2.getDate());
|
||||
return asc ? o1.getDate().compareTo(o2.getDate()) : o2.getDate().compareTo(o1.getDate());
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,9 +64,17 @@ public class AList extends Spider {
|
|||
return map.get(name);
|
||||
}
|
||||
|
||||
private List<Filter> getFilter() {
|
||||
List<Filter> items = new ArrayList<>();
|
||||
items.add(new Filter("type", "排序類型", Arrays.asList(new Filter.Value("名稱", "name"), new Filter.Value("大小", "size"), new Filter.Value("修改時間", "date"))));
|
||||
items.add(new Filter("order", "排序方式", Arrays.asList(new Filter.Value("⬆", "asc"), new Filter.Value("⬇", "desc"))));
|
||||
return items;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init(Context context, String extend) {
|
||||
try {
|
||||
sub = new HashMap<>();
|
||||
map = new HashMap<>();
|
||||
ext = new LinkedHashMap<>();
|
||||
if (extend.startsWith("http")) extend = OkHttpUtil.string(extend);
|
||||
|
|
@ -81,25 +89,26 @@ public class AList extends Spider {
|
|||
List<Class> classes = new ArrayList<>();
|
||||
LinkedHashMap<String, List<Filter>> filters = new LinkedHashMap<>();
|
||||
for (String entry : ext.keySet()) classes.add(new Class(entry, entry, "1"));
|
||||
for (Class item : classes) filters.put(item.getTypeId(), Arrays.asList(new Filter("type", "排序", Arrays.asList(new Filter.Value("名稱", "name"), new Filter.Value("大小", "size"), new Filter.Value("修改時間", "date")))));
|
||||
for (Class item : classes) filters.put(item.getTypeId(), getFilter());
|
||||
return Result.string(classes, filters);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String categoryContent(String tid, String pg, boolean filter, HashMap<String, String> extend) {
|
||||
String type = extend.containsKey("type") ? extend.get("type") : "";
|
||||
String type = extend.containsKey("type") ? extend.get("type") : "name";
|
||||
String order = extend.containsKey("order") ? extend.get("order") : "asc";
|
||||
List<Item> folders = new ArrayList<>();
|
||||
List<Item> files = new ArrayList<>();
|
||||
List<Vod> list = new ArrayList<>();
|
||||
sub = new HashMap<>();
|
||||
sub.clear();
|
||||
for (Item item : getList(tid)) {
|
||||
if (item.ignore()) continue;
|
||||
if (item.isSub()) addSub(tid, item);
|
||||
else if (item.isFolder()) folders.add(item);
|
||||
else files.add(item);
|
||||
}
|
||||
Sorter.sort(type, folders);
|
||||
Sorter.sort(type, files);
|
||||
Sorter.sort(type, order, folders);
|
||||
Sorter.sort(type, order, files);
|
||||
for (Item item : folders) list.add(item.getVod(tid));
|
||||
for (Item item : files) list.add(item.getVod(tid));
|
||||
return Result.string(list);
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1 +1 @@
|
|||
5e45ee53bd37b87d71cc591d1a2c208b
|
||||
dcf00e95fc69d171836e7c0cecd2f99e
|
||||
|
|
|
|||
Loading…
Reference in New Issue