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> {
|
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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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.
|
|
@ -1 +1 @@
|
||||||
5e45ee53bd37b87d71cc591d1a2c208b
|
dcf00e95fc69d171836e7c0cecd2f99e
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue