diff --git a/pipboyMESH/mesh_server.py b/pipboyMESH/mesh_server.py index becb7f0..211993f 100644 --- a/pipboyMESH/mesh_server.py +++ b/pipboyMESH/mesh_server.py @@ -11,6 +11,7 @@ import sys import asyncio from time import time from typing import List, Dict +import random #msh imports from transport_serial import SerialTransport @@ -195,7 +196,9 @@ class Servlet: @self.app.get(route + "/nodes/{id}") async def getNodeInfo(id: int): if id in self.nodes: - return self.nodes[id] + #print("found") + #print(self.nodes[id].__dict__) + return self.nodes[id].__dict__ else: raise HTTPException(404) @@ -210,10 +213,28 @@ class Servlet: @self.app.post(route + "/messages") #curl -X POST -d '{"txt":"test", "node_id":"xxxxxxxxxx"}' -H "Content-Type: application/json" http://127.0.0.1:8868/mesh/api/messages async def postMessage(msg: NewMessage): + magicpkg = { + "packet": { + "from": self.device.nid, + "to": PUB_CH, + "decoded": {"payload": msg.txt.encode()}, + "id": random.randint(1, 0x7FFFFFFF), + } + } + async def genNewMsg(from_radio): + msg = Message(from_radio) + self.message.append(msg) + await self.ws_update({"type":WS_TYPE_NEW, "event": WS_EVENT_MESSAGE, "data": msg.__dict__}) + self.lstChange["messages"] = time() + if msg.node_id: - return await self.device.sendMsgToDM(msg.txt, msg.node_id) + res = await self.device.sendMsgToDM(msg.txt, msg.node_id) + magicpkg["to"] = msg.node_id else: - return await self.device.sendMsgToChannel(msg.txt, msg.channel_id) + magicpkg["channel"] = msg.channel_id + res = await self.device.sendMsgToChannel(msg.txt, msg.channel_id) + + await genNewMsg(magicpkg) if __name__ == "__main__": parser = argparse.ArgumentParser() diff --git a/pipboyMESH/mesht_models.py b/pipboyMESH/mesht_models.py index dc37970..66a344b 100644 --- a/pipboyMESH/mesht_models.py +++ b/pipboyMESH/mesht_models.py @@ -46,7 +46,10 @@ class Channel: class Node: #aka node info def __init__(self, fr): self.num = fr["node_info"]["num"] - self.user = fr["node_info"].get("user", {}) + self.user = {} + self.user["id"] = fr["node_info"].get("user", {}).get("id", None) + self.user["short_name"] = fr["node_info"].get("user", {}).get("short_name", None) + self.user["long_name"] = fr["node_info"].get("user", {}).get("long_name", None) self.snr = fr["node_info"].get("snr", None) self.last_heard = fr["node_info"].get("last_heard", None) self.hops_away = fr["node_info"].get("hops_away", None) diff --git a/pipboyUI/dist/pipboy-ui/index.html b/pipboyUI/dist/pipboy-ui/index.html index ae4558c..53e78d9 100644 --- a/pipboyUI/dist/pipboy-ui/index.html +++ b/pipboyUI/dist/pipboy-ui/index.html @@ -7,9 +7,9 @@ - +