#!/usr/bin/env python3
import urllib.request, json, sys
from datetime import datetime, timezone, timedelta

AUTH = "NDY1NDYwOTg2Njpzb09vSDJJUnk2QmthSXJIU0FmMW5HbHkyUmNvaXc5Wg=="
HEADERS = {"Authorization": AUTH, "Content-Type": "application/json"}
BASE = "https://api.repliz.com"
WIB = timezone(timedelta(hours=7))

DAS_TH = "6a39e461c5ff4ce3a3233e09"

if len(sys.argv) < 2:
    print("Usage: python3 post_ig_das_to_threads.py <ig_post_url>")
    sys.exit(1)

ig_url = sys.argv[1]

now = datetime.now(WIB)
from datetime import timedelta

from repliz_client import HEADERS, BASE
WIB = timezone(timedelta(hours=7))

DAS_TH = "6a39e461c5ff4ce3a3233e09"

if len(sys.argv) < 2:
    print("Usage: python3 post_ig_das_to_threads.py <ig_post_url>")
    sys.exit(1)

ig_url = sys.argv[1]

now = datetime.now(WIB)
from datetime import timedelta

# Schedule besok jam 08:00/11:00/14:00 WIB biar gak tumpuk sama yg lain
t1 = now.replace(hour=8, minute=0, second=0, microsecond=0) + timedelta(days=1)
t2 = t1 + timedelta(hours=3)
t3 = t1 + timedelta(hours=6)

posts = [
    {
        "desc": (
            "Baru lihat postingan IG DAS tentang mobil yang sering dianggap sepele — "
            "tapi efeknya gede banget buat performa mesin.\n\n"
            "Jangan tunggu sampai muncul gejala baru periksa. Banyak kasus, pemilik mobil "
            "baru sadar ada masalah setelah mesin bunyi lain atau tenaga ngelag.\n\n"
            "Dicek dari awal, biaya masih masuk akal. Nunggu parah? Bisa boncos.\n\n"
            "Langkapnya di IG DAS \u2192 " + ig_url
        ),
    },
    {
        "desc": (
            "Yang paling sering ditemui di DAS: pemilik mobil datang pas mesin udah "
            "\"mohon-mohon\". Overheat parah, oli udah kayak aspal, timing belt putus di jalan.\n\n"
            "Biaya perbaikan bisa 3-5x lipat dibanding kalo rutin servis. Mending jadwalin "
            "berkala daripada nambah utang \U0001f605\n\n"
            "Full postingan \u2192 " + ig_url
        ),
    },
    {
        "desc": (
            "Saran mekanik DAS: catat KM terakhir ganti oli di notes atau HP. "
            "Kalo udah 5.000 km, langsung ganti. Jangan nunggu 7.000 apalagi 10.000.\n\n"
            "Oli aus itu kayak minyak goreng bekas — udah gak efektif ngelumasin, "
            "malah bikin gesekan tambah berat.\n\n"
            "Cek IG DAS \u2192 " + ig_url + "\n\n"
            "#DASBengkelIndonesia #TipsMobil #Otomotif"
        ),
    },
]

for i, p in enumerate(posts):
    sched = t1 if i == 0 else (t2 if i == 1 else t3)
    iso = sched.strftime("%Y-%m-%dT%H:%M:%S.000Z")

    payload = {
        "title": "",
        "description": p["desc"],
        "topic": "Otomotif",
        "type": "text",
        "medias": [],
        "meta": {"title": "", "description": "", "url": ig_url},
        "additionalInfo": {
            "isAiGenerated": False,
            "isDraft": False,
            "collaborators": [],
            "mentions": [],
            "music": {"id": "", "artist": "", "name": "", "thumbnail": ""},
            "products": [],
            "tags": [],
        },
        "replies": [],
        "accountId": DAS_TH,
        "scheduleAt": iso,
    }

    body = json.dumps(payload).encode()
    try:
        req = urllib.request.Request(
            f"{BASE}/public/schedule", data=body, headers=HEADERS, method="POST"
        )
        with urllib.request.urlopen(req) as resp:
            result = json.loads(resp.read())
            sid = result.get("scheduleId", "?")
            label = "Post 1" if i == 0 else f"Reply {i}"
            print(f"DONE {label} \u2014 {sched.strftime(\"%d %b %H:%M\")} WIB | ID: {sid}")
    except urllib.error.HTTPError as e:
        err = e.read().decode()[:200]
        print(f"FAIL {i+1}: {e.code} {err}")

