#!/usr/bin/env python3
"""Cari jejak PT Sampoerna Jaya Baja di luar situs: direktori B2B, peta, media sosial, dan daftar resmi."""
import html, json, re, time, urllib.parse, urllib.request, urllib.error

UA = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0 Safari/537.36",
      "Accept-Language": "id-ID,id;q=0.9"}
TANYA = [
    'Sampoerna Jaya Baja Bekasi',
    '"Sampoerna Jaya Baja" baja besi',
    'Sampoerna Jaya Baja Narogong',
    'site:sampoernajayabaja.com',
    '"Sampoerna Jaya Baja" PT',
    'Sampoerna Jaya Baja indotrading',
]


def ambil(u, timeout=60):
    try:
        with urllib.request.urlopen(urllib.request.Request(u, headers=UA), timeout=timeout) as x:
            return x.status, x.read().decode("utf-8", "replace")
    except urllib.error.HTTPError as e:
        return e.code, e.read().decode("utf-8", "replace")[:250]
    except Exception as e:
        return 0, str(e)[:110]


def bersih(t):
    return html.unescape(re.sub(r"<[^>]+>", " ", t)).strip()


print("=== Bing (beberapa pertanyaan) ===")
for q in TANYA:
    st, isi = ambil("https://www.bing.com/search?q=" + urllib.parse.quote(q) + "&setlang=id&count=20")
    hasil = re.findall(r'<li class="b_algo".*?</li>', isi, re.S)
    print(f"\n[{q}] status {st} | hasil: {len(hasil)}")
    for mm in hasil[:5]:
        judul = re.search(r"<h2[^>]*>(.*?)</h2>", mm, re.S)
        tautan = re.search(r'href="(http[^"]+)"', mm)
        teks = re.search(r'<p[^>]*>(.*?)</p>', mm, re.S)
        print(f"   - {bersih(judul.group(1))[:95] if judul else '-'}")
        print(f"     {tautan.group(1)[:110] if tautan else '-'}")
        if teks:
            print(f"     {bersih(teks.group(1))[:230]}")
    time.sleep(2)

print("\n\n=== direktori B2B / kerja ===")
for u in ("https://www.indotrading.com/search?q=" + urllib.parse.quote("Sampoerna Jaya Baja"),
          "https://www.tokopedia.com/search?st=product&q=" + urllib.parse.quote("Sampoerna Jaya Baja"),
          "https://id.linkedin.com/company/sampoerna-jaya-baja",
          "https://www.google.com/maps/search/" + urllib.parse.quote("Sampoerna Jaya Baja Bekasi")):
    st, isi = ambil(u, timeout=45)
    jumpa = len(re.findall("sampoerna jaya baja", isi, re.I))
    print(f"   {u.split('/')[2]:<20} status {st} | sebutan: {jumpa} | panjang {len(isi)}")
    if jumpa:
        potong = re.findall(r".{0,120}Sampoerna Jaya Baja.{0,160}", isi, re.I | re.S)[:2]
        for p in potong:
            print("      »", bersih(p)[:260])
    time.sleep(2)

print("\n=== nomor telepon yang tertulis di situs — konteksnya ===")
st, h = ambil("https://sampoernajayabaja.com/")
for no in ("(021) 82604609", "04328345606", "04917595217", "82604609"):
    for mm in re.finditer(re.escape(no), h):
        potong = bersih(h[max(0, mm.start() - 200):mm.end() + 120])
        print(f"   {no}: …{potong[-220:]}")
        break
