import os
import sys
import json
from datetime import datetime

from slack_sdk.web.client import WebClient

CHANNEL = "#alerts-universe"
SLACK_TOKEN = os.environ.get("SLACK_BOT_TOKEN", "ENV VAR not available!")
DATETIME_FORMAT = "%Y-%m-%dT%H:%M:%SZ"

client = WebClient(SLACK_TOKEN)
github_context = json.loads(sys.argv[1])

event = github_context['event']
pr_title = event['pull_request']["title"]
pr_link = event['pull_request']["patch_url"].replace(".patch", "")
pr_author_url = event['sender']["html_url"]
pr_author_name = pr_author_url.rsplit('/')[-1]
pr_created_at_dt = datetime.strptime(
    event['pull_request']["created_at"],
    DATETIME_FORMAT
)
pr_created_at = pr_created_at_dt.strftime("%c")
pr_updated_at_dt = datetime.strptime(
    event['pull_request']["updated_at"],
    DATETIME_FORMAT
)
pr_updated_at = pr_updated_at_dt.strftime("%c")

blocks = [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "📣 New spaCy Universe Project Alert ✨"
      }
    },
    {
      "type": "section",
      "fields": [
        {
          "type": "mrkdwn",
          "text": f"*Pull Request:*\n<{pr_link}|{pr_title}>"
        },
        {
          "type": "mrkdwn",
          "text": f"*Author:*\n<{pr_author_url}|{pr_author_name}>"
        },
        {
          "type": "mrkdwn",
          "text": f"*Created at:*\n {pr_created_at}"
        },
        {
          "type": "mrkdwn",
          "text": f"*Last Updated:*\n {pr_updated_at}"
        }
      ]
    }
  ]


client.chat_postMessage(
    channel=CHANNEL,
    text="spaCy universe project PR alert",
    blocks=blocks
)