chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 12:12:13 +08:00
commit 0446c45d8e
898 changed files with 328024 additions and 0 deletions
@@ -0,0 +1,78 @@
// Main content script for Crawl4AI Assistant
// Coordinates between Click2Crawl, ScriptBuilder, and MarkdownExtraction
let activeBuilder = null;
// Listen for messages from popup
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (request.action === 'startCapture') {
if (activeBuilder) {
console.log('Stopping existing capture session');
activeBuilder.stop();
activeBuilder = null;
}
if (request.mode === 'schema') {
console.log('Starting Click2Crawl');
activeBuilder = new Click2Crawl();
activeBuilder.start();
} else if (request.mode === 'script') {
console.log('Starting Script Builder');
activeBuilder = new ScriptBuilder();
activeBuilder.start();
}
sendResponse({ success: true });
} else if (request.action === 'stopCapture') {
if (activeBuilder) {
activeBuilder.stop();
activeBuilder = null;
}
sendResponse({ success: true });
} else if (request.action === 'startSchemaCapture') {
if (activeBuilder) {
activeBuilder.deactivate?.();
activeBuilder = null;
}
console.log('Starting Click2Crawl');
activeBuilder = new Click2Crawl();
activeBuilder.start();
sendResponse({ success: true });
} else if (request.action === 'startScriptCapture') {
if (activeBuilder) {
activeBuilder.deactivate?.();
activeBuilder = null;
}
console.log('Starting Script Builder');
activeBuilder = new ScriptBuilder();
activeBuilder.start();
sendResponse({ success: true });
} else if (request.action === 'startClick2Crawl') {
if (activeBuilder) {
activeBuilder.deactivate?.();
activeBuilder = null;
}
console.log('Starting Markdown Extraction');
activeBuilder = new MarkdownExtraction();
sendResponse({ success: true });
} else if (request.action === 'generateCode') {
if (activeBuilder && activeBuilder.generateCode) {
activeBuilder.generateCode();
}
sendResponse({ success: true });
}
});
// Cleanup on page unload
window.addEventListener('beforeunload', () => {
if (activeBuilder) {
if (activeBuilder.deactivate) {
activeBuilder.deactivate();
} else if (activeBuilder.stop) {
activeBuilder.stop();
}
activeBuilder = null;
}
});
console.log('Crawl4AI Assistant content script loaded');