Adding screenshots

This commit is contained in:
Pablo Revilla
2025-02-21 11:24:15 -08:00
parent 4585f50b08
commit 03183384c6
5 changed files with 7 additions and 40 deletions
+1 -1
View File
@@ -6,7 +6,7 @@ acme_challenge =
[mqtt]
server = mqtt.bayme.sh
topics = ['msh/US/bayarea/#', 'msh/US/CA/mrymesh/#']
topics = ["msh/US/bayarea/#"]
port = 1883
username = meshdev
password = large4cats
+3 -1
View File
@@ -6,6 +6,7 @@ from meshview import database
from meshview import store
from meshview import web
from meshview import http
import json
async def load_database_from_mqtt(mqtt_server: str , mqtt_port: int, topic: str, mqtt_user: str | None = None, mqtt_passwd: str | None = None):
@@ -23,10 +24,11 @@ async def main(config):
mqtt_user: str = config["mqtt"]["username"]
if config["mqtt"]["password"] != "":
mqtt_passwd: str = config["mqtt"]["password"]
mqtt_topics = json.loads(config["mqtt"]["topics"])
async with asyncio.TaskGroup() as tg:
tg.create_task(
load_database_from_mqtt(config["mqtt"]["server"], int(config["mqtt"]["port"]), config["mqtt"]["topics"], mqtt_user, mqtt_passwd)
load_database_from_mqtt(config["mqtt"]["server"], int(config["mqtt"]["port"]), mqtt_topics, mqtt_user, mqtt_passwd)
)
tg.create_task(
web.run_server(
+1
View File
@@ -33,6 +33,7 @@ async def get_topic_envelopes(mqtt_server, mqtt_port, topics, mqtt_user, mqtt_pa
mqtt_server, port=mqtt_port , username=mqtt_user, password=mqtt_passwd , identifier=identifier,
) as client:
for topic in topics:
print(topic)
await client.subscribe(topic)
async for msg in client.messages:
try:
+1 -1
View File
@@ -24,7 +24,7 @@
<div class="container" > Weekly Mesh check-in. We will keep it open on every Wednesday from 5:00pm for checkins so you do not have to rush.<br>
The message format should be (LONG NAME) - (CITY YOU ARE IN) #BayMeshNet.<br><br>
</div>
<div class="container" hx-ext="sse" sse-connect="/net_events" sse-swap="net_packet" hx-swap="afterbegin">
<div class="container">
{% for packet in packets %}
{% include 'chat_packet.html' %}
{% else %}
+1 -37
View File
@@ -1573,7 +1573,7 @@ async def net(request):
raise # Let aiohttp handle HTTP exceptions properly
except Exception as e:
print("Error processing chat request")
print("Error processing net request")
return web.Response(
text="An internal server error occurred.",
status=500,
@@ -1581,42 +1581,6 @@ async def net(request):
)
@routes.get("/net_events")
async def net_events(request):
chat_packet = env.get_template("net_packet.html")
# Precompile regex for performance (case insensitive)
seq_pattern = re.compile(r"seq \d+$")
with notify.subscribe(node_id=0xFFFFFFFF) as event:
async with sse_response(request) as resp:
while resp.is_connected():
try:
await asyncio.wait_for(event.wait(), timeout=10)
except asyncio.TimeoutError:
continue # Timeout occurred, loop again
if event.is_set():
# Ensure event.packets is valid before accessing it
packets = [
p for p in (event.packets or [])
if p.portnum == PortNum.TEXT_MESSAGE_APP
]
event.clear()
try:
for packet in packets:
ui_packet = Packet.from_model(packet)
if not seq_pattern.match(ui_packet.payload) and "baymeshnet" in ui_packet.payload.lower():
await resp.send(
chat_packet.render(packet=ui_packet),
event="net_packet",
)
except ConnectionResetError:
print("Client disconnected from SSE stream.")
return # Gracefully exit on disconnection
@routes.get("/map")
async def map(request):
try: