#!/usr/bin/env python3
"""Post FB DAS Bengkel Indonesia — 17 July 2026, 17:00 WIB"""
import urllib.request, json, base64, os, sys

AUTH = 'NDY1NDYwOTg2Njpzb09vSDJJUnk2QmthSXJIU0FmMW5HbHkyUmNvaXc5Wg=='
HEADERS = {'Authorization': AUTH, 'Content-Type': 'application/json'}
BASE = 'https://api.repliz.com'
FB_DAS_ID = '6a3b41e1c5ff4ce3a327543e'

LOG_FILE = os.path.join(os.path.dirname(__file__), 'post_das_fb_history.json')

ARTICLE_URL = 'https://dasindonesia.com/tips-memilih-ban-mobil-untuk-jalan-indonesia/'

CAPTION = """Ban mobil adalah satu-satunya komponen yang menghubungkan kendaraan Anda dengan aspal. Pilih ban yang salah, handling jadi tidak stabil, irit BBM hilang, dan risiko kecelakaan meningkat drastis. Apalagi di jalan Indonesia yang kadang mulus, kadang bolong.

Beberapa hal penting sebelum ganti ban:

1️⃣ Patuhi ukuran ban rekomendasi pabrikan — jangan asal ganti velg besar tanpa konsultasi
2️⃣ Kenali tread pattern: symmetrical untuk harian, asymmetrical/directional untuk grip basah
3️⃣ Cek kode DOT — jangan beli ban yang sudah 3 tahun sejak produksi
4️⃣ Perhatikan load index dan speed rating — jangan diturunkan dari standar pabrik
5️⃣ Rotasi ban setiap 10.000 km dan jaga tekanan angin ideal

Di DAS Indonesia, kami tidak hanya jual ban — kami pasang, balancing, spooring, dan kasih rekomendasi yang tepat sesuai mobil Anda. Servis di ahlinya, biar ban awet dan dompet tetap aman.

Baca panduan lengkapnya di sini 👇
{article_url}

#DASIndonesia #TipsBanMobil #BalancingSpooring #BengkelSurabaya #PerawatanMobil #EngineOverhaul #BanMobil"""

CAPTION = CAPTION.format(article_url=ARTICLE_URL)

# Load history
def load_history():
    if os.path.exists(LOG_FILE):
        with open(LOG_FILE) as f:
            return json.load(f)
    return {'posts': []}

def save_history(h):
    with open(LOG_FILE, 'w') as f:
        json.dump(h, f, indent=2)

history = load_history()

# Check duplikasi
for p in history['posts']:
    if p.get('article_url') == ARTICLE_URL:
        print(f'❌ DUPLICATE: {ARTICLE_URL} already posted!')
        sys.exit(1)

# Baca kedua gambar dan gabung dalam 1 post
img_paths = [
    '/home/mantapman/.hermes/profiles/atun/workspace/das_fb_jul17_1.png',
    '/home/mantapman/.hermes/profiles/atun/workspace/das_fb_jul17_2.png',
]

medias = []
for p in img_paths:
    img_url = upload_image_to_server(p)
    # FIX 21/08: no base64 — image via server OpenClaw
    medias.append({'url': img_url, 'type': 'image'})

# Jadwal 17:00 WIB
from datetime import datetime, timezone, timedelta

from repliz_client import upload_image_to_server, AUTH, HEADERS, BASE
FB_DAS_ID = '6a3b41e1c5ff4ce3a327543e'

LOG_FILE = os.path.join(os.path.dirname(__file__), 'post_das_fb_history.json')

ARTICLE_URL = 'https://dasindonesia.com/tips-memilih-ban-mobil-untuk-jalan-indonesia/'

