29 lines
726 B
Python
29 lines
726 B
Python
from subprocess import run
|
|
import sys
|
|
import json
|
|
|
|
from common import format_timestamp
|
|
|
|
journal = json.load(open('journal.json'))
|
|
|
|
matches = []
|
|
keywords = sys.argv[1:]
|
|
|
|
for day, obj in journal.items():
|
|
for entry in obj['entries']:
|
|
for block in entry['blocks']:
|
|
if isinstance(block, str):
|
|
words = block.lower().split()
|
|
if any(kw in words for kw in keywords):
|
|
matches.append((
|
|
format_timestamp(entry['timestamp']),
|
|
'\n\n'.join([b for b in entry if isinstance(b, str)])
|
|
))
|
|
|
|
buf = ''
|
|
|
|
for (ts, c) in matches:
|
|
buf += f'{ts}\n\n{c}\n\n'
|
|
|
|
run(['nvim', '-'], input=buf.encode('utf-8'))
|