#!/usr/bin/env python3
import json
import sys
from pathlib import Path

PROJECT = Path(__file__).resolve().parents[1]
PROMOTION = PROJECT / "story/promotion-report.json"
BRIEF = PROJECT / "script/story-brief.json"
OUT = PROJECT / "output/info.txt"
PUBLISHING_TITLE = "Hợp Đồng Hôn Nhân Hết Hạn, Tôi Để Lại Vé Tàu Một Chiều"
DESCRIPTION = """Ngày hợp đồng hôn nhân một năm hết hạn cũng là ngày quyền vận hành nhà ga Thanh Khê được đem ra bỏ phiếu. Tạ Vân Chi để lại tấm vé tàu một chiều, rời khỏi căn nhà chung và quyết giành dự án bằng năng lực của chính mình.

Ba mươi ngày trước cuộc bỏ phiếu, cô phải bảo vệ mô hình chợ nghề thủ công trước phương án thương mại của Hứa Tư Mạn, đồng thời đối diện sự thật rằng Phó Cảnh Du từng chấp nhận cuộc hôn nhân như một điều kiện nghề nghiệp. Khi mọi nghĩa vụ biến mất, điều còn lại không phải lời hứa giữ người, mà là quyền được tự chọn đi hay ở.

Một câu chuyện cưới trước yêu sau về ranh giới, trách nhiệm và tình yêu chỉ có ý nghĩa khi quyền rời đi là thật.

#HuyenAnAudio #TruyenAudio #NgonTinh #CuoiTruocYeuSau"""


def main():
    if not PROMOTION.is_file() or not BRIEF.is_file():
        raise RuntimeError("promotion/brief missing")
    promotion = json.loads(PROMOTION.read_text(encoding="utf-8"))
    brief = json.loads(BRIEF.read_text(encoding="utf-8"))
    if promotion.get("verified") is not True or promotion.get("project_id") != "014" or promotion.get("canonical_title") != brief.get("canonical_title"):
        raise RuntimeError("promotion authority mismatch")
    if not 2 <= len(PUBLISHING_TITLE) <= 100:
        raise RuntimeError("publishing title length invalid")
    OUT.parent.mkdir(parents=True, exist_ok=True)
    OUT.write_text(PUBLISHING_TITLE + "\n\n" + DESCRIPTION.strip() + "\n", encoding="utf-8")
    print(json.dumps({"verified": True, "publishing_title": PUBLISHING_TITLE, "title_length": len(PUBLISHING_TITLE), "source_canon_sha256": promotion["spoken_sha256"], "output": str(OUT)}, ensure_ascii=False))
    return 0


if __name__ == "__main__":
    try:
        sys.exit(main())
    except Exception as exc:
        print("Metadata blocked: " + str(exc), file=sys.stderr)
        sys.exit(1)
