support multiple filters
This commit is contained in:
parent
03719603a2
commit
699700c635
1 changed files with 19 additions and 15 deletions
34
views_api.py
34
views_api.py
|
|
@ -87,25 +87,29 @@ async def api_post_event(event: Event):
|
||||||
client.relay_manager.publish_event(nostr_event)
|
client.relay_manager.publish_event(nostr_event)
|
||||||
|
|
||||||
|
|
||||||
@nostrclient_ext.post("/api/v1/filter")
|
@nostrclient_ext.post("/api/v1/filters")
|
||||||
async def api_subscribe(filter: Filter):
|
async def api_subscribe(filters: Filters):
|
||||||
nostr_filter = NostrFilter(
|
filter_list = []
|
||||||
event_ids=filter.ids,
|
for filter in filters.__root__:
|
||||||
kinds=filter.kinds, # type: ignore
|
filter_list.append(
|
||||||
authors=filter.authors,
|
NostrFilter(
|
||||||
since=filter.since,
|
event_ids=filter.ids,
|
||||||
until=filter.until,
|
kinds=filter.kinds, # type: ignore
|
||||||
event_refs=filter.e,
|
authors=filter.authors,
|
||||||
pubkey_refs=filter.p,
|
since=filter.since,
|
||||||
limit=filter.limit,
|
until=filter.until,
|
||||||
)
|
event_refs=filter.e,
|
||||||
|
pubkey_refs=filter.p,
|
||||||
|
limit=filter.limit,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
filters = NostrFilters([nostr_filter])
|
nostr_filters = NostrFilters(filter_list)
|
||||||
subscription_id = urlsafe_short_hash()
|
subscription_id = urlsafe_short_hash()
|
||||||
client.relay_manager.add_subscription(subscription_id, filters)
|
client.relay_manager.add_subscription(subscription_id, nostr_filters)
|
||||||
|
|
||||||
request = [ClientMessageType.REQUEST, subscription_id]
|
request = [ClientMessageType.REQUEST, subscription_id]
|
||||||
request.extend(filters.to_json_array())
|
request.extend(nostr_filters.to_json_array())
|
||||||
message = json.dumps(request)
|
message = json.dumps(request)
|
||||||
client.relay_manager.publish_message(message)
|
client.relay_manager.publish_message(message)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue