All Projects → AliasIO → demodal

AliasIO / demodal

Licence: MIT license
Demodal is a browser extension that automatically removes content blocking modals including paywalls, discount offers, promts to sign up or enter your email address and more.

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects
shell
77523 projects

Projects that are alternatives of or similar to demodal

LAN-port-scan-forbidder
Forbid untrusted webs to access localhost or LAN. An anti-scan protection 🛡️🏡
Stars: ✭ 53 (-75%)
Mutual labels:  browser-extension
inject-jyutping
A browser extension that adds Cantonese pronunciation (Jyutping) on Chinese characters
Stars: ✭ 33 (-84.43%)
Mutual labels:  browser-extension
contrib-awakens
Play games in GitHub's contribution graph.
Stars: ✭ 37 (-82.55%)
Mutual labels:  browser-extension
Blazor.BrowserExtension
A package for building Browser Extension with Blazor WebAssembly application.
Stars: ✭ 207 (-2.36%)
Mutual labels:  browser-extension
ccsearch-browser-extension
[PROJECT TRANSFERRED] Cross-Browser extension to search, filter and use images in the public domain and under Creative Commons licenses.
Stars: ✭ 115 (-45.75%)
Mutual labels:  browser-extension
reaction-packs
Browser extensions to swap out Facebook's reactions for something a little more fun.
Stars: ✭ 32 (-84.91%)
Mutual labels:  browser-extension
SevenTV
A Web Extension implementing 7TV emotes and other features for integration in Twitch and YouTube chat. ⚠️ A full rewrite is in progress, avoid further contributions to this repo. See https://github.com/seventv/extensionv3
Stars: ✭ 205 (-3.3%)
Mutual labels:  browser-extension
refined-github
Browser extension that simplifies the GitHub interface and adds useful features
Stars: ✭ 19,066 (+8893.4%)
Mutual labels:  browser-extension
native-messaging
Native Messaging Host Protocol for Browser Extensions
Stars: ✭ 40 (-81.13%)
Mutual labels:  browser-extension
speckle-browser-extension
Universal browser extension for Web 3 and the Polkadot ecosystem
Stars: ✭ 28 (-86.79%)
Mutual labels:  browser-extension
Upvote-Anywhere
Upvote Anywhere Browser Extension
Stars: ✭ 339 (+59.91%)
Mutual labels:  browser-extension
kontext-browser-extension
Browser extension that adds context to certain German politicians
Stars: ✭ 79 (-62.74%)
Mutual labels:  browser-extension
soundfixer
A WebExtension that lets you fix sound problems in e.g. YouTube videos
Stars: ✭ 102 (-51.89%)
Mutual labels:  browser-extension
togglific
Do you find web animations distracting? Togglific provides a distraction-free web experience!
Stars: ✭ 17 (-91.98%)
Mutual labels:  browser-extension
vue-telescope-extensions
Browser extensions for Vue Telescope
Stars: ✭ 121 (-42.92%)
Mutual labels:  browser-extension
octoview
The missing preview feature for GitHub
Stars: ✭ 52 (-75.47%)
Mutual labels:  browser-extension
Twitter-Links-beta
A browser extension to show the latest tweets that link to the current page.
Stars: ✭ 70 (-66.98%)
Mutual labels:  browser-extension
opelete
💫 Browser extension that autocompletes Google search operator
Stars: ✭ 24 (-88.68%)
Mutual labels:  browser-extension
pocketizer
Unofficial Pocket new tab extension for Chrome, Firefox, and Edge
Stars: ✭ 43 (-79.72%)
Mutual labels:  browser-extension
colorful-qrcode
Simple & colorful QR code generator with chrome extension
Stars: ✭ 13 (-93.87%)
Mutual labels:  browser-extension

Demodal

Demodal is a browser extension that automatically removes content blocking modals including paywalls, discount offers, promts to sign up or enter your email address and more.

Modal dialogues such as paywalls, discount offers, cookie prompts and GDPR banners are user-hostile interfaces that demand your attention and interrupt your browsing experience. Demodal puts you back in control, letting you focus on the content.

Installation

Google Chrome

https://chrome.google.com/webstore/detail/demodal/fjhbdkfknppikobblnjibmkmogjeffcf

Install locally:

  • Clone this repository
  • Run ./run manifest v3 or copy manifest-v3.json to manifest.json
  • Go to about:extensions
  • Enable 'Developer mode'
  • Click 'Load unpacked'
  • Select the project folder

Mozilla Firefox

https://addons.mozilla.org/firefox/addon/demodal

Install locally:

  • Clone this repository
  • Run ./run manifest v2 or copy manifest-v2.json to manifest.json
  • Go go about:debugging#/runtime/this-firefox
  • Click 'Load Temporary Add-on'
  • Select manifest.json

Contributing

This extension is in early development. You can help by reporting websites with modals that didn't get blocked, or by creating your own definitions and sharing them with us and the community. The aim is to build up a comprehensive set of rules over time to block modals anywhere.

Demodal is not an ad-blocker. Only create definitions for UI elements that intefere with reading of content.

When submitting a pull request, please include a screenshot of the element that's being blocked and a link to a website to test.

Every definition should clearly match one modal type (e.g. consent request or paywall). Don't create overly broad definitions (e.g. div.modal) that could block legimitate modals.

Specification

Modal types

Type Description
consent Cookie and GDPR notices.
donate Prompts to make a donation.
email Prompts to enter your email address.
message General messages and notifications.
offer Promotions and discounts.
paywall Prompts to sign up for a paid subscription.
signup Prompts to create an account.

Definitions

Definitions are located in /definitions, file-separated by modal type. Definitions are grouped by URL pattern.

{
  "<glob> [ <glob> ... ]": { // URL pattern
    // Definition
    "if <function> [ <function> ... ]": { // Condition
      "<selector>": "<function> [ <argument> ... ]" // Action
    },
    // Definition (shorthand, no condition)
    "<selector>": "<function> [ <argument> ... ]" // Action
  }
}

Examples

{
  "*.example.com *.example.org": {
    "if $(.modal)": {
      ".modal": "remove" // Remove element if present
    },
    ".modal": "addClass hide" // Remove element (shorthand)
    "if defined(ModalDialog)": {
      "ModalDialog.close": "call" // Call function if defined
    },
    "if defined(ModalDialog)": {
      "ModalDialog.setClosed": "call true" // Call function with arguments
    },      
  }
}

URL pattern

URL patterns are defined as globs, allowing wildcards (*).

Glob Matches
* Any URL.
*.example.com Apex domain and any subdomain, e.g. example.com, www.example.com.
example.com example.org example.com and example.org.
*.example.com/*/about E.g. www.example.com/en/about.

Conditions

Conditions start with if, followed by one or more functions. If all functions evaluate to true, the specified actions are run.

Functions

Function Argument Description
$() Query selector Tests if an HTML element exists.
defined() JavaScript property Tests if a JavaScript property exists.
sleep() Time in milliseconds Returns true after the specified time has passed

Actions

Actions are run when the condition is met, or if no condition is specified.

Functions

Function Argument Description
remove Remove the HTML element.
removeParent Number Remove parent node.
removeIf String Remove the HTML element if its text content matches a string.
addClass Class name Add a class.
removeClass Class name Remove a class.
addStyle Styles Appends CSS to the style attribute.
removeStyle Clears the style attribute.
click Click the HTML element.
call Call the function. Any arguments will be passed to the function.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].