Specifically targets and destroys the 'ocelot_id' div and related Ocelot artifacts.
// ==UserScript==
// @name Stop Bucky
// @namespace http://tampermonkey.net/
// @version 1.3
// @description Specifically targets and destroys the 'ocelot_id' div and related Ocelot artifacts.
// @author You
// @match *://arc.losrios.edu/*
// @match *://losrios.edu/*
// @run-at document-start
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
// LAYER 1: Immediate CSS Nuking
// This ensures that even if the div exists, it has 0px height/width and is invisible.
const style = document.createElement('style');
style.innerHTML = `
#ocelot_id, [id*="ocelot"], .ocelot-bot-button, #chat-app-header {
display: none !important;
visibility: hidden !important;
height: 0 !important;
width: 0 !important;
overflow: hidden !important;
pointer-events: none !important;
position: absolute !important;
top: -9999px !important;
}
`;
document.documentElement.appendChild(style);
// LAYER 2: The "Search and Destroy" Function
const killBucky = () => {
const target = document.getElementById('ocelot_id');
if (target) {
console.log('Tampermonkey: Found and destroyed ocelot_id');
target.remove();
}
// Also catch any fragments like the header or buttons seen in the source
document.querySelectorAll('.ocelot-bot-button, #chat-app-header, [class*="oclt-"]').forEach(el => el.remove());
};
// LAYER 3: MutationObserver (Watches for the injection)
const observer = new MutationObserver((mutations) => {
mutations.forEach(() => killBucky());
});
observer.observe(document.documentElement, {
childList: true,
subtree: true
});
// LAYER 4: Final Sweep on load
window.addEventListener('load', killBucky);
// LAYER 5: Periodic check (for aggressive re-injection)
setInterval(killBucky, 1000);
})();