diff --git a/config.1.toml b/config.1.toml
deleted file mode 100644
index 1153c9dd..00000000
--- a/config.1.toml
+++ /dev/null
@@ -1,122 +0,0 @@
-[serverConfig]
-
- ServerPort = ":8000" #leave format as is it expects a string with colon
- ServerAddr = "" #blank will bind to default IP address, usually fine to leave be
- LogLevel = "Info" # Options = Debug, Info, Warn, Error, Fatal, Panic
- LogOutput = "stdout" #Options = file, stdout #file will print it to logs/server.log
-
- SeedRatioStop = 1.50 #automatically stops the torrent after it reaches this seeding ratio
-
- #Relative or absolute path accepted, the server will convert any relative path to an absolute path.
- DefaultMoveFolder = 'downloaded' #default path that a finished torrent is symlinked to after completion. Torrents added via RSS will default here
- TorrentWatchFolder = 'torrentUpload' #folder path that is watched for .torrent files and adds them automatically every 5 minutes
-
- #Limits your upload and download speed globally, all are averages and not burst protected (usually burst on start).
- #Low = ~.05MB/s, Medium = ~.5MB/s, High = ~1.5MB/s
- UploadRateLimit = "Unlimited" #Options are "Low", "Medium", "High", "Unlimited" #Unlimited is default
- DownloadRateLimit = "Unlimited"
-
-[goTorrentWebUI]
- #Basic goTorrentWebUI authentication (not terribly secure, implemented in JS, password is hashed to SHA256, not salted, basically don't depend on this if you require very good security)
- WebUIAuth = true # bool, if false no authentication is required for the webUI
- WebUIUser = "admin"
- WebUIPassword = "Password1"
-
-
-[notifications]
-
- PushBulletToken = "" #add your pushbullet api token here to notify of torrent completion to pushbullet
-
-[reverseProxy]
- #This is for setting up goTorrent behind a reverse Proxy (with SSL, reverse proxy with no SSL will require editing the WSS connection to a WS connection manually)
- ProxyEnabled = false #bool, either false or true
- #URL is CASE SENSITIVE
- BaseURL = "yoursubdomain.domain.org/subroute/" # MUST be in the format (if you have a subdomain, and must have trailing slash) "yoursubdomain.domain.org/subroute/"
-
-[EncryptionPolicy]
-
- DisableEncryption = false
- ForceEncryption = false
- PreferNoEncryption = true
-
-[torrentClientConfig]
- DownloadDir = 'downloading' #the full OR relative path where the torrent server stores in-progress torrents
-
- Seed = true #boolean #seed after download
-
- # Never send chunks to peers.
- NoUpload = false #boolean
-
- #User-provided Client peer ID. If not present, one is generated automatically.
- PeerID = "" #string
-
- #The address to listen for new uTP and TCP bittorrent protocol connections. DHT shares a UDP socket with uTP unless configured otherwise.
- ListenAddr = "" #Leave Blank for default, syntax "HOST:PORT"
-
- #Don't announce to trackers. This only leaves DHT to discover peers.
- DisableTrackers = false #boolean
-
- DisablePEX = false # boolean
-
- # Don't create a DHT.
- NoDHT = false #boolean
-
- #For the bittorrent protocol.
- DisableUTP = false #bool
-
- #For the bittorrent protocol.
- DisableTCP = false #bool
-
- #Called to instantiate storage for each added torrent. Builtin backends
- # are in the storage package. If not set, the "file" implementation is used.
- DefaultStorage = "storage.ClientImpl"
-
- #encryption policy
- IPBlocklist = "" #of type iplist.Ranger
-
- DisableIPv6 = false #boolean
-
- Debug = false #boolean
-
- #HTTP *http.Client
-
- HTTPUserAgent = "" # HTTPUserAgent changes default UserAgent for HTTP requests
-
- ExtendedHandshakeClientVersion = ""
-
- Bep20 = ""
-
- # Overrides the default DHT configuration, see dhtServerConfig #advanced.. so be careful
- DHTConfig = "" # default is "dht.ServerConfig"
-
-[dhtServerConfig]
- # Set NodeId Manually. Caller must ensure that if NodeId does not conform to DHT Security Extensions, that NoSecurity is also set.
- NodeId = "" #[20]byte
-
- Conn = "" # https:#godoc.org/net#PacketConn #not implemented
-
- # Don't respond to queries from other nodes.
- Passive = false # boolean
-
- # the default addresses are "router.utorrent.com:6881","router.bittorrent.com:6881","dht.transmissionbt.com:6881","dht.aelitis.com:6881",
- #https:#github.com/anacrolix/dht/blob/master/dht.go
- StartingNodes = "dht.GlobalBootstrapAddrs"
-
- #Disable the DHT security extension: http:#www.libtorrent.org/dht_sec.html.
- NoSecurity = false
-
- #Initial IP blocklist to use. Applied before serving and bootstrapping begins.
- IPBlocklist = "" #of type iplist.Ranger
-
- #Used to secure the server's ID. Defaults to the Conn's LocalAddr(). Set to the IP that remote nodes will see,
- #as that IP is what they'll use to validate our ID.
- PublicIP = "" #net.IP
-
- #Hook received queries. Return true if you don't want to propagate to the default handlers.
- OnQuery = "func(query *krpc.Msg, source net.Addr) (propagate bool)"
-
- #Called when a peer successfully announces to us.
- OnAnnouncePeer = "func(infoHash metainfo.Hash, peer Peer)"
-
- #How long to wait before re-sending queries that haven't received a response. Defaults to a random value between 4.5 and 5.5s.
- QueryResendDelay = "func() time.Duration"
\ No newline at end of file
diff --git a/goTorrentWebUI/src/BackendComm/backendWebsocket.js b/goTorrentWebUI/src/BackendComm/backendWebsocket.js
index 2a0f748b..30c8cb36 100644
--- a/goTorrentWebUI/src/BackendComm/backendWebsocket.js
+++ b/goTorrentWebUI/src/BackendComm/backendWebsocket.js
@@ -20,6 +20,7 @@ let RSSTorrentList = [];
let serverMessage = [];
let serverPushMessage = [];
let webSocketState = false;
+let settingsFile = [];
var torrentListRequest = {
MessageType: "torrentListRequest"
@@ -113,13 +114,9 @@ ws.onmessage = function (evt) { //When we recieve a message from the websocket
RSSName: serverMessage.RSSFeeds[i].RSSName,
})
}
- console.log("RSSURLS", RSSList)
- console.log("FIRSTURL", RSSList[1])
- console.log("FULLURL", RSSList[1].RSSURL)
break;
case "rssTorrentList":
- //console.log("RSSTorrentList recieved", evt.data)
RSSTorrentList = [];
for (var i = 0; i < serverMessage.TotalTorrents; i++){
RSSTorrentList.push({
@@ -133,6 +130,10 @@ ws.onmessage = function (evt) { //When we recieve a message from the websocket
console.log("SERVER PUSHED MESSAGE", serverMessage)
serverPushMessage = [serverMessage.MessageLevel, serverMessage.Payload];
break;
+ case "settingsFile":
+ settingsFile = [];
+ console.log("Settings File Returned", serverMessage)
+ settingsFile = serverMessage.Config
}
}
@@ -221,6 +222,9 @@ class BackendSocket extends React.Component {
console.log("PROPSSERVER", this.props.serverPushMessage, "SERVERPUSH", serverPushMessage)
this.props.newServerMessage(serverPushMessage)
}
+ if (this.props.settingsModalOpen) { //TODO don't really need to updaate every tick currently until we can edit config
+ this.props.newSettingsFile(settingsFile)
+ }
ws.send(JSON.stringify(torrentListRequest))//talking to the server to get the torrent list
if (ws.readyState === ws.CLOSED){ //if our websocket gets closed inform the user
@@ -281,7 +285,9 @@ const mapStateToProps = state => {
selection: state.selection,
RSSModalOpen: state.RSSModalOpen,
RSSTorrentList: state.RSSTorrentList,
- serverPushMessage: state.serverPushMessage
+ serverPushMessage: state.serverPushMessage,
+ settingsModalOpen: state.settingsModalOpen,
+
};
}
@@ -295,6 +301,7 @@ const mapDispatchToProps = dispatch => {
RSSTorrentList: (RSSTorrentList) => dispatch({type: actionTypes.RSS_TORRENT_LIST, RSSTorrentList}),
newServerMessage: (serverPushMessage) => dispatch({type: actionTypes.SERVER_MESSAGE, serverPushMessage}),
webSocketStateUpdate: (webSocketState) => dispatch({type: actionTypes.WEBSOCKET_STATE, webSocketState}),
+ newSettingsFile: (settingsFile) => dispatch({type: actionTypes.NEW_SETTINGS_FILE, settingsFile})
//changeSelection: (selection) => dispatch({type: actionTypes.CHANGE_SELECTION, selection}),//forcing an update to the buttons
}
diff --git a/goTorrentWebUI/src/BottomMenu/bottomMenu.js b/goTorrentWebUI/src/BottomMenu/bottomMenu.js
index d53713e1..3bddc371 100644
--- a/goTorrentWebUI/src/BottomMenu/bottomMenu.js
+++ b/goTorrentWebUI/src/BottomMenu/bottomMenu.js
@@ -1,6 +1,6 @@
import React from 'react';
import PropTypes from 'prop-types';
-import 'typeface-roboto'; // contains the font for material UI
+//import 'typeface-roboto'; // contains the font for material UI
import { withStyles } from 'material-ui/styles';
import AppBar from 'material-ui/AppBar';
import Tabs, { Tab } from 'material-ui/Tabs';
diff --git a/goTorrentWebUI/src/TopMenu/Modals/RSSModal/RSSModalLayout.js b/goTorrentWebUI/src/TopMenu/Modals/RSSModal/RSSModalLayout.js
index 83cd96cc..712e050c 100644
--- a/goTorrentWebUI/src/TopMenu/Modals/RSSModal/RSSModalLayout.js
+++ b/goTorrentWebUI/src/TopMenu/Modals/RSSModal/RSSModalLayout.js
@@ -101,8 +101,7 @@ const inlineStyle = {
}
handleRSSModalClose = () => {
- let closeState = false
- this.props.rssModalOpenState(closeState)
+ this.props.rssModalOpenState(false)
}
handleAddRSSFeed = () => {
diff --git a/goTorrentWebUI/src/TopMenu/Modals/RSSModal/addRSSModal.js b/goTorrentWebUI/src/TopMenu/Modals/RSSModal/addRSSModal.js
index f9853cf7..5ec53a40 100644
--- a/goTorrentWebUI/src/TopMenu/Modals/RSSModal/addRSSModal.js
+++ b/goTorrentWebUI/src/TopMenu/Modals/RSSModal/addRSSModal.js
@@ -16,12 +16,10 @@ import Dialog, {
DialogContentText,
DialogTitle,
} from 'material-ui/Dialog';
-import InsertLinkIcon from 'material-ui-icons/Link';
import ReactTooltip from 'react-tooltip'
import Icon from 'material-ui/Icon';
import IconButton from 'material-ui/IconButton';
import RSSTorrentIcon from 'material-ui-icons/RssFeed';
-import AddRSSIcon from 'material-ui-icons/AddCircle';
import RSSModalLayout from './RSSModalLayout'
diff --git a/goTorrentWebUI/src/TopMenu/Modals/SettingsModal/SettingsModalContentTabs/clientSettingsTab.js b/goTorrentWebUI/src/TopMenu/Modals/SettingsModal/SettingsModalContentTabs/clientSettingsTab.js
new file mode 100644
index 00000000..c0d5fda0
--- /dev/null
+++ b/goTorrentWebUI/src/TopMenu/Modals/SettingsModal/SettingsModalContentTabs/clientSettingsTab.js
@@ -0,0 +1,65 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+import { withStyles } from 'material-ui/styles';
+import Paper from 'material-ui/Paper';
+import Grid from 'material-ui/Grid';
+
+import {connect} from 'react-redux';
+
+
+const styles = theme => ({
+ root: {
+ flexGrow: 1,
+ marginTop: 0,
+ },
+ paper: {
+ padding: 16,
+ textAlign: 'left',
+ color: theme.palette.text.primary,
+ },
+ floatRight: {
+ float: 'right',
+ }
+});
+
+
+class ClientSettingsTab extends React.PureComponent {
+
+ render() {
+ const { classes } = this.props;
+ return (
+