Last active
          November 30, 2024 19:24 
        
      - 
      
 - 
        
Save Krazete/0fcfe6eeea57961df821f30c512cf2b2 to your computer and use it in GitHub Desktop.  
    Injects cognition.kizunaai.com with Bad Apple.
  
        
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | javascript: | |
| /* https://cognition.kizunaai.com */ | |
| var video = document.createElement("video"); | |
| video.crossOrigin = "anonymous"; | |
| video.src = "https://raw.githubusercontent.com/NPCat/bad-apple-bot/main/bad_apple.mp4"; | |
| video.play(); | |
| var vw = 960; | |
| var vh = 720; | |
| var dpr = Math.ceil(window.devicePixelRatio || 1); /* for high dpi screens */ | |
| var canvas = Array.from(document.getElementsByTagName("canvas")).filter(e => e.getBoundingClientRect().width)[0]; | |
| var context = canvas.getContext("2d", {willReadFrequently: true}); | |
| var cw, ch, ix, iy, r; | |
| var vcanvas = document.createElement("canvas"); | |
| var vcontext = vcanvas.getContext("2d"); | |
| var vcw, vch; | |
| function getRectInfo() { | |
| var cd = context.getImageData(0, 0, cw, ch); | |
| var x1count = 0; | |
| var x0count = 0; | |
| for (var x = 0; x < cd.width; x++) { | |
| var i = 4 * x; | |
| if (cd.data[i] || cd.data[i + 1] || cd.data[i + 2]) { | |
| if (x0count) { | |
| break; | |
| } | |
| x1count++; | |
| } | |
| else { | |
| x0count++; | |
| } | |
| } | |
| var y1count = 0; | |
| var y0count = 0; | |
| for (var y = 0; y < cd.height; y++) { | |
| var i = 4 * cd.width * y; | |
| if (cd.data[i] || cd.data[i + 1] || cd.data[i + 2]) { | |
| if (y0count) { | |
| break; | |
| } | |
| y1count++; | |
| } | |
| else { | |
| y0count++; | |
| } | |
| } | |
| return { /* because the rectangles disappeared (2024-11-30) */ | |
| w: Math.min(x1count, 10) / dpr, | |
| h: Math.min(y1count, 20) / dpr, | |
| dx: Math.min(x1count + x0count, 12) / dpr, | |
| dy: Math.min(y1count + y0count, 22) / dpr | |
| }; | |
| } | |
| function recalculate() { | |
| cw = canvas.width / dpr; | |
| ch = canvas.height / dpr; | |
| /* scale video resolution to fit canvas */ | |
| var iw, ih; | |
| if (vw / vh < cw / ch) { | |
| iw = vw * ch / vh; | |
| ih = ch; | |
| } | |
| else { | |
| iw = cw; | |
| ih = vh * cw / vw; | |
| } | |
| ix = (cw - iw) / 2; | |
| iy = (ch - ih) / 2; | |
| /* get rect info */ | |
| r = getRectInfo(); | |
| /* prepare video pixelation and adjust iw, ih, ix, iy with rect info */ | |
| vcw = Math.ceil(iw / r.dx); | |
| vch = Math.ceil(ih / r.dy); | |
| vcanvas.width = vcw; | |
| vcanvas.height = vch; | |
| ix = Math.floor(ix / r.dx) * r.dx; | |
| iy = Math.floor(iy / r.dy) * r.dy; | |
| } | |
| /* colors | |
| black #000000 | |
| white #ffffff | |
| gray #0a0a0a | |
| pink #eb50ae | |
| blue #0000ff | |
| */ | |
| function play() { | |
| vcontext.drawImage(video, 0, 0, vcw, vch); | |
| var vcd = vcontext.getImageData(0, 0, vcw, vch); | |
| context.beginPath(); | |
| for (var y = 0; y < vcd.height; y++) { | |
| for (var x = 0; x < vcd.width; x++) { | |
| var i = 4 * (vcd.width * y + x); | |
| var j = (vcd.data[i] + vcd.data[i + 1] + vcd.data[i + 2]) / 3; | |
| if (j < 120) { | |
| context.fillStyle = "#0a0a0a"; | |
| } | |
| else if (j < 128) { | |
| context.fillStyle = "#0000ff"; | |
| } | |
| else if (j < 192) { | |
| context.fillStyle = "#eb50ae"; | |
| } | |
| else { | |
| context.fillStyle = "#ffffff"; | |
| } | |
| context.fillRect(ix + x * r.dx, iy + y * r.dy, r.w, r.h); | |
| } | |
| } | |
| if (!video.paused) { | |
| requestAnimationFrame(play); | |
| } | |
| }; | |
| recalculate(); | |
| play(); | |
| window.addEventListener("resize", recalculate); | 
Alternative Video #1: Doom
- Set 
video.srcto:https://raw.githubusercontent.com/filestack/filestack-ruby/develop/test-files/doom.mp4 - Set colors conditions in 
play()to:if (j >= 96) {context.fillStyle = "#ffffff";} else if (vcd.data[i] >= 80) {context.fillStyle = "#eb50ae";} else if (vcd.data[i + 2] >= 64) {context.fillStyle = "#0000ff";} else {context.fillStyle = "#0a0a0a";}
 
Preview: https://youtu.be/pLMNcYntmY4
Alternative Video #2: Lagtrain
- Set 
video.srcto:https://raw.githubusercontent.com/Krazete/blah/master/lagtrain.mp4 - Set colors conditions in 
play()to:if (j < 152) {context.fillStyle = "#ffffff";} else if (j < 160) {context.fillStyle = "#0000ff";} else if (j < 200) {context.fillStyle = "#0a0a0a";} else {context.fillStyle = "#eb50ae";}
 
Preview: https://youtu.be/Z23aoGg4m7k
Alternative #3: DOOM (Playable)
See https://gist.github.com/Krazete/e2c0f77702ae95884e0556696e9789e3
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment
  
            
Preview: https://youtu.be/GFeerogUiXU