Skip to content

Commit e6bf4ee

Browse files
committed
capture and track document request id for raw text extraction in qa
1 parent f02b7bc commit e6bf4ee

2 files changed

Lines changed: 50 additions & 1 deletion

File tree

src/replaycrawler.ts

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ export class ReplayCrawler extends Crawler {
395395
async crawlPage(opts: WorkerState): Promise<void> {
396396
await this.writeStats();
397397

398-
const { page, data, workerid } = opts;
398+
const { page, data, workerid, cdp } = opts;
399399
const { url, ts, pageid } = data;
400400

401401
if (!ts) {
@@ -433,6 +433,28 @@ export class ReplayCrawler extends Crawler {
433433
replayFrame = page.frames()[SKIP_FRAMES];
434434
}
435435

436+
// Capture document request ID for raw text extraction if enabled
437+
let documentRequestId: string | null = null;
438+
let trackDocumentRequest:
439+
| ((params: Protocol.Network.ResponseReceivedEvent) => void)
440+
| null = null;
441+
442+
if (this.params.text.includes("to-warc-from-raw")) {
443+
trackDocumentRequest = (
444+
params: Protocol.Network.ResponseReceivedEvent,
445+
) => {
446+
if (params.type === "Document" && !documentRequestId) {
447+
documentRequestId = params.requestId;
448+
logger.debug(
449+
"Captured document request ID",
450+
{ requestId: documentRequestId, url: params.response.url },
451+
"text",
452+
);
453+
}
454+
};
455+
cdp.on("Network.responseReceived", trackDocumentRequest);
456+
}
457+
436458
try {
437459
await replayFrame.goto(
438460
`${REPLAY_PREFIX}${timestamp}mp_/${url}`,
@@ -444,6 +466,32 @@ export class ReplayCrawler extends Crawler {
444466
{ ...logDetails, ...formatErr(e) },
445467
"replay",
446468
);
469+
} finally {
470+
// Store document request ID and clean up listener
471+
if (documentRequestId) {
472+
data.documentRequestId = documentRequestId;
473+
logger.info(
474+
"Stored document request ID for raw text extraction",
475+
{
476+
url: data.url,
477+
requestId: documentRequestId,
478+
originalWarcRecordId: String(data.originalWarcRecordId),
479+
},
480+
"text",
481+
);
482+
} else if (trackDocumentRequest) {
483+
logger.warn(
484+
"No document request ID captured",
485+
{
486+
url: data.url,
487+
originalWarcRecordId: String(data.originalWarcRecordId),
488+
},
489+
"text",
490+
);
491+
}
492+
if (trackDocumentRequest) {
493+
cdp.off("Network.responseReceived", trackDocumentRequest);
494+
}
447495
}
448496

449497
while (replayFrame.url().indexOf("about:blank") >= 0) {

src/util/state.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1290,6 +1290,7 @@ return inx;
12901290
extraHops = 0,
12911291
ts = 0,
12921292
pageid = undefined,
1293+
originalWarcRecordId = undefined,
12931294
}: QueueEntry,
12941295
limit = 0,
12951296
) {

0 commit comments

Comments
 (0)