Я пишу расширение для VPN, в нём необходимо передать код страны через SOCKS4 на локальный прокси. Как можно это грамотно сделать ?
Вот основной файл, если что, чтобы было понятнее:
// prettier-ignore
$(document).ready(function() {
loadData();
$("#search").click(search);
$("#clear").click(clear);
function loadData() {
chrome.storage.sync.get(["ip", "port", "countryId", "proxies"], function(result) {
if (result.ip && result.port) {
$("#cur_proxy").empty().append("<p>Proxy set - " + result.ip + ":" + result.port + "</p>");
} else {
$("#cur_proxy").empty().append("<p>Proxy not used<p>");
}
$("#country_id").val(result.countryId || null);
showProxies(result.proxies || null);
});
}
function search() {
const countryId = $("#country_id").val();
if (countryId === "select") {
alert("Select a country");
return;
}
const proxies = [];
let ip = "127.0.0.1";
let port = "1080";
proxies.push(ip + ":" + port);
showProxies(proxies);
chrome.storage.sync.set({countryId: countryId, proxies: proxies}, null);
}
function showProxies(proxies) {
$(proxies).each(function(i, proxy) {
$("#new_proxy").append('<a class="proxylist" href=#>' + proxy + "</a></br>");
});
$(".proxylist").on("click", function() {
const ip = "127.0.0.1";
const port = "1080";
setProxy(ip, port);
});
}
function setProxy(ip, port) {
const config = {
mode: "fixed_servers",
rules: {
singleProxy: {
host: "127.0.0.1",
port: port
}
}
};
chrome.proxy.settings.set({ value: config, scope: "regular" }, null);
chrome.storage.sync.set({ip: ip, port: port}, loadData);
}
function clear() {
const config = {
mode: "direct"
};
chrome.proxy.settings.set({ value: config, scope: "regular" }, null);
chrome.storage.sync.clear(loadData);
}
});