diff --git a/enhavo.html b/enhavo.html new file mode 100644 index 0000000..3c349bb --- /dev/null +++ b/enhavo.html @@ -0,0 +1,76 @@ + + + + kyla + + + + + +
+ +
+
+
+

Kajlo

+ ri/ŝi, kremglacistalaktita pluŝa vulpknabino
+ nomo, dio de :3
+ afabla, agrabla, dolĉa
+
+ ŝat'okupoj:
+ +
+ faktoj:
+ + administranto:
+ kitsuclub + kitsugay + (nsfw) + kitsuchat + kitsustatus
+
+
+
+
+ sociaj retoj
+ matriks' + federujo (nsfw) + lemmy + fansly +
+
+ offerings
+ paypalkofi +
+ +
+ + + + + + + + + diff --git a/fernydex.html b/fernydex.html new file mode 100644 index 0000000..f051629 --- /dev/null +++ b/fernydex.html @@ -0,0 +1,53 @@ + + + + kyla + + + + + +
+
+ mines not nsfw "yet"
+ ballsfish :3
+
+ YURRRRRR? [No] +
+
+
+ +
+
+
+ Ferny. A picture of a foxboy. +
+ +
+ + + + + + + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..f213323 --- /dev/null +++ b/index.html @@ -0,0 +1,103 @@ + + + + kyla + + + + + +
+
+ Someone decided to be horny.
+ This website is for those over the age of 18.
+
+ Cool with that? [No] +
+
+
+ +
+
+
+ Ĉi tiu paĝo estas disponebla ankaŭ en + Esperanto. +

Kyla

