added abilty to toggle shutdown
This commit is contained in:
@@ -37,3 +37,4 @@ To shutdown the NAS, send a POST request to `http://<your-nas>:48080/shutdown` w
|
||||
"message": "<shutdown_keywords set in config.json>"
|
||||
}
|
||||
```
|
||||
This can be turned on and off in the `config.json` file or with the webinterface `http://<your-nas>:48080`.
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"shutdown_keywords": [
|
||||
"Sicherungsaufgabe Backup auf RS815p wurde abgeschlossen"
|
||||
]
|
||||
],
|
||||
"shutdown_active": true
|
||||
}
|
||||
@@ -11,6 +11,9 @@ except FileNotFoundError:
|
||||
config = json.load(config_file)
|
||||
|
||||
def do_shutdown():
|
||||
if config['shutdown_active'] == False:
|
||||
return
|
||||
|
||||
import subprocess
|
||||
import shlex
|
||||
command = shlex.split('sudo shutdown -h now')
|
||||
@@ -19,7 +22,10 @@ def do_shutdown():
|
||||
class MyHandler(http.server.SimpleHTTPRequestHandler):
|
||||
def do_POST(self):
|
||||
self.data_string = self.rfile.read(int(self.headers['Content-Length']))
|
||||
try:
|
||||
data = json.loads(self.data_string)
|
||||
except:
|
||||
data = ""
|
||||
|
||||
if self.path == '/shutdown':
|
||||
match = False
|
||||
@@ -39,5 +45,20 @@ class MyHandler(http.server.SimpleHTTPRequestHandler):
|
||||
self.wfile.write(b'Not shutting down')
|
||||
print('Not shutting down')
|
||||
|
||||
elif self.path == '/toggle_shutdown':
|
||||
config['shutdown_active'] = not config['shutdown_active']
|
||||
with open('config.json', 'w') as config_file:
|
||||
json.dump(config, config_file)
|
||||
self.send_response(303)
|
||||
self.send_header('Location', '/')
|
||||
self.end_headers()
|
||||
print('Shutdown toggled')
|
||||
|
||||
def do_GET(self):
|
||||
if self.path == '/':
|
||||
self.send_response(200)
|
||||
self.end_headers()
|
||||
self.wfile.write(b'<html><head><title>Synology Webhook</title></head><body><p>Shutdown active: ' + str(config['shutdown_active']).encode() + b'</p><form method="post" action="/toggle_shutdown"><input type="submit" value="Toggle shutdown"></form></body></html>')
|
||||
|
||||
httpd = socketserver.TCPServer(('', 48080), MyHandler)
|
||||
httpd.serve_forever()
|
||||
Reference in New Issue
Block a user