Lucas Kent e39465ad2f Changes to be committed:
new file:   Files/flashplayer_32_sa.exe
	new file:   favicon.ico
	new file:   globe.gif
	new file:   imgs/download.png
	new file:   imgs/zuck.jpg
	new file:   index.html
	new file:   other.ico
	new file:   script.js
	new file:   site.webmanifest
	new file:   sitemap.html
	new file:   styles/backround.css
	new file:   styles/border.css
	new file:   styles/fonts/Titillium_Web/OFL.txt
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Black.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Bold.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-BoldItalic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-ExtraLight.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-ExtraLightItalic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Italic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Light.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-LightItalic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Regular.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-SemiBold.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-SemiBoldItalic.ttf
	new file:   styles/fonts/webfontkit-20221027-163353/generator_config.txt
	new file:   styles/fonts/webfontkit-20221027-163353/specimen_files/grid_12-825-55-15.css
	new file:   styles/fonts/webfontkit-20221027-163353/specimen_files/specimen_stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-163353/stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-demo.html
	new file:   styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-webfont.woff
	new file:   styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-webfont.woff2
	new file:   styles/fonts/webfontkit-20221027-165950/generator_config.txt
	new file:   styles/fonts/webfontkit-20221027-165950/specimen_files/grid_12-825-55-15.css
	new file:   styles/fonts/webfontkit-20221027-165950/specimen_files/specimen_stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-165950/stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-demo.html
	new file:   styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-webfont.woff
	new file:   styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-webfont.woff2
	new file:   styles/style.css
	new file:   tools/2048/.gitignore
	new file:   tools/2048/.jshintrc
	new file:   tools/2048/CONTRIBUTING.md
	new file:   tools/2048/LICENSE.txt
	new file:   tools/2048/README.md
	new file:   tools/2048/Rakefile
	new file:   tools/2048/favicon.ico
	new file:   tools/2048/index.html
	new file:   tools/2048/js/animframe_polyfill.js
	new file:   tools/2048/js/application.js
	new file:   tools/2048/js/bind_polyfill.js
	new file:   tools/2048/js/classlist_polyfill.js
	new file:   tools/2048/js/game_manager.js
	new file:   tools/2048/js/grid.js
	new file:   tools/2048/js/html_actuator.js
	new file:   tools/2048/js/keyboard_input_manager.js
	new file:   tools/2048/js/local_storage_manager.js
	new file:   tools/2048/js/tile.js
    new file:   tools/2048/meta/apple-touch-icon.png
	new file:   tools/webretro/cores/neocd_libretro.js
	new file:   tools/webretro/cores/neocd_libretro.wasm
	new file:   tools/webretro/cores/nestopia_libretro.js
	new file:   tools/webretro/cores/nestopia_libretro.wasm
	new file:   tools/webretro/cores/o2em_libretro.js
	new file:   tools/webretro/cores/o2em_libretro.wasm
	new file:   tools/webretro/cores/opera_libretro.js
	new file:   tools/webretro/cores/opera_libretro.wasm
2022-11-02 08:40:01 -04:00

131 lines
3.5 KiB
HTML

<!DOCTYPE html>
<html>
<!-- This file is necessary for the contents of the google drive upload window, as it fully contains google's modal window. -->
<head>
<title>Choose a File</title>
<style>
body {
background-color: #101010;
color: white;
overflow: hidden;
}
.picker-dialog {
left: 0px !important;
top: 0px !important;
outline: none !important;
border: none !important;
box-shadow: none !important;
}
.picker-dialog, .picker-dialog-content {
width: 100% !important;
height: 100% !important;
}
.center {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
margin: 0px;
}
#authorizebutton {
font-size: 36px;
}
</style>
</head>
<body>
<input type="button" id="authorizebutton" class="center" value="Authorize">
<script src="https://apis.google.com/js/api.js"></script>
<script src="https://accounts.google.com/gsi/client"></script>
<script src="tokens.js"></script>
<script>
var queries = Object.fromEntries(window.location.search.substring(1).split("&").map(i => i.split("=")).map(i => i.map(i => i && decodeURIComponent(i))));
var fileTypes = queries.exts ? queries.exts.split(",") : [];
var scope = ["https://www.googleapis.com/auth/drive.readonly"];
var pickerApiLoaded = false;
var oauthToken;
var authorizeButton = document.getElementById("authorizebutton");
authorizeButton.onclick = loadPicker;
function onPickerApiLoad() {
pickerApiLoaded = true;
tryCreatePicker();
}
function handleTokenResponse(tokenResponse) {
if (tokenResponse && tokenResponse.access_token) {
authorizeButton.style.display = "none";
oauthToken = tokenResponse.access_token;
tryCreatePicker();
}
}
function getAuth() {
google.accounts.oauth2.initTokenClient({"client_id": googleOauthClientId, "scope": scope.join(" "), callback: handleTokenResponse}).requestAccessToken();
}
function loadPicker() {
gapi.load("picker", {"callback": onPickerApiLoad});
getAuth();
}
function tryCreatePicker(config) {
if (pickerApiLoaded && oauthToken) {
var picker = new google.picker.PickerBuilder()
.setAppId(googleProjectId)
.setOAuthToken(oauthToken)
.setDeveloperKey(googleApiKey)
.addView(new google.picker.DocsView()
.setIncludeFolders(true)
.setQuery(fileTypes.join(" || "))
)
.enableFeature(google.picker.Feature.NAV_HIDDEN)
.hideTitleBar()
.setCallback(pickerCallback)
.build();
picker.setVisible(true);
}
}
var isDone;
function finish(message, name, data) {
window.opener.postMessage({webretro: {message: message, name: name, data: data}}, "*");
isDone = true;
window.close();
}
window.addEventListener("unload", function() {
if (!isDone) finish("cancelled");
}, false);
function pickerCallback(data) {
if (data.action == google.picker.Action.PICKED) {
document.body.innerHTML += "<h1 class='center'>Loading... Do not close this window.</h1>";
var file = data.docs[0];
var xhr = new XMLHttpRequest();
xhr.open("GET", "https://www.googleapis.com/drive/v3/files/" + file.id + "?alt=media&source=downloadUrl", true);
xhr.setRequestHeader("Authorization", "Bearer " + oauthToken);
xhr.responseType = "arraybuffer";
xhr.onload = function() {
finish("success", file.name, this.response);
}
xhr.onerror = function() {
finish("error");
}
xhr.send();
} else if (data.action == google.picker.Action.CANCEL) {
finish("cancelled");
}
}
</script>
</body>
</html>