#!/usr/bin/env python3 # /// script # requires-python = ">=3.11" # dependencies = ["pymongo"] # /// """Log entries to the notes.brag_sheet MongoDB collection. Usage: brag_sheet.py add "" "" [--tags tag1,tag2] brag_sheet.py update [--note "..."] [--context "..."] [--tags tag1,tag2] """ import sys from datetime import datetime from bson import ObjectId from pymongo import MongoClient MONGO_URI = "mongodb://root:3wwfoUjyk2E2zWELXFlLuHqfw1ALlOp4pb2H5Vq3TImbMIHL2h1u8Jej2mjzCPl@docdb.connorrhodes.com:35563" def parse_tags(args, i): raw = args[i + 1] return [t.strip() for t in raw.split(",") if t.strip()], i + 2 def handle_add(args): if len(args) < 2: print("Usage: brag_sheet.py add \"\" \"\" [--tags tag1,tag2]") sys.exit(1) note = args[0] context = args[1] tags = ["work"] i = 2 while i < len(args): if args[i] == "--tags" and i + 1 < len(args): tags, i = parse_tags(args, i) else: print(f"Error: unknown argument '{args[i]}'") sys.exit(1) client = MongoClient(MONGO_URI) result = client["notes"]["brag_sheet"].insert_one({ "date": datetime.now(), "note": note, "context": context, "tags": tags, }) print(f"Inserted: {result.inserted_id}") client.close() def handle_update(args): if not args: print("Usage: brag_sheet.py update [--note ...] [--context ...] [--tags tag1,tag2]") sys.exit(1) doc_id = args.pop(0) updates = {} i = 0 while i < len(args): if args[i] == "--note" and i + 1 < len(args): updates["note"] = args[i + 1]; i += 2 elif args[i] == "--context" and i + 1 < len(args): updates["context"] = args[i + 1]; i += 2 elif args[i] == "--tags" and i + 1 < len(args): updates["tags"], i = parse_tags(args, i) else: print(f"Error: unknown argument '{args[i]}'") sys.exit(1) if not updates: print("Error: no fields to update") sys.exit(1) client = MongoClient(MONGO_URI) result = client["notes"]["brag_sheet"].update_one( {"_id": ObjectId(doc_id)}, {"$set": updates} ) if result.matched_count: print(f"Updated {doc_id}: {list(updates.keys())}") else: print(f"Error: document {doc_id} not found") client.close() def main(): args = sys.argv[1:] if not args: print(__doc__) sys.exit(1) cmd = args.pop(0) if cmd == "add": handle_add(args) elif cmd == "update": handle_update(args) else: print(f"Error: unknown command '{cmd}'. Use 'add' or 'update'.") sys.exit(1) if __name__ == "__main__": main()