#!/usr/bin/env python3 """ # Script ob-rand ## Metadata **Kind**: #obsidian/ob-script **Language**: #python **Parent**:: [[Obsidian Chore Scripts]], [[Executable Markdown File]] ## Synopsis Generate [[,rand|Random Board]] for review. ## Script ```python #""" import os import random import re import datetime # Check if DEBUG environment variable is set debug = os.environ.get("DEBUG") # If DEBUG is not set, redirect output to "shore/boards/,rand.md" if not debug: output_file = open("shore/boards/,rand.md", "a", newline="\n") else: output_file = None def write_output(text): if output_file: output_file.write(text + "\n") else: print(text) # Get current date and time current_date = datetime.datetime.now() formatted_date = current_date.strftime("%Y-%m-%d") write_output(f"## {current_date}") write_output("") write_output(f"**Generated**:: [[{formatted_date}]]") write_output("") write_output("### Permanent") write_output("") # Find files matching the specified patterns permanent_files = [] for root in ["dock", "para"]: for root, dirs, files in os.walk(root): for file in files: if file.endswith(".md") and re.search( r"#zettel/(literature|permanent|index)", open(os.path.join(root, file)).read(), ): permanent_files.append(os.path.join(root, file)) for root in ["output/§ Blog/Posts", "output/§ Blog/Games"]: for root, dirs, files in os.walk(root): for file in files: if file.startswith("♯ "): permanent_files.append(os.path.join(root, file)) # Shuffle and select 11 random files random.shuffle(permanent_files) selected_permanent_files = permanent_files[:11] # Format and write the selected files for file in selected_permanent_files: file_name = os.path.splitext(os.path.basename(file))[0] write_output(f"- [ ] [[{file_name}]]") write_output("") write_output("### Fleeting") write_output("") # Find files matching the specified patterns fleeting_files = [] for root in ["dock", "para", "robot"]: for root, dirs, files in os.walk(root): for file in files: if file.endswith(".md") and re.search( r"#zettel/fleeting", open(os.path.join(root, file)).read() ): fleeting_files.append(os.path.join(root, file)) # Shuffle and select 11 random files random.shuffle(fleeting_files) selected_fleeting_files = fleeting_files[:11] # Format and write the selected files for file in selected_fleeting_files: file_name = os.path.splitext(os.path.basename(file))[0] write_output(f"- [ ] [[{file_name}]]") write_output("") # Close the output file if it was opened if output_file: output_file.close() """ # vim: ft=python ``` """