forked from SomeRandomFella/fyinx
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
2 lines (1 loc) · 16.9 KB
/
Copy pathindex.html
File metadata and controls
2 lines (1 loc) · 16.9 KB
1
2
<html data-font=default data-theme=default lang=en><meta charset=UTF-8><meta content="width=device-width,initial-scale=1"name=viewport><title>fyinx</title><link href=n.png rel=icon id=favicon type=image/png><link href="https://fonts.googleapis.com/css2?family=Schoolbell&family=Inter:wght@400;600&family=JetBrains+Mono&display=swap"rel=stylesheet><style>:root{--p:#7cb342;--bg:#0a0a0a;--c:#111;--b:#222;--t:#eee;--d:#888}[data-theme=midnight]{--p:#60a5fa;--bg:#020617;--c:#0f172a;--b:#1e293b}[data-theme=crimson]{--p:#ef4444;--bg:#0f0505;--c:#1a0808;--b:#2d0f0f}[data-theme=oled]{--p:#fff;--bg:#000;--c:#000;--b:#333}[data-theme=nord]{--p:#88c0d0;--bg:#2e3440;--c:#3b4252;--b:#4c566a}[data-theme=paper]{--p:#444;--bg:#f4f4f4;--c:#fff;--b:#ddd;--t:#222}[data-font=default]{font-family:Schoolbell,cursive}[data-font=modern]{font-family:Inter,sans-serif}[data-font=mono]{font-family:'JetBrains Mono',monospace}*{margin:0;padding:0;box-sizing:border-box}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--p)}body{background:var(--bg);color:var(--t);line-height:1.5;overflow-x:hidden}.container{max-width:1100px;margin:0 auto;padding:0 20px}header{position:sticky;top:0;background:var(--bg);border-bottom:1px solid var(--b);padding:15px 0;z-index:100}header .container{display:flex;justify-content:space-between;align-items:center}.logo{font-size:18px;font-weight:600;color:var(--p)}nav{display:flex;gap:20px}nav a{color:var(--d);text-decoration:none;font-size:13px;cursor:pointer}nav a.active{color:var(--t)}.intro{padding:50px 0 30px;text-align:center}.intro h2{font-size:36px;margin-bottom:5px}.intro p{color:var(--d);font-size:15px}.main-grid{display:grid;grid-template-columns:1fr;gap:15px;margin:25px 0}.box{background:var(--c);border:1px solid var(--b);padding:20px;border-radius:6px}.box h3{font-size:12px;color:var(--p);text-transform:uppercase;margin-bottom:12px;letter-spacing:1px}.stats-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--b);padding:8px 0;font-size:13px}.stats-row:last-child{border-bottom:none}.games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;padding-bottom:50px}.game-card{background:var(--c);border:1px solid var(--b);border-radius:6px;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;height:100%;transition:transform .2s}.game-card:hover{transform:translateY(-2px)}.game-card img{width:100%;aspect-ratio:1/1;object-fit:cover;background:#000;display:block;border-bottom:1px solid var(--b)}.game-card span{display:block;padding:12px 5px;font-size:11px;text-align:center;font-weight:500;flex-grow:1}body.compact .games-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}body.compact .game-card img{display:none}body.compact .game-card span{padding:15px 5px}.settings-group{background:var(--c);border:1px solid var(--b);border-radius:6px;padding:20px;margin-bottom:15px}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--b)}button.action-btn,input.s-input,select{background:var(--bg);color:var(--t);border:1px solid var(--b);padding:6px 12px;border-radius:4px;font-size:12px;cursor:pointer}input.s-input{cursor:text;width:130px;text-align:right}button.danger{color:#ef4444}.game-frame{position:fixed;inset:0;background:var(--bg);z-index:1000;display:none;flex-direction:column}.game-frame.active{display:flex}.frame-header{padding:10px 20px;display:flex;justify-content:space-between;align-items:center;background:var(--c);border-bottom:1px solid var(--b)}.game-iframe-container{flex:1;position:relative}iframe{width:100%;height:100%;border:none}.loading-screen{position:absolute;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center}.loader{width:25px;height:25px;border:2px solid var(--b);border-top-color:var(--p);border-radius:50%;animation:s .8s linear infinite}@keyframes s{to{transform:rotate(360deg)}}.page-section{display:none}.page-section.active{display:block}.popup-overlay{position:fixed;inset:0;background:rgb(0 0 0 / .8);z-index:2000;display:none;align-items:center;justify-content:center;backdrop-filter:blur(4px)}.popup-box{background:var(--c);border:1px solid var(--b);padding:30px;border-radius:12px;max-width:400px;width:90%;text-align:center}.popup-box h2{color:var(--p);margin-bottom:15px;font-size:24px}.popup-box p{margin-bottom:20px;font-size:14px;color:var(--d)}.popup-tags{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:25px}.tag{background:var(--b);padding:4px 12px;border-radius:20px;font-size:11px;color:var(--p);border:1px solid var(--p)}</style><div class=popup-overlay id=detectionPopup><div class=popup-box><h2>detected!</h2><p>fyinx has detected your file location, here are results <div class=popup-tags id=envTags></div><button class=action-btn onclick=closePopup() style=width:100%;padding:12px>continue</button></div></div><div class=wrapper><header><div class=container><h1 class=logo>fyinx</h1><nav><a id=nav-home onclick='showPage("home")'>home</a><a id=nav-games onclick='showPage("games")'>math</a><a id=nav-settings onclick='showPage("settings")'>settings</a></nav></div></header><main class=container><section class="page-section active"id=home><div class=intro><h2>fyinx</h2><p>organized and efficient. </div><div class=main-grid><div class=box><h3>site info</h3><div class=stats-row><span>status</span><span style=color:var(--p)>online</span></div><div class=stats-row><span>items amount</span><span id=gameTotal>...</span></div><div class=stats-row><span>device</span><span id=deviceTypeHome>...</span></div></div></div><h3>quick launch</h3><div class=games-grid id=featuredGames></div></section><section class=page-section id=games><div class=intro><h2>library</h2><p id=gameStatus>fetching... </div><div class=games-grid id=games-container></div></section><section class=page-section id=settings><div class=intro><h2>settings</h2></div><div class=settings-group><h3>appearance</h3><div class=setting-row><span>theme</span><select id=themeSelect><option value=default>forest <option value=midnight>midnight <option value=crimson>crimson <option value=oled>oled <option value=nord>nord <option value=paper>paper </select></div><div class=setting-row><span>font</span><select id=fontSelect><option value=default>schoolbell <option value=modern>modern <option value=mono>monospace </select></div><div class=setting-row><span>compact mode</span><button class=action-btn id=toggleCompact>disabled</button></div></div><div class=settings-group><h3>privacy</h3><div class=setting-row><span>panic key</span><input class=s-input id=panicKey placeholder="e.g. Escape"></div><div class=setting-row><span>panic point</span><input class=s-input id=panicUrl placeholder=https://google.com></div></div><div class=settings-group><h3>data management</h3><div class=setting-row><span>export data</span><button class=action-btn id=downloadData>save .json</button></div><div class=setting-row><span>clear cache</span><button class="action-btn danger"id=clearData>factory reset</button></div></div></section></main></div><script>const IS_LOCAL="file:"===window.location.protocol,BASE_URL=IS_LOCAL?"https://cdn.jsdelivr.net/gh/aukak/fyinx@main/":"./";window.addEventListener("DOMContentLoaded",(()=>{const e=document.title;function t(e){let t=document.querySelector("link[rel='icon']");t||(t=document.createElement("link"),t.rel="icon",document.head.appendChild(t)),t.href=e}document.addEventListener("visibilitychange",(()=>{document.hidden?(document.title="Home",t(BASE_URL+"img/i.ico")):(document.title=e,t(BASE_URL+"n.png"))})),runDetection()}));const gamesData=[{id:"10m",name:"10 minutes till dawn",url:"g/10m.html"},{id:"1v1",name:"1v1.lol",url:"g/1v1.html"},{id:"2048",name:"2048",url:"g/2048.html"},{id:"adgac",name:"a difficult game about climbing",url:"g/adgac.html"},{id:"andy",name:"andy apple farm",url:"g/andy.html"},{id:"angry",name:"angry birds",url:"g/angry.html"},{id:"bad",name:"bad parenting",url:"g/bad.html"},{id:"bal",name:"balatro",url:"g/balatro/index.html"},{id:"baldi",name:"baldis basics",url:"g/baldi.html"},{id:"basket",name:"basket stars",url:"g/bas.html"},{id:"bb",name:"baseball bros",url:"g/bb.html"},{id:"bendy",name:"bendy and the ink machine",url:"g/bendy.html"},{id:"bit",name:"bitlife",url:"g/bit.html"},{id:"block",name:"block blast",url:"g/block.html"},{id:"blox",name:"bloxorz",url:"g/blox.html"},{id:"bm",name:"bloodmoney",url:"g/bm.html"},{id:"buck",name:"buckshot roulette",url:"g/buck.html"},{id:"burrito",name:"burrito bison",url:"g/burrito.html"},{id:"cc2d",name:"crazy cattle 3d",url:"g/cc3d.html"},{id:"celeste",name:"celeste",url:"g/celeste.html"},{id:"clash",name:"clash of vikings",url:"g/clash.html"},{id:"co09",name:"class of 09",url:"g/co09.html"},{id:"cookie",name:"cookie clicker",url:"g/cookie.html"},{id:"crossy",name:"crossy roads",url:"g/crossy.html"},{id:"cup",name:"cuphead",url:"g/cup.html"},{id:"cut",name:"cut the rope",url:"g/cut.html"},{id:"dead",name:"deadplate",url:"g/dead.html"},{id:"delta",name:"deltarune",url:"g/deltarune/index.html"},{id:"deltra",name:"deltatraveler",url:"g/deltra.html"},{id:"doge",name:"doge miner",url:"g/doge.html"},{id:"donot",name:"do not take this cat home",url:"g/donot.html"},{id:"doom",name:"doom",url:"g/doom.html"},{id:"doom2",name:"doom 2",url:"g/doom2.html"},{id:"drift",name:"drift hunters",url:"g/drift.html"},{id:"drive",name:"drive mad",url:"g/drive.html"},{id:"duck",name:"duck life 1",url:"g/duck.html"},{id:"duck2",name:"duck life 2",url:"g/duck2.html"},{id:"duck3",name:"duck life 3",url:"g/duck3.html"},{id:"escape",name:"escape road",url:"g/escape.html"},{id:"fallout",name:"fallout",url:"g/fallout.html"},{id:"fb",name:"football bros",url:"g/fb.html"},{id:"fnaf",name:"fnaf",url:"g/fnaf.html"},{id:"fnf",name:"friday night funkin",url:"g/fnf.html"},{id:"get",name:"getaway shootout",url:"g/get.html"},{id:"granny",name:"granny",url:"g/granny.html"},{id:"gtag",name:"gorilla tag",url:"g/gtag.html"},{id:"gun",name:"gun spin",url:"g/gun.html"},{id:"half",name:"half life",url:"g/half.html"},{id:"hk",name:"hollow knight",url:"g/hk.html"},{id:"hlm",name:"hotline miami",url:"g/hlm.html"},{id:"hook",name:"stickman hook",url:"g/hook.html"},{id:"house",name:"house of hazards",url:"g/house.html"},{id:"idle",name:"idle breakout",url:"g/idle.html"},{id:"jet",name:"jetpack joyride",url:"g/jet.html"},{id:"kind",name:"lacey",url:"g/kind.html"},{id:"mc",name:"minecraft",url:"g/mc.html"},{id:"moto",name:"moto x3m",url:"g/moto.html"},{id:"nubby",name:"nubbys number factory",url:"g/nubby.html"},{id:"omo",name:"omori",url:"g/omo.html"},{id:"ovo",name:"ovo 1",url:"g/ovo.html"},{id:"ovo2",name:"ovo 2",url:"g/ovo2.html"},{id:"ovo3",name:"ovo 3",url:"g/ovo3.html"},{id:"peggle",name:"peggle",url:"g/peggle.html"},{id:"pizza",name:"pizza tower",url:"g/pizza.html"},{id:"ppg",name:"people playground",url:"g/ppg.html"},{id:"pvz",name:"plants vs zombies",url:"g/pvz.html"},{id:"ragdoll",name:"ragdoll hit",url:"g/ragdoll.html"},{id:"ragdoll2",name:"ragdoll archers",url:"g/ragdoll2.html"},{id:"raldi",name:"raldis crack house",url:"g/raldi.html"},{id:"rap",name:"parappa the rapper",url:"g/rap.html"},{id:"rb",name:"retro bowl",url:"g/rb.html"},{id:"rbc",name:"retro bowl college",url:"g/rbc.html"},{id:"repo",name:"r.e.p.o",url:"g/repo.html"},{id:"rid1",name:"riddle school 1",url:"g/rid1.html"},{id:"rid2",name:"riddle school 2",url:"g/rid2.html"},{id:"rid3",name:"riddle school 3",url:"g/rid3.html"},{id:"roof",name:"rooftop snipers",url:"g/roof.html"},{id:"roof2",name:"rooftop snipers 2",url:"g/roof2.html"},{id:"run",name:"run",url:"g/run.html"},{id:"slime",name:"slime ranchers",url:"g/slime.html"},{id:"slope",name:"slope",url:"g/slope.html"},{id:"sm64",name:"super mario 64",url:"g/sm64.html"},{id:"smash",name:"smash karts",url:"g/smash.html"},{id:"snow",name:"snow rider 3d",url:"g/snow.html"},{id:"sonic",name:"sonic mania",url:"g/sonic.html"},{id:"space",name:"space waves",url:"g/space.html"},{id:"subway",name:"subway surfers",url:"g/subway.html"},{id:"superhot",name:"superhot",url:"g/superhot.html"},{id:"tattle",name:"tattle tail",url:"g/tattle.html"},{id:"terraria",name:"terraria",url:"g/terraria.html"},{id:"tomb",name:"tomb of the mask",url:"g/tomb.html"},{id:"tomo",name:"tomodachi collection",url:"g/tomo.html"},{id:"ult",name:"ultrakill",url:"g/ult.html"},{id:"und",name:"undertale",url:"g/undertale/undertale.html"},{id:"undy",name:"undertale yellow",url:"g/undertale-yellow/index.html"},{id:"webfishing",name:"webfishing",url:"g/webfishing.html"},{id:"yandere",name:"yandere simulator",url:"g/yandere.html"}],mobile=/android|iphone|ipod|iemobile/i.test(navigator.userAgent.toLowerCase())||window.innerWidth<=768;function runDetection(){const e=window.location.pathname.endsWith(".html"),t="fyinx.wtf"===window.location.hostname;addTag(mobile?"mobile":"origin"),e&&addTag("entry point"),t&&addTag("fyinx.wtf (Main)"),IS_LOCAL&&addTag("file"),document.getElementById("detectionPopup").style.display="flex"}function addTag(e){const t=document.createElement("span");t.className="tag",t.textContent=e,document.getElementById("envTags").appendChild(t)}function closePopup(){document.getElementById("detectionPopup").style.display="none"}function showPage(e){document.querySelectorAll(".page-section").forEach((e=>e.classList.remove("active"))),document.querySelectorAll("nav a").forEach((e=>e.classList.remove("active"))),document.getElementById(e).classList.add("active"),document.getElementById("nav-"+e)&&document.getElementById("nav-"+e).classList.add("active")}const renderGames=(e,t)=>{const l=document.getElementById(e);l&&(l.innerHTML="",t.forEach((e=>{const t=document.createElement("div");t.className="game-card",t.innerHTML=`<img src="${BASE_URL}img/games/${e.id}.webp" onerror="this.src='${BASE_URL}img/games/default.webp'"><span>${e.name}</span>`,t.onclick=()=>openGame(e.name,e.url),l.appendChild(t)})))};async function openGame(e,t){const l=t.startsWith("http")?t:BASE_URL+t,a=document.createElement("div");a.className="game-frame active",a.innerHTML=`<div class="frame-header"><span class="logo">${e}</span><div class="frame-controls"><button class="action-btn" id="dl">download</button><button class="action-btn" id="cl">close</button></div></div><div class="game-iframe-container"><div class="loading-screen"><div class="loader"></div></div><iframe id="game-if" sandbox="allow-scripts allow-same-origin allow-forms allow-pointer-lock"></iframe></div>`,document.body.appendChild(a),a.querySelector("#cl").onclick=()=>a.remove();const i=a.querySelector("iframe");try{const t=await fetch(l),r=await t.text();const b=new Blob([r],{type:"text/html"}),u=URL.createObjectURL(b);i.src=u,i.onload=()=>{a.querySelector(".loading-screen").style.display="none",URL.revokeObjectURL(u)}}catch(o){i.src=l,i.onload=()=>a.querySelector(".loading-screen").style.display="none"}a.querySelector("#dl").onclick=async()=>{try{const t=await fetch(l),a=await t.blob();Object.assign(document.createElement("a"),{href:URL.createObjectURL(a),download:`${e.replace(/\s+/g,"_")}.html`}).click()}catch(e){window.open(l,"_blank")}}}const ts=document.getElementById("themeSelect"),fs=document.getElementById("fontSelect");ts.onchange=e=>{document.documentElement.setAttribute("data-theme",e.target.value),localStorage.setItem("f-t",e.target.value)},fs.onchange=e=>{document.documentElement.setAttribute("data-font",e.target.value),localStorage.setItem("f-f",e.target.value)};const compactBtn=document.getElementById("toggleCompact");compactBtn.onclick=()=>{const e=document.body.classList.toggle("compact");compactBtn.textContent=e?"enabled":"disabled",localStorage.setItem("f-c",e)};const pkInput=document.getElementById("panicKey"),puInput=document.getElementById("panicUrl");function init(){const e=localStorage.getItem("f-t")||"default",t=localStorage.getItem("f-f")||"default",l="true"===localStorage.getItem("f-c"),a=localStorage.getItem("f-pk")||"",n=localStorage.getItem("f-pu")||"";document.documentElement.setAttribute("data-theme",e),document.documentElement.setAttribute("data-font",t),(l||mobile&&null===localStorage.getItem("f-c"))&&(document.body.classList.add("compact"),compactBtn.textContent="enabled"),ts.value=e,fs.value=t,pkInput.value=a,puInput.value=n,document.getElementById("deviceTypeHome").textContent=mobile?"mobile":"desktop",document.getElementById("gameTotal").textContent=gamesData.length,renderGames("featuredGames",gamesData.slice(0,8)),renderGames("games-container",gamesData),document.getElementById("gameStatus")&&(document.getElementById("gameStatus").textContent=`${gamesData.length} items available`)}pkInput.onchange=e=>localStorage.setItem("f-pk",e.target.value),puInput.onchange=e=>localStorage.setItem("f-pu",e.target.value),window.onkeydown=e=>{e.key===localStorage.getItem("f-pk")&&(window.location.href=localStorage.getItem("f-pu")||"https://google.com")},document.getElementById("clearData").onclick=()=>{confirm("clear site preferences?")&&(localStorage.clear(),location.reload())},document.getElementById("downloadData").onclick=()=>{const e=new Blob([JSON.stringify(localStorage)],{type:"application/json"});Object.assign(document.createElement("a"),{href:URL.createObjectURL(e),download:"fyinx-backup.json"}).click()},init();</script></html>