#!/usr/bin/env python3 """ # Script ob-file-ideas ## Metadata **Kind**: #obsidian/ob-script **Language**: #python **Parent**:: [[♯ Todoist]], [[Obsidian Chore Scripts]], [[♯ IFTTT]], [[Executable Markdown File]] ## Synopsis Use Todoist to capture ideas and archive them to Obsidian. ## Script ```python # """ import os import platform import glob from datetime import datetime, timedelta DEBUG = os.environ.get("DEBUG", "") def _date(date_str): return datetime.strptime(date_str, "%Y-%m-%d").strftime("%a, %b %d, %Y") def _tomorrow(date_str): return (datetime.strptime(date_str, "%Y-%m-%d") + timedelta(days=1)).strftime("%Y-%m-%d") def _yesterday(date_str): return (datetime.strptime(date_str, "%Y-%m-%d") - timedelta(days=1)).strftime("%Y-%m-%d") def file_ideas(): for file in glob.glob("robot/Robot Inbox/Todoist Ideas on *.txt"): print(f"File {file}") date = os.path.splitext(os.path.basename(file))[0].split()[-1] journal_file = f"journal/Journal {date}.md" if not os.path.exists(journal_file): with open(journal_file, "w", newline="\n") as f: f.write(f"# Journal on {_date(date)}\n\n") f.write("## Metadata\n\n") f.write(f"**Date**:: [[{date}]]\n") f.write(f"**Next**:: [[Journal {_tomorrow(date)}]]\n") f.write(f"**Prev**:: [[Journal {_yesterday(date)}]]\n") f.write("**Kind**:: #journal\n") with open(journal_file, "a", newline="\n") as f: f.write("\n") f.write("## Captured Ideas\n") f.write("\n") with open(file, "r") as idea_file: f.write(idea_file.read()) os.remove(file) if __name__ == "__main__": if DEBUG: print("Debug mode enabled") file_ideas() """ # vim: ft=python ``` """