56 lines
1.4 KiB
Go
56 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"alistControl/alist"
|
|
"fmt"
|
|
"os"
|
|
)
|
|
|
|
func main() {
|
|
client := alistsdk.NewClient("https://alist-home.s1f.ren", "kyou", "WFBDGnBfjjkVowen2", false, 200)
|
|
user, err := client.Login()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
fmt.Println(user)
|
|
path := "/游戏/我的世界/常青藤Mods"
|
|
list, err := client.List(path, "", 1, 100, false)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
return
|
|
}
|
|
// 获取当前文件夹下 modes 目录的的文件列表,判断是否存在,不存在则上传
|
|
currentDir, err := os.Getwd()
|
|
if err != nil {
|
|
fmt.Println("无法获取当前工作目录:", err)
|
|
return
|
|
}
|
|
// 构建mods文件夹的路径
|
|
modsPath := currentDir + "/mods"
|
|
// 读取mods文件夹中的所有文件和子目录
|
|
files, err := os.ReadDir(modsPath)
|
|
if err != nil {
|
|
fmt.Println("无法读取mods文件夹:", err)
|
|
return
|
|
}
|
|
|
|
// 打印所有文件和子目录的名称
|
|
for _, file := range files {
|
|
hasFile := false
|
|
fileInfo, _ := file.Info()
|
|
fileSize := fileInfo.Size()
|
|
for _, alistFile := range list {
|
|
if file.Name() == alistFile.Name && fileSize == alistFile.Size {
|
|
fmt.Println("文件已存在")
|
|
hasFile = true
|
|
}
|
|
}
|
|
if !hasFile {
|
|
fmt.Printf("%s文件不存在,开始上传\n", file.Name())
|
|
// 获取mods文件夹中的文件路径
|
|
filePath := modsPath + "/" + file.Name()
|
|
client.PutUpload(filePath, path+"/"+file.Name(), false)
|
|
}
|
|
}
|
|
}
|