Skip to content
This repository has been archived by the owner on Dec 7, 2019. It is now read-only.
/ no-adb-killer Public archive

πŸŽ‰ Avoid the Adblock killers, enjoy the ad-free website again!

Notifications You must be signed in to change notification settings

lucasmrdt/no-adb-killer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ‘ˆπŸ»πŸš« No AdBlock-Killer

Have you ever had to disable adblock on a website? Thanks to no-adblock-killer, keep enjoying the ad-free website!

IMAGE ALT TEXT HERE

πŸŽ‰ Instalation Is So Easy !

chrome Chrome Extension

πŸŽ› How does it works ?

Adblock-killers are located in website source code, each using a different means to detect them.

This extension simply modifies a small part of the source code (1-10 chars) where the adblock is detected.


There is also more options avaibles to disable adblock-killer.

Check the config.json or npm run config:display to see what's changing on which website.

βœ… Tests

npm test
πŸ—‘  Clearing
πŸ“ Building scripts
🈺 Minifying configuration
βœ… 'config.min.json' file is now minfified.
πŸ“Ž Building extension
πŸ•‘ Testing


  #CONFIG
    βœ“ should read config
    βœ“ should have correct config file
    βœ“ should get the initial script (719ms)
    βœ“ should read the replaced script
    βœ“ should have unique name
    βœ“ should have correct differences
    βœ“ should have correct chrome pattern


  7 passing (744ms)

⌨️ Usefull Commands

Name Command Description
start npm start Start the construction in watch mode. Any changes on src/ will automatically rebuild the extension.
πŸ”§ development mode
build npm run build Build the project.
πŸ“¦ production mode
config npm run build:config Build the config.json.
This is not an automated task, so if you edit config.json please run it.
display npm run config:display Display the config.build.json user-friendly.

πŸ‘€ Quick View Of The Architecture

Path Description
dist/ πŸ“ Where scripts are built and ready to run.
app/ πŸ–₯ The built chrome extension.
static/config.json πŸ’Ύ Where actions of each site are written.
See here to know how it's written.
static/config.build.json The built config of config.json.
⛔️ Don't edit it, it'll be updated automatically.

🌈 Contributor Friendly

How Can I Contribute ? (my advice πŸ˜‡)

1️⃣ Find the file where is written "the adblock killer".

I usualy use chrome devtools/networks and simply search for something likes "adblock" in javascript sources.

2️⃣ Then find the specific "code instruction" that spot your adblock.

For example for tf1.fr, I found this line that informs the website (if "e == true"), that user has an extension adblock by debugging the javascript code.

this.adblockIsActivated(function(e){if(e) //...

By modifying the variable e to false, I disable the adblock killer.

3️⃣ Write Your configuration.

I write a RegExp that can replace that instruction:
/this\.adblockIsActivated\(function\((\w+)\)\{if\(\w\)/
Β  Β  (Written as: {"from": "this\\.adblockIsActivated\\(function\\((\\w+)\\)\\{if\\(\\w\\)"} in the config.json)

I write the replaced content:
"this.adblockIsActivated(function($1){if(false)"
Β  Β  (Written as: {"to": "this.adblockIsActivated(function($1){if(false)"} in the config.json)

Note: Use the RegExp Block to match any variable name. Variable name can be changes during minor patch by the website owner. Eg. function(e) can became function(a) in a different webpack build.

4️⃣ Try Your Fix.

I update the config.json by respecting this template.
I npm run build:config to build a new config.build.json.
I npm start to build the extension.
Finaly I load the builded extension to test it in my browser.

5️⃣ Make Your PR πŸ™‚

Fork the repository if isn't yet done.
Push your contributions. And wait feedback ! πŸŽ‰


πŸ“ƒ Configuration (config.json)

The config.json contains an array of configuration.

Configuration Template

Key Type Value Example Description
action string "replace"
"redirect"
"cancel"
"replace" The action of your configuration.
name string any "6play" The website name.
pattern string any "https://www.6play.fr/player-fw-*" The Chrome Pattern URL.
url string any "https://www.6play.fr/player-fw-d18b7b5d33.bundle.js" The URL of the adblock killer script.

Replace Configuration

Key Type Example Description
from string (RegExp) "this\\.adblockIsActivated\\(function\\((\\w+)\\)\\{if\\(\\w+\\)" The excaped RegExp of the instruction to be replace.
to string "this.adblockIsActivated(function($1){if(false)" The replaced string to disable the adblock killer.

⚠️ Any Issue ? Find a website with an adblock killer ?

Go HERE and explain me what's wrong. πŸ€™πŸ»

βœ… Todo

  • Add Redirect and Cancel action documentation.

About

πŸŽ‰ Avoid the Adblock killers, enjoy the ad-free website again!

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published