31 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
import BID_TYPE from '../system/bid-type.js';
 | 
						|
import CONSTANTS from '../system/constants.js';
 | 
						|
import { takeSnapshot } from '../system/utils.js';
 | 
						|
import _ from 'lodash';
 | 
						|
 | 
						|
export class Bid {
 | 
						|
    type;
 | 
						|
    puppeteer_connect;
 | 
						|
    url;
 | 
						|
    action;
 | 
						|
    page_context;
 | 
						|
 | 
						|
    constructor(type, url, puppeteer_connect) {
 | 
						|
        this.type = type;
 | 
						|
        this.url = url;
 | 
						|
        this.puppeteer_connect = puppeteer_connect;
 | 
						|
    }
 | 
						|
 | 
						|
    handleTakeWorkSnapshot = _.debounce(async () => {
 | 
						|
        if (!this.page_context) return;
 | 
						|
 | 
						|
        try {
 | 
						|
            // await this.page_context.waitForSelector('#pageContainer', { timeout: 10000 });
 | 
						|
            console.log(`✅ Page fully loaded. Taking snapshot for ${this.type === BID_TYPE.PRODUCT_TAB ? 'Product ID' : 'Tracking ID'}: ${this.id}`);
 | 
						|
            takeSnapshot(this.page_context, this, 'working', CONSTANTS.TYPE_IMAGE.WORK);
 | 
						|
        } catch (error) {
 | 
						|
            console.error(`❌ Error taking snapshot for Product ID: ${this.id}:`, error.message);
 | 
						|
        }
 | 
						|
    }, 1000);
 | 
						|
}
 |