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.