diff --git a/Bypass_All_Shortlinks.meta.js b/Bypass_All_Shortlinks.meta.js
index aa717d4..a474e08 100644
--- a/Bypass_All_Shortlinks.meta.js
+++ b/Bypass_All_Shortlinks.meta.js
@@ -3,7 +3,7 @@
// @namespace Violentmonkey Scripts
// @run-at document-start
// @author Amm0ni4
-// @version 91.6.6
+// @version 91.6.7
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_addStyle
@@ -637,6 +637,7 @@
// @match *://*.sigmalinks.in/*
// @match *://*.r1.foxylinks.site/*
// @grant GM_deleteValue
+// @grant GM_getResourceText
// @include /^(https?:\/\/)((ebaticalfel|megadropsz|stownrusis|iedprivatedqu).com)\/s\?/
// @include /adbypass.eu/
// @include /(bypass.city|adbypass.org)\/bypass\?bypass=/
@@ -752,6 +753,8 @@
// @include /linegee.net|intercelestial.com/
// @include /(loot-link.com|loot-links.com|lootlink.org|lootlinks.co|lootdest.(info|org|com)|links-loot.com|linksloot.net)\/s\?.*$/
// @include /mega-enlace.com/
+// @include /(work.ink|workink.click)\/.*$/
+// @require https://cdn.jsdelivr.net/npm/notyf@3/notyf.min.js
// @exclude /^(https?:\/\/)(.+)?((advertisingexcel|talkforfitness|rsadnetworkinfo|rsinsuranceinfo|rsfinanceinfo|rssoftwareinfo|rshostinginfo|rseducationinfo|gametechreviewer|vegan4k|phineypet|batmanfactor|techedifier|urlhives|linkhives|github|freeoseocheck|greenenez|aliyun|reddit|bing|yahoo|wiki-topia|edonmanor|vrtier|whatsapp|gearsadviser|edonmanor|tunebug|menrealitycalc|amazon|ebay|payoneer|paypal|skrill|stripe|tipalti|wise|discord|tokopedia|taobao|taboola|aliexpress|netflix|citigroup|spotify|bankofamerica|hsbc|(cloud|mail|translate|analytics|accounts|myaccount|contacts|clients6|developers|payments|pay|ogs|safety|wallet).google|(login|signup|account|officeapps|api|mail|hotmail).live).com|(thumb8|thumb9|crewbase|crewus|shinchu|shinbhu|ultraten|uniqueten|topcryptoz|allcryptoz|coinsvalue|cookinguide|cryptowidgets|webfreetools|carstopia|makeupguide|carsmania|nflximg|doubleclick).net|(linksfly|shortsfly|urlsfly|wefly|blog24).me|(greasyfork|openuserjs|adarima|telegram|wikipedia).org|mcrypto.club|misterio.ro|insurancegold.in|coinscap.info|chefknives.expert|(shopee|lazada|rakuten|maybank).*|(dana|ovo|bca.co|bri.co|bni.co|bankmandiri.co|desa|(.*).go).id|(.*).edu|(.*).gov)(\/.*)/
// @downloadURL https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/raw/branch/main/Bypass_All_Shortlinks.user.js
// @updateURL https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/raw/branch/main/Bypass_All_Shortlinks.meta.js
diff --git a/Bypass_All_Shortlinks.user.js b/Bypass_All_Shortlinks.user.js
index cb6a62d..2055ff6 100644
--- a/Bypass_All_Shortlinks.user.js
+++ b/Bypass_All_Shortlinks.user.js
@@ -3,7 +3,7 @@
// @namespace Violentmonkey Scripts
// @run-at document-start
// @author Amm0ni4
-// @version 91.6.6
+// @version 91.6.7
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_addStyle
@@ -637,6 +637,7 @@
// @match *://*.sigmalinks.in/*
// @match *://*.r1.foxylinks.site/*
// @grant GM_deleteValue
+// @grant GM_getResourceText
// @include /^(https?:\/\/)((ebaticalfel|megadropsz|stownrusis|iedprivatedqu).com)\/s\?/
// @include /adbypass.eu/
// @include /(bypass.city|adbypass.org)\/bypass\?bypass=/
@@ -752,6 +753,8 @@
// @include /linegee.net|intercelestial.com/
// @include /(loot-link.com|loot-links.com|lootlink.org|lootlinks.co|lootdest.(info|org|com)|links-loot.com|linksloot.net)\/s\?.*$/
// @include /mega-enlace.com/
+// @include /(work.ink|workink.click)\/.*$/
+// @require https://cdn.jsdelivr.net/npm/notyf@3/notyf.min.js
// @exclude /^(https?:\/\/)(.+)?((advertisingexcel|talkforfitness|rsadnetworkinfo|rsinsuranceinfo|rsfinanceinfo|rssoftwareinfo|rshostinginfo|rseducationinfo|gametechreviewer|vegan4k|phineypet|batmanfactor|techedifier|urlhives|linkhives|github|freeoseocheck|greenenez|aliyun|reddit|bing|yahoo|wiki-topia|edonmanor|vrtier|whatsapp|gearsadviser|edonmanor|tunebug|menrealitycalc|amazon|ebay|payoneer|paypal|skrill|stripe|tipalti|wise|discord|tokopedia|taobao|taboola|aliexpress|netflix|citigroup|spotify|bankofamerica|hsbc|(cloud|mail|translate|analytics|accounts|myaccount|contacts|clients6|developers|payments|pay|ogs|safety|wallet).google|(login|signup|account|officeapps|api|mail|hotmail).live).com|(thumb8|thumb9|crewbase|crewus|shinchu|shinbhu|ultraten|uniqueten|topcryptoz|allcryptoz|coinsvalue|cookinguide|cryptowidgets|webfreetools|carstopia|makeupguide|carsmania|nflximg|doubleclick).net|(linksfly|shortsfly|urlsfly|wefly|blog24).me|(greasyfork|openuserjs|adarima|telegram|wikipedia).org|mcrypto.club|misterio.ro|insurancegold.in|coinscap.info|chefknives.expert|(shopee|lazada|rakuten|maybank).*|(dana|ovo|bca.co|bri.co|bni.co|bankmandiri.co|desa|(.*).go).id|(.*).edu|(.*).gov)(\/.*)/
// @downloadURL https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/raw/branch/main/Bypass_All_Shortlinks.user.js
// @updateURL https://codeberg.org/Amm0ni4/bypass-all-shortlinks-debloated/raw/branch/main/Bypass_All_Shortlinks.meta.js
@@ -2410,3 +2413,186 @@
})();
// ----- ----- -----
+
+// ----- Bypass work.ink ---- original script by lem6ns: https://greasyfork.org/en/scripts/463481-work-ink-bypasser
+(function() {
+ 'use strict';
+ if (/(work.ink|workink.click)\/.*$/.test(window.location.href)) {
+ // Overlay text "Bypassing..."
+ setInterval(() => {if (!document.getElementById('bypassOverlay')) {
+ const overlay = document.createElement('div');
+ overlay.id = 'bypassOverlay';
+ overlay.style.cssText = 'position:fixed;top:0;left:0;background:rgba(0,0,0,0.5);padding:20px;z-index:9999;';
+ overlay.innerHTML = '
Bypassing with userscript...(wait 2-3s) (use incognito or delete cookies if stuck)
';
+ document.body.appendChild(overlay);
+ }}, 1000);
+
+ document.addEventListener('DOMContentLoaded', function() {
+ //--Original script starts here--
+ const notyfCss = GM_getResourceText("NOTYF_CSS");
+ GM_addStyle(notyfCss);
+ const notyf = new Notyf({ duration: 5000 });
+
+ (async () => {
+ if (window.location.hostname.includes("r.")) window.location.hostname = window.location.hostname.replace("r.", "");
+ if (window.location.hostname === "work.ink") {
+ const [encodedUserId, linkCustom] = decodeURIComponent(window.location.pathname.slice(1)).split("/").slice(-2);
+ const BASE = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ const loopTimes = encodedUserId.length;
+ let decodedUserId = BASE.indexOf(encodedUserId[0]);
+ for (let i = 1; i < loopTimes; i++) decodedUserId = 62 * decodedUserId + BASE.indexOf(encodedUserId[i]);
+
+ const payloads = {
+ social: (url) => JSON.stringify({
+ type: "c_social_started",
+ payload: {
+ url
+ }
+ }),
+ readArticles: {
+ 1: JSON.stringify({
+ type: "c_monetization",
+ payload: {
+ type: "readArticles",
+ payload: {
+ event: "start"
+ }
+ }
+ }),
+ 2: JSON.stringify({
+ type: "c_monetization",
+ payload: {
+ type: "readArticles",
+ payload: {
+ event: "closeClicked"
+ }
+ }
+ })
+ },
+ browserExtension: {
+ 1: JSON.stringify({
+ type: "c_monetization",
+ payload: {
+ type: "browserExtension",
+ payload: {
+ event: "start"
+ }
+ }
+ }),
+ 2: (token) => JSON.stringify({
+ type: "c_monetization",
+ payload: {
+ type: "browserExtension",
+ payload: {
+ event: "confirm",
+ token
+ }
+ }
+ })
+ }
+ }
+
+ WebSocket.prototype.oldSendImpl = WebSocket.prototype.send;
+ WebSocket.prototype.send =
+ function (data) {
+ this.oldSendImpl(data);
+ this.addEventListener(
+ "message",
+ async (e) => {
+ const sleep = ms => new Promise(r => setTimeout(r, ms));
+ const data = JSON.parse(e.data);
+ if (data.error) return;
+ const payload = data.payload;
+
+ switch (data.type) {
+ case "s_link_info":
+ notyf.success("got link info")
+ if (payload.socials) socials.push(...payload.socials);
+ const monetizationTypes = ["readArticles", "browserExtension"];
+ for (const type of monetizationTypes) {
+ if (payload.monetizationScript.includes(type)) {
+ activeMonetizationTypes.push(type)
+ }
+ }
+ break;
+ case "s_start_recaptcha_check":
+ this.oldSendImpl(payloads.captcha);
+ break;
+ case "s_recaptcha_okay":
+ if (socials.length) {
+ for (const [index, social] of socials.entries()) {
+ notyf.success(`performing social #${index+1}`)
+ this.oldSendImpl(payloads.social(social.url));
+ await sleep(3 * 1000);
+ }
+ }
+
+ if (activeMonetizationTypes.length) {
+ for (const type of activeMonetizationTypes) {
+ switch (type) {
+ case "readArticles":
+ notyf.success("reading articles...")
+ this.oldSendImpl(payloads.readArticles["1"]);
+ this.oldSendImpl(payloads.readArticles["2"]);
+ break;
+ case "browserExtension":
+ notyf.success("skipping browser extension step")
+ if (activeMonetizationTypes.includes("readArticles")) await sleep(11 * 1000);
+ this.oldSendImpl(payloads.browserExtension["1"])
+ break;
+ }
+ }
+ }
+ break;
+ case "s_monetization":
+ if (payload.type !== "browserExtension") break;
+ this.oldSendImpl(payloads.browserExtension["2"](payload.payload.token))
+ break;
+ case "s_link_destination":
+ notyf.success("done!")
+ const url = new URL(payload.url);
+ localStorage.clear(window.location.href);
+ if (url.searchParams.has("duf")) {
+ window.location.href = window.atob(url.searchParams.get("duf").split("").reverse().join(""))
+ };
+ window.location.href = payload.url;
+ break;
+ }
+ },
+ false
+ );
+ this.send =
+ function (data) {
+ this.oldSendImpl(data);
+ };
+ }
+ notyf.success("patched websocket")
+ let socials = [];
+ let activeMonetizationTypes = [];
+ } else if (window.location.hostname == "workink.click") {
+ const uuid = new URLSearchParams(window.location.search).get("t")
+ fetch(`https://redirect-api.work.ink/externalPopups/${uuid}/pageOpened`);
+ await new Promise(r => setTimeout(r, 11 * 1000));
+ const { destination } = await fetch(`https://redirect-api.work.ink/externalPopups/${uuid}/destination`).then(r => r.json());
+ const url = new URL(destination);
+ if (url.searchParams.has("duf")) {
+ window.location.href = window.atob(url.searchParams.get("duf").split("").reverse().join(""))
+ };
+ window.location.href = destination;
+ notyf.success("wait 11 seconds")
+ } else {
+ if (new URL(window.location.href).searchParams.has("duf")) {
+ var link = document.createElement("a");
+ link.referrerPolicy = "no-referrer";
+ link.rel = "noreferrer";
+
+ link.href = window.atob(new URL(window.location.href).searchParams.get("duf").split("").reverse().join(""));
+ link.click();
+ };
+ }
+ })();
+ //--Original script ends here--
+ });
+ }
+})();
+// ----- ----- -----
diff --git a/README.md b/README.md
index 4f81a11..d1a9914 100644
--- a/README.md
+++ b/README.md
@@ -39,9 +39,10 @@ You can help by:
This script contains code I took, or redirects to free services from other developers for certain bypasses.
Thanks to:
- [BloggerPemula](https://greasyfork.org/users/810571-bloggerpemula)
-- [bypass.city](https://bypass.city/) / [2](https://adbypass.org/) Redirecting to this site to solve most of the L1nkv3rt1s3 cases and for work.ink links.
-- [antiworkink](https://greasyfork.org/users/1237543-antiworkink) for the loot-link open source bypass.
+- [bypass.city](https://bypass.city/) / [2](https://adbypass.org/) Redirecting to this site to solve most of the L1nkv3rt1s3 cases and for bstlar links.
+- [antiworkink](https://greasyfork.org/users/1237543-antiworkink) for the loot-link bypass.
+- [lem6ns](https://greasyfork.org/en/users/937794-lem6ns) for the work.ink bypass.
- [Ad-Bypass](https://adbypass.eu/) Redirecting to this site for ad-maven links.
- [Rust1667](https://greasyfork.org/users/980489-rust1667) for some bypasses.
-- [AdGuard filters](https://github.com/AdguardTeam/AdguardFilters/) for some bypasses.
+- [AdGuard filters](https://github.com/AdguardTeam/AdguardFilters/) for the mega-enlace bypass.
diff --git a/extra_bypasses/work.ink.user.js b/extra_bypasses/work.ink.user.js
new file mode 100644
index 0000000..5ec6a40
--- /dev/null
+++ b/extra_bypasses/work.ink.user.js
@@ -0,0 +1,191 @@
+// ==UserScript==
+// @name work.ink bypass
+// @include /(work.ink|workink.click)\/.*$/
+// @require https://cdn.jsdelivr.net/npm/notyf@3/notyf.min.js
+// @run-at document-start
+// @grant GM_getResourceText
+// @grant GM_addStyle
+// ==/UserScript==
+
+// ----- Bypass work.ink ---- original script by lem6ns: https://greasyfork.org/en/scripts/463481-work-ink-bypasser
+(function() {
+ 'use strict';
+ if (/(work.ink|workink.click)\/.*$/.test(window.location.href)) {
+ // Overlay text "Bypassing..."
+ setInterval(() => {if (!document.getElementById('bypassOverlay')) {
+ const overlay = document.createElement('div');
+ overlay.id = 'bypassOverlay';
+ overlay.style.cssText = 'position:fixed;top:0;left:0;background:rgba(0,0,0,0.5);padding:20px;z-index:9999;';
+ overlay.innerHTML = 'Bypassing with userscript...(wait 2-3s) (use incognito or delete cookies if stuck)
';
+ document.body.appendChild(overlay);
+ }}, 1000);
+
+ document.addEventListener('DOMContentLoaded', function() {
+ //--Original script starts here--
+ const notyfCss = GM_getResourceText("NOTYF_CSS");
+ GM_addStyle(notyfCss);
+ const notyf = new Notyf({ duration: 5000 });
+
+ (async () => {
+ if (window.location.hostname.includes("r.")) window.location.hostname = window.location.hostname.replace("r.", "");
+ if (window.location.hostname === "work.ink") {
+ const [encodedUserId, linkCustom] = decodeURIComponent(window.location.pathname.slice(1)).split("/").slice(-2);
+ const BASE = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ const loopTimes = encodedUserId.length;
+ let decodedUserId = BASE.indexOf(encodedUserId[0]);
+ for (let i = 1; i < loopTimes; i++) decodedUserId = 62 * decodedUserId + BASE.indexOf(encodedUserId[i]);
+
+ const payloads = {
+ social: (url) => JSON.stringify({
+ type: "c_social_started",
+ payload: {
+ url
+ }
+ }),
+ readArticles: {
+ 1: JSON.stringify({
+ type: "c_monetization",
+ payload: {
+ type: "readArticles",
+ payload: {
+ event: "start"
+ }
+ }
+ }),
+ 2: JSON.stringify({
+ type: "c_monetization",
+ payload: {
+ type: "readArticles",
+ payload: {
+ event: "closeClicked"
+ }
+ }
+ })
+ },
+ browserExtension: {
+ 1: JSON.stringify({
+ type: "c_monetization",
+ payload: {
+ type: "browserExtension",
+ payload: {
+ event: "start"
+ }
+ }
+ }),
+ 2: (token) => JSON.stringify({
+ type: "c_monetization",
+ payload: {
+ type: "browserExtension",
+ payload: {
+ event: "confirm",
+ token
+ }
+ }
+ })
+ }
+ }
+
+ WebSocket.prototype.oldSendImpl = WebSocket.prototype.send;
+ WebSocket.prototype.send =
+ function (data) {
+ this.oldSendImpl(data);
+ this.addEventListener(
+ "message",
+ async (e) => {
+ const sleep = ms => new Promise(r => setTimeout(r, ms));
+ const data = JSON.parse(e.data);
+ if (data.error) return;
+ const payload = data.payload;
+
+ switch (data.type) {
+ case "s_link_info":
+ notyf.success("got link info")
+ if (payload.socials) socials.push(...payload.socials);
+ const monetizationTypes = ["readArticles", "browserExtension"];
+ for (const type of monetizationTypes) {
+ if (payload.monetizationScript.includes(type)) {
+ activeMonetizationTypes.push(type)
+ }
+ }
+ break;
+ case "s_start_recaptcha_check":
+ this.oldSendImpl(payloads.captcha);
+ break;
+ case "s_recaptcha_okay":
+ if (socials.length) {
+ for (const [index, social] of socials.entries()) {
+ notyf.success(`performing social #${index+1}`)
+ this.oldSendImpl(payloads.social(social.url));
+ await sleep(3 * 1000);
+ }
+ }
+
+ if (activeMonetizationTypes.length) {
+ for (const type of activeMonetizationTypes) {
+ switch (type) {
+ case "readArticles":
+ notyf.success("reading articles...")
+ this.oldSendImpl(payloads.readArticles["1"]);
+ this.oldSendImpl(payloads.readArticles["2"]);
+ break;
+ case "browserExtension":
+ notyf.success("skipping browser extension step")
+ if (activeMonetizationTypes.includes("readArticles")) await sleep(11 * 1000);
+ this.oldSendImpl(payloads.browserExtension["1"])
+ break;
+ }
+ }
+ }
+ break;
+ case "s_monetization":
+ if (payload.type !== "browserExtension") break;
+ this.oldSendImpl(payloads.browserExtension["2"](payload.payload.token))
+ break;
+ case "s_link_destination":
+ notyf.success("done!")
+ const url = new URL(payload.url);
+ localStorage.clear(window.location.href);
+ if (url.searchParams.has("duf")) {
+ window.location.href = window.atob(url.searchParams.get("duf").split("").reverse().join(""))
+ };
+ window.location.href = payload.url;
+ break;
+ }
+ },
+ false
+ );
+ this.send =
+ function (data) {
+ this.oldSendImpl(data);
+ };
+ }
+ notyf.success("patched websocket")
+ let socials = [];
+ let activeMonetizationTypes = [];
+ } else if (window.location.hostname == "workink.click") {
+ const uuid = new URLSearchParams(window.location.search).get("t")
+ fetch(`https://redirect-api.work.ink/externalPopups/${uuid}/pageOpened`);
+ await new Promise(r => setTimeout(r, 11 * 1000));
+ const { destination } = await fetch(`https://redirect-api.work.ink/externalPopups/${uuid}/destination`).then(r => r.json());
+ const url = new URL(destination);
+ if (url.searchParams.has("duf")) {
+ window.location.href = window.atob(url.searchParams.get("duf").split("").reverse().join(""))
+ };
+ window.location.href = destination;
+ notyf.success("wait 11 seconds")
+ } else {
+ if (new URL(window.location.href).searchParams.has("duf")) {
+ var link = document.createElement("a");
+ link.referrerPolicy = "no-referrer";
+ link.rel = "noreferrer";
+
+ link.href = window.atob(new URL(window.location.href).searchParams.get("duf").split("").reverse().join(""));
+ link.click();
+ };
+ }
+ })();
+ //--Original script ends here--
+ });
+ }
+})();
+// ----- ----- -----
diff --git a/supported_sites.txt b/supported_sites.txt
index 6ec6395..0999b29 100644
--- a/supported_sites.txt
+++ b/supported_sites.txt
@@ -734,3 +734,4 @@ r1.foxylinks.site
/linegee.net|intercelestial.com/
/(loot-link.com|loot-links.com|lootlink.org|lootlinks.co|lootdest.(info|org|com)|links-loot.com|linksloot.net)\/s\?.*$/
/mega-enlace.com/
+/(work.ink|workink.click)\/.*$/