commit 50fb530d6fc39a1cd6cbfecb523d21a594b553db Author: lebr0nli Date: Thu Oct 29 13:55:41 2020 +0800 first uploaded diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..8ff0fdb Binary files /dev/null and b/.DS_Store differ diff --git a/sample/after.png b/sample/after.png new file mode 100644 index 0000000..b68ed8b Binary files /dev/null and b/sample/after.png differ diff --git a/sample/before1.png b/sample/before1.png new file mode 100644 index 0000000..ef2c680 Binary files /dev/null and b/sample/before1.png differ diff --git a/sample/before2.png b/sample/before2.png new file mode 100644 index 0000000..b5466eb Binary files /dev/null and b/sample/before2.png differ diff --git a/slader-limit-bypass/.DS_Store b/slader-limit-bypass/.DS_Store new file mode 100644 index 0000000..d654e08 Binary files /dev/null and b/slader-limit-bypass/.DS_Store differ diff --git a/slader-limit-bypass/README.md b/slader-limit-bypass/README.md new file mode 100644 index 0000000..86645a9 --- /dev/null +++ b/slader-limit-bypass/README.md @@ -0,0 +1,26 @@ + + +# Slader Chrome Extension! + +Bypass Slader's 5 solutions limit per month to college books and remove the paywall about how many solutions left + + +# Screenshot + +* Before + +![1](https://raw.githubusercontent.com/lebr0nli/bookroll-extension/main/sample/before1.png) +![2](https://raw.githubusercontent.com/lebr0nli/bookroll-extension/main/sample/before2.png) + +* After + +![3](https://raw.githubusercontent.com/lebr0nli/bookroll-extension/main/sample/after.png) + +# Usage + + +擴充功能->開發人員選項->載入未封裝套件->選擇"slader-bypass"資料夾 + + +# 注意 + diff --git a/slader-limit-bypass/js/background.js b/slader-limit-bypass/js/background.js new file mode 100644 index 0000000..a4ec9ea --- /dev/null +++ b/slader-limit-bypass/js/background.js @@ -0,0 +1,29 @@ +chrome.webRequest.onBeforeSendHeaders.addListener(function(details) { + + var newxff = (Math.floor((Math.random()*100000000))).toString(); + var gotxff = false; + for(var n in details.requestHeaders){ + gotxff = details.requestHeaders[n].name.toLowerCase()=="x-forwarded-for"; + if(gotxff){ + details.requestHeaders[n].value = newxff; + break; + } + } + if(!gotxff){ + details.requestHeaders.push({name:"X-Forwarded-For",value:newxff}); + } + console.log(details); + return { requestHeaders: details.requestHeaders }; +}, { + urls: ['*://*.slader.com/*'] +}, ['blocking', 'requestHeaders']); + + + + + +chrome.webRequest.onSendHeaders.addListener(function(details) { + console.log(details.requestHeaders); + return { requestHeaders: details.requestHeaders }; +}, {urls: ['*://*.slader.com/textbook/*']}, + ['requestHeaders']); \ No newline at end of file diff --git a/slader-limit-bypass/js/content_script.js b/slader-limit-bypass/js/content_script.js new file mode 100644 index 0000000..1e09608 --- /dev/null +++ b/slader-limit-bypass/js/content_script.js @@ -0,0 +1,26 @@ +var elem1removed = false; +var elemParent = document.body; /* or whatever */ + + +var observer = new MutationObserver(function(mutations) { + mutations.forEach(function(mutation) { + if (mutation.addedNodes && (mutation.addedNodes.length > 0)) { + var node1 = mutation.target.querySelector('section.Paywall__footer-counter'); + if (node1) { + node1.parentNode.removeChild(node1); + elem1removed = true; + + } + + if (elem1removed) { + observer.disconnect(); + } + } + }); +}); + + +observer.observe(elemParent, { + childList: true, + subtree: true +}); \ No newline at end of file diff --git a/slader-limit-bypass/manifest.json b/slader-limit-bypass/manifest.json new file mode 100644 index 0000000..7738efe --- /dev/null +++ b/slader-limit-bypass/manifest.json @@ -0,0 +1,24 @@ +{ + "name": "slader bypass", + "version": "0.1", + "author":"Alan Li", + "description": "slader 5 solutions limit bypass", + "permissions": [ + "webRequest", + "webRequestBlocking", + "*://*.slader.com/*" + ], + "background": { + "scripts": [ + "js/background.js" + ], + "persistent": true + }, + "content_scripts": [ + { + "matches": ["*://*.slader.com/textbook/*"], + "js": ["js/content_script.js"] + } +], + "manifest_version": 2 + }