import json
from pathlib import Path

db_path = Path('Archivos/character_hashtags_db.json')
db = json.loads(db_path.read_text(encoding='utf-8'))

pixiv_json_path = Path('Archivos/pixiv_tags.json')
pixiv_data = json.loads(pixiv_json_path.read_text(encoding='utf-8')) if pixiv_json_path.exists() else {}

updated_count = 0
for k, v in db.items():
    if k == '_general_pool': continue
    matched_entry = None
    for pk, pv in pixiv_data.items():
        if k.lower() in pk.lower() or pk.lower() in k.lower():
            matched_entry = pv
            break
    if matched_entry:
        jp = matched_entry.get('jp')
        en = matched_entry.get('en')
        series = matched_entry.get('series')
        ptags = []
        if jp: ptags.append(f'#{jp}')
        if en: ptags.append(f'#{en.replace(" ", "")}')
        if series: ptags.append(f'#{series.replace(" ", "")}')
        for t in matched_entry.get('r18_pool', [])[:3]:
            ptags.append(f'#{t[0]}')
        if ptags:
            v['pixiv_tags'] = list(set(ptags))
            updated_count += 1

db_path.write_text(json.dumps(db, ensure_ascii=False, indent=2), encoding='utf-8')
print(f'Sincronizados {updated_count} personajes con tags reales y medidos.')
