https://github.com/jrie/webviper
wipe the web using the viper
https://github.com/jrie/webviper
addon browser clean extension hide keywords purify userscript web
Last synced: 23 days ago
JSON representation
wipe the web using the viper
- Host: GitHub
- URL: https://github.com/jrie/webviper
- Owner: jrie
- License: gpl-3.0
- Created: 2025-01-25T19:45:38.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-25T20:42:10.000Z (over 1 year ago)
- Last Synced: 2025-01-25T21:24:08.443Z (over 1 year ago)
- Topics: addon, browser, clean, extension, hide, keywords, purify, userscript, web
- Language: JavaScript
- Homepage:
- Size: 21.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# webViper

## webViper in short
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 (not yet live!), there are easy to use ***Import Rulesets*** and ***Export rule*** functions in the UI.. for testing. ;)
### Feature video of the addon (not yet in addon stores) version as of 2026/04/06
[webviper-UI-2026-04-06.webm](https://github.com/user-attachments/assets/02e917cd-6ce8-4e3a-8152-18eca3d01b35)
---
## Usage options
- as experimental *addon* (currently disabled, because broken and outdated!) for [Firefox](https://addons.mozilla.org/en-US/firefox/addon/webviper/)
- *webViper-userScript.js* for usage with a browser "userscript"-addons like *Firemonkey* user script and css manager
### Filter rules, how to get clearing out working
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`
```javascript
/ ---------------------------------------------------------------------------------------
// 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
// -----------------------------------------------------------------------------------
```
## Rule template for usage as userscript
For easier editing, the file `webViper-rule-template.json` contains a basic template for easy copy and paste into the userscript.
**Note:** There are easy to use ***Import Rulesets*** and ***Export rule*** functions in the UI if you want to swap rules easily. :)
---
## Help, support and issues or bugs
**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
---
### Credits and kudos - shoutout!
Everyone at the *Laucharme* for bearing with me/us.. ;)
### And this fantastic cover art?
The source of the nice viper image is *[https://reptilesmagazine.com](https://reptilesmagazine.com)* - I just made some post artwork.