46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.1 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;
 | 
						|
  browser_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);
 | 
						|
 | 
						|
  async isLogin() {}
 | 
						|
}
 |