69 lines
1.0 KiB
Go
69 lines
1.0 KiB
Go
package server
|
|
|
|
import (
|
|
"log"
|
|
|
|
"github.com/goccy/go-json"
|
|
"github.com/gofiber/websocket/v2"
|
|
)
|
|
|
|
// Websocket handlers
|
|
|
|
func download(c *websocket.Conn) {
|
|
req := DownloadRequest{}
|
|
c.ReadJSON(&req)
|
|
|
|
p := Process{mem: &db, url: req.Url, params: req.Params}
|
|
p.Start()
|
|
|
|
c.WriteJSON(req)
|
|
}
|
|
|
|
func getFormats(c *websocket.Conn) {
|
|
log.Println("Requesting formats")
|
|
mtype, msg, _ := c.ReadMessage()
|
|
|
|
req := DownloadRequest{}
|
|
json.Unmarshal(msg, &req)
|
|
|
|
p := Process{mem: &db, url: req.Url}
|
|
p.GetFormatsSync()
|
|
|
|
c.WriteMessage(mtype, msg)
|
|
}
|
|
|
|
func status(c *websocket.Conn) {
|
|
mtype, _, _ := c.ReadMessage()
|
|
|
|
all := db.All()
|
|
msg, _ := json.Marshal(all)
|
|
|
|
c.WriteMessage(mtype, msg)
|
|
}
|
|
|
|
func abort(c *websocket.Conn) {
|
|
mtype, msg, _ := c.ReadMessage()
|
|
|
|
req := AbortRequest{}
|
|
json.Unmarshal(msg, &req)
|
|
|
|
p := db.Get(req.Id)
|
|
p.Kill()
|
|
|
|
c.WriteMessage(mtype, msg)
|
|
}
|
|
|
|
func abortAll(c *websocket.Conn) {
|
|
keys := db.Keys()
|
|
for _, key := range keys {
|
|
proc := db.Get(key)
|
|
if proc != nil {
|
|
proc.Kill()
|
|
}
|
|
}
|
|
}
|
|
|
|
func hotUpdate(c *websocket.Conn) {
|
|
|
|
}
|