From 52be163d960ba1e3ac320a40128aa6370cb27c9a Mon Sep 17 00:00:00 2001 From: Axorax <78349410+Axorax@users.noreply.github.com> Date: Sun, 30 Jun 2024 00:02:12 +0600 Subject: [PATCH] urlmskr --- .github/FUNDING.yml | 1 + .github/workflows/clear_deploys.yml | 16 ++ 404.html | 34 ++++ README.md | 36 +++++ README_ar.md | 39 +++++ README_bn.md | 39 +++++ README_es.md | 39 +++++ README_zh.md | 39 +++++ _config.yml | 3 + create.html | 36 +++++ favicon.svg | 9 ++ index.html | 13 ++ index.js | 55 +++++++ inter.woff2 | Bin 0 -> 100384 bytes lib.js | 25 +++ lib.php | 25 +++ lib.py | 25 +++ lib.rb | 24 +++ script.js | 135 ++++++++++++++++ style.css | 241 ++++++++++++++++++++++++++++ urlmskr.svg | 14 ++ 21 files changed, 848 insertions(+) create mode 100644 .github/FUNDING.yml create mode 100644 .github/workflows/clear_deploys.yml create mode 100644 404.html create mode 100644 README.md create mode 100644 README_ar.md create mode 100644 README_bn.md create mode 100644 README_es.md create mode 100644 README_zh.md create mode 100644 _config.yml create mode 100644 create.html create mode 100644 favicon.svg create mode 100644 index.html create mode 100644 index.js create mode 100644 inter.woff2 create mode 100644 lib.js create mode 100644 lib.php create mode 100644 lib.py create mode 100644 lib.rb create mode 100644 script.js create mode 100644 style.css create mode 100644 urlmskr.svg diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..fc26d69 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +patreon: axorax diff --git a/.github/workflows/clear_deploys.yml b/.github/workflows/clear_deploys.yml new file mode 100644 index 0000000..3848c16 --- /dev/null +++ b/.github/workflows/clear_deploys.yml @@ -0,0 +1,16 @@ +name: clear_deploys + +on: push + +jobs: + deldep: + runs-on: ubuntu-latest + permissions: write-all + + steps: + - name: Delete deployment + uses: strumwolf/delete-deployment-environment@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + environment: github-pages + onlyRemoveDeployments: true diff --git a/404.html b/404.html new file mode 100644 index 0000000..1b8cf95 --- /dev/null +++ b/404.html @@ -0,0 +1,34 @@ + + + + + + + + urlmskr + + + + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..d3f4c71 --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +

+ +

English中文বাংলাعربيespañol

+ +# ❓ About + +urlmskr lets you mask links and send encoded messages by changing a link to one that can't be easily read but still redirects to the original. It runs entirely on the frontend, requires no backend server, and stores no data. You can host it anywhere. Support the project on [Patreon!](https://www.patreon.com/axorax) <3 + +# 🤔 Why? + +Using a tool like urlmskr allows you to send a link without revealing the destination site. However, this could lead to receiving links to unwanted sites. To reveal the destination, simply add `+reveal` at the end of the URL. For example: `https://axorax.github.io/urlmskr/hello69+reveal`. + +# 💻 Integrate with your project + +urlmskr includes libraries for various programming languages in the root directory, named `lib` with the respective language extension. You can paste or import the code into your project. Here’s how to use the JavaScript library: + +```html + + + + Example + + + + + + +``` + +--- + +

Support me on PatreonCheck out my socials

diff --git a/README_ar.md b/README_ar.md new file mode 100644 index 0000000..93f1b69 --- /dev/null +++ b/README_ar.md @@ -0,0 +1,39 @@ +

+ +

English中文বাংলাعربيespañol

