#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""patch_prompt_threads_fotografi.py — tambahkan LANE FOTOGRAFI untuk @ukyhandoko
ke prompt cron `threads-all-harian` (16e1f3f8170d). Backup dulu, lalu tulis balik.
"""
import json, shutil, datetime, os

CRON = "/home/mantapman/.hermes/profiles/atun/cron/jobs.json"
JOB = "16e1f3f8170d"
BAK = CRON + ".bak-20261004c"

BLOK = """
## LANE FOTOGRAFI @ukyhandoko (perintah Bos 4 Okt 2026)

Bos: "di threads ukyhandoko aku juga sebagai fotografer dan bahas juga tentang fotografi".
@ukyhandoko = founder StudioSoft **dan** fotografer. Lane tetap baru: `Fotografi & Visual`.

- Slot **23:00 WIB**, 1 post/hari, `replies=[]`, 250-480 karakter, TANPA link (konten percakapan).
- Bank 15 entri TERPASANG untuk 5-19 Okt 2026 (`bank_fotografi_uky.py`, pemasang
  `pasang_fotografi_uky.py`, audit `verif_fotografi_uky.py`). Kalau bank habis: tambah entri
  BARU dengan tema berbeda, jangan mengulang tema yang sudah dipakai.
- Isi yang boleh: pengalaman memotret, teknik sederhana (cahaya, komposisi, editing), etika
  memotret orang, foto produk UMKM, alat & lensa, dan pelajaran fotografi yang disambungkan
  ke cara kerja kita dengan klien.
- Label: `topic` = `Fotografi & Visual`, `title` = `uky Fotografi & Visual <YYYY-MM-DD>`.
- ⛔ Jam 23:00 di akun uky = milik lane ini. Kalau sudah terisi, JANGAN menambah post lain di jam itu.
- Post VIDEO Threads masih diuji (id `6ac26913173307838521897a`, 5 Okt 05:00 WIB). Kalau statusnya
  `error`, jangan buat jadwal video Threads lagi untuk akun ini — pakai teks atau gambar.
"""

with open(CRON) as f:
    j = json.load(f)

job = next((x for x in j["jobs"] if x.get("id") == JOB), None)
if job is None:
    raise SystemExit(f"job {JOB} tidak ditemukan")

prompt = job["prompt"]
if "LANE FOTOGRAFI @ukyhandoko" in prompt:
    print("prompt sudah memuat lane fotografi — tidak diubah")
    raise SystemExit(0)

shutil.copy2(CRON, BAK)
lama = len(prompt)

# 1) tambahkan label baru ke daftar label
anchor = "Produktivitas & Kebiasaan · Pengalaman & Pelajaran · Teknologi & Adaptasi · Belajar & Skill."
if anchor in prompt:
    prompt = prompt.replace(
        anchor,
        "Produktivitas & Kebiasaan · Pengalaman & Pelajaran · Teknologi & Adaptasi · Belajar & Skill ·\n  Fotografi & Visual.")
else:
    print("⚠️ anchor daftar label tidak ketemu — teks dibiarkan")

# 2) tambahkan blok lane di ekor prompt
prompt = prompt.rstrip() + "\n" + BLOK
job["prompt"] = prompt

with open(CRON, "w") as f:
    json.dump(j, f, indent=2, ensure_ascii=False)
    f.write("\n")

print(f"backup -> {BAK}")
print(f"prompt {lama} -> {len(prompt)} char")
print(f"label 'Fotografi & Visual' masuk daftar: {'Fotografi & Visual.' in prompt}")
print(f"blok lane masuk: {'LANE FOTOGRAFI @ukyhandoko' in prompt}")
