#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Test nantong getMessage.do with startrecord/endrecord range params"""
import requests, re, time

URL = "https://sthjj.nantong.gov.cn/truecms/messageController/getMessage.do"
COLUMN = "84a41964-9047-4d6f-93d9-77b9995947e5"  # tzgg column from tzgg.html
HEADERS = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/125.0 Safari/537.36",
    "Referer": "https://sthjj.nantong.gov.cn/ntshbj/tzgg/tzgg.html",
}

def probe(params, tag):
    try:
        r = requests.get(URL, params=params, headers=HEADERS, timeout=25)
        body = r.text
        n = len(re.findall(r'<record>', body))
        total = re.search(r'<totalrecord>(\d+)<', body)
        titles = re.findall(r'<a[^>]*>([^<]{4,})</a>', body)
        print(f"{tag}: status={r.status_code} records={n} total={total.group(1) if total else '?'} first={titles[:2]}")
    except Exception as e:
        print(f"{tag}: ERR {e}")

probe({"columnId": COLUMN, "startrecord": 1, "endrecord": 10, "perpage": 10}, "range 1-10")
time.sleep(1)
probe({"columnId": COLUMN, "startrecord": 11, "endrecord": 20, "perpage": 10}, "range 11-20")
time.sleep(1)
probe({"columnId": COLUMN, "startrecord": 1, "endrecord": 30, "perpage": 10}, "range 1-30")
time.sleep(1)
probe({"columnId": COLUMN, "startrecord": 31, "endrecord": 60, "perpage": 30}, "range 31-60")
time.sleep(1)
probe({"columnId": COLUMN, "startrecord": 180, "endrecord": 189, "perpage": 10}, "range 180-189")
time.sleep(1)
probe({"columnId": COLUMN, "startrecord": 1, "endrecord": 189, "perpage": 200}, "range 1-189 big")
time.sleep(1)
# jsonp style
probe({"columnId": COLUMN, "startrecord": 1, "endrecord": 10, "perpage": 10, "callback": "jQuery123"}, "jsonp cb")
