Skip to content

gldsly/aria2-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

aadc5c0 · Aug 12, 2022

History

15 Commits
Aug 10, 2022
Aug 12, 2022
Aug 12, 2022
Aug 12, 2022
Aug 12, 2022
Aug 12, 2022
Aug 10, 2022
Aug 12, 2022
Aug 12, 2022

Repository files navigation

aria2-go

使用 jsonrpc 和 aria2 通信的 sdk

完整实现 文档中 jsonrpc 的 method 请求构造

预置常用的操作方法

go get -u github.com/gldsly/aria2-go

示例:

package main

import (
	"encoding/json"
	"fmt"

	aria2go "github.com/gldsly/aria2-go"
)

var client *aria2go.Aria2Client

// Download 下载文件
func Download() {
	gid, err := client.Download("https://dl.google.com/go/go1.18.4.linux-amd64.tar.gz")
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(gid)
}

// GetTaskStatus 查询任务状态
func GetTaskStatus() {
	status, err := client.QueryTaskStatus("fc9b15cfe91ee80b")
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(status)
}

// GetStoppedTask 构建请求发送到 aria2 中查询
func GetStoppedTask() {
	request, replayID, err := aria2go.NewRequestWithToken(client.Token).TellStopped(0, 10).Create()

	if err != nil {
		fmt.Println(err)
		return
	}

	result, err := client.SendRequest(request)
	if err != nil {
		fmt.Println(err)
		return
	}

	resp := &aria2go.TellTaskListResponse{}
	if err := json.Unmarshal(result, &resp); err != nil {
		fmt.Println(err)
		return
	}

	fmt.Printf("replay id: %s \nresult: %#v\n",replayID, resp.Result[0])
}

func main() {
	client = aria2go.NewAria2Client("thanks")
	GetStoppedTask()
}

About

aria2 sdk

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages