welsonjs/lib/serp.js
Namhyeon, Go 638b172e77 Fix a proxy services and HTTP request issues
1. Separated the data listing available HTTP proxy services into a separate file. (data/available_proxies.json)
2. Excluded the architecture of the user's PC (e.g., 32-bit, 64-bit) from the User-Agent in HTTP requests.
2025-01-01 19:18:40 +09:00

65 lines
1.9 KiB
JavaScript

// serp.js
// SERP/SEO tools integration for WelsonJS framework
// Namhyeon Go <abuse@catswords.net>
// https://github.com/gnh1201/welsonjs
function parseUrl(url) {
var getEngine = function(url) {
var defaultEngine = "google";
var engines = {
"google": ["naver", "daum"],
"google_shopping": [
"aliexpress", "temu", "coupang", "shopping.naver",
"ssg", "gmarket", "11st", "store.kakao",
"lotteon", "tmon", "wemakeprice"
],
"default": [
"google", "youtube", "bing", "baidu",
"amazon", "duckduckgo"
]
};
var match = url.match(/^(?:https?:\/\/)?(?:www\.)?([\w.-]+)\.\w+$/);
if (!match) {
return defaultEngine;
}
var domain = match[1];
for (var key in engines) {
if (engines.hasOwnProperty(key)) {
var group = engines[key];
if (group.indexOf(domain) !== -1) {
if (key === "default") {
return domain;
}
return key;
}
}
}
return defaultEngine;
};
var getKeyword = function(url) {
var regex = /[?&](q|wd|query|keyword|search_query|k|SearchText|search_key)=([^&]*)/g;
//var regex = /(?:[?&](q|wd|keyword|query|search_query|k|SearchText|search_key)=|\/pdsearch\/)([^&?]*)/g;
var match, keywords = [];
while ((match = regex.exec(url)) !== null) {
keywords.push(match[2]);
}
return keywords.join(' ');
};
return {
"engine": getEngine(url),
"keyword": getKeyword(url)
}
};
exports.parseUrl = parseUrl;
exports.VERSIONINFO = "SERP/SEO tools integration (serp.js) version 0.1";
exports.AUTHOR = "abuse@catswords.net";
exports.global = global;
exports.require = global.require;