39 lines
1.4 KiB
JavaScript
39 lines
1.4 KiB
JavaScript
(async () => {
|
|
const waitForElement = (selector, timeout = 10000) => new Promise((resolve, reject) => {
|
|
const el = document.querySelector(selector);
|
|
if (el) return resolve(el);
|
|
const observer = new MutationObserver(() => {
|
|
const el = document.querySelector(selector);
|
|
if (el) {
|
|
observer.disconnect();
|
|
resolve(el);
|
|
}
|
|
});
|
|
observer.observe(document.body, { childList: true, subtree: true });
|
|
setTimeout(() => {
|
|
observer.disconnect();
|
|
reject(new Error(`Timeout waiting for ${selector}`));
|
|
}, timeout);
|
|
});
|
|
|
|
try {
|
|
const searchInput = await waitForElement('#adv_code_search input[type="text"]');
|
|
searchInput.value = 'crawl4AI';
|
|
searchInput.dispatchEvent(new Event('input', { bubbles: true }));
|
|
|
|
const languageSelect = await waitForElement('#search_language');
|
|
languageSelect.value = 'Python';
|
|
languageSelect.dispatchEvent(new Event('change', { bubbles: true }));
|
|
|
|
const starsInput = await waitForElement('#search_stars');
|
|
starsInput.value = '>10000';
|
|
starsInput.dispatchEvent(new Event('input', { bubbles: true }));
|
|
|
|
const searchButton = await waitForElement('#adv_code_search button[type="submit"]');
|
|
searchButton.click();
|
|
|
|
await waitForElement('.codesearch-results, #search-results');
|
|
} catch (e) {
|
|
console.error('Search script failed:', e.message);
|
|
}
|
|
})(); |