fat: support NIP09 delete event

This commit is contained in:
Vlad Stan 2023-02-03 14:26:30 +02:00
parent 8645bb6d05
commit b0be06580a
2 changed files with 9 additions and 6 deletions

14
crud.py
View file

@ -39,7 +39,7 @@ async def get_events(relay_id: str, filter: NostrFilter, include_tags = True) ->
event = NostrEvent.from_row(row)
if include_tags:
event.tags = await get_event_tags(relay_id, event.id)
events.append(event)
events.append(event)
return events
@ -53,10 +53,12 @@ async def get_event(relay_id: str, id: str) -> Optional[NostrEvent]:
event.tags = await get_event_tags(relay_id, id)
return event
async def delete_events(relay_id: str, ids: List[str]) -> None:
ids = ",".join(["?"] * len(ids))
values = [relay_id] + ids
await db.execute("DELETE FROM FROM nostrrelay.events WHERE relay_id = ? AND id IN ({ids})", tuple(values))
async def delete_events(relay_id: str, id_list: List[str] = []):
if len(id_list) == 0:
return None
ids = ",".join(["?"] * len(id_list))
values = [relay_id] + id_list
await db.execute(f"UPDATE nostrrelay.events SET deleted=true WHERE relay_id = ? AND id IN ({ids})", tuple(values))
async def create_event_tags(
@ -101,7 +103,7 @@ def build_select_events_query(relay_id:str, filter:NostrFilter):
query = "SELECT id, pubkey, created_at, kind, content, sig FROM nostrrelay.events "
inner_joins = []
where = ["nostrrelay.events.relay_id = ?"]
where = ["deleted=false AND nostrrelay.events.relay_id = ?"]
if len(filter.e):
values += filter.e
e_s = ",".join(["?"] * len(filter.e))

View file

@ -16,6 +16,7 @@ async def m001_initial(db):
f"""
CREATE TABLE nostrrelay.events (
relay_id TEXT NOT NULL,
deleted BOOLEAN DEFAULT false,
id TEXT PRIMARY KEY,
pubkey TEXT NOT NULL,
created_at {db.big_int} NOT NULL,