[{"/space/Projects/GO/TorrServer/web/src/index.js":"1","/space/Projects/GO/TorrServer/web/src/App.js":"2","/space/Projects/GO/TorrServer/web/src/components/Appbar/index.js":"3","/space/Projects/GO/TorrServer/web/src/components/Upload.js":"4","/space/Projects/GO/TorrServer/web/src/components/About.js":"5","/space/Projects/GO/TorrServer/web/src/components/TorrentList.js":"6","/space/Projects/GO/TorrServer/web/src/components/Settings.js":"7","/space/Projects/GO/TorrServer/web/src/components/Appbar/useStyles.js":"8","/space/Projects/GO/TorrServer/web/src/components/Donate.js":"9","/space/Projects/GO/TorrServer/web/src/components/RemoveAll.js":"10","/space/Projects/GO/TorrServer/web/src/utils/Hosts.js":"11","/space/Projects/GO/TorrServer/web/src/components/Add/index.js":"12","/space/Projects/GO/TorrServer/web/src/components/Torrent/index.js":"13","/space/Projects/GO/TorrServer/web/src/components/Add/AddDialog.js":"14","/space/Projects/GO/TorrServer/web/src/components/Torrent/style.js":"15","/space/Projects/GO/TorrServer/web/src/utils/Utils.js":"16","/space/Projects/GO/TorrServer/web/src/components/DialogTorrentInfo.js":"17","/space/Projects/GO/TorrServer/web/src/components/DialogCacheInfo.js":"18","/space/Projects/GO/TorrServer/web/src/icons/index.js":"19"},{"size":224,"mtime":1609258964582,"results":"20","hashOfConfig":"21"},{"size":753,"mtime":1621874529390,"results":"22","hashOfConfig":"21"},{"size":4788,"mtime":1621875508715,"results":"23","hashOfConfig":"21"},{"size":1348,"mtime":1609258964582,"results":"24","hashOfConfig":"21"},{"size":2278,"mtime":1609258964578,"results":"25","hashOfConfig":"21"},{"size":1618,"mtime":1621874529390,"results":"26","hashOfConfig":"21"},{"size":9039,"mtime":1621789228910,"results":"27","hashOfConfig":"21"},{"size":1728,"mtime":1621874529390,"results":"28","hashOfConfig":"21"},{"size":3831,"mtime":1621875426378,"results":"29","hashOfConfig":"21"},{"size":1325,"mtime":1621874529390,"results":"30","hashOfConfig":"21"},{"size":796,"mtime":1614406016579,"results":"31","hashOfConfig":"21"},{"size":880,"mtime":1621874529390,"results":"32","hashOfConfig":"21"},{"size":6309,"mtime":1621874529390,"results":"33","hashOfConfig":"21"},{"size":2440,"mtime":1621874529390,"results":"34","hashOfConfig":"21"},{"size":2139,"mtime":1621874529390,"results":"35","hashOfConfig":"21"},{"size":419,"mtime":1614194039304,"results":"36","hashOfConfig":"21"},{"size":7486,"mtime":1619026270555,"results":"37","hashOfConfig":"21"},{"size":4995,"mtime":1621875727408,"results":"38","hashOfConfig":"21"},{"size":2468,"mtime":1621874529390,"results":"39","hashOfConfig":"21"},{"filePath":"40","messages":"41","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},"1gum1a2",{"filePath":"43","messages":"44","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"45","messages":"46","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"47","messages":"48","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"49","messages":"50","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"51","messages":"52","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"53","messages":"54","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"55","usedDeprecatedRules":"42"},{"filePath":"56","messages":"57","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"58","messages":"59","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"60","messages":"61","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"62","messages":"63","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"64","messages":"65","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"66","messages":"67","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"68","messages":"69","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"70","messages":"71","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"72","messages":"73","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},{"filePath":"74","messages":"75","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"76","usedDeprecatedRules":"42"},{"filePath":"77","messages":"78","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"79","messages":"80","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"42"},"/space/Projects/GO/TorrServer/web/src/index.js",[],["81","82"],"/space/Projects/GO/TorrServer/web/src/App.js",[],"/space/Projects/GO/TorrServer/web/src/components/Appbar/index.js",[],"/space/Projects/GO/TorrServer/web/src/components/Upload.js",[],"/space/Projects/GO/TorrServer/web/src/components/About.js",[],"/space/Projects/GO/TorrServer/web/src/components/TorrentList.js",[],"/space/Projects/GO/TorrServer/web/src/components/Settings.js",["83"],"import ListItem from '@material-ui/core/ListItem'\nimport ListItemIcon from '@material-ui/core/ListItemIcon'\nimport ListItemText from '@material-ui/core/ListItemText'\nimport React, { useEffect } from 'react'\nimport SettingsIcon from '@material-ui/icons/Settings'\nimport Dialog from '@material-ui/core/Dialog'\nimport DialogTitle from '@material-ui/core/DialogTitle'\nimport DialogContent from '@material-ui/core/DialogContent'\nimport TextField from '@material-ui/core/TextField'\nimport DialogActions from '@material-ui/core/DialogActions'\nimport Button from '@material-ui/core/Button'\nimport { FormControlLabel, InputLabel, Select, Switch } from '@material-ui/core'\nimport { settingsHost, setTorrServerHost, torrserverHost } from '../utils/Hosts'\n\nexport default function SettingsDialog() {\n const [open, setOpen] = React.useState(false)\n const [settings, setSets] = React.useState({})\n const [show, setShow] = React.useState(false)\n const [tsHost, setTSHost] = React.useState(torrserverHost ? torrserverHost : window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : ''))\n\n const handleClickOpen = () => {\n setOpen(true)\n }\n const handleClose = () => {\n setOpen(false)\n }\n const handleCloseSave = () => {\n setOpen(false)\n let sets = JSON.parse(JSON.stringify(settings))\n sets.CacheSize *= 1024 * 1024\n sets.PreloadBufferSize *= 1024 * 1024\n fetch(settingsHost(), {\n method: 'post',\n body: JSON.stringify({ action: 'set', sets: sets }),\n headers: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': 'application/json',\n },\n })\n }\n\n useEffect(() => {\n fetch(settingsHost(), {\n method: 'post',\n body: JSON.stringify({ action: 'get' }),\n headers: {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': 'application/json',\n },\n })\n .then((res) => res.json())\n .then(\n (json) => {\n json.CacheSize /= 1024 * 1024\n json.PreloadBufferSize /= 1024 * 1024\n setSets(json)\n setShow(true)\n },\n (error) => {\n setShow(false)\n console.log(error)\n }\n )\n .catch((e) => {\n setShow(false)\n console.log(e)\n })\n }, [tsHost])\n\n const onInputHost = (event) => {\n let host = event.target.value\n setTorrServerHost(host)\n setTSHost(host)\n }\n\n const inputForm = (event) => {\n let sets = JSON.parse(JSON.stringify(settings))\n if (event.target.type === 'number' || event.target.type === 'select-one') {\n sets[event.target.id] = Number(event.target.value)\n } else if (event.target.type === 'checkbox') {\n sets[event.target.id] = Boolean(event.target.checked)\n } else if (event.target.type === 'url') {\n sets[event.target.id] = event.target.value\n }\n setSets(sets)\n }\n\n return (\n