dotfiles/.jq
2025-06-08 12:15:07 +02:00

17 lines
554 B
Text

# generic
def partition_by(sel):
reduce .[] as $item
( {}
; ($item | sel | tostring) as $res | .[$res] = (.[$res] // []) + [$item]
)
;
def partition: partition_by(.);
def count_by(sel): partition_by(sel) | to_entries | map(.value = (.value | length)) | from_entries;
# nostr-related functions
def tags(tagName): .tags | map(select(.[0] == tagName));
def tag(tagName): tags(tagName) | .[0];
def tag_value(tagName): tag(tagName)[1];
def has_tag(tagName): (tags(tagName) | length) > 0;
def hasnt_tag(tagName): (tags(tagName) | length) == 0;