#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# fix_qname.py — 把过滤里的 q 改成正确的形参 query
import ast, os, shutil
D = '/root/gov_crawler/'
p = D + 'search_app.py'
src = open(p, encoding='utf-8').read()
OLD = '    _fi, _fe = parse_google_query(q or "")'
NEW = ('    _qc = query if isinstance(query, str) else ""\n'
       '    _fi, _fe = parse_google_query(_qc or "")')
n = src.count(OLD)
print('待修正处数:', n)
if n == 0:
    print('未找到目标行，打印所有 _fi, _fe 行：')
    for i, l in enumerate(src.split('\n'), 1):
        if '_fi, _fe' in l:
            print('  L%d: %r' % (i, l))
    raise SystemExit(0)
src2 = src.replace(OLD, NEW)
try:
    ast.parse(src2)
except SyntaxError as e:
    print('语法错，未落盘:', e)
    raise SystemExit(1)
b = D + 'Archive/search_app.py.bak_20261008_qfix'
if not os.path.exists(b):
    shutil.copy2(p, b)
open(p, 'w', encoding='utf-8').write(src2)
print('OK 已修正 %d 处（备份 search_app.py.bak_20261008_qfix）' % n)
for i, l in enumerate(src2.split('\n'), 1):
    if '_qc = query if isinstance' in l:
        print('  L%d: %s' % (i, l.strip()[:100]))
