From 595cd8120da36ac374fe2dd7c8e8afa88455a266 Mon Sep 17 00:00:00 2001 From: Ronan Date: Thu, 4 Apr 2024 13:03:26 +0200 Subject: [PATCH] prepare sysinfo and login-options --- .github/workflows/build.yml | 2 +- .goreleaser.yaml | 7 +++++++ app/controllers/sysinfo.go | 18 ++++++++++++++++++ app/models/clients.go | 28 ++++++++++++++++++++++++++++ routers/router.go | 2 ++ sysinfo.json | 10 ++++++++++ 6 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 app/controllers/sysinfo.go create mode 100644 app/models/clients.go create mode 100644 sysinfo.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6bb6802..d388f4c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,7 +28,7 @@ jobs: - name: Create release on GitHub - uses: docker://goreleaser/goreleaser:latest + uses: docker://goreleaser/goreleaser-cross:latest with: args: release env: diff --git a/.goreleaser.yaml b/.goreleaser.yaml index ecb457e..0a91a0f 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -5,10 +5,17 @@ builds: - -v goos: - linux + - windows + - darwin goarch: - amd64 - arm64 - '386' + ignore: + - goos: darwin + goarch: '386' + - goos: windows + goarch: 'arm64' checksum: name_template: 'checksums.txt' archives: diff --git a/app/controllers/sysinfo.go b/app/controllers/sysinfo.go new file mode 100644 index 0000000..c130842 --- /dev/null +++ b/app/controllers/sysinfo.go @@ -0,0 +1,18 @@ +package controllers + +import ( + "rustdesk-api-server/utils/beegoHelper" + "time" +) + +type SysinfoController struct { + BaseController +} + +// Heartbeat detection POST +func (ctl *SysinfoController) Sysinfo() { + + ctl.JSON(beegoHelper.H{ + "modified_at": time.Now().Unix(), + }) +} diff --git a/app/models/clients.go b/app/models/clients.go new file mode 100644 index 0000000..1de0c27 --- /dev/null +++ b/app/models/clients.go @@ -0,0 +1,28 @@ +package models + +import ( + "log" + + "github.com/beego/beego/v2/client/orm" +) + +type Clients struct { + DeviceId int32 `json:"device_id" orm:"column(deviceid);auto"` + Cpu string `json:"cpu"` + Uuid int32 `json:"uuid"` + Username string `json:"username"` + Hostname string `json:"hostname"` + Os string `json:"os"` + Version string `json:"version"` + Heart string `json:"int64"` +} + +func (u *Clients) TableName() string { + return "rustdesk_clients" +} + +func init() { + log.Printf("Initialize the model") + // Initialize the model + orm.RegisterModel(new(Clients)) +} diff --git a/routers/router.go b/routers/router.go index 5b291dc..7cef64f 100644 --- a/routers/router.go +++ b/routers/router.go @@ -26,7 +26,9 @@ func init() { // Set the routing information beego.Router("/", &controllers.IndexController{}, "get:Index") beego.Router("/api/heartbeat", &controllers.HeartController{}, "post:Heart") + beego.Router("/api/sysinfo", &controllers.SysinfoController{}, "post:Sysinfo") beego.Router("/api/login", &controllers.LoginController{}, "post:Login") + beego.Router("/api/login-options", &controllers.LoginController{}, "post:Login") beego.Router("/api/ab", &controllers.AddressBookController{}, "post:Update") // for v1.2.2 client compatiblity beego.Router("/api/ab", &controllers.AddressBookController{}, "get:List") diff --git a/sysinfo.json b/sysinfo.json new file mode 100644 index 0000000..0879078 --- /dev/null +++ b/sysinfo.json @@ -0,0 +1,10 @@ +{ + "cpu": "Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz, 2.54GHz, 12/6 cores", + "hostname": "blingster.lesmuids.windows", + "id": "1384536162", + "memory": "32GB", + "os": "macos / MacOS 14.4.1 ", + "username": "rlemeill", + "uuid": "RTlENEQxQ0UtMkY5Mi01ODg2LUE4QzEtMkQ4QjRFOEMwNDUz", + "version": "1.2.4" +} \ No newline at end of file