Mr-Help commited on
Commit
043fe85
·
verified ·
1 Parent(s): 994bc0a

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +43 -24
main.py CHANGED
@@ -15,6 +15,10 @@ app = FastAPI()
15
  NOTION_SECRET = os.getenv("NOTION_SECRET", "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")
16
  NOTION_VERSION = "2025-09-03"
17
  NOTION_DRIVE_PROP_ID = os.getenv("NOTION_DRIVE_PROP_ID", "EFoh") # ID بتاع حقل Google Drive Link
 
 
 
 
18
 
19
  # ===== Google Drive Config =====
20
  GOOGLE_CREDENTIALS = os.getenv("GOOGLE_CREDENTIALS") # JSON string للـ service account
@@ -518,35 +522,50 @@ async def webhook(request: Request):
518
  event_type = body.get("type")
519
  page_id = body.get("entity", {}).get("id")
520
  timestamp = body.get("timestamp")
 
 
 
 
 
 
521
 
522
  print("\n===== NEW WEBHOOK EVENT =====")
523
  print("Raw body:", body)
524
 
525
  if event_type == "page.created":
526
- title = await get_page_title(page_id)
527
-
528
- print(f"Event Type : {event_type}")
529
- print(f"Page Title : {title}")
530
- print(f"Page ID : {page_id}")
531
- print(f"Timestamp : {timestamp}")
532
-
533
- # تشيك الأول: هل الصفحة دي Archived (زي لما تدوس Escape على placeholder)؟
534
- archived = await is_block_archived(page_id)
535
- if archived:
536
- print(f"[TEMPLATE] Page {page_id} is archived right after creation. Skipping template & drive.")
537
- else:
538
- # 1) نطبّق التمبلت
539
- try:
540
- await apply_template_to_page(page_id)
541
- except Exception as e:
542
- print("[ERROR] While applying template:", e)
543
-
544
- # 2) ننشئ فولدر على الدرايف باسم الصفحة ونحط اللينك في النوشن
545
- try:
546
- drive_link = ensure_drive_folder_for_page(title or page_id)
547
- await update_page_drive_link(page_id, drive_link)
548
- except Exception as e:
549
- print("[ERROR] While creating drive folder or updating Notion URL:", e)
 
 
 
 
 
 
 
 
 
550
 
551
  elif event_type == "page.deleted":
552
  print(f"Page deleted. ID: {page_id}, Timestamp: {timestamp}")
 
15
  NOTION_SECRET = os.getenv("NOTION_SECRET", "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")
16
  NOTION_VERSION = "2025-09-03"
17
  NOTION_DRIVE_PROP_ID = os.getenv("NOTION_DRIVE_PROP_ID", "EFoh") # ID بتاع حقل Google Drive Link
18
+ NOTION_TARGET_DATABASE_ID = os.getenv(
19
+ "NOTION_TARGET_DATABASE_ID",
20
+ "8ad05d66-3b83-4102-ac37-1e3e35dd10a7" # الداتابيز اللي عايزين نشتغل عليها بس
21
+ )
22
 
23
  # ===== Google Drive Config =====
24
  GOOGLE_CREDENTIALS = os.getenv("GOOGLE_CREDENTIALS") # JSON string للـ service account
 
522
  event_type = body.get("type")
523
  page_id = body.get("entity", {}).get("id")
524
  timestamp = body.get("timestamp")
525
+ parent = body.get("data", {}).get("parent", {})
526
+ parent_db_id = None
527
+ if parent.get("type") == "database":
528
+ parent_db_id = parent.get("id")
529
+
530
+ print(f"[DEBUG] Parent database id: {parent_db_id}")
531
 
532
  print("\n===== NEW WEBHOOK EVENT =====")
533
  print("Raw body:", body)
534
 
535
  if event_type == "page.created":
536
+ # لو الحدث مش جاي من الداتابيز اللي احنا مستهدفينها -> تجاهل
537
+ if parent_db_id != NOTION_TARGET_DATABASE_ID:
538
+ print(
539
+ f"[SKIP] Page {page_id} is in database {parent_db_id}, "
540
+ f"not target {NOTION_TARGET_DATABASE_ID}. Skipping template & drive."
541
+ )
542
+ print("================================\n")
543
+ return {"status": "ignored"}
544
+
545
+ title = await get_page_title(page_id)
546
+
547
+ print(f"Event Type : {event_type}")
548
+ print(f"Page Title : {title}")
549
+ print(f"Page ID : {page_id}")
550
+ print(f"Timestamp : {timestamp}")
551
+
552
+ # تشيك الأول: هل الصفحة دي Archived (زي لما تدوس Escape على placeholder)؟
553
+ archived = await is_block_archived(page_id)
554
+ if archived:
555
+ print(f"[TEMPLATE] Page {page_id} is archived right after creation. Skipping template & drive.")
556
+ else:
557
+ # 1) نطبّق التمبلت
558
+ try:
559
+ await apply_template_to_page(page_id)
560
+ except Exception as e:
561
+ print("[ERROR] While applying template:", e)
562
+
563
+ # 2) ننشئ فولدر على الدرايف باسم الصفحة ونحط اللينك في النوشن
564
+ try:
565
+ drive_link = ensure_drive_folder_for_page(title or page_id)
566
+ await update_page_drive_link(page_id, drive_link)
567
+ except Exception as e:
568
+ print("[ERROR] While creating drive folder or updating Notion URL:", e)
569
 
570
  elif event_type == "page.deleted":
571
  print(f"Page deleted. ID: {page_id}, Timestamp: {timestamp}")