Spaces:
Running
Running
<html lang="en-us"><script src="https://pygame-web.github.io/archives/0.8/pythons.js" type=module id="site" data-python="cpython3.11" data-os="vtx,fs,snd,gui" async defer> | |
</script><head><!-- | |
//============================================================================= | |
// | |
// | |
// | |
// | |
// | |
// | |
// | |
{%- if cookiecutter.comment != "" -%} | |
{{cookiecutter.comment}} | |
{% endif %} | |
--><script type="application/javascript"> | |
// END BLOCK | |
// this dict is available under PyConfig.config from __main__ | |
config = { | |
xtermjs : "1" , | |
_sdl2 : "canvas", | |
user_canvas : 0, | |
user_canvas_managed : 0, | |
ume_block : 0, | |
can_close : 0, | |
archive : "tmp", | |
gui_debug : 3, | |
cdn : "https://pygame-web.github.io/archives/0.8/", | |
autorun : 0, | |
PYBUILD : "3.11" | |
} | |
</script> | |
<title>tmp</title> | |
<meta charset="UTF-8"> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<meta name="viewport" content="height=device-height, initial-scale=1.0"> | |
<meta name="mobile-web-app-capable" content="yes"> | |
<meta name="apple-mobile-web-app-capable" content="yes"/> | |
<link rel="prefetch" href="https://pygame-web.github.io/archives/0.8/pythonrc.py"> | |
<link rel="prefetch" href="https://pygame-web.github.io/archives/0.8/vt/xterm.js"> | |
<link rel="prefetch" href="https://pygame-web.github.io/archives/0.8/vt/xterm-addon-image.js"> | |
<link rel="prefetch" href="https://pygame-web.github.io/archives/0.8/vt/xterm-addon-image.js"> | |
<link rel="icon" type="image/png" href="favicon.png" sizes="16x16"> | |
<style> | |
#status { | |
display: inline-block; | |
vertical-align: top; | |
margin-top: 20px; | |
margin-left: 30px; | |
font-weight: bold; | |
color: rgb(120, 120, 120); | |
} | |
#progress { | |
height: 20px; | |
width: 300px; | |
} | |
div.emscripten { text-align: center; } | |
div.emscripten_border { border: 1px solid black; } | |
div.thick_border { border: 4px solid black; } | |
/* the canvas *must not* have any border or padding, or mouse coords will be wrong */ | |
/* average size of droid screen 470dp x 320dp */ | |
canvas.emscripten { | |
border: 0px none; | |
background-color: transparent; | |
width: 100%; | |
height: 100%; | |
z-index: 5; | |
padding: 0; | |
margin: 0 auto; | |
position: absolute; | |
top: 0; | |
bottom: 0; | |
left: 0; | |
right: 0; | |
} | |
body { | |
font-family: arial; | |
margin: 0; | |
padding: none; | |
background-color:powderblue; | |
} | |
.topright{ | |
position:absolute; | |
top:0px; | |
right:0px; | |
} | |
.bottomright { | |
position:absolute; | |
top: 40%; | |
right: 0px; | |
} | |
.center { | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
} | |
.trinfo{ | |
position:relative; | |
right:0px; | |
border: 1px solid black; | |
} | |
.framed{ | |
position:relative; | |
top:150px; | |
right:10px; | |
border: 1px solid black; | |
} | |
</style> | |
<script src="https://pygame-web.github.io/archives/0.8//browserfs.min.js"></script> | |
</head> | |
<body> | |
<div id="transfer" align=center> | |
<!-- <div class="spinner" id='spinner'></div> --> | |
<div class="emscripten" id="status">Downloading...</div> | |
<div class="emscripten"> | |
<progress value="0" max="100" id="progress"></progress> | |
</div> | |
</div> | |
<canvas class="emscripten" id="canvas" | |
width="1px" | |
height="1px" | |
oncontextmenu="event.preventDefault()" tabindex=1> | |
</canvas> | |
<div id=html></div> | |
<div id=crt class=bottomright > | |
<div id="system" hidden> | |
<div class="button-container"> | |
<button id="aiostop" disabled>AIO ⏏︎</button> | |
<button id="aiopaused_true" disabled>AIO ■</button> | |
<button id="aiopaused_false" disabled>AIO ▶</button> | |
<button id="pygame_mixer_music_pause" disabled>Music ■</button> | |
</div> | |
<div class="button-container"> | |
<div id=load_min>min</div> | |
<div id=load_avg>avg</div> | |
<div id=load_max>max</div> | |
<button id="load_rst" disabled>RESET</button> | |
</div> | |
<div id="level">(battery level unknown)</div> | |
<div id="stateBattery">(charging state unknown)</div> | |
</div> | |
<div id=box class="emscripten_border" hidden=true> | |
<div id="info" class="trinfo"></div> | |
<iframe id="iframe" class="framed" name="iframe" | |
width="470px" height="90%" | |
allowtransparency="true" | |
style="z-index: 10; style="background: #FFFFFF;" | |
frameborder="1" | |
allowfullscreen="true" | |
webkitallowfullscreen="true" | |
msallowfullscreen="true" | |
mozallowfullscreen="true" | |
sandbox="allow-same-origin allow-top-navigation allow-scripts allow-pointer-lock" | |
allow="autoplay; fullscreen *; geolocation; microphone; camera; midi; monetization; xr-spatial-tracking; gamepad; gyroscope; accelerometer; xr; cross-origin-isolated" | |
src="https://pygame-web.github.io/archives/0.8/empty.html" | |
scrolling="yes"> | |
</iframe> | |
</div> | |
</div> | |
<div id="dlg" hidden> | |
<input type="file" id="dlg_multifile" multiple accept="image/*"> | |
<label for="dlg_multifile">Select files</label> | |
</div> | |
<div id="pyconsole"> | |
<div id="terminal" tabIndex=1 align="left"></div> | |
</div> | |
<script type="application/javascript"> | |
async function custom_onload(debug_hidden) { | |
// this is called before anythinh python is loaded | |
// make your js customization here | |
console.log(__FILE__, "custom_onload") | |
pyconsole.hidden = debug_hidden | |
system.hidden = debug_hidden | |
transfer.hidden = debug_hidden | |
info.hidden = debug_hidden | |
box.hidden = debug_hidden | |
} | |
function custom_prerun(){ | |
// no python main and no (MEMFS + VFS) yet. | |
console.log(__FILE__, "custom_prerun") | |
} | |
function custom_postrun(){ | |
// python main and no VFS filesystem yet. | |
console.log(__FILE__, "custom_postrun") | |
} | |
function debug() { | |
// allow to gain access to dev tools from js console | |
// but only on desktop. difficult to reach when in iframe | |
python.config.debug = true | |
custom_onload(false) | |
Module.PyRun_SimpleString("shell.uptime()") | |
window_resize() | |
} | |
function info_inline(data){ | |
document.getElementById("info").innerHTML = data | |
} | |
function info_online(url) { | |
// display info about current APK | |
fetch( url /*, options */) | |
.then((response) => response.text()) | |
.then((html) => { | |
info_inline(html); | |
}) | |
.catch((error) => { | |
console.warn(error); | |
}); | |
} | |
function frame_online(url) { | |
window.frames["iframe"].location = url; | |
} | |
</script> | |
</body> | |
</html> | |