+ +> [!IMPORTANT] +> هذه ترجمة تقريبية وقد لا تكون دقيقة. + +# ❓ نبذة عن + +يتيح لك urlmskr إخفاء الروابط وإرسال رسائل مشفرة عن طريق تغيير الرابط إلى رابط لا يمكن قراءته بسهولة ولكن مع ذلك يعيد التوجيه إلى الرابط الأصلي. يعمل بالكامل على الواجهة الأمامية، ولا يتطلب خادمًا خلفيًا، ولا يخزن أي بيانات. يمكنك استضافته في أي مكان. ادعم المشروع على [Patreon!](https://www.patreon.com/axorax) <3 + +# 🤔 لماذا؟ + +يسمح لك استخدام أداة مثل urlmskr بإرسال رابط دون الكشف عن الموقع الوجهة. ومع ذلك، قد يؤدي ذلك إلى تلقي روابط لمواقع غير مرغوب فيها. وللكشف عن الوجهة، ما عليك سوى إضافة `+reveal` في نهاية عنوان URL. على سبيل المثال: `https://axorax.github.io/urlmskr/hello69+reveal`. + +# 💻 التكامل مع مشروعك + +يتضمن urlmskr مكتبات للغات البرمجة المختلفة في الدليل الجذر، باسم `lib` مع امتداد اللغة المعنية. يمكنك لصق أو استيراد التعليمات البرمجية في مشروعك. إليك كيفية استخدام مكتبة JavaScript: + +```html + + + + مثال على ذلك + + + + + + +``` + +--- + +

ادعمني على Patreonتحقق من حساباتي الاجتماعية

diff --git a/README_bn.md b/README_bn.md new file mode 100644 index 0000000..1df08bd --- /dev/null +++ b/README_bn.md @@ -0,0 +1,39 @@ +

+ +

English中文বাংলাعربيespañol

+ +> [!IMPORTANT] +> এটি একটি মোটামুটি অনুবাদ এবং সঠিক নাও হতে পারে। আমি বাংলা জানি কিন্তু প্রুফরিড করার সময় পাইনি। + +# ❓ সম্পর্কিত + +urlmskr আপনাকে লিঙ্ক মাস্ক করতে দেয় এবং একটি লিঙ্ক পরিবর্তন করে এনকোড করা বার্তা পাঠাতে দেয় যা সহজে পড়া যায় না, তবুও মূলে পুনঃনির্দেশিত হয়। এটি সম্পূর্ণরূপে ফ্রন্টএন্ডে চলে, কোন ব্যাকএন্ড সার্ভারের প্রয়োজন হয় না এবং কোন ডেটা সঞ্চয় করে না। আপনি যে কোন জায়গায় এটি হোস্ট করতে পারেন. [Patreon!](https://www.patreon.com/axorax) <3 এ প্রকল্পকে সমর্থন করুন + +# 🤔 কেন? + +urlmskr এর মতো একটি টুল ব্যবহার করে আপনি গন্তব্য সাইটটি প্রকাশ না করে একটি লিঙ্ক পাঠাতে পারবেন। যাইহোক, এর ফলে অবাঞ্ছিত সাইটের লিঙ্ক পাওয়া যেতে পারে। গন্তব্য প্রকাশ করতে, URL-এর শেষে শুধু `+reveal` যোগ করুন। যেমন: `https://axorax.github.io/urlmskr/hello69+reveal`। + +# 💻 আপনার প্রকল্পের সাথে সংহত করুন + +urlmskr রুট ডিরেক্টরিতে বিভিন্ন প্রোগ্রামিং ভাষার জন্য লাইব্রেরি অন্তর্ভুক্ত করে, যার নাম `lib` সংশ্লিষ্ট ভাষা এক্সটেনশন সহ। আপনি আপনার প্রকল্পে কোড পেস্ট বা আমদানি করতে পারেন। জাভাস্ক্রিপ্ট লাইব্রেরি কীভাবে ব্যবহার করবেন তা এখানে: + +```html + + + + উদাহরণ + + + + + + +``` + +--- + +

Patreon এ আমাকে সমর্থন করুনআমার সামাজিক চেক আউট করুন

diff --git a/README_es.md b/README_es.md new file mode 100644 index 0000000..628d684 --- /dev/null +++ b/README_es.md @@ -0,0 +1,39 @@ +

+ +

English中文বাংলাعربيespañol

+ +> [!IMPORTANT] +> Esta es una traducción aproximada y puede no ser exacta. + +# ❓ Acerca de + +urlmskr permite enmascarar enlaces y enviar mensajes codificados cambiando un enlace por otro que no pueda leerse fácilmente pero que redirija al original. Se ejecuta completamente en el frontend, no requiere servidor backend y no almacena datos. Puedes alojarlo en cualquier sitio. Apoya el proyecto en [Patreon!](https://www.patreon.com/axorax) <3 + +# 🤔 ¿Por qué? + +Utilizar una herramienta como urlmskr permite enviar un enlace sin revelar el sitio de destino. Sin embargo, esto podría llevar a recibir enlaces a sitios no deseados. Para revelar el destino, basta con añadir `+reveal` al final de la URL. Por ejemplo: `https://axorax.github.io/urlmskr/hello69+reveal`. + +# 💻 Integración en su proyecto + +urlmskr incluye librerías para varios lenguajes de programación en el directorio raíz, llamadas `lib` con la extensión del lenguaje respectivo. Puede pegar o importar el código en su proyecto. A continuación se explica cómo utilizar la biblioteca JavaScript: + +```html + + + + Ejemplo + + + + + + +``` + +--- + +

