from pathlib import Path
p=Path('/opt/struktur/asol-runtime/app.py')
s=p.read_text()
imp="from deep_translator import GoogleTranslator, MyMemoryTranslator\n"
add="from buffer_support import ensure_schema as buffer_ensure_schema, buffer_status, handoff as buffer_handoff\n"
if add not in s: s=s.replace(imp,imp+add,1)
s=s.replace("def init():\n    c=db();", "def init():\n    buffer_ensure_schema(DB)\n    c=db();",1)
s=s.replace("elif path=='/api/source-stats': self.json(read_sources())", "elif path=='/api/source-stats': self.json(read_sources())\n        elif path=='/api/buffer/status': self.json(buffer_status())",1)
old="""    def do_POST(self):
        if self.path!='/api/draft/save': self.send_response(404); self.end_headers(); return
        try:
            n=int(self.headers.get('Content-Length','0')); data=json.loads(self.rfile.read(n) or b'{}'); sid=data.get('signal_id',''); p=data.get('platform',''); body=str(data.get('body',''))
            c=db(); c.execute('UPDATE content_items SET body=?,updated_at=? WHERE signal_id=? AND platform=?',(body,datetime.now(timezone.utc).isoformat(),sid,p)); c.commit(); c.close(); self.json({'ok':True})
        except Exception as e: self.json({'ok':False,'error':str(e)})
"""
new="""    def do_POST(self):
        if self.path not in ('/api/draft/save','/api/draft/buffer'): self.send_response(404); self.end_headers(); return
        try:
            n=int(self.headers.get('Content-Length','0')); data=json.loads(self.rfile.read(n) or b'{}'); sid=data.get('signal_id',''); p=data.get('platform',''); body=str(data.get('body',''))
            if self.path=='/api/draft/buffer': self.json(buffer_handoff(DB,sid,p,body)); return
            c=db(); c.execute('UPDATE content_items SET body=?,updated_at=? WHERE signal_id=? AND platform=?',(body,datetime.now(timezone.utc).isoformat(),sid,p)); c.commit(); c.close(); self.json({'ok':True})
        except Exception as e: self.json({'ok':False,'error':str(e)})
"""
if old in s: s=s.replace(old,new,1)
else: raise SystemExit('POST block not found')
p.write_text(s)
print('PATCH_OK')
