nostrdb

an unfairly fast embedded nostr database backed by lmdb
git clone git://jb55.com/nostrdb
Log | Files | Refs | Submodules | README | LICENSE

commit 121162c397dc852fbb9f2fb362721d0201140a32
parent 3eeabca9589d3d0e276737e9d4a815b86faf5922
Author: William Casarin <jb55@jb55.com>
Date:   Wed, 29 Oct 2025 12:54:23 -0700

ndb: add q tags

Signed-off-by: William Casarin <jb55@jb55.com>

Diffstat:
Mndb.c | 27++++++++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/ndb.c b/ndb.c @@ -323,7 +323,32 @@ int main(int argc, char *argv[]) argv += 2; argc -= 2; - } else if (!strcmp(argv[0], "-a") || !strcmp(argv[0], "--author")) { + } else if (!strcmp(argv[0], "-q")) { + if (current_field != 'q') { + if (!ndb_filter_start_tag_field(f, 'q')) { + fprintf(stderr, "field already started\n"); + res = 44; + goto cleanup; + } + } + current_field = 'q'; + + if (len != 64 || !hex_decode(argv[1], 64, tmp_id, sizeof(tmp_id))) { + fprintf(stderr, "invalid hex id\n"); + res = 42; + goto cleanup; + } + + if (!ndb_filter_add_id_element(f, tmp_id)) { + fprintf(stderr, "too many event ids\n"); + res = 43; + goto cleanup; + } + + argv += 2; + argc -= 2; + } + else if (!strcmp(argv[0], "-a") || !strcmp(argv[0], "--author")) { if (current_field != NDB_FILTER_AUTHORS) { ndb_filter_end_field(f); ndb_filter_start_field(f, NDB_FILTER_AUTHORS);