support passing in a reticulum identity, or generate a new one by default
This commit is contained in:
28
web.py
28
web.py
@@ -13,23 +13,37 @@ from sanic import Sanic, Request, Websocket, file
|
|||||||
|
|
||||||
# global references
|
# global references
|
||||||
app_name = "ReticulumWebChat"
|
app_name = "ReticulumWebChat"
|
||||||
reticulum: RNS.Reticulum
|
reticulum: RNS.Reticulum | None = None
|
||||||
message_router: LXMF.LXMRouter
|
identity: RNS.Identity | None = None
|
||||||
local_lxmf_destination: RNS.Destination
|
message_router: LXMF.LXMRouter | None = None
|
||||||
|
local_lxmf_destination: RNS.Destination | None = None
|
||||||
websocket_clients = []
|
websocket_clients = []
|
||||||
|
|
||||||
# create sanic app
|
# create sanic app
|
||||||
app = Sanic(app_name)
|
app = Sanic(app_name)
|
||||||
|
|
||||||
|
|
||||||
async def main():
|
def main():
|
||||||
|
|
||||||
# parse command line args
|
# parse command line args
|
||||||
parser = argparse.ArgumentParser(description="ReticulumWebChat")
|
parser = argparse.ArgumentParser(description="ReticulumWebChat")
|
||||||
parser.add_argument("--host", nargs='?', default="0.0.0.0", type=str, help="The address the web server should listen on.")
|
parser.add_argument("--host", nargs='?', default="0.0.0.0", type=str, help="The address the web server should listen on.")
|
||||||
parser.add_argument("--port", nargs='?', default="8000", type=int, help="The port the web server should listen on.")
|
parser.add_argument("--port", nargs='?', default="8000", type=int, help="The port the web server should listen on.")
|
||||||
|
parser.add_argument("--identity-private-key", type=str, help="A base64 encoded private key for a Reticulum Identity to use as your LXMF address.")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
# use provided identity, or fallback to a random one
|
||||||
|
global identity
|
||||||
|
if args.identity_private_key is not None:
|
||||||
|
identity = RNS.Identity(create_keys=False)
|
||||||
|
identity.load_private_key(base64.b64decode(args.identity_private_key))
|
||||||
|
print("Reticulum Identity has been loaded.")
|
||||||
|
print(identity)
|
||||||
|
else:
|
||||||
|
identity = RNS.Identity(create_keys=True)
|
||||||
|
print("Reticulum Identity has been generated.")
|
||||||
|
print(identity)
|
||||||
|
|
||||||
# run sanic app
|
# run sanic app
|
||||||
app.run(
|
app.run(
|
||||||
host=args.host,
|
host=args.host,
|
||||||
@@ -43,10 +57,6 @@ def start_reticulum():
|
|||||||
global reticulum
|
global reticulum
|
||||||
reticulum = RNS.Reticulum(None)
|
reticulum = RNS.Reticulum(None)
|
||||||
|
|
||||||
# create a new identity and log as base64
|
|
||||||
identity = RNS.Identity()
|
|
||||||
print(base64.b64encode(identity.get_private_key()))
|
|
||||||
|
|
||||||
# init lxmf router
|
# init lxmf router
|
||||||
global message_router
|
global message_router
|
||||||
message_router = LXMF.LXMRouter(identity=identity, storagepath="storage/lxmf")
|
message_router = LXMF.LXMRouter(identity=identity, storagepath="storage/lxmf")
|
||||||
@@ -215,4 +225,4 @@ def send_message(destination_hash, message_content):
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
asyncio.run(main())
|
main()
|
||||||
|
|||||||
Reference in New Issue
Block a user