MCPcopy Index your code
hub / github.com/NyarchLinux/DesktopPuppet / do_POST

Method do_POST

src/interaction_handler.py:30–122  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

28 self.end_headers()
29
30 def do_POST(self):
31 # Read the request body.
32 content_length = int(self.headers.get('Content-Length', 0))
33 post_data = self.rfile.read(content_length)
34 try:
35 data = json.loads(post_data)
36 except json.JSONDecodeError:
37 self.send_response(400)
38 self.end_headers()
39 self.wfile.write(b"Invalid JSON")
40 return
41
42 # Route POST requests based on the URL path.
43 if self.path == '/expression':
44 expr = data.get('expression')
45 print("Expression", expr)
46 if expr is None:
47 self.send_response(400)
48 self.end_headers()
49 self.wfile.write(b'Missing "expression" field')
50 return
51 self.server.interaction_server.set_expression(expr)
52 self.send_response(200)
53 self.end_headers()
54
55 if self.path == '/motion':
56 expr = data.get('motion')
57 print("Motion", expr)
58 if expr is None:
59 self.send_response(400)
60 self.end_headers()
61 self.wfile.write(b'Missing "motion" field')
62 return
63 self.server.interaction_server.set_motion(expr)
64 self.send_response(200)
65 self.end_headers()
66
67 elif self.path == '/mouth':
68 amplitude = data.get('amplitude')
69 if amplitude is None:
70 self.send_response(400)
71 self.end_headers()
72 self.wfile.write(b'Missing "amplitude" field')
73 return
74 self.server.interaction_server.set_mouth_amplitude(amplitude)
75 self.send_response(200)
76 self.end_headers()
77
78 elif self.path == '/webserver_url':
79 url = data.get('url')
80 if url is None:
81 self.send_response(400)
82 self.end_headers()
83 self.wfile.write(b'Missing "url" field')
84 return
85 self.server.interaction_server.set_webserser_url(url)
86 self.send_response(200)
87 self.end_headers()

Callers

nothing calls this directly

Calls 5

change_overlay_typeMethod · 0.80
set_expressionMethod · 0.45
set_motionMethod · 0.45
set_mouth_amplitudeMethod · 0.45
set_settingsMethod · 0.45

Tested by

no test coverage detected