#!/usr/bin/env python3
"""Post 1 konten LinkedIn DMark Creative hari ini jam 11:00 WIB."""
import json, os, sys, urllib.request
from datetime import datetime, timezone, timedelta

sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from repliz_client import HEADERS, BASE, ACC

WIB = timezone(timedelta(hours=7))
LOG_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'dmark_linkedin_history.json')

DMark_LI = ACC.DMARK_LINKEDIN  # 6a350ecbc5ff4ce3a32299ce

# Artikel yang akan diposting (BELUM dipakai dari history)
ARTICLE = {
    'url': 'https://www.dmark.id/klien-studiosoft-brand-ternama-digital-marketing-surabaya/',
    'title': 'Klien StudioSoft: Brand Ternama yang Percaya pada Digital Marketing Surabaya'
}

CAPTION = """Memilih mitra digital marketing bukan sekadar soal budget, tapi soal kepercayaan. Brand-brand ternama di Surabaya tidak asal memilih — mereka mencari agensi yang paham bahwa setiap bisnis punya cerita dan karakter yang berbeda.

StudioSoft membangun reputasi justru dari pendekatan yang personal dan berbasis data. Tidak ada template generik, tidak ada strategi copy-paste. Setiap klien diperlakukan unik: dari riset awal, perencanaan, eksekusi, sampai evaluasi. Hasilnya? Brand-brand yang kini dipercaya publik ternyata memulai perjalanan digital mereka dari sini.

Buat Anda yang sedang mencari partner digital marketing yang benar-benar memahami kebutuhan bisnis, artikel ini membedah bagaimana StudioSoft membangun kepercayaan bersama brand ternama di Surabaya. Bisa jadi ini jawaban untuk pertanyaan besar Anda: siapa yang layak memegang pertumbuhan bisnis Anda ke depan?

Baca selengkapnya di sini 👇
https://www.dmark.id/klien-studiosoft-brand-ternama-digital-marketing-surabaya/"""

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)

def schedule_post():
    # Schedule hari ini jam 11:00 WIB = 04:00 UTC
    now = datetime.now(WIB)
    sched = now.replace(hour=11, minute=0, second=0, microsecond=0)
    # Kalo jam 11:00 udah lewat, schedule besok
    if now > sched:
        sched += timedelta(days=1)
    iso = sched.strftime('%Y-%m-%dT%H:%M:%S.000Z')

    payload = {
        'title': '',
        'description': CAPTION,
        'topic': 'Digital Marketing',
        'type': 'text',
        'medias': [],
        'meta': {
            'title': ARTICLE['title'],
            'description': f'Baca artikel selengkapnya di DMark Creative — {ARTICLE["title"]}',
            'url': ARTICLE['url']
        },
        'additionalInfo': {
            'isAiGenerated': False,
            'isDraft': False,
            'collaborators': [],
            'mentions': [],
            'music': {'id': '', 'artist': '', 'name': '', 'thumbnail': ''},
            'products': [],
            'tags': []
        },
        'replies': [],
        'accountId': DMark_LI,
        'scheduleAt': iso,
    }

    body = json.dumps(payload).encode()
    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', '?')

        # Catat history
        h = load_history()
        h['posts'].append({
            'date': sched.strftime('%Y-%m-%d'),
            'time': '11:00',
            'article_url': ARTICLE['url'],
            'article_title': ARTICLE['title'],
            'schedule_id': sid,
        })
        save_history(h)

        print(f'✅ DMark LinkedIn — {sched.strftime("%d %b %Y %H:%M")} WIB')
        print(f'   ID: {sid}')
        print(f'   Artikel: {ARTICLE["title"]}')
        return sid

if __name__ == '__main__':
    sid = schedule_post()
    print(f'   Schedule ID: {sid}')
