webViper a versatile, and easy to use web cleaner (not content blocker!) based on rule sets. There is a example rule for Gog.com below. Filter rules and keywords can be set for each website individually. Global keywords can be used for all website defined rules.
Note: In the "addon" version, there is a easy Import Rulesets function in the UI.. for testing. ;)
- as experimental addon (currently disabled, because broken and outdated!) for Firefox
- webViper-userScript.js for usage with a browser "userscript"-addons like Firemonkey user script and css manager
The definition for websites is in const baseRuleSet = { ... }, below a example.
Note: This is not valid JSON for import of a rule, for a JSON example, refer to: webViper-rule-template.json
/ ---------------------------------------------------------------------------------------
// webpage example rule with notes - use "webViper-rule-template.json" instead for copy and paste!
// --------------------------------------------------------------------------------------
'gog.com': {
keywords: ['in library', 'in der bibliothek'], // Keywords for the website (case insensitive)
excludes: [], // Keywords to exclude if present (superseeds "keywords")
removeElement: true, // Should we do something if found?
showUnhide: true, // Should elements be available for unhiding using mouseover?
animateUnhide: true, // Should there be a animation when unhiding on mouseover?
elementContainers: {
'span.product-label__text': [ // This is the source where the "keywords" appear in
'.swiper-slide:has(big-spot)', // This is a parent container, which should be replaced
'.paginated-products-grid ~ a.product-tile', // Another parent
'products-section-layout ~ a.product-tile', // Order can matter.
'product-tile:has(store-picture)',
],
},
// MutationObserver directive
// Very much experiemental, not in UI yet, in short, clean viped elements during data change on the website.
//
// If element in observerContainers:
// "key" (css selector parent) change from [ "mutation observer type", remove viped elements in "(css) target"]
//
// What it does, call a clearing routine and also (re)attach mutation observers to the nodes accordingly.
// Multiple obsevers can be used/attached.
//
// Note: This is purely optional.
//
observerContainers: {
// c => childList // THIS
// a => attributes // AND/OR THIS
// s => subtree // Optional
'.paginated-products-grid': ['c', 'paginated-products-grid'],
// '.anoterObserverSelector': ['as', 'targetToClean'], // for reference
},
};
// -----------------------------------------------------------------------------------
// webpage rules end
// -----------------------------------------------------------------------------------For easier editing, the file webViper-rule-template.json contains a basic template for easy copy and paste into the userscript.
Note: There is also a Import Rulesets functionality in the addon UI version if you want to swap rules easily. :)
Note: There is sometimes helpful output in the web developer console. Usually the web developer console can be opened using, the F12-key from within your browser (Firefox, Chrome...).
In case of help for websites, you can open a issue with the url (of course!) and a example keyword and at best, a screenshot where the content appears on the website!
Issue can be reported at issues: https://github.com/jrie/webViper/issues
Everyone at the Laucharme for bearing with me/us.. ;)
The source of the nice viper image is of https://reptilesmagazine.com - I just made some post artwork.
