Continuing the previous discussion (Using a Leo Outline On Another Computer? 
<https://groups.google.com/g/leo-editor/c/lbrgq0YBG-0>), we don't even have 
to change leoserver.  Instead, we can import it and monkey patch it.  
Basically, import leo.core.leoserver, and then add the following:

SetEncoder = leoserver.SetEncoder
InternalServerError = leoserver.InternalServerError
ServerError = leoserver.ServerError
TerminateServer = leoserver.TerminateServer
ServerExternalFilesController = leoserver.ServerExternalFilesController
LeoServer = leoserver.LeoServer
main = leoserver.main
leoserver.wsHost = "10.0.0.58"  # If we want to change the default 

def send_outline(self, param):
    filename = param.get('path', '')
    result = ''
    if filename and os.path.exists(filename):
        with open(filename, encoding = 'utf-8') as f:
            result = f.read()

    data = {"outline": result}
    return self._make_response(data)

LeoServer.send_outline = send_outline

Of course, we could add other new methods the same way.  This approach 
works with my little test client.  

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/f9994a34-f5c1-4b7e-9a54-536d0bdb5867n%40googlegroups.com.

Reply via email to