#!/usr/bin/env python3
"""Test NJLS pagination: pages 1-5"""
from playwright.sync_api import sync_playwright
import json

BASE = 'http://www.njls.gov.cn'
LIST = BASE + '/lsqrmzf/214/228/index_17658.html'
AJAX = BASE + '/igs/front/search/publish/data/list.html'
PARAMS = {
    'index': 'wzqsearch-v20190124',
    'type': 'infomation',
    'siteId': '7',
    'pageSize': '20',
    'orderProperty': 'DOCRELTIME',
    'orderDirection': 'desc',
    'filter[SITEID]': '7',
    'filter[CHANNELID]': '23512',
    'filter[GROUPCAT]': '228',
}

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)
    context = browser.new_context(
        user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
    )
    
    # Test page 4 via AJAX
    page = context.new_page()
    
    # Intercept and check AJAX response
    def on_response(resp):
        if 'list.html' in resp.url:
            print('AJAX URL:', resp.url[:200])
            try:
                data = resp.json()
                print('AJAX status:', data.get('status'))
                print('AJAX count:', data.get('count'))
                rows = data.get('rows', [])
                print('AJAX rows:', len(rows))
                if rows:
                    print('First row:', json.dumps(rows[0], ensure_ascii=False)[:200])
            except Exception as e:
                print('AJAX parse error:', e)
    
    page.on('response', on_response)
    
    # Go to page 1, then navigate to page 4 via JS
    page.goto(LIST, wait_until='networkidle', timeout=30000)
    
    # Try accessing page 4 via the JS function
    result = page.evaluate("""
        (async function() {
            var params = {
                'index': 'wzqsearch-v20190124',
                'type': 'infomation',
                'siteId': '7',
                'pageSize': '20',
                'orderProperty': 'DOCRELTIME',
                'orderDirection': 'desc',
                'filter[SITEID]': '7',
                'filter[CHANNELID]': '23512',
                'filter[GROUPCAT]': '228',
                'pageNumber': '4'
            };
            var url = 'http://www.njls.gov.cn/igs/front/search/publish/data/list.html?';
            var qs = Object.keys(params).map(k => k + '=' + encodeURIComponent(params[k])).join('&');
            try {
                var resp = await fetch(url + qs);
                var data = await resp.json();
                return JSON.stringify({
                    status: data.status,
                    count: data.count,
                    rowCount: data.rows ? data.rows.length : 0,
                    firstTitle: data.rows && data.rows[0] ? data.rows[0].DOCTITLE : null
                });
            } catch(e) {
                return 'ERROR: ' + e.message;
            }
        })()
    """)
    print('PAGE4_AJAX:', result)
    
    # Test page 5
    result5 = page.evaluate("""
        (async function() {
            var params = {
                'index': 'wzqsearch-v20190124',
                'type': 'infomation',
                'siteId': '7',
                'pageSize': '20',
                'orderProperty': 'DOCRELTIME',
                'orderDirection': 'desc',
                'filter[SITEID]': '7',
                'filter[CHANNELID]': '23512',
                'filter[GROUPCAT]': '228',
                'pageNumber': '5'
            };
            var url = 'http://www.njls.gov.cn/igs/front/search/publish/data/list.html?';
            var qs = Object.keys(params).map(k => k + '=' + encodeURIComponent(params[k])).join('&');
            try {
                var resp = await fetch(url + qs);
                var data = await resp.json();
                return JSON.stringify({
                    rowCount: data.rows ? data.rows.length : 0,
                    firstTitle: data.rows && data.rows[0] ? data.rows[0].DOCTITLE : null,
                    lastTitle: data.rows && data.rows[data.rows.length-1] ? data.rows[data.rows.length-1].DOCTITLE : null
                });
            } catch(e) {
                return 'ERROR: ' + e.message;
            }
        })()
    """)
    print('PAGE5_AJAX:', result5)
    
    context.close()
    browser.close()
