def upload(req): # We only allow POST's. if req.method is not kore.METHOD_POST: req.response_header("allow", "post") req.response(400, b'') return # Ask kore to parse incoming multipart data. req.populate_multi() # Lookup the file called "file". file = req.file_lookup("file") if not file: req.response(400, b'') return kore.log(kore.LOG_INFO, "%s (%s, filename=%s)" % (file, file.name, file.filename)) # Open target file. f = open(file.filename, "wb") if not f: req.response(500, b'') return # Read all data from incoming file and write it to the output file. len = True while len: len, bytes = file.read(1024) kore.log(kore.LOG_INFO, "got %d bytes of data" % len) f.write(bytes) f.close() req.response(200, b'')
def serve_logout(req): kore.log(kore.LOG_INFO, "logout called!") req.response_header("content-type", "application/json") req.response( 200, json.dumps({ "code": 20000, 'method': 'logout', 'success': True }).encode())
def json_parse(req): if req.method != kore.METHOD_PUT: req.response(400, b'') else: data = json.loads(req.body) kore.log(kore.LOG_INFO, "loaded json %s" % data) if data["hello"] == 123: kore.log(kore.LOG_INFO, "hello is 123!") req.response(200, "ok".encode("utf-8"))
async def queue_helper(): while True: # Wait for a dictionary to arrive. obj = await tq.pop() kore.log(kore.LOG_INFO, "coro(): received %s" % obj) # Create a message to send back. msg = "%d = %s" % (kore.time(), obj["msg"]) # Send it on the received queue. obj["rq"].push(msg)
def serve_login(req): kore.log(kore.LOG_INFO, "login called!") req.response_header("content-type", "application/json") req.response( 200, json.dumps({ "code": 20000, 'method': 'login', 'success': True, 'data': { 'token': 'bb9400bf48694218ae6d39a3b2578df2' } }).encode())
def serve_info(req): kore.log(kore.LOG_INFO, "info called!") req.response_header("content-type", "application/json") req.response( 200, json.dumps({ "code": 20000, 'method': 'login', 'success': True, "data": { "roles": ["admin"], "name": "admin", "avatar": "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif", 'token': 'bb9400bf48694218ae6d39a3b2578df2' } }).encode())
def state_test(req): # If we don't have a state this is the first time we're called. if req.state is None: kore.log(kore.LOG_INFO, "state_test: first time") req.state = "hello world" # Tell Kore to call us again next event loop. return kore.RESULT_RETRY # We have been called before. kore.log(kore.LOG_INFO, "state_test: second time, with %s" % req.state) req.response(200, req.state.encode("utf-8")) # We *MUST* reset state back to None before returning RESULT_OK req.state = None; return kore.RESULT_OK
async def async_socket(req): # Create the socket using Pythons built-in socket class. sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Set it to nonblocking. sock.setblocking(False) # Create a kore.socket with kore.socket_wrap(). conn = kore.socket_wrap(sock) # Asynchronously connect to 127.0.0.1 port 8888 await conn.connect("127.0.0.1", 8888) kore.log(kore.LOG_INFO, "connected!") # Now send the GET request msg = "GET /socket-test HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n" await conn.send(msg.encode()) kore.log(kore.LOG_INFO, "request sent!") # Read the response. data = await conn.recv(8192) kore.log(kore.LOG_INFO, "got response!") # Respond with the response from /socket-test. req.response(200, data) conn.close()
async def async_socket(req): # Create the socket using Pythons built-in socket class. sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Set it to nonblocking. sock.setblocking(False) # Create a kore.socket with kore.socket_wrap(). conn = kore.socket_wrap(sock) # Asynchronously connect to 127.0.0.1 port 8888 await conn.connect("127.0.0.1", 8888) kore.log(kore.LOG_INFO, "connected!") # Now send the GET request msg = "GET /socket-test HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n" await conn.send(msg.encode()) kore.log(kore.LOG_INFO, "request sent!") # Read the response. data = await conn.recv(8192) kore.log(kore.LOG_INFO, "got response!") # Respond with the response from /socket-test. req.response(200, data) # Close the underlying socket, no need to close the wrapped kore.socket sock.close()
def onconnect(c): kore.log(kore.LOG_INFO, "{0!r}: connected".format(c))
def page(req): kore.log(kore.LOG_INFO, "%s path is %s - host is %s" % (req, req.path, req.host)) kore.log(kore.LOG_INFO, "connection is %s" % req.connection) xframe = req.request_header("xframe") if xframe != None: kore.log(kore.LOG_INFO, "xframe header present: '%s'" % xframe) if req.method == kore.METHOD_POST: try: length, body = req.body_read(1024) kore.log(kore.LOG_INFO, "POST and got %d bytes! (%s)" % (length, body.decode("utf-8"))) except RuntimeError as r: kore.log(kore.LOG_INFO, "oops runtime error %s" % r) req.response(500, b'') except: kore.log(kore.LOG_INFO, "oops other error") req.response(500, b'') else: req.response_header("content-type", "text/plain") req.response(200, body) else: req.populate_get() id = req.argument("id") if id != None: kore.log(kore.LOG_INFO, "got id of %s" % id) req.response_header("content-type", "text/plain") req.response(200, "hello 1234".encode("utf-8"))
def kore_worker_configure(): kore.log(kore.LOG_INFO, "kore_worker_configure called!")
def kore_parent_configure(): # Listen on an additional interface and port. kore.listen("127.0.0.1", "8889", "") kore.log(kore.LOG_INFO, "kore_parent_configure called!")
def onload(action): kore.log(kore.LOG_INFO, "python module onload called with %d!" % action) return kore.RESULT_OK
def python_validator(req, data): kore.log(kore.LOG_NOTICE, "python validator called %s" % data) return kore.RESULT_OK
def python_auth(req, data): kore.log(kore.LOG_NOTICE, "python auth called %s" % data) return kore.RESULT_OK
def kaka(req): req.populate_cookies() cookie = req.cookie("hello") if cookie is not None: kore.log(kore.LOG_INFO, "got hello with value %s" % cookie) req.response(200, b'')
def ondisconnect(c): kore.log(kore.LOG_INFO, "{0!r}: disconnectin".format(c))
def onmessage(c, op, data): kore.log(kore.LOG_INFO, "conn:{0!r} op:{1!r} data:{2!r}".format(c, op, data)) c.websocket_send(op, "{0}".format(datetime.datetime.now()).encode())
def onconnect(c): kore.log(kore.LOG_INFO, "%s: py connected" % c)
def ondisconnect(c): kore.log(kore.LOG_INFO, "%s: py disconnecting" % c)