ファイルを返すクエリを作成するとします。
$ notmuch search --output=files tag:inbox from:love
これにより、Maildir メッセージを指すファイルのリストが返されます。次に、次のファイルのいずれかを選択します(すでにnotmuchデータベースにあります)。
FILENAME=$(notmuch search --output=files tag:inbox from:love | fzf)
NotMuchデータベースからメッセージIDとスレッドIDを取得したいと思います。$FILENAME変数でいくつかのメッセージIDを見つけたいです。
これを行う非常に粗雑な方法は、ファイルを解析し、/ subject / dataからヘッダーを読み取り、いくつかのクエリを実行することですnotmuch search from:{...} subject:{...} date:{..}
。しかし、ファイル名はすでにデータベースに保存されているので、ファイル名からメッセージIDを取得するための正式で信頼性の高い方法が必要だと思いました。
ありがとうございます!
ベストアンサー1
ついに多くのPythonバインディングで方法を見つけました。https://notmuch.readthedocs.io/projects/notmuch-python/en/latest/database.html?highlight=filename#notmuch.Database.find_message_by_filename
ライナーの効果的な打撃は次のとおりです。
threadId=$(python3 -c "import notmuch; db = notmuch.Database(); print(db.find_message_by_filename('$FILENAME').get_thread_id())");
解凍されたpython3コードは次のとおりです。
import notmuch
db = notmuch.Database()
msg = db.find_message_by_filename('filename of the maildir message')
msg.get_thread_id()