86 lines
2.5 KiB
Python
86 lines
2.5 KiB
Python
import os
|
|
import json
|
|
import requests
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
SESSION_FILE = ".dev_session/SESSION_INFO"
|
|
|
|
def debug_notion():
|
|
if not os.path.exists(SESSION_FILE):
|
|
print("No session file found.")
|
|
return
|
|
|
|
with open(SESSION_FILE, "r") as f:
|
|
data = json.load(f)
|
|
|
|
task_id = data.get("task_id")
|
|
token = data.get("token")
|
|
|
|
print(f"Debug Info:")
|
|
print(f"Task ID: {task_id}")
|
|
print(f"Token (first 4 chars): {token[:4]}...")
|
|
|
|
url = f"https://api.notion.com/v1/pages/{task_id}"
|
|
headers = {
|
|
"Authorization": f"Bearer {token}",
|
|
"Notion-Version": "2022-06-28",
|
|
"Content-Type": "application/json"
|
|
}
|
|
|
|
# 1. Fetch Page
|
|
print("\n--- Fetching Page Properties ---")
|
|
resp = requests.get(url, headers=headers)
|
|
if resp.status_code != 200:
|
|
print(f"Error fetching page: {resp.status_code}")
|
|
print(resp.text)
|
|
return
|
|
|
|
page_data = resp.json()
|
|
properties = page_data.get("properties", {})
|
|
|
|
print(f"Found {len(properties)} properties:")
|
|
target_prop_name = "Total Duration (h)"
|
|
found_target = False
|
|
|
|
for name, prop in properties.items():
|
|
type_ = prop.get("type")
|
|
val = prop.get(type_)
|
|
print(f"- '{name}' ({type_}): {val}")
|
|
if name == target_prop_name:
|
|
found_target = True
|
|
|
|
if not found_target:
|
|
print(f"\nCRITICAL: Property '{target_prop_name}' NOT found on this task!")
|
|
# Check for similar names
|
|
for name in properties.keys():
|
|
if "duration" in name.lower() or "zeit" in name.lower() or "hours" in name.lower():
|
|
print(f" -> Did you mean: '{name}'?")
|
|
return
|
|
|
|
# 2. Try Update
|
|
print(f"\n--- Attempting Update of '{target_prop_name}' ---")
|
|
current_val = properties[target_prop_name].get("number") or 0.0
|
|
print(f"Current Value: {current_val}")
|
|
|
|
new_val = current_val + 0.01
|
|
print(f"Updating to: {new_val}")
|
|
|
|
update_payload = {
|
|
"properties": {
|
|
target_prop_name: {"number": new_val}
|
|
}
|
|
}
|
|
|
|
patch_resp = requests.patch(url, headers=headers, json=update_payload)
|
|
if patch_resp.status_code == 200:
|
|
print("✅ Update Successful!")
|
|
print(f"New Value on Server: {patch_resp.json()['properties'][target_prop_name].get('number')}")
|
|
else:
|
|
print(f"❌ Update Failed: {patch_resp.status_code}")
|
|
print(patch_resp.text)
|
|
|
|
if __name__ == "__main__":
|
|
debug_notion()
|