@@ -47,32 +47,32 @@ const getScanFrequency = (firstScan, lastScan, totalScans, changeCount) => {
4747} ;
4848
4949const wayBackHandler = async ( url ) => {
50- const cdxUrl = `https://web.archive.org/cdx/search/cdx?url=${ url } &output=json&fl=timestamp,statuscode,digest,length,offset` ;
50+ // collapse=timestamp:8 returns one row per archived day, slashing payloads
51+ // (Wikipedia: 25MB/373k rows -> 428KB/6k rows) without losing first/last/change counts
52+ const cdxUrl =
53+ `https://web.archive.org/cdx/search/cdx?url=${ encodeURIComponent ( url ) } ` +
54+ `&output=json&fl=timestamp,statuscode,digest,length&collapse=timestamp:8` ;
5155
5256 try {
5357 const { data } = await httpGet ( cdxUrl ) ;
5458
55- // Check there's data
5659 if ( ! data || ! Array . isArray ( data ) || data . length <= 1 ) {
5760 return { skipped : 'Site has never before been archived via the Wayback Machine' } ;
5861 }
5962
60- // Remove the header row
6163 data . shift ( ) ;
6264
63- // Process and return the results
6465 const firstScan = convertTimestampToDate ( data [ 0 ] [ 0 ] ) ;
6566 const lastScan = convertTimestampToDate ( data [ data . length - 1 ] [ 0 ] ) ;
66- const totalScans = data . length ;
67+ const daysArchived = data . length ;
6768 const changeCount = countPageChanges ( data ) ;
6869 return {
6970 firstScan,
7071 lastScan,
71- totalScans ,
72+ daysArchived ,
7273 changeCount,
7374 averagePageSize : getAveragePageSize ( data ) ,
74- scanFrequency : getScanFrequency ( firstScan , lastScan , totalScans , changeCount ) ,
75- scans : data ,
75+ scanFrequency : getScanFrequency ( firstScan , lastScan , daysArchived , changeCount ) ,
7676 scanUrl : url ,
7777 } ;
7878 } catch ( err ) {
0 commit comments