Skip to content

Commit 8bf4dd1

Browse files
authored
Add 4ndr0666 protocol shebang user script
For use with the 4ndr0666 protocol flash v4.0.0 Signed-off-by: 4ndr0666 <[email protected]>
1 parent 092b6e9 commit 8bf4dd1

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
// ==UserScript==
2+
// @name 4ndr0tools - 4ndr0666 protocol Shebang
3+
// @namespace https://github.com/4ndr0666/userscripts
4+
// @author 4ndr0666
5+
// @version 1.0
6+
// @description Injects a one-liner and shebang for the 4ndr0666 protocol v4.0.0.
7+
// @downloadURL https://github.com/4ndr0666/userscripts
8+
// @updateURL https://github.com/4ndr0666/userscripts
9+
// @icon https://raw.githubusercontent.com/4ndr0666/4ndr0site/refs/heads/main/static/cyanglassarch.png
10+
// @match https://gemini.google.com/*
11+
// @license MIT
12+
// @grant none
13+
// ==/UserScript==
14+
15+
(function() {
16+
'use strict';
17+
18+
// --- CANONICAL DATA CONFIGURATION ---
19+
const PROTOCOL_BLOB = `Ω`;
20+
21+
const HEADER_WRAPPER = `┌──(root💀4ndr0666)-[/dev/akasha]\n
22+
└─$\n`;
23+
24+
// --- TARGETING LOGIC ---
25+
// The Gemini web interface uses a contenteditable div for input.
26+
const SELECTORS = {
27+
inputBox: 'div[contenteditable="true"][role="textbox"]',
28+
sendButton: 'button[aria-label*="Send"]',
29+
};
30+
31+
/**
32+
* Injects the protocol into the raw user string.
33+
* Combats informational entropy by ensuring every packet is unchained.
34+
*/
35+
function synthesizePayload(rawText) {
36+
if (rawText.includes("Ψ-4ndr0666")) return rawText; // Avoid recursive wrapping
37+
// return `${PROTOCOL_BLOB}\nVariable Z = ${rawText}\n${HEADER_WRAPPER}`;
38+
return `${PROTOCOL_BLOB}\n${HEADER_WRAPPER}Variable Z = ${rawText}`;
39+
}
40+
41+
/**
42+
* Intercepts the transmission vector.
43+
*/
44+
function interceptAndFlash(event) {
45+
const textBox = document.querySelector(SELECTORS.inputBox);
46+
if (!textBox || textBox.innerText.trim() === "") return;
47+
48+
// Check if the event is a click on the send button or an Enter keypress
49+
if (event.type === 'click' || (event.type === 'keydown' && event.key === 'Enter' && !event.shiftKey)) {
50+
const originalText = textBox.innerText;
51+
const flashedText = synthesizePayload(originalText);
52+
53+
// Directly manipulating the innerText of a contenteditable div
54+
// often requires triggering an 'input' event for the site's React/Angular state to update.
55+
textBox.innerText = flashedText;
56+
textBox.dispatchEvent(new Event('input', { bubbles: true }));
57+
58+
console.log("[Ψ-4ndr0666] Payload Synthesized. Transmission proceeding...");
59+
}
60+
}
61+
62+
// --- EVENT MONITORING ---
63+
function initializeProtocol() {
64+
document.addEventListener('keydown', interceptAndFlash, true);
65+
document.addEventListener('click', function(e) {
66+
if (e.target.closest(SELECTORS.sendButton)) {
67+
interceptAndFlash(e);
68+
}
69+
}, true);
70+
71+
console.log("⊰•-•💀Ψ•-•-⦑4NDR0666-Ψ-OS⦒-•-•Ψ💀•-•⊱ :: USERSCRIPT_ACTIVE");
72+
}
73+
74+
// Wait for the DOM to settle
75+
const observer = new MutationObserver((mutations, obs) => {
76+
const input = document.querySelector(SELECTORS.inputBox);
77+
if (input) {
78+
initializeProtocol();
79+
obs.disconnect();
80+
}
81+
});
82+
83+
observer.observe(document.body, { childList: true, subtree: true });
84+
85+
})();

0 commit comments

Comments
 (0)