CAPTION = """Ban mobil adalah satu-satunya komponen yang menghubungkan kendaraan Anda dengan aspal. Pilih ban yang salah, handling jadi tidak stabil, irit BBM hilang, dan risiko kecelakaan meningkat drastis. Apalagi di jalan Indonesia yang kadang mulus, kadang bolong.

Beberapa hal penting sebelum ganti ban:

1️⃣ Patuhi ukuran ban rekomendasi pabrikan — jangan asal ganti velg besar tanpa konsultasi
2️⃣ Kenali tread pattern: symmetrical untuk harian, asymmetrical/directional untuk grip basah
3️⃣ Cek kode DOT — jangan beli ban yang sudah 3 tahun sejak produksi
4️⃣ Perhatikan load index dan speed rating — jangan diturunkan dari standar pabrik
5️⃣ Rotasi ban setiap 10.000 km dan jaga tekanan angin ideal

Di DAS Indonesia, kami tidak hanya jual ban — kami pasang, balancing, spooring, dan kasih rekomendasi yang tepat sesuai mobil Anda. Servis di ahlinya, biar ban awet dan dompet tetap aman.

Baca panduan lengkapnya di sini 👇
{article_url}

#DASIndonesia #TipsBanMobil #BalancingSpooring #BengkelSurabaya #PerawatanMobil #EngineOverhaul #BanMobil"""

CAPTION = CAPTION.format(article_url=ARTICLE_URL)

# Load history
def load_history():
    if os.path.exists(LOG_FILE):
        with open(LOG_FILE) as f:
            return json.load(f)
    return {'posts': []}

def save_history(h):
    with open(LOG_FILE, 'w') as f:
        json.dump(h, f, indent=2)

history = load_history()

# Check duplikasi
for p in history['posts']:
    if p.get('article_url') == ARTICLE_URL:
        print(f'❌ DUPLICATE: {ARTICLE_URL} already posted!')
        sys.exit(1)

# Baca kedua gambar dan gabung dalam 1 post
img_paths = [
    '/home/mantapman/.hermes/profiles/atun/workspace/das_fb_jul17_1.png',
    '/home/mantapman/.hermes/profiles/atun/workspace/das_fb_jul17_2.png',
]

medias = []
for p in img_paths:
    img_url = upload_image_to_server(p)
    # FIX 21/08: no base64 — image via server OpenClaw
    medias.append({'url': img_url, 'type': 'image'})

# Jadwal 17:00 WIB
from datetime import datetime, timezone, timedelta
WIB = timezone(timedelta(hours=7))
now = datetime.now(WIB)
schedule_at = now.replace(hour=17, minute=0, second=0, microsecond=0)
schedule_iso = schedule_at.strftime('%Y-%m-%dT%H:%M:%S.000Z')

payload = {
    'title': '',
    'description': CAPTION,
    'topic': 'Otomotif',
    'type': 'image',
    'medias': medias,
    'meta': {'title': '', 'description': '', 'url': ''},
    'additionalInfo': {
        'isAiGenerated': False, 'isDraft': False,
        'collaborators': [], 'mentions': [],
        'music': {'id': '', 'artist': '', 'name': '', 'thumbnail': ''},
        'products': [], 'tags': []
    },
    'replies': [],
    'accountId': FB_DAS_ID,
    'scheduleAt': schedule_iso,
}

body = json.dumps(payload).encode()
req = urllib.request.Request(f'{BASE}/public/schedule', data=body, headers=HEADERS, method='POST')

try:
    with urllib.request.urlopen(req) as r:
        result = json.loads(r.read())
        sid = result.get('scheduleId', '?')
        
        # Catat history
        short_desc = "Tips memilih ban mobil untuk kondisi jalan Indonesia — panduan lengkap ukuran, tread pattern, DOT, dan tekanan angin."
        history['posts'].append({
            'date': schedule_at.strftime('%Y-%m-%d'),
            'time': '17:00',
            'article_url': ARTICLE_URL,
            'short_desc': short_desc,
            'schedule_id': sid,
        })
        save_history(history)
        
        print(f'✅ FB DAS — {schedule_at.strftime("%d %b %Y %H:%M")} WIB')
        print(f'   Schedule ID: {sid}')
        print(f'   Artikel: {ARTICLE_URL}')
except urllib.error.HTTPError as e:
    err = e.read().decode()
    print(f'❌ ERROR {e.code}: {err[:500]}')

