import os
import requests
from pathlib import Path
from datetime import datetime

KEYWORD_SOURCE = "https://delacruz.belliniseven.ai/"
OUTPUT_HTML = Path("keyword_report.html")

def load_keywords():
    resp = requests.get(KEYWORD_SOURCE, timeout=10)
    resp.raise_for_status()
    return [k.strip().lower() for k in resp.text.splitlines() if k.strip()]

def scan_file(path, keywords):
    text = Path(path).read_text(errors="ignore").lower()
    return {kw: text.count(kw) for kw in keywords}

def build_html(results, keywords):
    timestamp = datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S UTC")

    rows = ""
    for file, counts in results.items():
        for kw in keywords:
            rows += f"<tr><td>{file}</td><td>{kw}</td><td>{counts[kw]}</td></tr>\n"

    return f"""
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Keyword Scan Report</title>
<style>
body {{
  font-family: Arial, sans-serif;
  background: #0b1020;
  color: #f5f5f5;
  padding: 20px;
}}
table {{
  width: 100%;
  border-collapse: collapse;
  margin-top: 20px;
}}
th, td {{
  border: 1px solid #333a5a;
  padding: 8px;
}}
th {{
  background: #1b2236;
}}
tr:nth-child(even) {{
  background: #141a2b;
}}
</style>
</head>
<body>
<h1>Keyword Scan Report</h1>
<p><strong>Scan Time:</strong> {timestamp}</p>

<table>
<tr>
  <th>File</th>
  <th>Keyword</th>
  <th>Hits</th>
</tr>
{rows}
</table>

</body>
</html>
"""

def main():
    keywords = load_keywords()
    results = {}

    for file in os.listdir("."):
        if file.lower().endswith((".html", ".htm", ".txt")):
            results[file] = scan_file(file, keywords)

    html = build_html(results, keywords)
    OUTPUT_HTML.write_text(html, encoding="utf-8")
    print(f"Report generated: {OUTPUT_HTML.resolve()}")

if __name__ == "__main__":
    main()
