I am working on a very similar workflow. If it helps, here is my filter script:
import json
import sys
from pathlib import Path
try:
query = sys.argv[1]
except IndexError:
query = None
data = {
'items': []
}
dirs_to_check = [
'~/projects/personal',
'~/projects/work',
]
for dir in dirs_to_check:
for i in Path(dir).expanduser().iterdir():
if i.name in ['.git', '.DS_Store']:
continue
if query:
if query.lower() not in i.name.lower():
continue
data['items'].append({
'title': i.name,
'subtitle': f"Open: {str(i)}",
'arg': str(i)
})
sys.stdout.write(json.dumps(data))