update: 获取下载状态
This commit is contained in:
parent
dc69a2d168
commit
4f4f51ee37
@ -2,6 +2,7 @@ package cn.montaro.aria2;
|
|||||||
|
|
||||||
import cn.montaro.aria2.annotation.Aria2Method;
|
import cn.montaro.aria2.annotation.Aria2Method;
|
||||||
import cn.montaro.aria2.constants.Aria2MethodName;
|
import cn.montaro.aria2.constants.Aria2MethodName;
|
||||||
|
import cn.montaro.aria2.resp.Aria2Status;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -64,7 +65,7 @@ public interface Aria2Client {
|
|||||||
|
|
||||||
// TODO: define return type
|
// TODO: define return type
|
||||||
@Aria2Method(Aria2MethodName.TELL_STATUS)
|
@Aria2Method(Aria2MethodName.TELL_STATUS)
|
||||||
String tellStatus(String gid, String... keys);
|
Aria2Status tellStatus(String gid, String... keys);
|
||||||
|
|
||||||
@Aria2Method(Aria2MethodName.GET_URIS)
|
@Aria2Method(Aria2MethodName.GET_URIS)
|
||||||
String getUris(String gid);
|
String getUris(String gid);
|
||||||
|
|||||||
@ -80,9 +80,12 @@ public class Aria2HttpProxy implements InvocationHandler {
|
|||||||
|
|
||||||
private Object deserialize(String json, Type resultType) {
|
private Object deserialize(String json, Type resultType) {
|
||||||
JsonObject jsonObject = JsonParser.parseString(json).getAsJsonObject();
|
JsonObject jsonObject = JsonParser.parseString(json).getAsJsonObject();
|
||||||
String result = jsonObject.get("result").getAsString();
|
JsonElement result = jsonObject.get("result");
|
||||||
|
if (result instanceof JsonObject && resultType.equals(String.class)) {
|
||||||
|
return result.toString();
|
||||||
|
}
|
||||||
if (resultType.equals(String.class)) {
|
if (resultType.equals(String.class)) {
|
||||||
return result;
|
return result.getAsString();
|
||||||
}
|
}
|
||||||
return gson.fromJson(result, resultType);
|
return gson.fromJson(result, resultType);
|
||||||
}
|
}
|
||||||
|
|||||||
21
src/main/java/cn/montaro/aria2/resp/Aria2File.java
Normal file
21
src/main/java/cn/montaro/aria2/resp/Aria2File.java
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
package cn.montaro.aria2.resp;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Description:
|
||||||
|
*
|
||||||
|
* @author ZhangJiaYu
|
||||||
|
* @date 2022/9/16
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class Aria2File {
|
||||||
|
private Long completedLength;
|
||||||
|
private Integer index;
|
||||||
|
private Long length;
|
||||||
|
private String path;
|
||||||
|
private Boolean selected;
|
||||||
|
private List<String> uris;
|
||||||
|
}
|
||||||
37
src/main/java/cn/montaro/aria2/resp/Aria2Status.java
Normal file
37
src/main/java/cn/montaro/aria2/resp/Aria2Status.java
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
package cn.montaro.aria2.resp;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Description:
|
||||||
|
*
|
||||||
|
* @author ZhangJiaYu
|
||||||
|
* @date 2022/9/16
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class Aria2Status {
|
||||||
|
private String bitfield;
|
||||||
|
private Bittorrent bittorrent;
|
||||||
|
private Long completedLength;
|
||||||
|
private Integer connections;
|
||||||
|
private String dir;
|
||||||
|
private Long downloadSpeed;
|
||||||
|
private Integer errorCode;
|
||||||
|
private String errorMessage;
|
||||||
|
private List<Aria2File> files;
|
||||||
|
private String following;
|
||||||
|
private List<String> followedBy;
|
||||||
|
private String gid;
|
||||||
|
private String infoHash;
|
||||||
|
private Integer numPieces;
|
||||||
|
private Integer numSeeders;
|
||||||
|
private Long pieceLength;
|
||||||
|
private Boolean seeder;
|
||||||
|
private String status;
|
||||||
|
private Long totalLength;
|
||||||
|
private Long uploadLength;
|
||||||
|
private Long uploadSpeed;
|
||||||
|
}
|
||||||
16
src/main/java/cn/montaro/aria2/resp/Bittorrent.java
Normal file
16
src/main/java/cn/montaro/aria2/resp/Bittorrent.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package cn.montaro.aria2.resp;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Description:
|
||||||
|
*
|
||||||
|
* @author ZhangJiaYu
|
||||||
|
* @date 2022/9/16
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class Bittorrent {
|
||||||
|
private List<List<String>> announceList;
|
||||||
|
}
|
||||||
@ -2,8 +2,11 @@ import cn.hutool.core.collection.ListUtil;
|
|||||||
import cn.montaro.aria2.Aria2Client;
|
import cn.montaro.aria2.Aria2Client;
|
||||||
import cn.montaro.aria2.Aria2ClientFactory;
|
import cn.montaro.aria2.Aria2ClientFactory;
|
||||||
import cn.montaro.aria2.Aria2Config;
|
import cn.montaro.aria2.Aria2Config;
|
||||||
|
import cn.montaro.aria2.resp.Aria2Status;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class Aria2ClientTest {
|
public class Aria2ClientTest {
|
||||||
|
|
||||||
Aria2Config config = new Aria2Config()
|
Aria2Config config = new Aria2Config()
|
||||||
@ -17,4 +20,19 @@ public class Aria2ClientTest {
|
|||||||
String gid = client.addUri(ListUtil.of("magnet:?xt=urn:btih:308f0122b1c3af5db9f3660775a6a2d81bd1e120"), null, null);
|
String gid = client.addUri(ListUtil.of("magnet:?xt=urn:btih:308f0122b1c3af5db9f3660775a6a2d81bd1e120"), null, null);
|
||||||
System.out.println("gid = " + gid);
|
System.out.println("gid = " + gid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void status() {
|
||||||
|
String gid = "acc1c7d7c2043dba";
|
||||||
|
Aria2Status status = client.tellStatus(gid);
|
||||||
|
System.out.println(status);
|
||||||
|
List<String> followedBy = status.getFollowedBy();
|
||||||
|
if (followedBy != null && followedBy.size() != 0) {
|
||||||
|
gid = followedBy.get(0);
|
||||||
|
status = client.tellStatus(gid);
|
||||||
|
System.out.println(status);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user