Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
portableapps
/
data
/
portableapps
/
content
:
index.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php $user = posix_getpwuid(fileowner(__FILE__))["name"]; ?> <!-- HTML HEADER --> <!DOCTYPE html> <html lang="en"> <head> <title>~<?=$user?> on envs.net</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="author" content="<?=$user?>"> <meta name="robots" content="noindex,nofollow"> <meta name="description" content="~<?=$user?> on envs.net" /> <meta name="keywords" content="<?=$user?>" /> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/scsaver@latest/src/scsaver.css" /> <link rel="stylesheet" href="files/css/style.css" /> </head> <!-- dark/light-mode --> <body id="body" class="dark-mode"> <terminal id="termeditor" class="onedark"></terminal> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/scsaver@latest/dist/scsaver.js"></script> <script> function getRandomInteger(min, max) { return Math.floor(Math.random() * (max - min + 1) + min); } function pickRandomItem() { return arguments[getRandomInteger(0, arguments.length - 1)]; } function getRandomCharacter() { const characterSet = '<>=123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$#@!&+%ゔゖユぅたガなろィづガヘ⁞びフゾッヤヲォえ”‱‰゛‽ぎだゥねたぱトハヲ‵’テるユタぱのどニペケ‥ゃ⁌どへバ※0⁁ネホゅら‖'; const randomIndex = getRandomInteger(0, characterSet.length - 1); return characterSet[randomIndex]; } function animateLoop(callback, delay) { let lastTimestamp = Date.now(); function loop() { if (Date.now() - lastTimestamp >= delay) { callback(); lastTimestamp = Date.now(); } requestAnimationFrame(loop); } requestAnimationFrame(loop); } class Character { constructor() { this.element = document.createElement('span'); this.update(); } update() { this.element.textContent = getRandomCharacter(); } } class CharacterTrail { constructor(charactersList = [], options) { this.charactersList = charactersList; this.options = Object.assign( { size: 10, offset: 0 }, options ); this.trail = []; this.move(); } iterate(callback) { this.trail.forEach((character, index) => { let isLast = (index === this.trail.length - 1); if (character) callback(character, index, isLast); }); } move() { this.trail = []; let { offset, size } = this.options; for (let i = 0; i < size; ++i) { let character = this.charactersList[offset + i - size + 1]; this.trail.push(character); } this.options.offset = (offset + 1) % (this.charactersList.length + size - 1); } } class Raindrop { constructor({ container, row }) { this.element = document.createElement('p'); this.create(row); if (container) { container.appendChild(this.element); } this.fall(); } create(row = 20) { let fragment = document.createDocumentFragment(); let characters = []; for (let i = 0; i < row; ++i) { let char = new Character(); fragment.appendChild(char.element); characters.push(char); if (Math.random() < 0.5) { animateLoop(() => char.update(), getRandomInteger(1000, 5000)); } } this.trail = new CharacterTrail(characters, { size: getRandomInteger(10, 30), offset: getRandomInteger(0, 100) }); this.element.appendChild(fragment); } fall() { let trail = this.trail; let length = trail.trail.length; let delay = getRandomInteger(10, 100); animateLoop(() => { trail.move(); trail.iterate((char, index, isLast) => { char.element.style = ` color: hsl(136, 100%, ${85 / length * (index + 1)}%) `; if (isLast) { char.update(); char.element.style = ` color: hsl(136, 100%, 85%); text-shadow: 0 0 .5em #fff, 0 0 .5em currentColor; `; } }); }, delay); } } </script> <script> class TextScramble { constructor(el) { this.el = el; this.chars = '!<>-_\\/[]{}—=+*^?#________'; this.update = this.update.bind(this); } setText(newText) { const oldText = this.el.innerText; const length = Math.max(oldText.length, newText.length); const promise = new Promise(resolve => this.resolve = resolve); this.queue = []; for (let i = 0; i < length; i++) { const from = oldText[i] || ''; const to = newText[i] || ''; const start = Math.floor(Math.random() * 40); const end = start + Math.floor(Math.random() * 40); this.queue.push({ from, to, start, end }); } cancelAnimationFrame(this.frameRequest); this.frame = 0; this.update(); return promise; } update() { let output = ''; let complete = 0; for (let i = 0, n = this.queue.length; i < n; i++) { let { from, to, start, end, char } = this.queue[i]; if (this.frame >= end) { complete++; output += to; } else if (this.frame >= start) { if (!char || Math.random() < 0.28) { char = this.randomChar(); this.queue[i].char = char; } output += `<span class="dud">${char}</span>`; } else { output += from; } } this.el.innerHTML = output; if (complete === this.queue.length) { this.resolve(); } else { this.frameRequest = requestAnimationFrame(this.update); this.frame++; } } randomChar() { return this.chars[Math.floor(Math.random() * this.chars.length)]; }} </script> <script src="https://cdnjs.cloudflare.com/ajax/libs/typed.js/2.0.8/typed.min.js"></script> <script src="files/js/script.js"></script> </body> </html>