feat: Documentation and Tool Config Update
This commit is contained in:
69
scripts/check_notion_tasks.py
Normal file
69
scripts/check_notion_tasks.py
Normal file
@@ -0,0 +1,69 @@
|
||||
import os
|
||||
import requests
|
||||
import json
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv(dotenv_path="/home/node/clawd/.env")
|
||||
|
||||
NOTION_TOKEN = os.getenv("NOTION_API_KEY")
|
||||
HEADERS = {
|
||||
"Authorization": f"Bearer {NOTION_TOKEN}",
|
||||
"Content-Type": "application/json",
|
||||
"Notion-Version": "2022-06-28"
|
||||
}
|
||||
|
||||
PROJECT_ID = "2ea88f42-8544-8074-9ad8-c24d283bc1c9"
|
||||
|
||||
def find_tasks_db():
|
||||
url = "https://api.notion.com/v1/search"
|
||||
payload = {"query": "Tasks", "filter": {"value": "database", "property": "object"}}
|
||||
resp = requests.post(url, headers=HEADERS, json=payload)
|
||||
if resp.status_code == 200:
|
||||
results = resp.json().get("results", [])
|
||||
if results:
|
||||
return results[0]['id']
|
||||
return None
|
||||
|
||||
def get_project_tasks(db_id):
|
||||
url = f"https://api.notion.com/v1/databases/{db_id}/query"
|
||||
# We look for tasks linked to the project ID via a relation property (usually "Project")
|
||||
payload = {
|
||||
"filter": {
|
||||
"property": "Project",
|
||||
"relation": {
|
||||
"contains": PROJECT_ID
|
||||
}
|
||||
}
|
||||
}
|
||||
resp = requests.post(url, headers=HEADERS, json=payload)
|
||||
if resp.status_code != 200:
|
||||
print(f"Error querying tasks: {resp.text}")
|
||||
return []
|
||||
|
||||
return resp.json().get("results", [])
|
||||
|
||||
def print_tasks():
|
||||
db_id = find_tasks_db()
|
||||
if not db_id:
|
||||
print("❌ Tasks DB not found.")
|
||||
return
|
||||
|
||||
print(f"--- Tasks for Project {PROJECT_ID} ---")
|
||||
tasks = get_project_tasks(db_id)
|
||||
|
||||
for task in tasks:
|
||||
props = task['properties']
|
||||
name = "Unknown"
|
||||
if "Name" in props and props["Name"]["title"]:
|
||||
name = props["Name"]["title"][0]["plain_text"]
|
||||
elif "Task" in props and props["Task"]["title"]:
|
||||
name = props["Task"]["title"][0]["plain_text"]
|
||||
|
||||
status = "Unknown"
|
||||
if "Status" in props and props["Status"]["status"]:
|
||||
status = props["Status"]["status"]["name"]
|
||||
|
||||
print(f"- [{status}] {name} ({task['id']})")
|
||||
|
||||
if __name__ == "__main__":
|
||||
print_tasks()
|
||||
Reference in New Issue
Block a user