feat: optimize filtering for DMs

This commit is contained in:
Vlad Stan 2023-03-08 18:33:23 +02:00
parent bf670c3545
commit 69dcbcb002
7 changed files with 79 additions and 19 deletions

View file

@ -9,7 +9,11 @@ from websocket import WebSocketApp
from lnbits.core.models import Payment
from lnbits.tasks import register_invoice_listener
from .crud import get_public_keys_for_merchants
from .crud import (
get_last_direct_messages_time,
get_last_order_time,
get_public_keys_for_merchants,
)
from .nostr.nostr_client import connect_to_nostrclient_ws
from .services import handle_order_paid, process_nostr_message
@ -68,9 +72,15 @@ async def subscribe_to_nostr_client(recieve_event_queue: Queue, send_req_queue:
async def wait_for_nostr_events(recieve_event_queue: Queue, send_req_queue: Queue):
public_keys = await get_public_keys_for_merchants()
for p in public_keys:
await send_req_queue.put(
["REQ", f"direct-messages-in:{p}", {"kind": 4, "#p": [p]}]
)
last_order_time = await get_last_order_time(p)
last_dm_time = await get_last_direct_messages_time(p)
since = max(last_order_time, last_dm_time)
in_messages_filter = {"kind": 4, "#p": [p]}
if since != 0:
in_messages_filter["since"] = since
print("### in_messages_filter", in_messages_filter)
await send_req_queue.put(["REQ", f"direct-messages-in:{p}", in_messages_filter])
# await send_req_queue.put(
# ["REQ", f"direct-messages-out:{p}", {"kind": 4, "authors": [p]}]
# )