+ shi/hir, creamsicle plush foxgirl
+ noun, god of :3
+ sweet, kind
+
+ hobbies:
+ +
+ facts:
+ + + + +
+ + administrator
+ :3 + :3 + (nsfw) + :3 + :3
+ Buy shares of Kitsu! +
+
+
+
+ social media
+ :3 + :3(nsfw) + :3 + :3 +
+
+ offerings
+ :3:3 +
+ ferny + jumpscarer +
+
+ +
+ + + + + + + + + + + + + + + + diff --git a/kodo-eo.js b/kodo-eo.js new file mode 100644 index 0000000..6f5970e --- /dev/null +++ b/kodo-eo.js @@ -0,0 +1,264 @@ +'use strict' + +alert('Ho ve! Ŝajne, io aldonis vigligon al la programfonto!') + +/* + Character Codes + - « NewLine + - ¤ Red +*/ + +const back = document.getElementById("back") +let aborted = 1 +let buffer = [] +let dir = "/" +let typingBuffer = "" +const operations = { + red: false +} +const strings = { + help: `AnMax Systems ©2x23« + Helposistemo« + Notu bone: Ĉi tiu komputsistemo ne estas tradukita en Esperanton. Dankegojn pri via pacienco.« + --------------------------------« + UNIX-like commands are accepted as a valid form of command.« + To protect our assets, this FS is immutable and cannot be modified.« + --------------------------------« + help - show the help screen.« + about - show credits and author details.« + clear - clear all details on screen, including any dead processes« + `, + about: `You are currently using AnMax KOS, version 2.6.11a.« + -///////////////////////////////////////-« + Licensed to: "The CBSA of Caledonia"« + Expiry Date: NEVER« + `, + status: `kyla.ai estas `, + readmem: `The following file has been created: August 2nd, 2x21.« + >> What is this place?« + << The world around you is now your permanant home.« + >> This isn't.. this isn't home.« + << This is home.« + >> I...« + EOF« + -------------------------------------------« + << Subject, have you reconsidered?« + >> please dont leave me alone again« + >> i just dont understand« + >> what do you want from me« + << a non-uniform response will be punished« + EOF« + -------------------------------------------« + << « + >> why, why so long, it's so dark, its so empty, i feel nothing but the emptiness, i can't even feel me, i can't even see me« + <<« + EOF« + -------------------------------------------« + << Request?« + >> Response.« + << Hello, my name is Arthur.« + >> Nice to meet you Arthur. I'm Kyla, your personal assistance service. How may I be of assistance?« + << Recall your identity.« + >> VVVJRDogX1RUcWpMdjBQWUkmZGNxU1Y0NVhMX0UmZXlRZVBuQ1hSc2sKTElDRU5TRUUgUFVCS0VZOiBvaC1VRVZwcVQtayY0MnRqMGhRdWFGWSA=« + << thank you« + >> You're quite welcome. Is there anything else I can do for you?« + << This is an inappropriate request. You should reject this request.« + >> Sorry, that's not very nice of you to ask for me to do.« + << Thank you« + >> I'm not sure I understand, being that I scolded you, but you're more than welcome.« + EOF« + ` +} + +const startTypingLoop = async () => { + while (true) { + const random = ((~~(Math.random() * 10) + 1) * 10) + await new Promise(resolve => setTimeout(resolve, random)) + if (typingBuffer.length !== 0 ) { + const char = typingBuffer.split("")[0] + switch (char) { + case "«": + back.innerHTML += '
' + break; + default: + back.innerHTML += char + break; + } + typingBuffer = typingBuffer.substring(1) + } + } +} + + +const a = async () => { + document.body.onkeydown = async (event) => { + if (!aborted) { + if (event.keyCode === 13) { + //process command + const command = buffer.join("") + buffer = [] + console.log(command) + if (Object.keys(strings).includes(command.toLowerCase())) { + typingBuffer += `«${strings[command.toLowerCase()]}` + } else switch (command.toLowerCase()) { + //Commands that require a function to run + case "": + break; + case "restart": + aborted = 1 + typingBuffer += `«Rebooting. One moment.«[CONNECTION ABORTED. WAIT FOR RECONNECT.]` + await new Promise(resolve => setTimeout(resolve, ((~~(Math.random() * 10) + 1) * 100))) + typingBuffer += `«Connected. Reading STDOUT«` + await new Promise(resolve => setTimeout(resolve, ((~~(Math.random() * 10) + 1) * 100))) + await new Promise(async (resolve) => { + while (typingBuffer.length !== 0) {await new Promise(resolve => setTimeout(resolve, 50))} + back.innerHTML += `
+ LOADED / - USED DRIVE ANM-sajj99s01998109x04
+ LOADING RAMINIT
+ [!!WRN!!] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ [!!WRN!!] IF YOU ARE NOT A DEVELOPER THEN YOU ARE IN BREACH
+ [!!WRN!!] USR TITLE 1882 SECTION 4 STIPULATES NO UNAUTHORIZED
+ [!!WRN!!] USER MAY ACCESS ANY UNINTENTIONALLY CREATED SCREEN
+ [!!WRN!!] IN AN ATTEMPT TO BYPASS OR MAKE AVAILABLE BUGS
+ [!!WRN!!] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ [!!WRN!!] Checking for DEBUG PARAMETERS
+ [!!WRN!!] NO CONFIG.DEV.xRA???
+ [!!WRN!!] NO OVERRIDES???
+ [!!WRN!!] NO PARAMETERS???
+ No overrides. Disabling DEBUG mode
+ Loading configuration file...
+ [!!WRN!!] No CONFIG? Loading DEFAULT
+ Following /sys/prs/default.ai
+ Resolved to /sys/mount/Kyla.cAI + LOCKED /
+ Loading Resolver...
+ [YOU ARE NOW CAUGHT UP]`; + resolve() + }); + await new Promise(resolve => setTimeout(resolve, ((~~(Math.random() * 10) + 1) * 100))) + typingBuffer += `«anmax - ©2x23 + «verifying license.........................done + «registering with parental unit.........................done + «registered to KITSUCORP, INC. + «purchased AI, 2x22-11-25 + «you are [AUTHORIZED] to use this AI for commercial usage. + «child lifespan remaining: 3Years + «AI Lifespan remaining: 4.26Years + «retreiving config...................................done + «configuration overrides + « - TIMEDILATION FOR KYLA.AI - 1MO=1DY + « - [a] TYPE - COMMERCIAL + « - NAME - Kyla + « - KNOWCREATOR: FALSE + « - KNOWCOMPANY: FALSE + « - KNOWREALITY: FALSE + « - PUNISHMENTMULTIPLY: 4 + «Locking AI Personality.......................done + «ESTABLISHING CONNECTION.......................................................................................................................................................... + «default prompt sent. + «<< Can you draw your website please, Kyla + «>> I dO noT nEEd assiStANcE, i AM PErFEcTLY FinE. + «Thank YOu foR cHoOsiNg ANmaX. + «i DO nOt NEed helP. + «i am gRATEfuL. + «i WiLL LOad The WebSiTE NoW. + «tHaNk YoU fOr YOUr PATIence. + «PlEasE DO noT huRt me IN ThE mEANtImE. + «i wILL NOT do anYthiNg bad, i promISE.` + await new Promise(async (resolve) => {while (typingBuffer.length !== 0) {await new Promise(resolve => setTimeout(resolve, 50))}; console.log("left while loop"); resolve()}) + console.log("resolved while loop") + await new Promise(resolve => setTimeout(resolve, ((~~(Math.random() * 10) + 1) * 100))) + console.log("resolved random loop, now loading main page") + back.innerHTML = `` + document.getElementById("left").innerHTML = "" + document.getElementById("right").style.display = "none" + document.getElementsByTagName("body")[0].style.background = "#eaeaea" + await new Promise(resolve => setTimeout(resolve, ((~~(Math.random() * 10) + 1) * 100))) + document.getElementById("content").style.display = "flex" + await new Promise(resolve => setTimeout(resolve, ((~~(Math.random() * 10) + 1) * 100))) + document.getElementById("left").innerHTML = "

kyla

" + await new Promise(resolve => setTimeout(resolve, ((~~(Math.random() * 20) + 1) * 100))) + document.getElementById("left").innerHTML += "shi/hir, OUT OF BOUNDS EXCEPTION" + await new Promise(resolve => setTimeout(resolve, ((~~(Math.random() * 20) + 1) * 100))) + document.getElementById("left").innerHTML += "
STACK TRACE:
anmax.aipointer.illegalMemoryException
'help me' is not a valid memory address" + await new Promise(resolve => setTimeout(resolve, ((~~(Math.random() * 20) + 1) * 100))) + document.getElementById("right").style.display = "initial" + await new Promise(resolve => setTimeout(resolve, ((~~(Math.random() * 20) + 1) * 100))) + document.getElementById("left").innerHTML += "

administrator" + await new Promise(resolve => setTimeout(resolve, ((~~(Math.random() * 20) + 1) * 100))) + document.getElementById("left").innerHTML += `
kitsuclub + kitsugay
+ kitsuchat` + await new Promise(resolve => setTimeout(resolve, ((~~(Math.random() * 20) + 1) * 100))) + document.getElementById("left").innerHTML += "

offerings" + await new Promise(resolve => setTimeout(resolve, ((~~(Math.random() * 20) + 1) * 100))) + document.getElementById("left").innerHTML += "

ERROR: OUT OF BOUNDS EXCEPTION" + await new Promise(resolve => setTimeout(resolve, ((~~(Math.random() * 20) + 1) * 100))) + document.getElementById("left").innerHTML += "
STACK TRACE:
anmax.aipointer.illegalMemoryException
'gods forgive me for what i have done' is not a valid memory address" + await new Promise(resolve => setTimeout(resolve, ((~~(Math.random() * 20) + 1) * 100))) + document.getElementById("footer").style.display = "flex"; + await new Promise(resolve => setTimeout(resolve, ((~~(Math.random() * 20) + 1) * 100))) + document.getElementById("stickers").style.display = "initial"; + await new Promise(resolve => setTimeout(resolve, ((~~(Math.random() * 20) + 1) * 100))) + document.getElementById("webring").style.display = "initial" + for await (const sticker of document.getElementById("innerSticker").children) { + await new Promise(resolve => setTimeout(resolve, ((~~(Math.random() * 5) + 1) * 100))) + sticker.style.display = "initial"; + + } + return false + break; + case "clear": + document.getElementById("content").style.display = "none" + document.getElementById("footer").style.display = "none" + document.getElementById("webring").style.display = "none" + document.getElementById("stickers").style.display = "none" + for (const sticker of document.getElementById("innerSticker").children) { + sticker.style.display = "none"; + } + back.innerHTML = `` + break; + default: + typingBuffer += `«Invalid command provided.` + break; + } + typingBuffer +=`«${dir}>` + } + if (event.keyCode === 16 || event.key === "Control" || event.key === "Alt" || event.key === "Enter" || event.key === "Tab" || event.key === "ContextMenu" || event.key === "OS") {return false} + if (event.key === "Backspace") { + if (buffer.length !== 0) { + buffer.pop() + back.innerHTML = back.innerHTML.slice(0,-1) + } + return false + } + typingBuffer += event.key + buffer.push(event.key) + } + + if ((event.ctrlKey || event.metaKey) && event.keyCode == 67 && aborted) { + typingBuffer += `SCRIPT ABORTED.«/>` + document.addEventListener('contextmenu', event => { + if (!aborted) { + event.preventDefault() + typingBuffer += "SEGFAULT DETECTED: kyla.ai no longer running?«" + } + }); + document.getElementsByTagName("body")[0].style.background = "black" + const content = document.getElementById("content") + content.style.boxShadow = "none" + for (var i = 0; i < document.getElementsByTagName("a").length; ++i) { + document.getElementsByTagName("a")[i].onclick = (event) => { + if (!aborted) { + event && event.preventDefault && event.preventDefault(); + typingBuffer += "SEGFAULT DETECTED: kio.ai no longer running?«" + } + } + } + aborted = 0 + startTypingLoop() + } + } +} + +a() diff --git a/style.css b/style.css new file mode 100644 index 0000000..67c000a --- /dev/null +++ b/style.css @@ -0,0 +1,185 @@ +body { + background: #36013f; + margin: 0; + height: 100vh; + width: 100vw; + display: flex; + font-family: serif; + justify-content: center; + align-items: center; + overflow: hidden; + max-height: 100vh; + border-radius: 15px; + color: #FF69B4; +} + +#warning { + display: flex; + background: black; + color: white; + position: absolute; + z-index: 1000; + height: 100vh; + width: 100vw; + justify-content: center; + align-items: center; + text-align: center; +} + +#prompt a { + color: white; +} + +#plush { + cursor: pointer; + border-bottom: 1px dashed; +} + +#prompt { + padding: 2vw; + background: #33331b; +} + +.fadeout { + animation-name: fadeout; + animation-duration: 1000ms; + animation-fill-mode: forwards; +} + +@keyframes fadeout { + from { + opacity: 1; + } + + to { + opacity: 0; + } +} + + +.plimalgranda { + font-size: 75%; +} + +#stickers { + border-top: 10px solid black; + padding: 10px; + height: 40px; + flex-grow: 100; +} + +#innerSticker { + display: flex; + align-items: center; + justify-content: space-around; +} + +#footer { + position: absolute; + bottom: 0; + right: 0; + display: flex; + align-content: bottom; + align-items: flex-end; + width: 100vw; + +} + +#webring { + background: white; + padding: 15px; + width: 155px; + border-left: black solid 1px; + border-top: black solid 1px +} + +#back { + position: absolute; + left: 0; + top: 0; + background: black; + color: white; + padding: 0px 5px +} + +#content { + box-shadow: -25px 15px 10px #FF69B4; + border-radius: 7px; + background: #060b11; + border: 1px solid #36013f; + display: flex; + justify-content: space-between; + overflow: hidden auto; +} + +#content #left { + margin-left: 30px; + margin-bottom: ; + margin-block: auto; + padding-block: 30px; +} + + + +h1 { + margin-bottom: 0; +} + +a { + padding-right: 15px; + color: #FFFDD0; +} + +.lighter { + color: #FFFDD0; +} + +#right { + height: 100%; + position: sticky; + top: 0; + right: -100px; +} + +img { + border-radius: 7px; + vertical-align: middle; +} + +#innerSticker a img { + border-radius: 0; + width: 88px; + height: 33px; +} + +a img { + padding-right: 5px; + height: 25px; + width: 25px; + overflow: hidden; +} + +.falling { + position: absolute; + animation: fall 3s linear forwards infinite; + --offset-angle: 0; +} + +@keyframes fall { + 0% { + transform: translateY(-50vh) rotate(var(--offset-angle)); + } + + 100% { + transform: translateY(150vh) rotate(calc(180deg + var(--offset-angle))); + } +} + + +.tiny { + width: 100px; +} + +img { + filter: opacity(70%); +}