#!/usr/bin/env python3 """Manage prodev expense entries in wip.agent_tasks on DocDB. Usage: prodev_tasks.py create "" prodev_tasks.py update "" prodev_tasks.py list """ import sys from pymongo import MongoClient URI = "mongodb://root:3wwfoUjyk2E2zWELXFlLuHqfw1ALlOp4pb2H5Vq3TImbMIHL2h1u8Jej2mjzCPl@docdb.connorrhodes.com:35563?tls=true&tlsAllowInvalidCertificates=true" DB = "wip" COLL = "agent_tasks" def get_collection(): client = MongoClient(URI, serverSelectionTimeoutMS=10000) return client[DB][COLL], client def create(note): coll, client = get_collection() result = coll.insert_one({"note": note, "type": "prodev expense", "status": "todo"}) print(result.inserted_id) client.close() def update(doc_id, note): coll, client = get_collection() result = coll.update_one({"_id": doc_id}, {"$set": {"note": note}}) print(f"matched={result.matched_count} modified={result.modified_count}") client.close() def list_all(): from bson import ObjectId coll, client = get_collection() for doc in coll.find({"type": "prodev expense"}): print(f"{doc['_id']} | {doc['status']} | {doc['note'][:80]}...") client.close() if __name__ == "__main__": if len(sys.argv) < 2: print(__doc__) sys.exit(1) cmd = sys.argv[1] if cmd == "create" and len(sys.argv) >= 3: create(sys.argv[2]) elif cmd == "update" and len(sys.argv) >= 4: from bson import ObjectId update(ObjectId(sys.argv[2]), sys.argv[3]) elif cmd == "list": list_all() else: print(__doc__) sys.exit(1)