

export default defineContentScript({
    matches: ['<all_urls>'],
    main(ctx) {
      setTimeout(getDeepScript,1000)
    },
  });
async function getDeepScript(){
    console.log("getDeepScript!!")
    const href = document.location.href;
    let id = "unknown";
    if (href.startsWith("http://39.105.188.3:3838/topic3/missing/?autoexecute="))
        id = "id1";
    if (href.startsWith("http://39.105.188.3:3838/topic3/PKUCausalEfficacy/?autoexecute="))
        id = "id2";
    if (href.startsWith("http://39.105.188.3:3838/topic3/ADR23/?autoexecute="))
        id = "id3";
    if (idToScript[id]!=undefined){
        idToScript[id]();
    }
  //sendMessageToServiceWorker({});
}
async function sendMessageToServiceWorker(message) {
    chrome.runtime.sendMessage({ type: 'retrieveDeepScript', doId:"10.1002/2014JA019817" }, response => {
      console.log(response);
    });
    return;
}

const idToScript = {
    "id1":(function() {
        // 等待函数
        function wait(ms) {
          return new Promise(resolve => setTimeout(resolve, ms));
        }
      
        // 主函数
        async function automate() {
          try {
            console.log("开始执行第二部分脚本...");
            
            // 等待页面加载
            await wait(2000);
            
            // 点击"缺失数据填补"链接
            const dataFillLink = Array.from(document.querySelectorAll('a')).find(a => 
              a.textContent.includes("缺失数据填补")
            );
            if (dataFillLink) {
              dataFillLink.click();
              console.log("已点击'缺失数据填补'链接");
            } else {
              console.error("未找到'缺失数据填补'链接");
            }
            await wait(1000);
            
            // 点击"选择数字对象"选项卡
            const numObjTab = Array.from(document.querySelectorAll('[role="tab"]')).find(tab => 
              tab.textContent.includes("选择数字对象")
            );
            if (numObjTab) {
              numObjTab.click();
              console.log("已点击'选择数字对象'选项卡");
            } else {
              console.error("未找到'选择数字对象'选项卡");
            }
            await wait(1000);
            
            // 点击"多重填补数字对象"
            const multipleNumObjs = Array.from(document.querySelectorAll('div')).filter(div => 
              div.textContent.trim() === "多重填补数字对象"
            );
            if (multipleNumObjs.length > 1) {
              multipleNumObjs[1].click();
              console.log("已点击'多重填补数字对象'");
            } else if (multipleNumObjs.length > 0) {
              multipleNumObjs[0].click();
              console.log("已点击'多重填补数字对象'");
            } else {
              console.error("未找到'多重填补数字对象'");
            }
            await wait(1000);
            
            // 选择"围术期处理后"
            const periOption = Array.from(document.querySelectorAll('[role="option"]')).find(option => 
              option.textContent.includes("围术期处理后")
            );
            if (periOption) {
              periOption.click();
              console.log("已选择'围术期处理后'");
            } else {
              console.error("未找到'围术期处理后'选项");
            }
            await wait(1000);
            
            // 勾选特定复选框
            const checkbox = document.querySelector('#col_pro');
            if (checkbox) {
              checkbox.checked = true;
              checkbox.dispatchEvent(new Event('change', { bubbles: true }));
              console.log("已勾选复选框");
            } else {
              console.error("未找到指定复选框");
            }
            await wait(1000);
            
            // 点击"开始填补"按钮
            const startFillBtn = Array.from(document.querySelectorAll('button')).find(btn => 
              btn.textContent.includes("开始填补")
            );
            if (startFillBtn) {
              startFillBtn.click();
              console.log("已点击'开始填补'按钮");
            } else {
              console.error("未找到'开始填补'按钮");
            }
            await wait(2000);
            
            // 点击"进入数据分析"按钮
            const enterAnalysisBtn = Array.from(document.querySelectorAll('button')).find(btn => 
              btn.textContent.includes("进入数据分析")
            );
            if (enterAnalysisBtn) {
              enterAnalysisBtn.click();
              console.log("已点击'进入数据分析'按钮");
            } else {
              console.error("未找到'进入数据分析'按钮");
            }
            await wait(2000);
            
            // 点击"中心序号"
            const centerNumDivs = Array.from(document.querySelectorAll('[id^="tab-"][id$="-3"] div')).filter(div => 
              div.textContent.includes("中心序号")
            );
            if (centerNumDivs.length > 1) {
              centerNumDivs[1].click();
              console.log("已点击'中心序号'");
            } else if (centerNumDivs.length > 0) {
              centerNumDivs[0].click();
              console.log("已点击'中心序号'");
            } else {
              console.error("未找到'中心序号'");
            }
            await wait(1000);
            
            // 选择"术后血红蛋白HB"
            const hbOption = Array.from(document.querySelectorAll('[role="option"]')).find(option => 
              option.textContent.includes("术后血红蛋白HB")
            );
            if (hbOption) {
              hbOption.click();
              console.log("已选择'术后血红蛋白HB'");
            } else {
              console.error("未找到'术后血红蛋白HB'选项");
            }
            await wait(1000);
            
            // 点击X变量选择框
            const xSelector = document.querySelector('[id="X"] > .form-group > div > .selectize-control > .selectize-input');
            if (xSelector) {
              xSelector.click();
              console.log("已点击X变量选择框");
            } else {
              console.error("未找到X变量选择框");
            }
            await wait(1000);
            
            // 选择"性别"
            const genderOption = Array.from(document.querySelectorAll('[role="option"]')).find(option => 
              option.textContent.includes("性别")
            );
            if (genderOption) {
              genderOption.click();
              console.log("已选择'性别'");
            } else {
              console.error("未找到'性别'选项");
            }
            await wait(1000);
            
            // 点击变量选择区域
            const varSelectors = Array.from(document.querySelectorAll('div')).filter(div => 
              div.textContent.includes("1. 根据预览数据选择变量 *选择处理变量（Z")
            );
            if (varSelectors.length > 3) {
              varSelectors[3].click();
              console.log("已点击变量选择区域");
            } else if (varSelectors.length > 0) {
              varSelectors[varSelectors.length - 1].click();
              console.log("已点击变量选择区域");
            } else {
              console.error("未找到变量选择区域");
            }
            await wait(1000);
            
            // 点击"开始分析"按钮
            const startAnalysisBtn = Array.from(document.querySelectorAll('button')).find(btn => 
              btn.textContent.includes("开始分析")
            );
            if (startAnalysisBtn) {
              startAnalysisBtn.click();
              console.log("已点击'开始分析'按钮");
            } else {
              console.error("未找到'开始分析'按钮");
            }
            
            console.log("第二部分脚本执行完成");
          } catch (error) {
            console.error("执行过程中出错:", error);
          }
        }
      
        // 执行自动化操作
        automate();
      }),
    "id2":(function() {
            function wait(ms) {
              return new Promise(resolve => setTimeout(resolve, ms));
            }
            
            // 主函数
            async function automate() {
              try {
                console.log("开始执行 Case02 第二部分脚本...");
                
                // 等待页面加载
                await wait(2000);
                
                // 点击"准备数据"链接
                const prepDataLink = Array.from(document.querySelectorAll('a')).find(a => 
                  a.textContent.includes("准备数据")
                );
                if (prepDataLink) {
                  prepDataLink.click();
                  console.log("已点击'准备数据'链接");
                } else {
                  console.error("未找到'准备数据'链接");
                }
                await wait(1000);
                
                // 点击"选择数字对象"选项卡
                const numObjTab = Array.from(document.querySelectorAll('[role="tab"]')).find(tab => 
                  tab.textContent.includes("选择数字对象")
                );
                if (numObjTab) {
                  numObjTab.click();
                  console.log("已点击'选择数字对象'选项卡");
                } else {
                  console.error("未找到'选择数字对象'选项卡");
                }
                await wait(1000);
                
                // 点击"RS"
                const rsDivs = Array.from(document.querySelectorAll('div')).filter(div => 
                  div.textContent.trim() === "RS"
                );
                if (rsDivs.length > 1) {
                  rsDivs[1].click();
                  console.log("已点击'RS'");
                } else if (rsDivs.length > 0) {
                  rsDivs[0].click();
                  console.log("已点击'RS'");
                } else {
                  console.error("未找到'RS'");
                }
                await wait(1000);
                
                // 选择"TQ-B2303-III-01_merged"
                const mergedOption = Array.from(document.querySelectorAll('[role="option"]')).find(option => 
                  option.textContent.includes("TQ-B2303-III-01_merged")
                );
                if (mergedOption) {
                  mergedOption.click();
                  console.log("已选择'TQ-B2303-III-01_merged'");
                } else {
                  console.error("未找到'TQ-B2303-III-01_merged'选项");
                }
                await wait(1000);
                
                // 点击特定元素
                const noncomplianceElement = document.querySelector('[id="data\\.goto\\.noncompliance1"]');
                if (noncomplianceElement) {
                  noncomplianceElement.click();
                  console.log("已点击特定元素");
                } else {
                  console.error("未找到特定元素");
                }
                await wait(1000);
                
                // 点击"AGEGR1"下拉框
                const agegr1Combobox = Array.from(document.querySelectorAll('[role="combobox"]')).find(box => 
                  box.getAttribute('name') === "AGEGR1"
                );
                if (agegr1Combobox) {
                  agegr1Combobox.click();
                  console.log("已点击'AGEGR1'下拉框");
                  await wait(500);
                  
                  // 选择特定选项
                  const agegr1Option = document.querySelector('#bs-select-9-29');
                  if (agegr1Option) {
                    agegr1Option.click();
                    console.log("已选择AGEGR1选项");
                  } else {
                    console.error("未找到AGEGR1选项");
                  }
                } else {
                  console.error("未找到'AGEGR1'下拉框");
                }
                await wait(1000);
                
                // 点击"SUBJID"下拉框
                const subjidCombobox = Array.from(document.querySelectorAll('[role="combobox"]')).find(box => 
                  box.getAttribute('name') === "SUBJID"
                );
                if (subjidCombobox) {
                  subjidCombobox.click();
                  console.log("已点击'SUBJID'下拉框");
                  await wait(500);
                  
                  // 选择特定选项
                  const subjidOption = document.querySelector('#bs-select-14-42');
                  if (subjidOption) {
                    subjidOption.click();
                    console.log("已选择SUBJID选项");
                  } else {
                    console.error("未找到SUBJID选项");
                  }
                } else {
                  console.error("未找到'SUBJID'下拉框");
                }
                await wait(1000);
                
                // 点击"Nothing selected"下拉框
                const nothingSelectedCombobox = Array.from(document.querySelectorAll('[role="combobox"]')).find(box => 
                  box.getAttribute('name') === "Nothing selected"
                );
                if (nothingSelectedCombobox) {
                  nothingSelectedCombobox.click();
                  console.log("已点击'Nothing selected'下拉框");
                  await wait(500);
                  
                  // 选择特定选项
                  const nothingSelectedOption = document.querySelector('#bs-select-16-6');
                  if (nothingSelectedOption) {
                    nothingSelectedOption.click();
                    console.log("已选择选项");
                  } else {
                    console.error("未找到选项");
                  }
                } else {
                  console.error("未找到'Nothing selected'下拉框");
                }
                await wait(1000);
                
                // 点击"IPI"下拉框
                const ipiCombobox = Array.from(document.querySelectorAll('[role="combobox"]')).find(box => 
                  box.getAttribute('name') === "IPI"
                );
                if (ipiCombobox) {
                  ipiCombobox.click();
                  console.log("已点击'IPI'下拉框");
                  await wait(500);
                  
                  // 取消勾选第四个复选框
                  const checkboxes = document.querySelectorAll('[role="checkbox"]');
                  if (checkboxes.length > 3) {
                    checkboxes[3].click(); // 取消勾选
                    console.log("已取消勾选复选框");
                  } else {
                    console.error("未找到足够的复选框");
                  }
                } else {
                  console.error("未找到'IPI'下拉框");
                }
                await wait(1000);
                
                // 点击"计算估计结果"按钮
                const calculateBtn = Array.from(document.querySelectorAll('button')).find(btn => 
                  btn.textContent.includes("计算估计结果")
                );
                if (calculateBtn) {
                  calculateBtn.click();
                  console.log("已点击'计算估计结果'按钮");
                } else {
                  console.error("未找到'计算估计结果'按钮");
                }
                
                console.log("Case02 第二部分脚本执行完成");
              } catch (error) {
                console.error("执行过程中出错:", error);
              }
            }
            
            // 执行自动化操作
            automate();
            }),
                "id3":(function(){
                    function wait(ms) {
                      return new Promise(resolve => setTimeout(resolve, ms));
                    }
                    
                    // 主函数
                    async function automate() {
                      try {
                        console.log("开始执行 Case03 第二部分脚本...");
                        
                        // 等待页面加载
                        await wait(2000);
                        
                        // 点击"模型预测"链接
                        const modelPredictLink = Array.from(document.querySelectorAll('a')).find(a => 
                          a.textContent.includes("模型预测")
                        );
                        if (modelPredictLink) {
                          modelPredictLink.click();
                          console.log("已点击'模型预测'链接");
                        } else {
                          console.error("未找到'模型预测'链接");
                        }
                        await wait(1000);
                        
                        // 点击"选择数字对象"选项卡
                        const numObjTab = Array.from(document.querySelectorAll('[role="tab"]')).find(tab => 
                          tab.textContent.includes("选择数字对象")
                        );
                        if (numObjTab) {
                          numObjTab.click();
                          console.log("已点击'选择数字对象'选项卡");
                        } else {
                          console.error("未找到'选择数字对象'选项卡");
                        }
                        await wait(1000);
                        
                        // 点击"多重填补数字对象"
                        const multipleNumObjs = Array.from(document.querySelectorAll('div')).filter(div => 
                          div.textContent.trim() === "多重填补数字对象"
                        );
                        if (multipleNumObjs.length > 1) {
                          multipleNumObjs[1].click();
                          console.log("已点击'多重填补数字对象'");
                        } else if (multipleNumObjs.length > 0) {
                          multipleNumObjs[0].click();
                          console.log("已点击'多重填补数字对象'");
                        } else {
                          console.error("未找到'多重填补数字对象'");
                        }
                        await wait(1000);
                        
                        // 选择"Clopidogrel"
                        const clopidogrelOption = Array.from(document.querySelectorAll('[role="option"]')).find(option => 
                          option.textContent.includes("Clopidogrel")
                        );
                        if (clopidogrelOption) {
                          clopidogrelOption.click();
                          console.log("已选择'Clopidogrel'");
                        } else {
                          console.error("未找到'Clopidogrel'选项");
                        }
                        await wait(1000);
                        
                        // 勾选特定复选框
                        const checkbox = document.querySelector('#col_pro');
                        if (checkbox) {
                          checkbox.checked = true;
                          checkbox.dispatchEvent(new Event('change', { bubbles: true }));
                          console.log("已勾选复选框");
                        } else {
                          console.error("未找到指定复选框");
                        }
                        await wait(1000);
                        
                        // 点击"查看上传的数据"按钮
                        const viewDataBtn = Array.from(document.querySelectorAll('button')).find(btn => 
                          btn.textContent.includes("查看上传的数据")
                        );
                        if (viewDataBtn) {
                          viewDataBtn.click();
                          console.log("已点击'查看上传的数据'按钮");
                        } else {
                          console.error("未找到'查看上传的数据'按钮");
                        }
                        await wait(2000);
                        
                        // 点击"计算模型预测结果"按钮
                        const calculateBtn = Array.from(document.querySelectorAll('button')).find(btn => 
                          btn.textContent.includes("计算模型预测结果")
                        );
                        if (calculateBtn) {
                          calculateBtn.click();
                          console.log("已点击'计算模型预测结果'按钮");
                        } else {
                          console.error("未找到'计算模型预测结果'按钮");
                        }
                        
                        console.log("Case03 第二部分脚本执行完成");
                      } catch (error) {
                        console.error("执行过程中出错:", error);
                      }
                    }
                    
                    // 执行自动化操作
                    automate();
                    })
}


