first commit

This commit is contained in:
Michelle Zan
2026-09-03 15:35:23 +08:00
commit 9b26161bcf
510 changed files with 29402 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""快速判定“无导出入口”报表页的真实结构:等待15s后统计 #icon-download / 文字下载按钮 / 是否需先查询。"""
import json, urllib.request, time
D = "http://127.0.0.1:10086/command"; S = "2haohr"
def call(a, args, t=90):
b = json.dumps({"action": a, "args": args, "session": S}).encode()
r = urllib.request.Request(D, data=b, headers={"Content-Type": "application/json"})
return json.loads(urllib.request.urlopen(r, timeout=t).read().decode())
def ev(c):
try: return call("evaluate", {"code": c}).get("data", {}).get("value")
except Exception as e: return "EXC:" + str(e)[:80]
STAT = r"""(()=>{
let icon=0;document.querySelectorAll('use').forEach(u=>{const h=u.getAttribute('xlink:href')||u.getAttribute('href');if(h==='#icon-download')icon++;});
const btns=[...document.querySelectorAll('button,a,[role=button]')].map(b=>(b.innerText||'').trim()).filter(t=>t&&t.length<12&&/下载|导出|生成|查询|搜索|excel/i.test(t));
const bcnt={};btns.forEach(t=>bcnt[t]=(bcnt[t]||0)+1);
// 是否存在数据表格
const tbl=document.querySelectorAll('table,[class*=table],[class*=Table]').length;
const empty=/暂无数据|请选择|请先|no data/i.test(document.body.innerText||'');
return JSON.stringify({icon_download:icon,dl_btns:bcnt,tables:tbl,has_empty_hint:empty});})()"""
def probe(url, label):
call("navigate", {"url": url, "newTab": False})
time.sleep(15)
print("[%s] %s" % (label, url))
print(" ", ev(STAT))
def main():
call("find_tab", {"url": "2haohr.com"})
for url, label in [
("https://2haohr.com/attendance/stat/monthly", "月考勤表"),
("https://2haohr.com/attendance/stat/report", "考勤报表"),
("https://2haohr.com/social-insurance/reports", "社保报表"),
("https://2haohr.com/org/org-forms", "组织报表"),
("https://2haohr.com/payroll/salary/report", "薪酬报表"),
]:
probe(url, label)
if __name__ == "__main__":
main()