#!/usr/bin/env python3
"""GEO CTA注入器 v4 - 用rendered内容"""
import subprocess, json, os, sqlite3
from datetime import datetime

SITES = [
    ('huaqai.com', 'https://huaqai.com/index.php/wp-json/wp/v2/posts',
     'fangwenhe:RensncMwn1N0cZKBNXPYjZ93'),
    ('adina.xin', 'https://adina.xin/index.php/wp-json/wp/v2/posts',
     'fangwenhe:caJo 7oV7 hZCJ Ln3c iq76 Kbai'),
]

CTA = '<div style="margin-top:30px;padding:20px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;text-align:center;color:#fff;"><p style="font-size:16px;margin:0 0 10px;font-weight:bold;">🏪 艾蒂娜科技旗下服务</p><p style="font-size:14px;margin:0 0 15px;opacity:0.9;"><a href="https://work.weixin.qq.com/kfid/kfc50d99033d4d3e0f7" style="color:#fff;text-decoration:underline;margin:0 8px;">商标注册 ¥199</a> | <a href="https://work.weixin.qq.com/kfid/kfc50d99033d4d3e0f7" style="color:#fff;text-decoration:underline;margin:0 8px;">软著申请 ¥399</a> | <a href="https://work.weixin.qq.com/kfid/kfc50d99033d4d3e0f7" style="color:#fff;text-decoration:underline;margin:0 8px;">资质认证 报价</a></p><p style="font-size:12px;margin:0;opacity:0.7;">点击链接，在线办理 · 专业服务 · 快速出证</p></div>'

DB = os.path.expanduser('~/.hermes/scripts/geo_cta.db')

def curl(args):
    cmd = ['curl', '-s', '--max-time', '10'] + args
    r = subprocess.run(cmd, capture_output=True, text=True, timeout=15)
    return r.stdout

def get_posts(api, auth):
    all_posts = []
    page = 1
    while True:
        out = curl(['-u', auth, f'{api}?per_page=100&page={page}&orderby=id&order=asc&status=publish'])
        posts = json.loads(out)
        if not posts:
            break
        all_posts.extend(posts)
        page += 1
        if page > 5:  # max 500 posts
            break
    return all_posts

def main():
    print(f"GEO CTA注入器 v4 - {datetime.now()}")
    
    conn = sqlite3.connect(DB)
    conn.execute('CREATE TABLE IF NOT EXISTS done (pid INTEGER PRIMARY KEY, site TEXT, ts TEXT)')
    
    for name, api, auth in SITES:
        print(f"\n📡 {name}")
        
        posts = get_posts(api, auth)
        print(f"  总文章: {len(posts)}")
        
        done = set(r[0] for r in conn.execute('SELECT pid FROM done WHERE site=?', (name,)).fetchall())
        new_count = 0
        
        for p in posts:
            pid = p['id']
            if pid in done:
                continue
            
            rendered = p.get('content', {}).get('rendered', '')
            if not rendered:
                continue
            
            if '商标注册' in rendered or 'app.ayalm.com' in rendered:
                conn.execute('INSERT OR IGNORE INTO done VALUES (?,?,?)', (pid, name, datetime.now().isoformat()))
                continue
            
            new_content = rendered + '\n' + CTA
            data = json.dumps({'content': new_content}, ensure_ascii=False)
            result = curl(['-u', auth, '-X', 'POST', '-H', 'Content-Type: application/json', '-d', data, f'{api}/{pid}'])
            resp = json.loads(result)
            
            if resp.get('id') == pid:
                conn.execute('INSERT OR IGNORE INTO done VALUES (?,?,?)', (pid, name, datetime.now().isoformat()))
                new_count += 1
                title = p.get('title', {}).get('rendered', '')
                print(f"  ✅ {pid}: {title[:35]}")
            else:
                msg = resp.get('message', 'unknown')[:50]
                print(f"  ❌ {pid}: {msg}")
        
        print(f"  新增CTA: {new_count}篇")
    
    conn.commit()
    conn.close()
    print(f"\n✅ 完成")

if __name__ == '__main__':
    main()
