fix: Refactor comment_intent to use _contains_url_with_host for URL host matching.

This commit is contained in:
Adam Moussa 2026-07-23 14:55:59 -04:00
parent da730d459a
commit 561b054db8
No known key found for this signature in database

View file

@ -25,6 +25,7 @@ from __future__ import annotations
import html
import os
import re
from urllib.parse import unquote, urlparse
# Axis 2 — Hold Reason → category.
HOLD_TO_CATEGORY = {
@ -118,6 +119,19 @@ def strip_html(comment: str | None) -> str:
# ---------------------------------------------------------------------------
def _contains_url_with_host(text: str, expected_host: str) -> bool:
"""Return True when ''text'' contains an absolute URL with hostname ''expected_host''."""
for raw_url in re.findall(r"https?://[^\s<>'\"()]+", text, flags=re.IGNORECASE):
candidate = unquote(raw_url).rstrip(".,;:!?)]}\"'")
try:
host = urlparse(candidate).hostname
except ValueError:
continue
if host and host.lower() == expected_host:
return True
return False
def comment_intent(comment: str) -> str | None:
"""Ordered, most-specific-first rule ladder over the *stripped* text.
@ -147,7 +161,7 @@ def comment_intent(comment: str) -> str | None:
# -- SIM Ticket: Amazon SIM tooling references.
if (
re.search(r"\bsim\b.*\b(ticket|tt|v\d{6,})\b", low)
or "t.corp.amazon.com" in low
or _contains_url_with_host(t, "t.corp.amazon.com")
or re.search(r"\bsim\s*tt\b", low)
):
return "SIM Ticket"