#!/usr/bin/env python3
import json
import sys
from datetime import datetime, timezone
from pathlib import Path
PROJECT=Path(__file__).resolve().parents[1];PROMOTION=PROJECT/'story/promotion-report.json';OUT=PROJECT/'output/info.txt';RECEIPT=PROJECT/'log/metadata-verification.json'
TITLE='Cô Chủ Trọ Bị Ép Bán Nhà, Bảy Chìa Khóa Bỗng Trở Về'
DESCRIPTION='''Tô Vãn Ninh vừa mất mẹ đã bị chính người anh cùng mẹ khác cha treo biển bán nhà trọ Mộc Vũ và buộc tội cô che giấu nợ. Khi điện nước bị cắt, người thuê lần lượt rời đi và căn phòng của mẹ bị phá khóa, cô chỉ còn một dấu vết: bảy chiếc chìa khóa đồng từng được trao cho bảy người đã rời khỏi căn nhà trong oán giận.\n\nMuốn giữ lại mái nhà cho những người yếu thế, Vãn Ninh phải tìm từng người, trả lại những món nợ chưa được gọi tên và biến ngày ký bán thành cuộc đối chiếu mà kẻ thao túng không thể rút lui.\n\nĐây là truyện hoàn toàn hư cấu. Mọi nhân vật, địa danh, tổ chức và sự kiện đều không có thật.\n\n#HuyenAnAudio #TruyenAudio #DramaGiaDinh #PhanCong #BayChiaKhoa'''
def main():
 if not PROMOTION.exists():print('Metadata blocked: promotion missing',file=sys.stderr);return 1
 p=json.loads(PROMOTION.read_text());canon=p.get('spoken_sha256')
 if p.get('verified') is not True or not canon:print('Metadata blocked: story not promoted',file=sys.stderr);return 1
 if not 2<=len(TITLE)<=100:raise RuntimeError('YouTube title length invalid')
 OUT.parent.mkdir(parents=True,exist_ok=True);OUT.write_text('TITLE\n'+TITLE+'\n\nDESCRIPTION\n'+DESCRIPTION.strip()+'\n')
 receipt={'version':1,'verified':True,'source_canon_sha256':canon,'title':TITLE,'title_length':len(TITLE),'description_chars':len(DESCRIPTION),'output':str(OUT.relative_to(PROJECT)),'checked_at':datetime.now(timezone.utc).isoformat()};RECEIPT.write_text(json.dumps(receipt,ensure_ascii=False,indent=2)+'\n');print(json.dumps(receipt,ensure_ascii=False));return 0
if __name__=='__main__':sys.exit(main())
