Update ali sort

This commit is contained in:
FongMi 2022-09-28 09:27:04 +08:00
parent dde5ec77ee
commit aee772405f
4 changed files with 24 additions and 12 deletions

View File

@ -7,24 +7,27 @@ import java.util.List;
public class Sorter implements Comparator<Item> { public class Sorter implements Comparator<Item> {
private final String type; private final String type;
private final String order;
public static void sort(String type, List<Item> items) { public static void sort(String type, String order, List<Item> items) {
Collections.sort(items, new Sorter(type)); Collections.sort(items, new Sorter(type, order));
} }
public Sorter(String type) { public Sorter(String type, String order) {
this.type = type; this.type = type;
this.order = order;
} }
@Override @Override
public int compare(Item o1, Item o2) { public int compare(Item o1, Item o2) {
boolean asc = order.equals("asc");
switch (type) { switch (type) {
case "name": case "name":
return o1.getName().compareTo(o2.getName()); return asc ? o1.getName().compareTo(o2.getName()) : o2.getName().compareTo(o1.getName());
case "size": 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": case "date":
return o1.getDate().compareTo(o2.getDate()); return asc ? o1.getDate().compareTo(o2.getDate()) : o2.getDate().compareTo(o1.getDate());
default: default:
return -1; return -1;
} }

View File

@ -64,9 +64,17 @@ public class AList extends Spider {
return map.get(name); 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 @Override
public void init(Context context, String extend) { public void init(Context context, String extend) {
try { try {
sub = new HashMap<>();
map = new HashMap<>(); map = new HashMap<>();
ext = new LinkedHashMap<>(); ext = new LinkedHashMap<>();
if (extend.startsWith("http")) extend = OkHttpUtil.string(extend); if (extend.startsWith("http")) extend = OkHttpUtil.string(extend);
@ -81,25 +89,26 @@ public class AList extends Spider {
List<Class> classes = new ArrayList<>(); List<Class> classes = new ArrayList<>();
LinkedHashMap<String, List<Filter>> filters = new LinkedHashMap<>(); LinkedHashMap<String, List<Filter>> filters = new LinkedHashMap<>();
for (String entry : ext.keySet()) classes.add(new Class(entry, entry, "1")); 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); return Result.string(classes, filters);
} }
@Override @Override
public String categoryContent(String tid, String pg, boolean filter, HashMap<String, String> extend) { 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> folders = new ArrayList<>();
List<Item> files = new ArrayList<>(); List<Item> files = new ArrayList<>();
List<Vod> list = new ArrayList<>(); List<Vod> list = new ArrayList<>();
sub = new HashMap<>(); sub.clear();
for (Item item : getList(tid)) { for (Item item : getList(tid)) {
if (item.ignore()) continue; if (item.ignore()) continue;
if (item.isSub()) addSub(tid, item); if (item.isSub()) addSub(tid, item);
else if (item.isFolder()) folders.add(item); else if (item.isFolder()) folders.add(item);
else files.add(item); else files.add(item);
} }
Sorter.sort(type, folders); Sorter.sort(type, order, folders);
Sorter.sort(type, files); Sorter.sort(type, order, files);
for (Item item : folders) list.add(item.getVod(tid)); for (Item item : folders) list.add(item.getVod(tid));
for (Item item : files) list.add(item.getVod(tid)); for (Item item : files) list.add(item.getVod(tid));
return Result.string(list); return Result.string(list);

Binary file not shown.

View File

@ -1 +1 @@
5e45ee53bd37b87d71cc591d1a2c208b dcf00e95fc69d171836e7c0cecd2f99e