from pathlib import Path
import re
root=Path(__file__).resolve().parents[1]
compose=(root/"src/com/lemenzo/multisms/ComposeActivity.java").read_text()
compact=re.sub(r'\s+','',compose)
checks={
"one conversation id per campaign":'StringbroadcastKey="broadcast."+gid;' in compact,
"one message id per campaign":'StringbroadcastMessageKey="broadcast_message."+gid;' in compact,
"same group reuses conversation id":'StringbroadcastId=sp.getString(broadcastKey,null);' in compact,
"retry reuses message id":'failedOnly?sp.getString(broadcastMessageKey,null):null' in compact,
"request carries conversation id":'.putExtra("broadcast_id",broadcastId)' in compact,
"request carries message id":'.putExtra("broadcast_message_id",broadcastMessageId)' in compact,
"request id remains unique":'StringrequestId=UUID.randomUUID().toString();' in compact,
"same text sent privately to each recipient":'newSendTarget(member.number,text)' in compact,
"25ms pacing preserved":'mainHandler.postDelayed(' in compose and ',25);' in compact,
}
bad=[k for k,v in checks.items() if not v]
if bad:
 print("MULTI SMS REUSABLE BROADCAST VALIDATION: FAIL")
 for x in bad:print("-",x)
 raise SystemExit(1)
print("MULTI SMS REUSABLE BROADCAST VALIDATION: PASS")
for x in checks:print("-",x)
