Update custom sites (group)

merge-requests/16/head
magnolia1234 7 months ago
parent a7d91d4925
commit 4882476bee

@ -989,7 +989,7 @@ Remember to check the [previous requests](https://gitlab.com/magnolia1234/bypass
* for Google Search Tool test url & copy html (tab) code to https://codebeautify.org/htmlviewer
### Add custom site
Add your own custom site (also for testing).
Add your own custom site/group (for group use comma-separated list; set domain like group_...).
Check 'Options'-link in popup-menu and go to custom sites.
\* by default BPC has limited host permissions, but you can opt-in to enable custom sites (and also clear cookies/block general paywall-scripts for unlisted sites). You can also just request host permissions for the custom sites you added yourself (or *clear cookies* (BPC-icon) to ask for host permission for current site).

@ -359,7 +359,7 @@ function set_rules(sites, sites_updated, sites_custom) {
let domains = [site_domain];
let group = false;
if (rule.hasOwnProperty('group')) {
domains = rule.group;
domains = (typeof rule.group !== 'string') ? rule.group : rule.group.split(',');
group = true;
}
let rule_default = {};
@ -420,11 +420,22 @@ function add_grouped_enabled_domains(groups) {
enabledSites = enabledSites.concat(groups[key]);
else
disabledSites = disabledSites.concat(groups[key]);
for (let site of excludedSites) {
if (enabledSites.includes(site)) {
enabledSites.splice(enabledSites.indexOf(site), 1);
disabledSites.push(site);
}
}
// custom
for (let site in customSites) {
let group = customSites[site].group;
if (group) {
let group_array = group.split(',');
if (enabledSites.includes(customSites[site].domain))
enabledSites = enabledSites.concat(group_array);
else
disabledSites = disabledSites.concat(group_array);
}
}
for (let site of excludedSites) {
if (enabledSites.includes(site)) {
enabledSites.splice(enabledSites.indexOf(site), 1);
disabledSites.push(site);
}
}
}
@ -447,7 +458,7 @@ ext_api.storage.local.get({
customSites = filterObject(customSites, function (val, key) {
return !(val.add_ext_link && !val.add_ext_link_type)
});
customSites_domains = Object.values(customSites).map(x => x.domain);
customSites_domains = Object.values(customSites).map(x => x.group ? x.group.split(',').map(x => x.trim()).concat([x.domain]) : x.domain).flat();
updatedSites = items.sites_updated;
updatedSites_domains_new = Object.values(updatedSites).filter(x => x.domain && !defaultSites_domains.includes(x.domain) || x.group).map(x => x.group ? x.group.filter(y => !defaultSites_domains.includes(y)).concat([x.domain]) : x.domain).flat();
var ext_version_old = items.ext_version_old;
@ -538,7 +549,7 @@ ext_api.storage.onChanged.addListener(function (changes, namespace) {
var sites_custom = storageChange.newValue ? storageChange.newValue : {};
var sites_custom_old = storageChange.oldValue ? storageChange.oldValue : {};
customSites = sites_custom;
customSites_domains = Object.values(sites_custom).map(x => x.domain);
customSites_domains = Object.values(sites_custom).map(x => x.group ? x.group.split(',').map(x => x.trim()).concat([x.domain]) : x.domain).flat();
// add/remove custom sites in options (not for default site(group))
var sites_custom_added = Object.keys(sites_custom).filter(x => !Object.keys(sites_custom_old).includes(x) && !defaultSites.hasOwnProperty(x) && !defaultSites_domains.includes(sites_custom[x].domain));
@ -1278,7 +1289,7 @@ function site_switch() {
}
let defaultSite_title = isDefaultSite ? Object.keys(defaultSites).find(key => defaultSites[key].domain === isDefaultSite) : '';
let isCustomSite = matchUrlDomain(Object.values(customSites_domains), currentUrl);
let customSite_title = isCustomSite ? Object.keys(customSites).find(key => customSites[key].domain === isCustomSite) : '';
let customSite_title = isCustomSite ? Object.keys(customSites).find(key => customSites[key].domain === isCustomSite || (customSites[key].group && customSites[key].group.split(',').includes(isCustomSite))) : '';
let site_title = defaultSite_title || customSite_title;
let domain = isDefaultSite || isCustomSite;
if (domain && site_title) {

@ -16,7 +16,7 @@ Fix El Pais (mobile)
Fix Schwaebische.de
Fix TheBulletin.org (ld_json_url)
Fix WSJ (mobile & Googlebot for cn/jp subdomain)
Update custom sites (link to 1ft.io)
Update custom sites (group & link to 1ft.io)
* v3.4.0.0 (2023-10-29)
Add CartaCapital.com.br

@ -50,7 +50,7 @@ var usa_outside_mag_domains = ["backpacker.com", "betamtb.com", "betternutrition
var usa_tribune_domains = ['baltimoresun.com', 'chicagotribune.com', 'courant.com', 'dailypress.com', 'mcall.com', 'nydailynews.com', 'orlandosentinel.com', 'pilotonline.com', 'sun-sentinel.com'];
// clean local storage of sites (with an exemption for hold-list)
var arr_localstorage_hold = ['augsburger-allgemeine.de', 'barrons.com', 'business-standard.com', 'businessinsider.com', 'businessoffashion.com', 'businesspost.ie', 'challenges.fr', 'charliehebdo.fr', 'cmjornal.pt', 'columbian.com', 'corriere.it', 'corrieredellosport.it', 'cyclingtips.com', 'digiday.com', 'dvhn.nl', 'economictimes.com', 'eldiario.es', 'elespanol.com', 'elle.fr', 'elpais.com', 'elperiodico.com', 'enotes.com', 'estadao.com.br', 'forbes.com', 'fortune.com', 'freiepresse.de', 'gauchazh.clicrbs.com.br', 'globo.com', 'ilfoglio.it', 'inc42.com', 'indianexpress.com', 'indiatoday.in', 'inews.co.uk', 'janes.com', 'ksta.de', 'kurier.at', 'lanouvellerepublique.fr', 'latimes.com', 'lc.nl', 'lesechos.fr', 'livemint.com', 'mid-day.com', 'mundodeportivo.com', 'nationalreview.com', 'nrc.nl', 'nw.de', 'nwzonline.de', 'nytimes.com', 'nzherald.co.nz', 'record.pt', 'ruhrnachrichten.de', 'rundschau-online.de', 'sandiegouniontribune.com', 'scmp.com', 'seekingalpha.com', 'telegraph.co.uk', 'tes.com', 'the-tls.co.uk', 'theatlantic.com', 'thebulletin.org', 'thecritic.co.uk', 'thetimes.co.uk', 'theweek.com', 'tuttosport.com', 'uol.com.br', 'vol.at', 'wsj.com'].concat(be_roularta_domains, ca_gcm_domains, ca_torstar_domains, de_funke_medien_domains, de_lv_domains, de_vrm_domains, de_vrm_custom_domains, de_westfalen_medien_domains, es_epiberica_domains, es_epiberica_custom_domains, es_grupo_vocento_domains, es_unidad_domains, fr_groupe_ebra_domains, fr_groupe_la_depeche_domains, fr_groupe_nice_matin_domains, it_gedi_domains, it_quotidiano_domains, nl_dpg_media_domains, no_nhst_media_domains, timesofindia_domains, usa_hearst_comm_domains, usa_mcc_domains);
var arr_localstorage_hold = ['augsburger-allgemeine.de', 'barrons.com', 'business-standard.com', 'businessinsider.com', 'businessoffashion.com', 'businesspost.ie', 'challenges.fr', 'charliehebdo.fr', 'cmjornal.pt', 'columbian.com', 'corriere.it', 'corrieredellosport.it', 'cyclingtips.com', 'digiday.com', 'dvhn.nl', 'economictimes.com', 'eldiario.es', 'elespanol.com', 'elle.fr', 'elpais.com', 'elperiodico.com', 'enotes.com', 'estadao.com.br', 'forbes.com', 'fortune.com', 'freiepresse.de', 'gauchazh.clicrbs.com.br', 'globo.com', 'ilfoglio.it', 'inc42.com', 'indianexpress.com', 'indiatoday.in', 'inews.co.uk', 'janes.com', 'ksta.de', 'kurier.at', 'lanouvellerepublique.fr', 'latimes.com', 'lc.nl', 'lesechos.fr', 'livemint.com', 'mid-day.com', 'mundodeportivo.com', 'nationalreview.com', 'nrc.nl', 'nw.de', 'nwzonline.de', 'nytimes.com', 'nzherald.co.nz', 'record.pt', 'ruhrnachrichten.de', 'rundschau-online.de', 'sandiegouniontribune.com', 'scmp.com', 'seekingalpha.com', 'techinasia.com', 'telegraph.co.uk', 'tes.com', 'the-tls.co.uk', 'theatlantic.com', 'thebulletin.org', 'thecritic.co.uk', 'thetimes.co.uk', 'theweek.com', 'tuttosport.com', 'uol.com.br', 'vol.at', 'wsj.com'].concat(be_roularta_domains, ca_gcm_domains, ca_torstar_domains, de_funke_medien_domains, de_lv_domains, de_vrm_domains, de_vrm_custom_domains, de_westfalen_medien_domains, es_epiberica_domains, es_epiberica_custom_domains, es_grupo_vocento_domains, es_unidad_domains, fr_groupe_ebra_domains, fr_groupe_la_depeche_domains, fr_groupe_nice_matin_domains, it_gedi_domains, it_quotidiano_domains, nl_dpg_media_domains, no_nhst_media_domains, timesofindia_domains, usa_hearst_comm_domains, usa_mcc_domains);
if (!matchDomain(arr_localstorage_hold)) {
window.localStorage.clear();
}

@ -38,11 +38,11 @@ function renderOptions() {
}, function (items) {
var sites = items.sites;
var sites_updated = items.sites_updated;
var sites_updated_domains_new = Object.values(sites_updated).filter(x => x.domain && !defaultSites_domains.includes(x.domain)).map(x => x.domain);
var sites_updated_domains_new = Object.values(sites_updated).filter(x => (x.domain && !defaultSites_domains.includes(x.domain) || x.group)).map(x => x.group ? x.group.filter(y => !defaultSites_domains.includes(y)) : x.domain).flat();
var sites_custom = items.sites_custom;
var sites_custom_domains = Object.values(sites_custom).filter(x => x.domain && x.domain !== '###').map(x => x.domain);
var sites_custom_domains_new = Object.values(sites_custom).filter(x => x.domain && !defaultSites_domains.includes(x.domain)).map(x => x.group ? x.group.split(',').map(x => x.trim()) : x.domain).flat();
var perm_origins = sites_custom_domains.concat(sites_updated_domains_new).map(x => '*://*.' + x + '/*');
var perm_origins = sites_custom_domains_new.concat(sites_updated_domains_new).filter(x => !x.includes('###')).map(x => '*://*.' + x + '/*');
var perm_custom = document.getElementById('perm-custom');
ext_api.permissions.contains({
origins: perm_origins

@ -160,8 +160,11 @@ function add_options() {
if (elem.dataset.value) {
if (elem.checked)
sites_custom[title][elem.dataset.key] = parseInt(elem.dataset.value);
} else if (elem.value)
} else if (elem.value) {
if (elem.dataset.key === 'group')
elem.value = elem.value.replace(/(\s|www\.)/g, '');
sites_custom[title][elem.dataset.key] = elem.value;
}
}
}
@ -238,6 +241,7 @@ function edit_options() {
var edit_site = sites_custom[title];
document.querySelector('input[data-key="title"]').value = title;
document.querySelector('input[data-key="domain"]').value = edit_site.domain;
document.querySelector('textarea[data-key="group"]').value = edit_site.group ? edit_site.group : '';
document.querySelector('input[data-key="allow_cookies"]').checked = (edit_site.allow_cookies > 0);
document.querySelector('input[data-key="remove_cookies"]').checked = (edit_site.remove_cookies > 0);
document.querySelector('select[data-key="useragent"]').selectedIndex = (edit_site.googlebot > 0) ? 1 : useragent_options.indexOf(edit_site.useragent);
@ -293,6 +297,7 @@ function renderOptions() {
sites_updated: {}
}, function (items) {
var sites_custom = items.sites_custom;
var sites_custom_domains_new = Object.values(sites_custom).filter(x => x.domain && !defaultSites_domains.includes(x.domain)).map(x => x.group ? x.group.split(',').map(x => x.trim()) : x.domain).flat();
var sites_updated = items.sites_updated;
var sites_updated_domains_new = Object.values(sites_updated).filter(x => (x.domain && !defaultSites_domains.includes(x.domain) || x.group)).map(x => x.group ? x.group.filter(y => !defaultSites_domains.includes(y)) : x.domain).flat();
var sitesEl = document.getElementById('bypass_sites');
@ -312,6 +317,7 @@ function renderOptions() {
var add_checkboxes = {
'title': 0,
'domain': 0,
'group': 0,
'allow_cookies': 1,
'remove_cookies': 1,
'useragent': 0,
@ -352,7 +358,7 @@ function renderOptions() {
inputEl.appendChild(option);
}
} else {
if (!['cs_code'].includes(key)) {
if (!['cs_code', 'group'].includes(key)) {
inputEl = document.createElement('input');
inputEl.size = 25;
} else {
@ -363,6 +369,7 @@ function renderOptions() {
let placeholders = {
title: 'Example',
domain: 'example.com',
group: 'example1.com,example2.com',
block_js_inline: '\\.example\\.com\\/article\\/',
block_regex: '\\.example\\.com\\/js\\/',
amp_redirect: 'div.paywall',
@ -393,12 +400,12 @@ function renderOptions() {
selectEl.id = 'sites';
selectEl.size = 6;
var optionEl;
perm_origins = [];
for (let key in sites_custom) {
optionEl = document.createElement('option');
let domain = sites_custom[key]['domain'];
if (domain && domain !== '###')
perm_origins.push(domain);
let group = sites_custom[key]['group'];
let isDefaultSite = defaultSites_domains.includes(domain);
optionEl.text = isDefaultSite ? '*' : '';
optionEl.text += key + ': ' + domain +
@ -433,7 +440,7 @@ function renderOptions() {
custom_sitesEl.appendChild(labelEl);
}
perm_origins = perm_origins.concat(sites_updated_domains_new).map(x => '*://*.' + x + '/*');
perm_origins = sites_custom_domains_new.concat(sites_updated_domains_new).filter(x => !x.includes('###')).map(x => '*://*.' + x + '/*');
var perm_custom = document.getElementById('perm-custom');
ext_api.permissions.contains({
origins: perm_origins

@ -5,7 +5,7 @@ function save_options() {
var textareaEl = document.querySelector('#excluded_sites textarea');
var sites_excluded = [];
if (textareaEl.value !== '')
var sites_excluded = textareaEl.value.split(',').map(function(item) { return item.trim().replace('www.', ''); });
var sites_excluded = textareaEl.value.split(',').map(x => x.trim().replace('www.', ''));
ext_api.storage.local.set({
sites_excluded: sites_excluded
}, function () {
@ -20,7 +20,7 @@ function sort_options() {
var textareaEl = document.querySelector('#excluded_sites textarea');
var sites_excluded = [];
if (textareaEl.value !== '') {
var sites_excluded = textareaEl.value.split(',').map(function(item) { return item.trim().replace('www.', ''); });
var sites_excluded = textareaEl.value.split(',').map(x => x.trim().replace('www.', ''));
var sites_excluded_sorted = sites_excluded.sort();
textareaEl.value = sites_excluded_sorted.join();
}

Loading…
Cancel
Save