Apóyame en PatreonEcha un vistazo a mis redes sociales

diff --git a/README_zh.md b/README_zh.md new file mode 100644 index 0000000..253e8c6 --- /dev/null +++ b/README_zh.md @@ -0,0 +1,39 @@ +

+ +

English中文বাংলাعربيespañol

+ +> [!IMPORTANT] +> 这只是一个粗略的翻译,可能并不准确。 + +# ❓ 关于 + +urlmskr 可让你屏蔽链接并发送编码信息,方法是将链接更改为不易被读取但仍可重定向到原始链接的链接。它完全在前端运行,不需要后台服务器,也不存储数据。你可以将它托管到任何地方。在 [Patreon!](https://www.patreon.com/axorax) 上支持该项目 <3 + +# 🤔 为什么? + +使用 urlmskr 这样的工具可以发送链接而不显示目标网站。不过,这可能会导致接收到不想要的网站链接。要显示目的地,只需在 URL 结尾添加 `+reveal`。例如:`https://axorax.github.io/urlmskr/hello69+reveal`。 + +# 💻 与您的项目相结合 + +urlmskr 的根目录中包含各种编程语言的库,以相应语言的扩展名 `lib` 命名。你可以将代码粘贴或导入到你的项目中。下面介绍如何使用 JavaScript 库: + +```html + + + + 示例 + + + + + + +``` + +--- + +

在 Patreon 上支持我查看我的社交网站

diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..7ace29d --- /dev/null +++ b/_config.yml @@ -0,0 +1,3 @@ +exclude: + - "*.md" + - .github/ diff --git a/create.html b/create.html new file mode 100644 index 0000000..8f9672d --- /dev/null +++ b/create.html @@ -0,0 +1,36 @@ + + + + + + + urlmskr + + + + + +
+ +
+ + +
+ + +
+ + + +
+ Type something to mask. +
+ + +
+ + diff --git a/favicon.svg b/favicon.svg new file mode 100644 index 0000000..95b6084 --- /dev/null +++ b/favicon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..6fd1dd1 --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + urlmskr + + + + + + diff --git a/index.js b/index.js new file mode 100644 index 0000000..836cc88 --- /dev/null +++ b/index.js @@ -0,0 +1,55 @@ +const params = new URLSearchParams(window.location.search); + +if (params.get("r") && params.get("r").toLowerCase().endsWith(" reveal")) { + const url = params.get("r").slice(0, -7); + document.head.innerHTML += ''; + document.body.innerHTML = ` +
+ +
+
+
This URL redirects to:
+
${window.atob(url)}
+
+
+ `; + + document.body.appendChild( + Object.assign(document.createElement("script"), { src: "./script.js" }), + ); +} else if (params.get("r")) { + window.location.replace(window.atob(params.get("r"))); +} else if (params.get("t")) { + document.body.innerHTML = ` +

${window.atob(params.get("t"))}

+ `; + + document.head.innerHTML += ` + + `; +} else { + window.location.replace("https://axorax.github.io/urlmskr/create"); +} diff --git a/inter.woff2 b/inter.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..26c3f72c66581b7c7fa633d1266e59db27900d5e GIT binary patch literal 100384 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�=3p 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 diff --git a/lib.py b/lib.py new file mode 100644 index 0000000..77b2774 --- /dev/null +++ b/lib.py @@ -0,0 +1,25 @@ +import base64 + +def encode(text): + encoded_bytes = base64.b64encode(text.encode('utf-8')) + return encoded_bytes.decode('utf-8') + +def decode(text): + decoded_bytes = base64.b64decode(text.encode('utf-8')) + return decoded_bytes.decode('utf-8') + +def mask(text, type): + if type == 'text': + return f"https://axorax.github.io/urlmskr/?t={encode(text)}" + else: + return f"https://axorax.github.io/urlmskr/{encode(text)}" + +urlmskr = { + 'encode': encode, + 'decode': decode, + 'mask': mask +} + +# Usage examples: +# urlmskr['mask']('urlmskr', 'text') +# urlmskr['mask']('urlmskr', 'other') diff --git a/lib.rb b/lib.rb new file mode 100644 index 0000000..6e79dcc --- /dev/null +++ b/lib.rb @@ -0,0 +1,24 @@ +require 'base64' + +module Urlmskr + def self.encode(text) + Base64.strict_encode64(text) + end + + def self.decode(text) + Base64.strict_decode64(text) + end + + def self.mask(text, type) + encoded_text = encode(text) + if type == 'text' + "https://axorax.github.io/urlmskr/?t=#{encoded_text}" + else + "https://axorax.github.io/urlmskr/#{encoded_text}" + end + end +end + +# Usage examples: +# puts Urlmskr.mask('urlmskr', 'text') +# puts Urlmskr.mask('urlmskr', 'url') diff --git a/script.js b/script.js new file mode 100644 index 0000000..0ef324f --- /dev/null +++ b/script.js @@ -0,0 +1,135 @@ +const input = document.querySelector("#input"); +const maskButton = document.querySelector("#mask-button"); +const copy = document.querySelector("#copy-button"); +const output = document.querySelector(".output"); +const modeText = document.querySelector("#mode-button p"); +let currentMode = "redirect"; + +// Event listeners + +try { + input.addEventListener("keydown", (e) => { + if (e.key == "Enter") { + encode(input.value); + } + }); + + maskButton.addEventListener("click", () => { + encode(input.value); + }); + + copy.addEventListener("click", () => { + if (Boolean(output.querySelector("span")) == true) { + copy.innerText = `❌ Nothing to copy`; + } else { + navigator.clipboard.writeText(output.innerText); + copy.innerText = `✅ Copied Masked URL`; + } + setTimeout(() => { + copy.innerText = "🔗 Copy Masked URL"; + }, 2000); + }); +} catch (e) { + console.error(e); +} + +// Change mode + +function modeChange() { + if (currentMode == "text") { + currentMode = "redirect"; + } else { + currentMode = "text"; + } + modeText.style.transform = "translate(-150%, 0)"; + setTimeout(() => { + modeText.innerText = `Mode: ${currentMode}`; + modeText.style.transform = "translate(0, 0)"; + }, 350); +} + +// Encode + +function encode(value) { + if (value.replaceAll(" ", "") == "") { + output.innerHTML = `Input cannot be empty.`; + } else { + let encodedValue = window.btoa(value); + if (currentMode == "redirect") { + output.innerText = `https://axorax.github.io/urlmskr/${encodedValue}`; + } else if (currentMode == "text") { + output.innerText = `https://axorax.github.io/urlmskr/?t=${encodedValue}`; + } + } +} + +// Electric Surge + +function createBolt() { + const bolt = document.createElement("div"); + bolt.className = "bolt"; + bolt.style.left = `${Math.random() * 100}%`; + + const electricSurge = document.getElementById("electric-surge"); + const electricSurgeRect = electricSurge.getBoundingClientRect(); + const boltRect = bolt.getBoundingClientRect(); + + if ( + boltRect.left + boltRect.width > + electricSurgeRect.left + electricSurgeRect.width + ) { + const newLeft = + electricSurgeRect.left + electricSurgeRect.width - boltRect.width; + bolt.style.left = `${newLeft}px`; + } + + electricSurge.appendChild(bolt); + setTimeout(() => { + bolt.remove(); + }, 800); +} + +setInterval(createBolt, 600); + +// Stars + +const numberOfStars = Math.floor((window.innerWidth + window.innerHeight) / 16); +const starContainer = document.createElement("div"); +starContainer.style.cssText = ` + position: fixed; + top: 0; + left: 0; + z-index: -1; + width: 100%; + height: 100%; + overflow: hidden; + `; +document.body.appendChild(starContainer); + +function createStar() { + const star = document.createElement("div"); + const starSize = Math.random() * 3 + 1; + const x = Math.random() * window.innerWidth; + const y = Math.random() * window.innerHeight; + + star.classList.add("star"); + star.style.width = `${starSize}px`; + star.style.height = `${starSize}px`; + star.style.left = `${x}px`; + star.style.top = `${y}px`; + starContainer.appendChild(star); +} + +for (let i = 0; i < numberOfStars; i++) { + createStar(); +} + +window.addEventListener("resize", function () { + while (starContainer.firstChild) { + starContainer.removeChild(starContainer.firstChild); + } + + for (let i = 0; i < numberOfStars; i++) { + createStar(); + } +}); diff --git a/style.css b/style.css new file mode 100644 index 0000000..25f699a --- /dev/null +++ b/style.css @@ -0,0 +1,241 @@ +@font-face { + font-family: "default"; + src: url("./inter.woff2"); +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: "default", sans-serif; +} + +:root { + color-scheme: dark; + --border: #3e3e3e; +} + +body { + scrollbar-width: none; + width: 100%; + height: 100vh; + background: #171515; + background-image: linear-gradient(to top, #171515, #242323); +} + +button { + cursor: pointer; + border-radius: 5px; + font-size: 14px; + border: none; + background: transparent; + backdrop-filter: blur(4px); + padding: 0.8rem; +} + +main { + flex-direction: column; + height: calc(100% - 2rem); + max-width: calc(100% - 2rem); + width: 20rem; +} + +.center { + display: flex; + align-items: center; + justify-content: center; +} + +#input { + border-radius: 5px; + padding: 0.8rem; + outline: none; + color: #fff; + font-size: 16.5px; + background: #282828dc; + border: 1px solid var(--border); + backdrop-filter: blur(2px); + width: 100%; + transition: 200ms; + + &:hover, + &:focus { + border-color: #537fe7; + } +} + +#electric-surge { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: -9; + pointer-events: none; + overflow: hidden; +} + +.bolt { + position: absolute; + top: 0; + width: 2px; + height: 100%; + opacity: 0; + background-color: #ffffff; + animation: boltAnimation 0.8s linear infinite; + pointer-events: none; + box-shadow: 0 0 8px 2px #ffffff2f; +} + +.star { + position: absolute; + background: white; + border-radius: 50%; + box-shadow: 0 0 10px white; + z-index: -1; +} + +.group { + margin-top: 1rem; + display: flex; + gap: 1rem; + width: 100%; + flex-wrap: wrap; +} + +#mode-button { + overflow: hidden; + flex: 1; + border: 1px solid var(--border); + transition: background 300ms; + + &:hover, + &:focus { + background: #68686818; + } + + & p { + transition: 300ms; + } +} + +#mask-button { + flex: 1; + background: #537fe7; + transition: background 300ms; + + &:hover, + &:focus { + background: #446ac1; + } +} + +#copy-button { + width: 100%; + margin-top: 1rem; + border: 1px solid var(--border); + transition: background 300ms; + + &:hover, + &:focus { + background: #68686818; + } +} + +.output { + width: 100%; + height: 10rem; + padding: 0.8rem; + margin-top: 1rem; + max-height: 10rem; + border-radius: 5px; + overflow-y: scroll; + word-wrap: break-word; + background: #1c1c1c99; + border: 1px solid var(--border); + backdrop-filter: blur(4px); + + &::-webkit-scrollbar { + display: none; + } +} + +footer { + margin-top: 1rem; + background: #537fe73d; + border: 1px dashed #537fe7; + backdrop-filter: blur(4px); + color: #a5beff; + border-radius: 5px; + width: 100%; + padding: 0.8rem; + text-align: center; + + & a { + color: #a5beff; + + &:hover { + color: #fff; + } + } +} + +.reveal { + width: 100%; + height: 100dvh; + + & > div { + border-radius: 5px; + max-width: calc(100% - 2rem); + max-height: calc(100% - 2rem); + overflow-y: scroll; + border: 2px solid var(--border); + color: #fff; + + &::-webkit-scrollbar { + display: none; + } + } + + .top { + text-align: center; + border-bottom: 2px solid var(--border); + padding: 0.7rem 0.9rem; + font-size: 0.9rem; + background: #2a2626a0; + backdrop-filter: blur(3px); + color: #ffffffcf; + } + + .destination { + padding: 1rem; + word-wrap: break-word; + font-size: 1.3rem; + font-weight: 500; + background: #171515b9; + backdrop-filter: blur(3px); + } +} + +@media (max-width: 343px) { + .group { + flex-direction: column; + } + + h1 { + display: none !important; + } +} + +@keyframes boltAnimation { + 0% { + opacity: 1; + transform: translateY(-100%); + filter: brightness(200%); + } + 100% { + opacity: 0; + transform: translateY(100%); + filter: brightness(100%); + } +} diff --git a/urlmskr.svg b/urlmskr.svg new file mode 100644 index 0000000..89da6f4 --- /dev/null +++ b/urlmskr.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + +