import json,re
d=json.load(open('/data/www/files/ggzy_raw.json'))
recs=d["records"]
cand=[v for v in recs.values() if v["cat"] in ("002002001","002002003")]
cand.sort(key=lambda x:(x["cat"],x["date"]),reverse=True)

SUF=["中标（成交）结果公告","中标(成交)结果公告","招标公告","竞争性磋商公告","竞争性谈判公告","询价公告",
     "采购公告","结果公告","成交公告","公开招标公告","单一来源公告","更正公告","磋商公告","结果公示"]

def buyer_of(title,content):
    c=re.sub(r'\s+',' ',content)
    pn=None
    for pat in [r'二、项目名称[：:]\s*([^\s]+?)(?:\s|三、|$)',
                r'项目名称[：:]\s*([^\s]+?)(?:\s|采购方式|预算金额|$)']:
        m=re.search(pat,c)
        if m: pn=m.group(1).strip(); break
    b=title
    if pn and pn in b:
        b=b.replace(pn,'',1)
    for s in sorted(SUF,key=len,reverse=True):
        if b.endswith(s): b=b[:-len(s)]; break
    return b.strip(' -—·（(')

def budget_of(content,cat):
    c=re.sub(r'\s+',' ',content)
    if cat=="002002003":
        seg=c
        m=re.search(r'([\d]{1,3}(?:,\d{3})+\.\d{2})\s*元',seg)
        if not m: m=re.search(r'([\d]+\.\d{2})\s*元',seg)
    else:
        m=re.search(r'预算金额[：:]\s*([\d,]+\.?\d*)\s*元',c)
        if not m: m=re.search(r'([\d]{1,3}(?:,\d{3})+\.\d{2})\s*元',c)
    if not m: return None
    return round(float(m.group(1).replace(',',''))/10000,2)

sel=[0,21,22,40,51,56,57,59,60,64,65,69,72,82,83,30,
     110,128,129,139,143,144,145,146,149,154,158,136,137,161,162]
out=[]
for i in sel:
    v=cand[i]
    out.append({"title":v["title"],"buyer":buyer_of(v["title"],v["content"]),
                "budget":budget_of(v["content"],v["cat"]),"cat":v["cat"],"date":v["date"],
                "url":"https://ggzyjy.sc.gov.cn"+v["url"]})
for o in out:
    print(o["cat"],o["date"],"|",o["buyer"],"|",o["budget"],"|",o["title"][:60])
json.dump(out,open('/data/www/files/ggzy_final.json','w'),ensure_ascii=False,indent=1)
