From fb71ca9b4e6d5d1b5eed8a9fb20637bac5f1cbbd Mon Sep 17 00:00:00 2001 From: deranjer Date: Sat, 24 Feb 2018 12:25:09 -0500 Subject: [PATCH] Fixing some API calls to accept optional payload --- .../TopMenu/Modals/RSSModal/RSSTorrentList.js | 2 +- main.go | 45 ++++++++++--------- public/static/js/bundle.js | 14 +----- 3 files changed, 27 insertions(+), 34 deletions(-) diff --git a/goTorrentWebUI/src/TopMenu/Modals/RSSModal/RSSTorrentList.js b/goTorrentWebUI/src/TopMenu/Modals/RSSModal/RSSTorrentList.js index fb45525f..7b233096 100644 --- a/goTorrentWebUI/src/TopMenu/Modals/RSSModal/RSSTorrentList.js +++ b/goTorrentWebUI/src/TopMenu/Modals/RSSModal/RSSTorrentList.js @@ -67,7 +67,7 @@ class RSSTorrentList extends React.Component { }) let magnetLinkMessage = { MessageType: "magnetLinkSubmit", - Payload: {"MagnetLinks": [sendMagnetLinks], "Label": "RSS"} + Payload: {"MagnetLinks": sendMagnetLinks, "Label": "RSS"} } console.log(JSON.stringify(magnetLinkMessage)) ws.send(JSON.stringify(magnetLinkMessage)) diff --git a/main.go b/main.go index 971b994e..04274993 100644 --- a/main.go +++ b/main.go @@ -358,9 +358,8 @@ func main() { conn.WriteJSON(TorrentRSSList) case "magnetLinkSubmit": //if we detect a magnet link we will be adding a magnet torrent - storageValue := payloadData["StorageValue"].(string) - labelValue := payloadData["Label"].(string) - if storageValue == "" { + storageValue, ok := payloadData["StorageValue"].(string) + if storageValue == "" || ok == false { storageValue, err = filepath.Abs(filepath.ToSlash(Config.DefaultMoveFolder)) if err != nil { Logger.WithFields(logrus.Fields{"err": err, "MagnetLink": Config.DefaultMoveFolder}).Error("Unable to add default Storage Path") @@ -373,6 +372,10 @@ func main() { storageValue, _ = filepath.Abs(filepath.ToSlash(Config.DefaultMoveFolder)) } } + labelValue, ok := payloadData["Label"].(string) + if labelValue == "" || ok == false { + labelValue = "None" + } magnetLinks := payloadData["MagnetLinks"].([]interface{}) for _, magnetLink := range magnetLinks { clientTorrent, err := tclient.AddMagnet(magnetLink.(string)) //reading the payload into the torrent client @@ -390,29 +393,31 @@ func main() { case "torrentFileSubmit": base64encoded := payloadData["FileData"].(string) fileName := payloadData["FileName"].(string) - storageValue := payloadData["StorageValue"].(string) - labelValue := payloadData["Label"].(string) + storageValue, ok := payloadData["StorageValue"].(string) + if storageValue == "" || ok == false { + storageValue, err = filepath.Abs(filepath.ToSlash(Config.DefaultMoveFolder)) + if err != nil { + Logger.WithFields(logrus.Fields{"err": err, "MagnetLink": Config.DefaultMoveFolder}).Error("Unable to add Storage Path") + Engine.CreateServerPushMessage(Engine.ServerPushMessage{MessageType: "serverPushMessage", MessageLevel: "error", Payload: "Unable to add default Storage Path"}, conn) + } else { + storageValue, err = filepath.Abs(filepath.ToSlash(storageValue)) + if err != nil { + Logger.WithFields(logrus.Fields{"err": err, "MagnetLink": storageValue}).Error("Unable to add Storage Path") + Engine.CreateServerPushMessage(Engine.ServerPushMessage{MessageType: "serverPushMessage", MessageLevel: "error", Payload: "Unable to add Storage Path"}, conn) + storageValue, _ = filepath.Abs(filepath.ToSlash(Config.DefaultMoveFolder)) + } + } + } + labelValue, ok := payloadData["Label"].(string) + if labelValue == "" || ok == false { + labelValue = "None" + } base64file := strings.Split(base64encoded, ",") //Mozilla and Chrome have different payloads, but both start the file after the comma file, err := base64.StdEncoding.DecodeString(base64file[1]) //grabbing the second half of the string after the split if err != nil { Logger.WithFields(logrus.Fields{"Error": err, "file": file}).Info("Unable to decode base64 string to file") Engine.CreateServerPushMessage(Engine.ServerPushMessage{MessageType: "serverPushMessage", MessageLevel: "error", Payload: "Unable to decode base64 string to file"}, conn) } - - if storageValue == "" { - storageValue, err = filepath.Abs(filepath.ToSlash(Config.DefaultMoveFolder)) - if err != nil { - Logger.WithFields(logrus.Fields{"err": err, "MagnetLink": Config.DefaultMoveFolder}).Error("Unable to add Storage Path") - Engine.CreateServerPushMessage(Engine.ServerPushMessage{MessageType: "serverPushMessage", MessageLevel: "error", Payload: "Unable to add default Storage Path"}, conn) - } - } else { - storageValue, err = filepath.Abs(filepath.ToSlash(storageValue)) - if err != nil { - Logger.WithFields(logrus.Fields{"err": err, "MagnetLink": storageValue}).Error("Unable to add Storage Path") - Engine.CreateServerPushMessage(Engine.ServerPushMessage{MessageType: "serverPushMessage", MessageLevel: "error", Payload: "Unable to add Storage Path"}, conn) - storageValue, _ = filepath.Abs(filepath.ToSlash(Config.DefaultMoveFolder)) - } - } filePath := filepath.Join(Config.TFileUploadFolder, fileName) filePathAbs, err := filepath.Abs(filePath) //creating a full filepath to store the .torrent files diff --git a/public/static/js/bundle.js b/public/static/js/bundle.js index e68afb9e..594e86b6 100644 --- a/public/static/js/bundle.js +++ b/public/static/js/bundle.js @@ -102676,7 +102676,7 @@ var RSSTorrentList = function (_React$Component) { }); var magnetLinkMessage = { MessageType: "magnetLinkSubmit", - Payload: { "MagnetLinks": [sendMagnetLinks], "Label": "RSS" } + Payload: { "MagnetLinks": sendMagnetLinks, "Label": "RSS" } }; console.log(JSON.stringify(magnetLinkMessage)); ws.send(JSON.stringify(magnetLinkMessage)); @@ -123585,18 +123585,6 @@ var ServerSettingsTab = function (_React$PureComponent) { ' ' ), ' ' - ), - _react2.default.createElement( - _Paper2.default, - { className: classes.paper }, - 'Client Password: ', - _react2.default.createElement( - 'span', - { className: classes.floatRight }, - this.props.settingsFile["ClientPassword"], - ' ' - ), - ' ' ) ), _react2.default.createElement(_Grid2.default, { item: true, xs: 12, sm: 4 })