web-search-mcp
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
/**
|
||||
* Utility functions for the web search MCP server
|
||||
*/
|
||||
export function cleanText(text, maxLength = 10000) {
|
||||
return text
|
||||
.replace(/\s+/g, ' ') // Replace multiple whitespace with single space
|
||||
.replace(/\n\s*\n/g, '\n') // Replace multiple newlines with single newline
|
||||
.trim()
|
||||
.substring(0, maxLength);
|
||||
}
|
||||
export function getWordCount(text) {
|
||||
return text.trim().split(/\s+/).filter(word => word.length > 0).length;
|
||||
}
|
||||
export function getContentPreview(text, maxLength = 500) {
|
||||
const cleaned = cleanText(text, maxLength);
|
||||
return cleaned.length === maxLength ? cleaned + '...' : cleaned;
|
||||
}
|
||||
export function generateTimestamp() {
|
||||
return new Date().toISOString();
|
||||
}
|
||||
export function validateUrl(url) {
|
||||
try {
|
||||
const parsed = new URL(url);
|
||||
return parsed.protocol === 'http:' || parsed.protocol === 'https:';
|
||||
}
|
||||
catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
export function sanitizeQuery(query) {
|
||||
return query.trim().substring(0, 1000); // Limit query length
|
||||
}
|
||||
export function getRandomUserAgent() {
|
||||
const userAgents = [
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
|
||||
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
|
||||
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
|
||||
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.1 Safari/605.1.15',
|
||||
];
|
||||
return userAgents[Math.floor(Math.random() * userAgents.length)];
|
||||
}
|
||||
export function delay(ms) {
|
||||
return new Promise(resolve => setTimeout(resolve, ms));
|
||||
}
|
||||
export function isPdfUrl(url) {
|
||||
try {
|
||||
const parsed = new URL(url);
|
||||
return parsed.pathname.toLowerCase().endsWith('.pdf');
|
||||
}
|
||||
catch {
|
||||
// If URL parsing fails, check the raw string as fallback
|
||||
return url.toLowerCase().endsWith('.pdf');
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=utils.js.map
|
||||
Reference in New Issue
Block a user