From 4ecacef7c3065ae83dde910b94eedfcdcf551b84 Mon Sep 17 00:00:00 2001 From: Amm0ni4 Date: Sat, 5 Oct 2024 20:14:06 +0200 Subject: [PATCH] added bypass for rinku.me by Anon991299 https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/issues/165 https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/issues/92 --- Bypass_All_Shortlinks.meta.js | 3 +- Bypass_All_Shortlinks.user.js | 97 +++++++++++++++++++++++++++++++++- extra_bypasses/rinku.user.js | 99 +++++++++++++++++++++++++++++++++++ supported_sites.txt | 1 + 4 files changed, 198 insertions(+), 2 deletions(-) create mode 100644 extra_bypasses/rinku.user.js diff --git a/Bypass_All_Shortlinks.meta.js b/Bypass_All_Shortlinks.meta.js index 85c0a47..89c5ad6 100644 --- a/Bypass_All_Shortlinks.meta.js +++ b/Bypass_All_Shortlinks.meta.js @@ -4,7 +4,7 @@ // @run-at document-start // @author Amm0ni4 // @noframes -// @version 92.8.6 +// @version 92.8.7 // @grant GM_setValue // @grant GM_getValue // @grant GM_addStyle @@ -731,6 +731,7 @@ // @include /filecrypt.(cc|co)/ // @include /^(https?:\/\/)(?!(bypass.city|adbypass.org))(linkvertise.com|(linkvertise|link-to).net)/ // @include /(mega-enlace|acortados).com/ +// @include /^(https?:\/\/)(.+)?((actualpost|americanstylo|beautifulfashionnailart|dadinthemaking|glowandglamcorner|listofthis|lobirtech).com)(\/.*)/ // @include /(work.ink|workink.click)\/.*$/ // @resource NOTYF_CSS https://cdn.jsdelivr.net/npm/notyf@3/notyf.min.css // @require https://cdn.jsdelivr.net/npm/notyf@3/notyf.min.js diff --git a/Bypass_All_Shortlinks.user.js b/Bypass_All_Shortlinks.user.js index 052c7fb..a5e69e4 100644 --- a/Bypass_All_Shortlinks.user.js +++ b/Bypass_All_Shortlinks.user.js @@ -4,7 +4,7 @@ // @run-at document-start // @author Amm0ni4 // @noframes -// @version 92.8.6 +// @version 92.8.7 // @grant GM_setValue // @grant GM_getValue // @grant GM_addStyle @@ -731,6 +731,7 @@ // @include /filecrypt.(cc|co)/ // @include /^(https?:\/\/)(?!(bypass.city|adbypass.org))(linkvertise.com|(linkvertise|link-to).net)/ // @include /(mega-enlace|acortados).com/ +// @include /^(https?:\/\/)(.+)?((actualpost|americanstylo|beautifulfashionnailart|dadinthemaking|glowandglamcorner|listofthis|lobirtech).com)(\/.*)/ // @include /(work.ink|workink.click)\/.*$/ // @resource NOTYF_CSS https://cdn.jsdelivr.net/npm/notyf@3/notyf.min.css // @require https://cdn.jsdelivr.net/npm/notyf@3/notyf.min.js @@ -2784,6 +2785,100 @@ })(); // --------- +// ----- Bypass Rinku ------ +// source: https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/issues/165 +// example: https://rinku.me/0XLi6 +(function() { + "use strict"; + + const domainRegex = /(actualpost|americanstylo|beautifulfashionnailart|dadinthemaking|glowandglamcorner|listofthis|lobirtech).com/ + + if (domainRegex.test(window.location.href)) { + + window.addEventListener('load', function() { + + // Override the hasFocus function + document.hasFocus = function() { + return true; // Always return true + }; + + // Function to check for "Click Any Ad & Keep It Open For 15 Seconds To Continue" and reload the page if it exists + function checkForMessage() { + const paragraphs = document.getElementsByTagName("p"); + for (let p of paragraphs) { + if (p.textContent.includes("Click Any Ad & Keep It Open For 15 Seconds To Continue") || p.textContent.includes("Click Any Ad & Keep It Open For 15 Seconds To Unlock Captcha")) { + console.log("Detected the message. Reloading the page..."); + //alert("Unbypassable page type. Reloading the page..."); + window.location.reload(); // Reload the page + return; // Exit the function after reloading + } + } + } + + // Function to check and click the button + function clickStepButton() { + const buttons = document.querySelectorAll("button"); + for (let button of buttons) { + if (button.textContent.includes("Step") && isElementVisibleAndEnabled(button)) { + button.click(); + console.log("Clicked the button: ", button); + return; // Stop after clicking the first found button + } + } + } + + // Function to observe button changes + function observeButtons() { + const buttons = document.querySelectorAll("button"); + buttons.forEach(button => { + const observer = new MutationObserver(() => { + // Check if the button is enabled or visibility changed + if (isElementVisibleAndEnabled(button)) { + clickStepButton(); // Attempt to click if it meets criteria + } + }); + observer.observe(button, { + attributes: true, + attributeFilter: ["disabled"] // Observe changes to the disabled attribute + }); + }); + } + + // Helper function to determine if an element is visible and enabled + function isElementVisibleAndEnabled(el) { + // Check if the element and all its parents are visible + let currentElement = el; + while (currentElement) { + const style = getComputedStyle(currentElement); + if (style.display === "none" || style.visibility === "hidden") { + return false; // Element or parent is not visible + } + currentElement = currentElement.parentElement; // Move up the DOM tree + } + // Check if the button is enabled + return !el.disabled; + } + + // Create a MutationObserver to detect DOM changes + const observer = new MutationObserver(clickStepButton); + + // Observe changes in the entire document + observer.observe(document.body, { + childList: true, + subtree: true + }); + + // Initial checks + observeButtons(); + checkForMessage(); + clickStepButton(); + + }); + + } +})(); +// ----- End Bypass Rinku ----- + // ----- Bypass work.ink ---- original script by lem6ns: https://greasyfork.org/en/scripts/463481-work-ink-bypasser (function() { 'use strict'; diff --git a/extra_bypasses/rinku.user.js b/extra_bypasses/rinku.user.js new file mode 100644 index 0000000..5e63aaf --- /dev/null +++ b/extra_bypasses/rinku.user.js @@ -0,0 +1,99 @@ +// ==UserScript== +// @name Rinku autoclick +// @include /^(https?:\/\/)(.+)?((actualpost|americanstylo|beautifulfashionnailart|dadinthemaking|glowandglamcorner|listofthis|lobirtech).com)(\/.*)/ +// @run-at document-start +// ==/UserScript== + +// ----- Bypass Rinku ------ +// source: https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/issues/165 +// example: https://rinku.me/0XLi6 +(function() { + "use strict"; + + const domainRegex = /(actualpost|americanstylo|beautifulfashionnailart|dadinthemaking|glowandglamcorner|listofthis|lobirtech).com/ + + if (domainRegex.test(window.location.href)) { + + window.addEventListener('load', function() { + + // Override the hasFocus function + document.hasFocus = function() { + return true; // Always return true + }; + + // Function to check for "Click Any Ad & Keep It Open For 15 Seconds To Continue" and reload the page if it exists + function checkForMessage() { + const paragraphs = document.getElementsByTagName("p"); + for (let p of paragraphs) { + if (p.textContent.includes("Click Any Ad & Keep It Open For 15 Seconds To Continue") || p.textContent.includes("Click Any Ad & Keep It Open For 15 Seconds To Unlock Captcha")) { + console.log("Detected the message. Reloading the page..."); + //alert("Unbypassable page type. Reloading the page..."); + window.location.reload(); // Reload the page + return; // Exit the function after reloading + } + } + } + + // Function to check and click the button + function clickStepButton() { + const buttons = document.querySelectorAll("button"); + for (let button of buttons) { + if (button.textContent.includes("Step") && isElementVisibleAndEnabled(button)) { + button.click(); + console.log("Clicked the button: ", button); + return; // Stop after clicking the first found button + } + } + } + + // Function to observe button changes + function observeButtons() { + const buttons = document.querySelectorAll("button"); + buttons.forEach(button => { + const observer = new MutationObserver(() => { + // Check if the button is enabled or visibility changed + if (isElementVisibleAndEnabled(button)) { + clickStepButton(); // Attempt to click if it meets criteria + } + }); + observer.observe(button, { + attributes: true, + attributeFilter: ["disabled"] // Observe changes to the disabled attribute + }); + }); + } + + // Helper function to determine if an element is visible and enabled + function isElementVisibleAndEnabled(el) { + // Check if the element and all its parents are visible + let currentElement = el; + while (currentElement) { + const style = getComputedStyle(currentElement); + if (style.display === "none" || style.visibility === "hidden") { + return false; // Element or parent is not visible + } + currentElement = currentElement.parentElement; // Move up the DOM tree + } + // Check if the button is enabled + return !el.disabled; + } + + // Create a MutationObserver to detect DOM changes + const observer = new MutationObserver(clickStepButton); + + // Observe changes in the entire document + observer.observe(document.body, { + childList: true, + subtree: true + }); + + // Initial checks + observeButtons(); + checkForMessage(); + clickStepButton(); + + }); + + } +})(); +// ----- End Bypass Rinku ----- diff --git a/supported_sites.txt b/supported_sites.txt index 66a820e..b6d9df7 100644 --- a/supported_sites.txt +++ b/supported_sites.txt @@ -711,4 +711,5 @@ https://paster.so/* /filecrypt.(cc|co)/ /^(https?:\/\/)(?!(bypass.city|adbypass.org))(linkvertise.com|(linkvertise|link-to).net)/ /(mega-enlace|acortados).com/ +/^(https?:\/\/)(.+)?((actualpost|americanstylo|beautifulfashionnailart|dadinthemaking|glowandglamcorner|listofthis|lobirtech).com)(\/.*)/ /(work.ink|workink.click)\/.*$/