This commit is contained in:
@@ -231,7 +231,7 @@ async def detect_pagination_service(decoded_url):
|
|||||||
|
|
||||||
// Try to find the last page number
|
// Try to find the last page number
|
||||||
const pageNumbers = numberedLinks
|
const pageNumbers = numberedLinks
|
||||||
.map(el => parseInt(el.innerText.trim()))
|
.map(el => parseInt(el.innerText.replace(/[^\d]/g, '')))
|
||||||
.filter(num => !isNaN(num));
|
.filter(num => !isNaN(num));
|
||||||
|
|
||||||
if (pageNumbers.length > 0) {
|
if (pageNumbers.length > 0) {
|
||||||
@@ -313,6 +313,7 @@ async def detect_pagination_service(decoded_url):
|
|||||||
next_page_url = None
|
next_page_url = None
|
||||||
pagination_parameter = None
|
pagination_parameter = None
|
||||||
url_template = None
|
url_template = None
|
||||||
|
step_size = None
|
||||||
|
|
||||||
if pagination_data['hasPagination']:
|
if pagination_data['hasPagination']:
|
||||||
print("Pagination detected, attempting to click on a pagination element")
|
print("Pagination detected, attempting to click on a pagination element")
|
||||||
@@ -479,6 +480,7 @@ async def detect_pagination_service(decoded_url):
|
|||||||
}}''', original_url)
|
}}''', original_url)
|
||||||
|
|
||||||
# Determine the pagination parameter and create URL template
|
# Determine the pagination parameter and create URL template
|
||||||
|
print(original_parsed)
|
||||||
if original_parsed['paramDiff']:
|
if original_parsed['paramDiff']:
|
||||||
param_name = original_parsed['paramDiff']['name']
|
param_name = original_parsed['paramDiff']['name']
|
||||||
pagination_parameter = {
|
pagination_parameter = {
|
||||||
@@ -487,6 +489,17 @@ async def detect_pagination_service(decoded_url):
|
|||||||
'value': original_parsed['paramDiff']['currentValue']
|
'value': original_parsed['paramDiff']['currentValue']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# --- STEP SIZE DETECTION FOR QUERY PARAM ---
|
||||||
|
orig_val = original_parsed['paramDiff']['originalValue'] if original_parsed['paramDiff']['originalValue'] is not None else 0
|
||||||
|
curr_val = original_parsed['paramDiff']['currentValue']
|
||||||
|
try:
|
||||||
|
if orig_val is not None and curr_val is not None:
|
||||||
|
orig_num = int(orig_val)
|
||||||
|
curr_num = int(curr_val)
|
||||||
|
step_size = abs(curr_num - orig_num)
|
||||||
|
except Exception:
|
||||||
|
step_size = None
|
||||||
|
|
||||||
# Create URL template for query parameter
|
# Create URL template for query parameter
|
||||||
url_obj = await page.evaluate(f'''(url, paramName) => {{
|
url_obj = await page.evaluate(f'''(url, paramName) => {{
|
||||||
const urlObj = new URL(url);
|
const urlObj = new URL(url);
|
||||||
@@ -504,6 +517,17 @@ async def detect_pagination_service(decoded_url):
|
|||||||
'value': original_parsed['pathDiff']['currentValue']
|
'value': original_parsed['pathDiff']['currentValue']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# --- STEP SIZE DETECTION FOR PATH PARAM ---
|
||||||
|
orig_val = original_parsed['pathDiff']['originalValue']
|
||||||
|
curr_val = original_parsed['pathDiff']['currentValue']
|
||||||
|
try:
|
||||||
|
if orig_val is not None and curr_val is not None:
|
||||||
|
orig_num = int(orig_val)
|
||||||
|
curr_num = int(curr_val)
|
||||||
|
step_size = abs(curr_num - orig_num)
|
||||||
|
except Exception:
|
||||||
|
step_size = None
|
||||||
|
|
||||||
# Create URL template for path parameter
|
# Create URL template for path parameter
|
||||||
url_template = await page.evaluate(f'''(url, pathIndex) => {{
|
url_template = await page.evaluate(f'''(url, pathIndex) => {{
|
||||||
const urlObj = new URL(url);
|
const urlObj = new URL(url);
|
||||||
@@ -532,7 +556,8 @@ async def detect_pagination_service(decoded_url):
|
|||||||
"status": "success",
|
"status": "success",
|
||||||
"hasPagination": pagination_data['hasPagination'],
|
"hasPagination": pagination_data['hasPagination'],
|
||||||
"urlTemplate": url_template,
|
"urlTemplate": url_template,
|
||||||
"lastPage": pagination_data['lastPageNumber']
|
"lastPage": pagination_data['lastPageNumber'],
|
||||||
|
"stepSize": step_size
|
||||||
}
|
}
|
||||||
|
|
||||||
return result
|
return result
|
||||||
@@ -544,6 +569,7 @@ async def detect_pagination_service(decoded_url):
|
|||||||
"hasPagination": False,
|
"hasPagination": False,
|
||||||
"urlTemplate": None,
|
"urlTemplate": None,
|
||||||
"lastPage": None,
|
"lastPage": None,
|
||||||
|
"stepSize": None,
|
||||||
"error": str(e)
|
"error": str(e)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user