Merge pull request 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' (#5) from selenite/pages:main into main

Reviewed-on: https://codeberg.org/skysthelimitt/selenite/pulls/5
This commit is contained in:
skysthelimitt 2024-01-27 03:20:08 +00:00
commit 527f8e77ae
81 changed files with 26080 additions and 196 deletions

Binary file not shown.

3
4gam/cover.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 46 KiB

2
4gam/index.html Normal file
View File

@ -0,0 +1,2 @@
<script src="https://unpkg.com/@ruffle-rs/ruffle"></script>
<embed src="555421_antidrugsgames.swf" width="100%" height="100%"></embed>

BIN
98/307312_Windows_98_v2.swf Normal file

Binary file not shown.

3
98/cover.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 17 KiB

2
98/index.html Normal file
View File

@ -0,0 +1,2 @@
<embed src="307312_Windows_98_v2.swf" width="100%" height="100%"></embed>
<script src="https://unpkg.com/@ruffle-rs/ruffle"></script>

395
bootstrap3.css vendored Normal file
View File

@ -0,0 +1,395 @@
/*!
* Generated using the Bootstrap Customizer (https://getbootstrap.com/docs/3.4/customize/)
*/
/*!
* Bootstrap v3.4.1 (https://getbootstrap.com/)
* Copyright 2011-2019 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
.modal-open {
overflow: hidden;
}
.close {
float:right;
}
.modal {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1050;
display: none;
overflow: hidden;
-webkit-overflow-scrolling: touch;
outline: 0;
}
.modal.fade .modal-dialog {
-webkit-transform: translate(0, -25%);
-ms-transform: translate(0, -25%);
-o-transform: translate(0, -25%);
transform: translate(0, -25%);
-webkit-transition: -webkit-transform 0.3s ease-out;
-o-transition: -o-transform 0.3s ease-out;
transition: transform 0.3s ease-out;
}
.modal.in .modal-dialog {
-webkit-transform: translate(0, 0);
-ms-transform: translate(0, 0);
-o-transform: translate(0, 0);
transform: translate(0, 0);
}
.modal-open .modal {
overflow-x: hidden;
overflow-y: auto;
}
.modal-dialog {
position: relative;
width: auto;
margin: 10px;
}
.modal-content {
position: relative;
background-color: #ffffff;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid #999999;
border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 6px;
-webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
outline: 0;
}
.modal-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1040;
background-color: #000000;
}
.modal-backdrop.fade {
filter: alpha(opacity=0);
opacity: 0;
}
.modal-backdrop.in {
filter: alpha(opacity=50);
opacity: 0.5;
}
.modal-header {
padding: 15px;
border-bottom: 1px solid #e5e5e5;
}
.modal-header .close {
margin-top: -2px;
}
.modal-title {
margin: 0;
line-height: 1.42857143;
}
.modal-body {
position: relative;
padding: 15px;
}
.modal-footer {
padding: 15px;
text-align: right;
border-top: 1px solid #e5e5e5;
}
.modal-footer .btn + .btn {
margin-bottom: 0;
margin-left: 5px;
}
.modal-footer .btn-group .btn + .btn {
margin-left: -1px;
}
.modal-footer .btn-block + .btn-block {
margin-left: 0;
}
.modal-scrollbar-measure {
position: absolute;
top: -9999px;
width: 50px;
height: 50px;
overflow: scroll;
}
@media (min-width: 768px) {
.modal-dialog {
width: 600px;
margin: 30px auto;
}
.modal-content {
-webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
}
.modal-sm {
width: 300px;
}
}
@media (min-width: 992px) {
.modal-lg {
width: 900px;
}
}
.clearfix:before,
.clearfix:after,
.modal-header:before,
.modal-header:after,
.modal-footer:before,
.modal-footer:after {
display: table;
content: " ";
}
.clearfix:after,
.modal-header:after,
.modal-footer:after {
clear: both;
}
.center-block {
display: block;
margin-right: auto;
margin-left: auto;
}
.pull-right {
float: right !important;
}
.pull-left {
float: left !important;
}
.hide {
display: none !important;
}
.show {
display: block !important;
}
.invisible {
visibility: hidden;
}
.text-hide {
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
}
.hidden {
display: none !important;
}
.affix {
position: fixed;
}
@-ms-viewport {
width: device-width;
}
.visible-xs,
.visible-sm,
.visible-md,
.visible-lg {
display: none !important;
}
.visible-xs-block,
.visible-xs-inline,
.visible-xs-inline-block,
.visible-sm-block,
.visible-sm-inline,
.visible-sm-inline-block,
.visible-md-block,
.visible-md-inline,
.visible-md-inline-block,
.visible-lg-block,
.visible-lg-inline,
.visible-lg-inline-block {
display: none !important;
}
@media (max-width: 767px) {
.visible-xs {
display: block !important;
}
table.visible-xs {
display: table !important;
}
tr.visible-xs {
display: table-row !important;
}
th.visible-xs,
td.visible-xs {
display: table-cell !important;
}
}
@media (max-width: 767px) {
.visible-xs-block {
display: block !important;
}
}
@media (max-width: 767px) {
.visible-xs-inline {
display: inline !important;
}
}
@media (max-width: 767px) {
.visible-xs-inline-block {
display: inline-block !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm {
display: block !important;
}
table.visible-sm {
display: table !important;
}
tr.visible-sm {
display: table-row !important;
}
th.visible-sm,
td.visible-sm {
display: table-cell !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-block {
display: block !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-inline {
display: inline !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-inline-block {
display: inline-block !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md {
display: block !important;
}
table.visible-md {
display: table !important;
}
tr.visible-md {
display: table-row !important;
}
th.visible-md,
td.visible-md {
display: table-cell !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md-block {
display: block !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md-inline {
display: inline !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md-inline-block {
display: inline-block !important;
}
}
@media (min-width: 1200px) {
.visible-lg {
display: block !important;
}
table.visible-lg {
display: table !important;
}
tr.visible-lg {
display: table-row !important;
}
th.visible-lg,
td.visible-lg {
display: table-cell !important;
}
}
@media (min-width: 1200px) {
.visible-lg-block {
display: block !important;
}
}
@media (min-width: 1200px) {
.visible-lg-inline {
display: inline !important;
}
}
@media (min-width: 1200px) {
.visible-lg-inline-block {
display: inline-block !important;
}
}
@media (max-width: 767px) {
.hidden-xs {
display: none !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.hidden-sm {
display: none !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.hidden-md {
display: none !important;
}
}
@media (min-width: 1200px) {
.hidden-lg {
display: none !important;
}
}
.visible-print {
display: none !important;
}
@media print {
.visible-print {
display: block !important;
}
table.visible-print {
display: table !important;
}
tr.visible-print {
display: table-row !important;
}
th.visible-print,
td.visible-print {
display: table-cell !important;
}
}
.visible-print-block {
display: none !important;
}
@media print {
.visible-print-block {
display: block !important;
}
}
.visible-print-inline {
display: none !important;
}
@media print {
.visible-print-inline {
display: inline !important;
}
}
.visible-print-inline-block {
display: none !important;
}
@media print {
.visible-print-inline-block {
display: inline-block !important;
}
}
@media print {
.hidden-print {
display: none !important;
}
}

Binary file not shown.

3
demo/cover.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

2
demo/index.html Normal file
View File

@ -0,0 +1,2 @@
<embed src="908569_dd2af61701310616.swf" width="100%" height="100%"></embed>
<script src="https://unpkg.com/@ruffle-rs/ruffle"></script>

View File

@ -1,5 +1,94 @@
[
{
"name": "Web Assembly Flash (WAFlash)",
"image": "cover.svg",
"directory": "waflash",
"recommended": "1"
},
{
"name": "sb2 to swf",
"image": "cover.svg",
"directory": "sb2toswf",
"recommended": "1"
},
{
"name": "The Oregon Trail",
"image": "cover.svg",
"directory": "oregon",
"recommended": "1"
},
{
"name": "Scratch 1",
"image": "cover.svg",
"directory": "scratch1",
"recommended": "1"
},
{
"name": "Scratch 2",
"image": "cover.svg",
"directory": "scratch2",
"recommended": "1"
},
{
"name": "Say No to Drugs",
"image": "cover.svg",
"directory": "4gam",
"recommended": "1"
},
{
"name": "New Grounds",
"image": "cover.svg",
"directory": "ng",
"recommended": "1"
},
{
"name": "Jewels Breaker Puzzle:Brick breaker challenge For PC (Windows & MAC)",
"image": "cover.svg",
"directory": "jewel",
"recommended": "1"
},
{
"name": "Simcity Build:IT",
"image": "cover.svg",
"directory": "simcity",
"recommended": "1"
},
{
"name": "VMware Workstation Pro 9",
"image": "cover.svg",
"directory": "vm",
"recommended": "1"
},
{
"name": "Win 98",
"image": "cover.svg",
"directory": "98",
"recommended": "1"
},
{
"name": "Advanced Terrain Demo",
"image": "cover.svg",
"directory": "demo",
"recommended": "1"
},
{
"name": "Bullet Heaven",
"image": "cover.svg",
"directory": "heaven",
"recommended": "1"
},
{
"name": "GrubHub",
"image": "cover.svg",
"directory": "grubhub",
"recommended": "1"
},
{
"name": "Rabbit Rescue",
"image": "cover.svg",
"directory": "rabbit",
"recommended": "1"
},
{
"name": "Creeper Craft",
"image": "cover.svg",

BIN
grubhub/779470_assassin.swf Normal file

Binary file not shown.

3
grubhub/cover.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 14 KiB

2
grubhub/index.html Normal file
View File

@ -0,0 +1,2 @@
<embed src="779470_assassin.swf" width="100%" height="100%"></embed>
<script src="https://unpkg.com/@ruffle-rs/ruffle"></script>

Binary file not shown.

3
heaven/cover.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

2
heaven/index.html Normal file
View File

@ -0,0 +1,2 @@
<embed src="782181_bullet-heaven-3-prototype.swf" width="100%" height="100%"></embed>
<script src="https://unpkg.com/@ruffle-rs/ruffle"></script>

View File

@ -66,7 +66,7 @@
<a href="/about.html">About</a>
</header>
<main id="main" class="noscroll">
<h1>selenite.</h1>
<b style="font-weight:1000px;"><h1>selenite.</h1></b>
<noscript>enable javascript if you want the games to actually load</noscript>
<p id="randomquote">...</p>
<div class="samerow">
@ -81,10 +81,11 @@
</div>
</div>
<div id="adcontainer">
<h3><a href="ad.html">AD (click to read more):</a></h3>
<a class="ad" data-toggle="modal" data-target="#myModal">AD: (click here to read more)</a>
<script async="async" data-cfasync="false" src="//pl22225360.toprevenuegate.com/92108816b5da54426d1639bcbfb5785c/invoke.js"></script>
<div id="container-92108816b5da54426d1639bcbfb5785c"></div>
</div>
<BR>
</main>
<footer class="noscroll">

Binary file not shown.

3
jewel/cover.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.9 KiB

2
jewel/index.html Normal file
View File

@ -0,0 +1,2 @@
<script src="https://unpkg.com/@ruffle-rs/ruffle"></script>
<embed src="538281_JewelBreaking.swf" width="100%" height="100%"></embed>

File diff suppressed because one or more lines are too long

BIN
ng/692781_ngsim.swf Normal file

Binary file not shown.

3
ng/cover.svg Normal file
View File

@ -0,0 +1,3 @@
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
<image href="data:image/webp;base64,UklGRggIAABXRUJQVlA4WAoAAAAQAAAATQAALwAAQUxQSJ8DAAABCbRt2wayvcX9/+AmP0T0fwLKnuiQrr5NYkR+6NA0wWYIBJL2R18gIlIn20i22hzeRGRkZMg0pS5UvP/hbyFiAiaA0rZtZ6R5SNfzplPtHtu2bdu2Z2djNbO0bdu2bXy22XZ3JfXeiyRV1V8qIiaAhoDSTCLpgrDRRYVCg1s4AJhJ0LRywyor1Bfiod75i4seM0+FIpu6rmrq6xua65yKn3xoaj16zzbnwqCxIYzqg9D3vvugIdzWh2y0zpqtyzUEQWm0b/H8xZO/noSsguGwMC4C6bL/nvrx/x1e3ExGmbI/T5hPw3b7nrKTo/zer97/tU7leSdLABAgE4bpr5ubnm32gCEwkGu/6d0VLj5/NZCsHIPovz0K5SUNfgYMg0xhk0e3k1F+/NHinbYLhVGhMK298yplGQIGlDKqKAMZVRS2wrob1Cmr+EAvrDI8jmr7+vVbYsvYRTBUy7pBPIfMVVvJvfM73LqWLKUQ5g9j/33IVE2oP7RVloiohQp2X5vUWLUAlm/BEr5GdAygRNFqgw9IVY3o7EqLqY3/uDTVArnp47AUrxoATxvpqgE++HM8luZ97hT0PoMrpcXKn73jERmDeVMw9CHOm5kDKOVHGMlfWhGAMIy8ypuR1Pvj6hh0zcMzP1tiXjkRrn0grRg6kv7tq+bnRTZ6796XDiCSSrGTL77Fk0tZ7yVXTX17cka654BVXD7grqfDoDRM+cbaa8ty0gkMD1YAYVtdXq49Ji61rlSRQiOXpg2eeeL0S7bAKghHIp8LwPA4Kp1fIDeSo/JvCtROuSU/YVHNgK9bcH7sFGmZkJv/NeZdVVRecVpkWgZML4fQ118FASpn5K0FAWMve6sb80NDFYm5H/wWWTkDt74+y4+ZbNEHmKdYGYx/eeERx4BSZCN9479e/6yxou2IFhntXniz8mz+SPx4w2KyR0zdz20cjo2am5oBOrv/jkKVJRdPIVj81oTvOgwliktx8x8eLo6FldZbgaT3Tz+xvbUEDaG3qBDIMzRhFbyNjv4/bmbJEr1DyOb49i5QVSSidiNz5vWrhoWgIYC4sUFxrFYQBj1/dsWADTqQ0TG1F1AlAmOgZ4BsG5xFNSWIOn+d7QOWNACCeMZ//WYmZQgMrDj1tyHKlJE0mcAAiXTTnD+/2qG91yEAi6f98k9HCbM0QMMdf/06pYeylVJVweBn7a1kCpa+e9dDH8zoG42iUYo9izqmj5v2wLiSlQMAVlA4IEIEAADQEwCdASpOADAAPi0Sh0KhoQzNx6oMAWJbACl5YH+Z8vlZDpP5M8xDwt4O5Igq3aZOf22XmA/Zn1jvQB5KvWe+gB5aH7VfCp+4npFf/+tjtuiliAE1Jc9rWOwMx7meFETl4p5PJP7sXRHiuQSor+Y+ecetC0x3AlqeKSynxeSZj7GNMz0Sv1n0qEyvF5/yW0zj+0Qz3CU3V+9pbHUPmbw8XFomHf9uQAD+/+03sNZypSZqYa4TGNIhUhhgop4AYnjPrFVIVSr5jb3TmLMZuB1pfbY91AGPt8t1ywGPsRrn/rqnus3/5aX34ZYC22Z73q4EPWsz0czHyxsjNxZfl0ycw+BE5j+TxUFVMnf+rr0AqDuDnrFrfPQ3EkyJ3qqpi7KW7Vhv6x1La//lU3PkR0OaM89uXUzRj4/uyj/8IsSjhT/O+DlhdYEp/PuV0MhMzAMp1bNkKXw67trVYI4qQiBUQJ7gT0J6n7CHg8vrgEDUu64/XC8aqP9IRZJ5huzAH0vHzenZy3mZ4GScYTBqIJSYtP2oSor9YI3PvKUKWjnDF/hxhD8G1xjzVc933kQsc//6jxYkteduGmLctEdK4h8G3uu7Gd3Ow5KADXYBA/LlQpWYIif7pMMQPFAVTc71BsgJ4p4tpeGilDx7yq/m4NTGJPQC3/rsXTCAU8pJqrYv1HTnsUbraaPcLt2CclwjiLcDwGQR+CBsmAFFnBcGiamT3MrYZKZJSMERabF8vfjNrTFBKGZh+i4Yvqr4qsKkzqYF0BRujHX+dQoPmKfTEJQZyl6Ss0EPcaKdxEQd+HGzsRUv6drC9xUKhYZfbufCkCvw+0AV0ejQbEMmql30WIGK0g31fDQyEq4Q736cGW69yZin8gRM5yrndcpwHdJXlvwHe34+set84o13xhFDWzUwO8Ek9QPIl7ufdEiHOZJPHK8ECHNx7/LwSDFnmrM2mlvQP6+0P/uuLgWpk4r/VsdfP/yWCJYa11MXYErR/xHuVjbPxsOLLz+oD8TqcKUoHRmz/uNrM/KnV0DxIYj9ZRACkRhDfI8vlf3H9GxLRHjz1eK56oL6ttffRzPmTCjmwXHI04D9haQazd82ps+EuWxL5LUBV1fS9AHq37NCImqBb7JmRQZb7/N8YYD1uh9/OCf/0eJkZgblrJBpBLRrsuPnTZ3Wh7Dz31j55DFeKv9d7w+B1sq6DBWVRgbn3WsV4GxW7/O+CEPHwPkqYtEw/tf/spJDbxn9Iz0JzekLn1q4S1igJwJcVU9r/oLl1RMhkntqq38WxDx9NUhXhz95NPXpWQwn0mvnGzltsMzu5gOMke/ljacWreIX/3W6Ny/r2qFN+T8AFgNVb6DFnKke4MO+fWVURIjj/xql0q4vKZdbE9c8S0LXEq+u1JVvBd1fCY+nzFvJfQz2rTyDrL6RXlpVoXQbpfD1gHnVyfiypDl4AAAA" height="200" width="200" />
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

2
ng/index.html Normal file
View File

@ -0,0 +1,2 @@
<script src="https://unpkg.com/@ruffle-rs/ruffle"></script>
<embed src="692781_ngsim.swf" width="100%" height="100%"></embed>

BIN
oregon/Organ_Trail.swf Normal file

Binary file not shown.

3
oregon/cover.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 105 KiB

2
oregon/index.html Normal file
View File

@ -0,0 +1,2 @@
<script src="https://unpkg.com/@ruffle-rs/ruffle"></script>
<embed src="Organ_Trail.swf" width="100%" height="100%"></embed>

View File

@ -20,6 +20,24 @@
<script src="/js/cookie.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function () {
var searchbar = document.querySelector('#gamesearch');
var games = document.querySelectorAll('.game');
searchbar.addEventListener('input', function () {
var filter = searchbar.value.toUpperCase();
games.forEach(function (game) {
var gameText = game.textContent || game.innerText;
var displayStyle = gameText.toUpperCase().includes(filter) ? '' : 'none';
game.style.display = displayStyle;
});
});
});
</script>
<script src='https://cdn.jsdelivr.net/npm/@widgetbot/crate@3' async defer>
new Crate({
@ -75,22 +93,42 @@
</header>
<main>
<div id="adcontainer">
<h3><a href="ad.html">AD (click to read more):</a></h3>
<script type="text/javascript">
atOptions = {
'key' : 'a4e483c304d8788fbb3f86d0fccd7dd2',
'format' : 'iframe',
'height' : 90,
'width' : 728,
'params' : {}
};
document.write('<scr' + 'ipt type="text/javascript" src="//www.topcreativeformat.com/a4e483c304d8788fbb3f86d0fccd7dd2/invoke.js"></scr' + 'ipt>');
</script>
<u><b><a class="ad" data-toggle="modal" data-target="#myModal">AD: (click here to read more)</a></b></u>
<script async="async" data-cfasync="false" src="//pl22225360.toprevenuegate.com/92108816b5da54426d1639bcbfb5785c/invoke.js"></script>
<div id="container-92108816b5da54426d1639bcbfb5785c"></div>
</div>
<!-- Modal -->
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">What happened? Why does Selenite have ads?</h4>
</div>
<div class="modal-body">
<p>After a lot of thinking, I have decided that the best course of action for Selenite is to add ads. I have spent a lot of time to make sure they are the least intrusive on your experience while still allowing me to make a profit off of the website. This decision was not out of greed or anything, it was because I can't expand Selenite past a certain point without a guaranteed income, and I can't do that solely off of donations.
<br><br>
Ads are powered by Adsterra, and we use the 728x90 banner ads and the Native banners, with erotic ads enabled.
<br><br>
There is still an option to disable ads. You can also use an adblocker (which I HIGHLY recommend).
</p>
</div>
<div class="modal-footer">
<button type="button" onclick="localStorage.setItem('selenite.adblock', 'true')" class="button" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
<input class="hiddenUpload" type="file" accept=".save" hidden />
<input type="text" id="gamesearch" placeholder="Type here to search.." />
<input type="text" class="searchbar" id="gamesearch" placeholder="Type here to search.." />
<div class="samerow">
<sl-tooltip content="Remember to download your save, so you don't lose your progress." trigger="manual" class="manual-tooltip">
<button onclick="downloadMainSave()">Download Save</button>
@ -106,22 +144,22 @@
</button>
</div>
<h2>Pinned Games</h2>
<p id="pinnedmessage">pin some games for things to show up here!</p>
<h2>Starred Games</h2>
<p id="pinnedmessage">Star some games for things to show up here!</p>
<div id="pinned"></div>
<h2>All Games</h2>
<div id="games">
<a href="/suggest.html"><div class="suggest"><img src="img/addlink.svg" alt="Add Game logo" style="filter: invert(1);"><h1>Suggest a game!</h1></div></a>
<a href="/suggest.html"><div class="suggest"><img src="img/addlink.svg" alt="Add Game logo" style="filter: invert(1) !important;"><h1>Suggest a game!</h1></div></a>
<p id="message">games loading..</p>
</div>
<div id="adcontainer">
<h3><a href="ad.html">AD (click to read more):</a></h3>
<u><b><a class="ad" data-toggle="modal" data-target="#myModal">AD: (click here to read more)</a></b></u>
<script async="async" data-cfasync="false" src="//pl22225360.toprevenuegate.com/92108816b5da54426d1639bcbfb5785c/invoke.js"></script>
<div id="container-92108816b5da54426d1639bcbfb5785c"></div>
</div>
<BR>
</main>
<footer>
@ -133,5 +171,19 @@
<a href="/suggest.html">Suggestions</a>
<a href="/contact.html">Contact</a>
</footer>
<script>
document.addEventListener("DOMContentLoaded", function () {
const adContainers = document.querySelectorAll('[id=adcontainer]');
if (adContainers.length > 0) {
for (let i = 0; i < adContainers.length; i++) {
if (Math.random() < 0.5 || localStorage.getItem("selenite.adblock") === "true") {
adContainers[i].innerHTML = "";
}
}
}
});
</script>
</body>
</html>

Binary file not shown.

3
rabbit/cover.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 40 KiB

2
rabbit/index.html Normal file
View File

@ -0,0 +1,2 @@
<embed src="380064_Rabbit_Rescue.swf" width="100%" height="100%"></embed>
<script src="https://unpkg.com/@ruffle-rs/ruffle"></script>

3
sb2toswf/ cover.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 31 KiB

BIN
sb2toswf/Converter.swf Normal file

Binary file not shown.

4
sb2toswf/index.html Normal file
View File

@ -0,0 +1,4 @@
<script src="https://unpkg.com/@ruffle-rs/ruffle"></script>
<center>
<embed src="Converter.swf" width="800" height="800"></embed>
</center>

3
scratch1/cover.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 206 KiB

59
scratch1/index.html Normal file
View File

@ -0,0 +1,59 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ScratchJS</title>
<!--
Copyright (c) 2013-2020 Vanessa Freudenberg
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-->
<link rel="icon" type="image/svg" href="cover.svg">
<link rel="apple-touch-icon" href="scratch.png" sizes="152x152">
<meta name="viewport" content="minimum-scale=1,maximum-scale=1,width=device-width">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="msapplication-TileImage" content="scratch.png">
<link rel="stylesheet" href="../lib/gh-fork-ribbon.css">
<link rel="stylesheet" href="../lib/addtohomescreen.css">
<script src="../lib/addtohomescreen.js"></script>
<link rel="stylesheet" href="scratch.css">
<script type="module" src="../squeak.js"></script>
<script src="scratch.js"></script>
</head>
<body>
<div id="sqHeader">
<h1>Scratch on SqueakJS</h1>
<label title="Make Scratch as large as possible"><input id="sqFullscreen" type="checkbox">full screen</label>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/codefrau/SqueakJS" target="_blank">Fork me on GitHub</a>
</div>
</div>
</div>
<div id="sqFooter">
<p>This is <a href="../" target="_blank">SqueakJS</a> running a Scratch image.
Feedback and contributions welcome! — Vanessa Freudenberg</p>
</div>
<canvas id="sqCanvas"></canvas>
<div id="sqSpinner"><div></div></div>
</body>
</html>

51
scratch1/scratch.css Normal file
View File

@ -0,0 +1,51 @@
body {
background-color: #eae6d1;
font-family: sans-serif;
}
canvas {
position: fixed;
background: #000;
cursor: default;
}
canvas.pixelated {
image-rendering: -moz-crisp-edges;
image-rendering: -webkit-optimize-contrast;
image-rendering: pixelated;
-ms-interpolation-mode: nearest-neighbor;
}
div#sqHeader {
position: fixed;
top: 0;
left: 0;
right: 0;
padding: 10px;
border-bottom: 6px double gray;
}
div#sqFooter {
position: fixed;
left: 0;
right: 0;
bottom: 0;
padding: 10px;
border-top: 6px double gray;
}
div#sqSpinner {
position: fixed;
margin: auto; top: 0; left: 0; bottom: 0; right: 0;
width: 100px;
height: 100px;
border-radius: 50px;
background: rgba(0, 0, 0, 0.3);
box-shadow: 0 0 5px 5px #F90;
display: none;
transform: rotate(30deg);
}
div#sqSpinner > div {
position: absolute;
top: 45px;
left: 5px;
width: 90px;
height: 10px;
border-radius: 5px;
box-shadow: 0 0 5px 5px #F90;
}

44
scratch1/scratch.js Normal file
View File

@ -0,0 +1,44 @@
/*
* Copyright (c) 2013-2020 Vanessa Freudenberg
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
var fullscreen = navigator.standalone ||
window.matchMedia('(max-device-width: 800px) and (max-device-height: 800px)').matches;
window.onload = function() {
var url = "https://freudenbergs.de/vanessa/squeakjs/scratch/Scratch.image";
SqueakJS.runSqueak(url, sqCanvas, {
appName: "Scratch",
fullscreen: fullscreen,
header: sqHeader,
footer: sqFooter,
spinner: sqSpinner,
fullscreenCheckbox: sqFullscreen,
root: "/Scratch",
templates: ["Projects", "Media", "Help", "locale"],
});
};
if (addToHomescreen.isStandalone)
fullscreen = true;
else addToHomescreen({
appID: 'squeakjs.scratch.add2home',
});

3
scratch2/cover.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 13 KiB

2
scratch2/index.html Normal file
View File

@ -0,0 +1,2 @@
<script src="https://unpkg.com/@ruffle-rs/ruffle"></script>
<embed src="s2.swf" width="100%" height="100%"></embed>

BIN
scratch2/s2.swf Normal file

Binary file not shown.

3
simcity/cover.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.0 KiB

2
simcity/index.html Normal file
View File

@ -0,0 +1,2 @@
<script src="https://unpkg.com/@ruffle-rs/ruffle"></script>
<embed src="simcity.swf" width="100%" height="100%"></embed>

BIN
simcity/simcity.swf Normal file

Binary file not shown.

365
style.css
View File

@ -1,92 +1,113 @@
@import url('https://fonts.googleapis.com/css2?family=Prompt:wght@300&display=swap');
@import url('bootstrap3.css');
@keyframes loadInAnimation {
0% {
opacity: 0;
opacity: 0 !important;
}
100% {
opacity: 100;
opacity: 100 !important;
}
}
:root {
--inputbg: #3c096c;
--inputborder: #5a189a;
--uibg: #240046;
--textcolor: #fff;
--bg: #10002b;
--inputbg: #3c096c !important;
--inputborder: #5a189a !important;
--uibg: #240046 !important;
--textcolor: #fff !important;
--bg: #10002b !important;
}
.suggest {
fill: white;
}
.hiddenUpload {
display:none !important;
visibility: hidden !important;
}
* {
transition-duration: 0.5s;
outline: none;
border: none;
box-sizing: border-box;
align-content: center;
text-align: center;
font-family: 'Prompt', sans-serif;
color: var(--textcolor);
transition-duration: 0.5s !important;
outline: none !important;
border: none !important;
box-sizing: border-box !important;
align-content: center !important;
text-align: center !important;
font-family: 'Prompt', sans-serif !important;
color: var(--textcolor) !important;
}
.modal-content {
background:var(--uibg)!important;
}
#myModal {
color:white!important;
}
.modal-footer {
border:0!important;
}
.modal-header {
border:0!important;
}
body {
margin: 0;
padding: 0;
background: var(--bg);
color: var(--textcolor);
background-position: center;
background-repeat: no-repeat;
background-size: cover;
background-attachment: fixed;
margin: 0 !important;
padding: 0 !important;
background: var(--bg) !important;
color: var(--textcolor) !important;
background-position: center !important;
background-repeat: no-repeat !important;
background-size: cover !important;
background-attachment: fixed !important;
}
header,
footer {
background-color: var(--uibg);
display: flex;
padding: 0.7rem;
width: 100%;
z-index: 1;
justify-content: center;
background-color: var(--uibg) !important;
display: flex !important;
padding: 0.7rem !important;
width: 100% !important;
z-index: 1 !important;
justify-content: center !important;
}
header {
top: 0;
border-radius: 0 0 20px 20px;
position: fixed;
box-shadow: 0 5px 10px var(--uibg);
top: 0 !important;
border-radius: 0 0 20px 20px !important;
position: fixed !important;
box-shadow: 0 5px 10px var(--uibg) !important;
}
footer.noscroll {
position: fixed;
overflow: hidden;
position: fixed !important;
overflow: hidden !important;
}
footer {
bottom: 0;
border-radius: 20px 20px 0 0;
box-shadow: 0 -5px 10px var(--uibg);
bottom: 0 !important;
border-radius: 20px 20px 0 0 !important;
box-shadow: 0 -5px 10px var(--uibg) !important;
}
footer a,
footer a:visited,
header a,
header a:visited {
text-align: center;
font-weight: 700;
text-decoration: none;
margin-right: 2rem;
margin-left: 1rem;
text-align: center !important;
font-weight: 700 !important;
text-decoration: none !important;
margin-right: 2rem !important;
margin-left: 1rem !important;
}
footer a:hover,
header a:hover {
text-shadow: 2px 2px 6px var(--textcolor);
text-shadow: 2px 2px 6px var(--textcolor) !important;
}
main {
animation: 1.25s ease-in-out 0s 1 loadInAnimation;
align-items: center;
flex-direction: column;
display: flex;
min-height: calc(100vh - (2 * 0.7rem));
gap: 0;
flex-wrap: wrap;
margin: auto;
margin-top: 4rem;
width: 90%;
animation: 1.25s ease-in-out 0s 1 loadInAnimation !important;
align-items: center !important;
flex-direction: column !important;
display: flex !important;
min-height: calc(100vh - (2 * 0.7rem)) !important;
gap: 0 !important;
flex-wrap: wrap !important;
margin: auto !important;
margin-top: 4rem !important;
width: 90% !important;
}
main#main.noscroll {
justify-content: center;
justify-content: center !important;
}
h1,
h2,
@ -94,217 +115,217 @@ h3,
p,
a,
label {
margin: 0;
padding: 0;
text-shadow: var(--shadow);
margin: 0 !important;
padding: 0 !important;
text-shadow: var(--shadow) !important;
}
.samerow {
display: flex;
justify-content: center;
gap: 0;
flex-wrap: wrap;
display: flex !important;
justify-content: center !important;
gap: 0 !important;
flex-wrap: wrap !important;
}
h1 {
font-size: 60px;
font-size: 60px !important;
}
h2 {
font-size: 40px;
font-size: 40px !important;
}
h3 {
font-size: 20px;
font-size: 20px !important;
}
p, a {
font-size: 16px;
font-size: 16px !important;
}
button, input#websubmit.submit, input[type=submit] {
cursor: pointer;
background-color: var(--inputbg);
border-color: var(--inputborder);
border-width: 3px;
border-radius: 10px;
border-style: solid;
padding: 7px;
margin-left: 20px;
margin-right: 20px;
margin: 10px;
cursor: pointer !important;
background-color: var(--inputbg) !important;
border-color: var(--inputborder) !important;
border-width: 3px !important;
border-radius: 10px !important;
border-style: solid !important;
padding: 7px !important;
margin-left: 20px !important;
margin-right: 20px !important;
margin: 10px !important;
}
button:hover, input#websubmit.submit:hover, input[type=submit]:hover {
filter: brightness(80%);
transform: scale(1.07);
filter: brightness(80%) !important;
transform: scale(1.07) !important;
}
img {
width: 100%;
aspect-ratio: auto;
user-select: none;
filter: drop-shadow(var(--shadow));
image-rendering: pixelated;
width: 100% !important;
aspect-ratio: auto !important;
user-select: none !important;
filter: drop-shadow(var(--shadow)) !important;
image-rendering: pixelated !important;
}
.img-container a {
width: 100%;
width: 100% !important;
}
.img-container {
display: flex;
justify-content: center;
align-items: center;
flex-direction: row;
gap: 0;
flex-wrap: wrap;
width: 6%;
aspect-ratio: 1 / 1;
margin: 2%;
display: flex !important;
justify-content: center !important;
align-items: center !important;
flex-direction: row !important;
gap: 0 !important;
flex-wrap: wrap !important;
width: 6% !important;
aspect-ratio: 1 / 1 !important;
margin: 2% !important;
}
.game, .suggest {
width: 15%;
border-radius: 20px;
display: inline-block;
background-color: var(--uibg);
margin: 15px;
cursor: pointer;
box-shadow: 0px 0px 5px 5px var(--uibg);
width: 15% !important;
border-radius: 20px !important;
display: inline-block !important;
background-color: var(--uibg) !important;
margin: 15px !important;
cursor: pointer !important;
box-shadow: 0px 0px 5px 5px var(--uibg) !important;
}
.game:hover, .suggest:hover {
transform: scale(1.1);
filter: brightness(85%);
box-shadow: 0px 0px 5px 5px var(--uibg);
transform: scale(1.1) !important;
filter: brightness(85%) !important;
box-shadow: 0px 0px 5px 5px var(--uibg) !important;
}
.game h1, .suggest h1 {
font-size: 12px;
float: right;
margin-right: 10px;
margin-top: 3px;
margin-bottom: 3px;
font-size: 12px !important;
float: right !important;
margin-right: 10px !important;
margin-top: 3px !important;
margin-bottom: 3px !important;
}
.game img, .suggest img {
width: 100%;
border-radius: 20px;
aspect-ratio: 1 / 1;
width: 100% !important;
border-radius: 20px !important;
aspect-ratio: 1 / 1 !important;
}
img.star {
float: left;
width: 10%;
margin-top: 3px;
margin-bottom: 3px;
margin-left: 10px;
float: left !important;
width: 10% !important;
margin-top: 3px !important;
margin-bottom: 3px !important;
margin-left: 10px !important;
}
#noscroll {
overflow-y: hidden;
justify-content: center;
overflow-y: hidden !important;
justify-content: center !important;
}
#games,
#pinned {
width: 100%;
justify-content: center;
width: 100% !important;
justify-content: center !important;
}
a {
font-size: 16px;
font-size: 16px !important;
}
input[type="text"] {
width: 50%;
background-color: var(--inputbg);
box-sizing: border-box;
font-size: 20px;
padding: 0.8% 0.8%;
text-align: center;
border-radius: 5px;
outline: none;
margin: 10px;
border: 2px solid var(--inputborder);
border-radius: 5px;
transition: opacity 0.25s ease-in-out;
opacity: 100%;
width: 50% !important;
background-color: var(--inputbg) !important;
box-sizing: border-box !important;
font-size: 20px !important;
padding: 0.8% 0.8% !important;
text-align: center !important;
border-radius: 5px !important;
outline: none !important;
margin: 10px !important;
border: 2px solid var(--inputborder) !important;
border-radius: 5px !important;
transition: opacity 0.25s ease-in-out !important;
opacity: 100% !important;
}
input[type=text]:hover {
opacity: 80%;
opacity: 80% !important;
}
::placeholder {
color: var(--textcolor);
opacity: 0.4; /* Firefox */
color: var(--textcolor) !important;
opacity: 0.4 !important; /* Firefox */
}
.bookmarkletdiv {
width: 30%;
background-color: var(--uibg);
box-shadow: 0px 0px 5px 5px var(--uibg);
padding: 5px;
margin: 15px;
border-radius: 10px;
display: inline-block;
width: 30% !important;
background-color: var(--uibg) !important;
box-shadow: 0px 0px 5px 5px var(--uibg) !important;
padding: 5px !important;
margin: 15px !important;
border-radius: 10px !important;
display: inline-block !important;
}
.bookmarkletdiv a {
font-size: 30px;
font-size: 30px !important;
}
form {
width: 100%;
width: 100% !important;
}
.samerow.themebtns {
width: 70%;
width: 70% !important;
}
select {
border-radius: 5px;
background-color: var(--inputbg);
border-color: var(--inputborder);
border-width: 5px;
border-radius: 10px;
border-style: solid;
padding: 0.5% 0.5%;
margin: 0.25%;
border-radius: 5px !important;
background-color: var(--inputbg) !important;
border-color: var(--inputborder) !important;
border-width: 5px !important;
border-radius: 10px !important;
border-style: solid !important;
padding: 0.5% 0.5% !important;
margin: 0.25% !important;
}
gameframe {
width: 100vw;
height: 90vh;
width: 100vw !important;
height: 90vh !important;
}
gameframe iframe {
width: 100%;
height: 100%;
width: 100% !important;
height: 100% !important;
}
gameframe.header {
display: flex;
justify-content: space-between;
display: flex !important;
justify-content: space-between !important;
}
sl-icon-button {
font-size: 2rem;
padding-right: 5px;
font-size: 2rem !important;
padding-right: 5px !important;
}
h3#gametitle {
font-size: 2rem;
font-size: 2rem !important;
}thumb.png
.img-credits {
height: 40vh;
width: auto;
box-shadow: 0px 0px 20px rgba(255, 255, 255, 0.555)
height: 40vh !important;
width: auto !important;
box-shadow: 0px 0px 20px rgba(255, 255, 255, 0.555) !important;
}
label {
font-size: 20px;
padding-left: 5px;
font-size: 20px !important;
padding-left: 5px !important;
}
.avatar {
margin: 5px;
margin: 5px !important;
}
#bgimg {
width: 30vw;
font-size: 16px;
width: 30vw !important;
font-size: 16px !important;
}

Binary file not shown.

3
vm/cover.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 13 KiB

2
vm/index.html Normal file
View File

@ -0,0 +1,2 @@
<embed src="481199_Virtual_computer_beta_fina.swf" width="100%" height="100%"></embed>
<script src="https://unpkg.com/@ruffle-rs/ruffle"></script>

0
waflash/ Normal file
View File

0
waflash/alt/ Normal file
View File

40
waflash/alt/api Normal file
View File

@ -0,0 +1,40 @@
<!doctype html>
<html>
<head>
</head>
<body>
<script>
var openWindow, source, origin;
function handleMessage(event) {
var entryId = event.data;
if (entryId === parseInt(entryId, 10)) {
editEntry(entryId);
source = event.source;
origin = event.origin;
}
}
function editEntry(entryId) {
if (openWindow) {
openWindow.close();
}
openWindow = window.open("/manage/post/" + entryId + "?popupEditor&returnURL=CLOSEME", "tatter", "width="+1169+",height="+600+",location=0,menubar=0,resizable=1,scrollbars=1,status=0,toolbar=0");
openWindow.focus();
}
function reloadPost() {
if (source && origin) {
source.postMessage('reload', origin)
}
}
if (document.addEventListener){
window.addEventListener("message", handleMessage, false);
} else {
window.attachEvent('onmessage', handleMessage);
}
</script>
</body>
</html>

View File

View File

@ -0,0 +1,131 @@
import createWaflashModule from "./waflash.js?2021111901";
const WAFLASH_BASE_URL = "https://clubpenguinadvanced.github.io/waflash-demo/alt/emulator2/waflash_latest/",
createWaflash = (t, e) => {
if (t || (t = ""), (e = e || {}).flashVars && (t += (t.includes("?") ? "&" : "?") + e.flashVars), self != top) return;
let a = {
arguments: [t, "0", e.gpu ? "webgl" : "default", !0 === e.enableFilters ? "0" : "1"],
options: e,
preRun: [],
postRun: [],
locateFile: (t, e) => WAFLASH_BASE_URL + t + "?2021111901",
print(t) {
console.log(t)
},
printErr(t) {
console.error(t)
},
canvas: function() {
const t = document.getElementById("canvas");
return t.addEventListener("webglcontextlost", (function(t) {
alert("WebGL context lost. You will need to reload the page."), t.preventDefault()
}), !1), t
}(),
statusElement: document.getElementById("waflashStatus"),
setStatus: t => {
if (!t) return;
t = t.replace(/Downloading data\.\.\. \((\d+)\/(\d+)\)/, ((t, e, a) => "Downloading player... " + Math.floor(parseInt(e) / parseInt(a) * 100) + "%")), console.log("WAFLASH> " + t);
const e = '<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" width="48px" height="20px" viewBox="0 0 64 16" xml:space="preserve"><path fill="#beb5f9" fill-opacity="0.42" d="M6.4,4.8A3.2,3.2,0,1,1,3.2,8,3.2,3.2,0,0,1,6.4,4.8Zm12.8,0A3.2,3.2,0,1,1,16,8,3.2,3.2,0,0,1,19.2,4.8ZM32,4.8A3.2,3.2,0,1,1,28.8,8,3.2,3.2,0,0,1,32,4.8Zm12.8,0A3.2,3.2,0,1,1,41.6,8,3.2,3.2,0,0,1,44.8,4.8Zm12.8,0A3.2,3.2,0,1,1,54.4,8,3.2,3.2,0,0,1,57.6,4.8Zm12.8,0A3.2,3.2,0,1,1,67.2,8,3.2,3.2,0,0,1,70.4,4.8Zm12.8,0A3.2,3.2,0,1,1,80,8,3.2,3.2,0,0,1,83.2,4.8ZM96,4.8A3.2,3.2,0,1,1,92.8,8,3.2,3.2,0,0,1,96,4.8Zm12.8,0A3.2,3.2,0,1,1,105.6,8,3.2,3.2,0,0,1,108.8,4.8Zm12.8,0A3.2,3.2,0,1,1,118.4,8,3.2,3.2,0,0,1,121.6,4.8Z"/><g><path fill="#654ff0" fill-opacity="1" d="M-42.7,3.84A4.16,4.16,0,0,1-38.54,8a4.16,4.16,0,0,1-4.16,4.16A4.16,4.16,0,0,1-46.86,8,4.16,4.16,0,0,1-42.7,3.84Zm12.8-.64A4.8,4.8,0,0,1-25.1,8a4.8,4.8,0,0,1-4.8,4.8A4.8,4.8,0,0,1-34.7,8,4.8,4.8,0,0,1-29.9,3.2Zm12.8-.64A5.44,5.44,0,0,1-11.66,8a5.44,5.44,0,0,1-5.44,5.44A5.44,5.44,0,0,1-22.54,8,5.44,5.44,0,0,1-17.1,2.56Z"/><animateTransform attributeName="transform" type="translate" values="23 0;36 0;49 0;62 0;74.5 0;87.5 0;100 0;113 0;125.5 0;138.5 0;151.5 0;164.5 0;178 0" calcMode="discrete" dur="1170ms" repeatCount="indefinite"/></g></svg>';
0 == t.indexOf("Downloading player...") && (t = "Downloading player " + e), 0 == t.indexOf("Loading SWF...") && (t = "Loading SWF " + e), a.statusElement.innerHTML = t, a.showStatus()
},
showStatus() {
a.statusElement.style.display = "block"
},
hideStatus() {
a.statusElement.style.display = "none"
},
unload() {},
WAFLASH: {
hal: {
url_transformRequestUrl(t) {
const a = "owner" == window.T?.config?.ROLE;
const n = function(t) {
let n = e.resourceMap;
if (Array.isArray(n))
for (let [e, a] of n) {
if ("string" != typeof e && !e instanceof RegExp) continue;
const n = e instanceof RegExp || "~" == e.charAt(0);
if (!n && "=" == e.charAt(0)) {
if (e = e.substr(1), e == t) return a
} else if (n) {
let n = e instanceof RegExp ? e : new RegExp(e = e.substr(1));
if (n.test(t)) {
return null === a ? null : t.replace(n, a)
}
} else {
let n = t.indexOf("?"),
s = "",
o = t;
if (n >= 0 && (o = t.substring(0, n), s = "&" + t.substr(n + 1)), e == o) return null === a ? null : a + s
}
} else if (a && console.log("old-style resourceMap mode!!!!!!!!!!!!!!!"), n = window.wafResourceMap || e.resourceMap, n && "object" == typeof n)
for (let [e, a] of Object.entries(n)) {
const n = "=" == e.charAt(0),
s = "~" == e.charAt(0);
if (n) {
if (e = e.substr(1), e == t) return a
} else if (s) {
e = e.substr(1);
let n = new RegExp(e);
if (n.test(t)) {
return null === a ? null : t.replace(n, a)
}
} else {
let n = t.indexOf("?"),
s = "",
o = t;
if (n >= 0 && (o = t.substring(0, n), s = "&" + t.substr(n + 1)), e == o) return null === a ? null : a + s
}
}
var s = t.lastIndexOf("/");
if (s >= 0) {
let e, a = t.substr(0, s + 1),
n = t.substr(s + 1),
o = n.substr(n.lastIndexOf("."));
if (".swf" == o) {
if ("http://images.hangame.co.kr/static/flash/flashgame/game/lang/" == a) return "https://swfs.waflash.io/uploads/hangame/" + n;
if ("http://img.ibravo.com/game/source/" == a) return "https://darkviky.github.io/assets/ibravo/" + n;
if ("http://www.ibravo.com/web/game/popup/signed.aspx" == t) return "https://darkviky.github.io/assets/ibravo/web/game/popup/signed.aspx";
if (t.lastIndexOf("/ads/default/loading.swf") >= 0) return "https://darkviky.github.io/assets/dearyou/loading.swf"
}
if (t.lastIndexOf("/loading/loading640x480.swf") > 0) return "https://blog.kakaocdn.net/dn/Ek0nH/btq3lUD7jcQ/gEYgOPz64grAZsrYbmX0Dk/loading640x480.swf?attach=1&knm=tfile.swf";
if (t.lastIndexOf("/loading/loading.swf") > 0) return "https://blog.kakaocdn.net/dn/Vv9ag/btq3mYTdq8w/hHts2k7y4VYKN9y5f9eT5K/loading.swf?attach=1&knm=tfile.swf";
if (t.lastIndexOf("/loading/result2_v3_2.swf") > 0) return "https://blog.kakaocdn.net/dn/eqSlVE/btqSX7mihN2/zlCy2XV43iQX4GahzZDkIk/result2_v3_2.swf?attach=1&knm=tfile.swf";
if (t.startsWith("http://www.kiniwini.com/games/common/user_info.php")) return "https://blog.kakaocdn.net/dn/RhEMp/btq17btItmP/cJHm5tYvKfKe1ztq8XOzw1/user_info.php.txt?attach=1&knm=tfile.txt";
if (t.indexOf("//panyroom.jr.naver.com/game/gameset.php") > 0) return "https://xwvy1u8cxc.execute-api.ap-northeast-2.amazonaws.com/prod/panyroom_game_gameset";
if (e = "http://zuzunza.joins.com/all/check_id.php", t.startsWith(e)) return "https://ieazco9902.execute-api.ap-northeast-2.amazonaws.com/zuzunza/all/check_id" + t.substr(e.length);
if (e = "http://www.zuzunza.com/all/check_id.php", t.startsWith(e)) return "https://ieazco9902.execute-api.ap-northeast-2.amazonaws.com/zuzunza/all/check_id" + t.substr(e.length);
if (0 == t.lastIndexOf("https://blog.kakaocdn.net/swf/loading_default.swf")) return "https://blog.kakaocdn.net/dn/ccsyy7/btqU4Zs74KE/CLNg8AqGHfOkobsqhoKWok/loading_default.swf?attach=1&knm=tfile.swf";
if (t.match(/^http\:\/\/file\.barunson\.com\/upfile\/object\/Loading\/loading[0-9a-z]+\.swf$/)) return "https://blog.kakaocdn.net/dn/bq8LCx/btq6W2p55q8/U7FtlDnJwgORqSF3zE7WuK/barunson-loading.waf?attach=1&knm=tfile.waf";
if (t.startsWith("http://file.barunson.com/upfile/object/Loading/www.swf")) return "https://blog.kakaocdn.net/dn/ytl0f/btq6AtDeWRF/utoYw63znPZzuBDKeIOFd1/barunson-logo.waf?attach=1&knm=tfile.waf";
if (t.endsWith("/loading/loading_lg.swf")) return "https://blog.kakaocdn.net/dn/uyECc/btq6BEraq42/M2P9hB84fAZFDsJSJgLCA0/loading_lg.swf?attach=1&knm=tfile.swf";
if (".mp3" == o && "http://juter01.tistory.com/attachment/" == a) return "https://darkviky.github.io/assets/gog/" + n
}
return [".kakaocdn.net", ".github.io", ".waflash.io", "waflash.cdn.ntruss.com", ".archive.org"].some((e => t.indexOf(e) > 0)) ? t.replace("http://", "https://") : null
}(t);
return a && t != n && (n ? console.log(`redirect ${t} => ${n}`) : console.error(`redirect ${t} => ${n}`)), n
}
}
}
};
window.waflash = a, window.onerror = (t, e, n, s, o) => {
"string" != typeof t && (o = t.error, t.filename || t.fileName, t.lineno || t.lineNumber, t.colno || t.columnNumber, t = t.message || t.name || o.message || o.name);
let l = "";
o && o.stack && (l = o.stack);
let r = document.location + "|" + t;
a.ga && a.ga("event", document.location.origin, {
event_category: "error",
event_label: r,
non_interaction: !0,
send_to: a.gid
})
}, a.setStatus("Prepairing..."), createWaflashModule(a).then((t => {
console.log("WAFLASH> Waflash module created!")
}))
},
destroyWaflash = () => {
console.log("WAFLASH> Waflash component will unmount!"), waflash.unload(), waflash = null, window.waflash = null
};
export {
createWaflash,
destroyWaflash
};

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

2397
waflash/alt/index.html Normal file

File diff suppressed because it is too large Load Diff

1
waflash/alt/readme.md Normal file
View File

@ -0,0 +1 @@
alt

3
waflash/cover.svg Normal file
View File

@ -0,0 +1,3 @@
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg">
<image href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAPFBMVEVlT/BkT/BlT/FjTO9kT/BlT/BlT/BlT/BlT/BkT/BbRO/X0fuDcfOVhvXIwfpyXfGmmvbu7P20qfhNNO7NrvjpAAAACnRSTlP+7///PqSZAfn2xyow4QAAAN9JREFUKM9tUgmShDAIzIIzG4EA0f//dck1q1O2VgK03KY0kGH7DWyQh74nWM+rEa8QOiYfAHhv2xuWts8PmksY+9vVPInGZFj2G5F6lJniQtwxCAwJcd4XAgEJO4UUFwVweYgBipEURCuBT6gqRFyIq5FXVQ1TT45cXFiM1U/Xk2hVRerV2fwoejpLsZEjAR2qB4NqqRGKWXBWRc2BrbJWcaWwLI9SS1XhiBnR6L/zqNFETKLYdoZhlRsdEvbm24n48ZgTwi5g38HzEC+L+pptuqz2jmeP8TPknPcH/PwB2kcK+I3gKo0AAAAASUVORK5CYII=" height="200" width="200" />
</svg>

After

Width:  |  Height:  |  Size: 639 B

0
waflash/emulator2/ Normal file
View File

337
waflash/emulator2/emu2.php Normal file
View File

@ -0,0 +1,337 @@
<html>
<body>
<style>
body{margin:0;overflow:hidden;}
body,table,td {font-size:14px; font-family: Arial, Helvetica, sans-serif;}
#waflashStatus{
position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);
width:70%;color:white;margin:0px auto;padding:10px;font-size:16px;text-align:center;background-color:rgba(0,0,0,0.3);display:none;
}
#context-menu {
color: black;
background-color: #FAFAFA;
border: 1px solid gray;
box-shadow: 0px 5px 10px -5px black;
position: absolute;
font-size: 14px;
text-align: left;
list-style: none;
padding: 0;
margin: 0;
}
#context-menu .menu_item {
padding: 5px 10px;
}
#context-menu .active {
cursor: pointer;
color: black;
}
#context-menu .disabled {
cursor: default;
color: gray;
}
#context-menu .active:hover {
background-color: lightgray;
}
#context-menu .menu_separator hr {
border: none;
border-bottom: 1px solid lightgray;
margin: 2px;
}
/*
#right_click_menu {
color: #FFAD33;
background-color: #37528c;
border-radius: 5px;
box-shadow: 0px 5px 15px -5px #000;
position: absolute;
font-size: 16px;
text-align: left;
list-style: none;
padding: 0;
margin: 0;
}
#right_click_menu .menu_item {
padding: 5px 10px;
}
#right_click_menu .menu_separator {
padding: 5px 5px;
}
#right_click_menu .active {
cursor: pointer;
color: #FFAD33;
}
#right_click_menu .disabled {
cursor: default;
color: #94672F;
}
#right_click_menu .active:hover {
background-color: #184778;
}
#right_click_menu hr {
color: #FFAD33;
}
#right_click_menu > :first-child {
border-top-right-radius: 5px;
border-top-left-radius: 5px;
}
#right_click_menu > :last-child {
border-bottom-right-radius: 5px;
border-bottom-left-radius: 5px;
}*/
</style>
<table id="loading" style="position:absolute;left:10px;top:20px;background: white;padding:3px;border:0px solid silver;-webkit-box-shadow: 0 0 10px #999;-moz-box-shadow: 0 0 10px #999; box-shadow: 0 0 10px #999;">
<tr><td><img src="etc/wait.gif">
<td>Loading library... Please wait a moment.
</table>
<div id="waflashContainer" style="width:100%;height:100%;position:relative;border:0px solid black">
<canvas id="canvas" tabindex="1" style="width:100%;height:100%;cursor: default;outline: none;"></canvas>
<div id="waflashStatus" style="display:none;"></div>
</div>
<ul id="context-menu" style="display:none"><li id="menu1" class="menu_item active" style="white-space:nowrap">Enter fullscreen (Emulator 2)</li></ul>
<script>
var gainNode;
function proc_gain(gain){
try{
if(gain && gain.gain){
gainNode=gain;
setTimeout(function(){
if(parent && parent.volume1_onchange) parent.volume1_onchange();
/*var s=parseInt(localStorage['volume1']);
if(!isNaN(s)){
if(s<0) s=0; if(s>100) s=100;
gainNode.gain.value=s/100;
}*/
},100);
}
}catch(err){}
}
function proc_volume(value){
if(gainNode) gainNode.gain.value=value;
}
var golddate=Date;
Date = function(){
var a=new golddate();
a.setFullYear('2020'); a.setMonth('11'); a.setDate('10');
return a;
};
Date.now=function(){
var a=new golddate();
a.setFullYear('2020'); a.setMonth('11'); a.setDate('10');
return a.getTime();
}
</script>
<script type="module">
import createWaflashModule from 'https://clubpenguinadvanced.github.io/waflash-demo/emulator2/waflash_latest/waflash.js?t=1';
var WAFLASH_BASE_URL = "https://clubpenguinadvanced.github.io/waflash-demo/emulator2/waflash_latest/";
var loaded=false;
function _getid(id){
return document.getElementById(id);
}
function init(){
var waflash = {
arguments: [''],
preRun: [],
postRun: [],
locateFile(path, prefix) {
return WAFLASH_BASE_URL + path;
},
print(text) {
//console.log(text);
},
printErr(text) {
//console.error(text);
},
canvas: (function () {
var canvas = _getid("canvas");
canvas.addEventListener("webglcontextlost", function (e){
waflash.setStatus('WebGL context lost. Reload the Flash file, or Open the another Flash file.');
e.preventDefault();
}, false);
return canvas;
})(),
statusElement: (function(){
return _getid('waflashStatus');
})(),
setStatus: function(text){
if(!text || !loaded) return;
if(/(Reload the page)/.test(text)){
text='An error occurred. Reload the Flash file, or Open the another Flash file.';
}
waflash.statusElement.innerHTML = text;
waflash.showStatus();
},
showStatus(){
waflash.statusElement.style.display = 'block';
},
hideStatus(){
waflash.statusElement.style.display = 'none';
},
unload(){},
};
window.onerror = function(message, url, line){
waflash.setStatus('An error occurred. Reload the Flash file, or Open the another Flash file.');
};
_getid('canvas').addEventListener("keydown", function(ev) {
ev.preventDefault();
ev.stopPropagation();
});
_getid('canvas').addEventListener("mousedown", function(ev) {
//console.log(ev);
if(ev.button==0){
_getid('context-menu').style.display='none';
}
});
function contextmenu_event(ev) {
ev.preventDefault();
ev.stopPropagation();
if(loaded){
var a=_getid('context-menu');
var b=_getid('canvas');
a.style.display='block';
var x=ev.pageX || ev.clientX;
var y=ev.pageY || ev.clientY;
if(x+a.offsetWidth>b.offsetWidth) x=b.offsetWidth-a.offsetWidth;
if(y+a.offsetHeight>b.offsetHeight) y=b.offsetHeight-a.offsetHeight;
a.style.left=x+'px';
a.style.top=y+'px';
}
}
_getid('canvas').addEventListener("contextmenu", contextmenu_event);
_getid('context-menu').addEventListener("contextmenu", contextmenu_event);
_getid('menu1').addEventListener("contextmenu", contextmenu_event);
document.onmousedown = function(ev) {
var a=_getid('canvas');
if(ev.target == a){
a.focus();
}
};
createWaflashModule(waflash).then(function(o){
loaded=true;
_getid('loading').style.display='none';
_getid('menu1').onclick=function(){
proc_fullscreen();
_getid('context-menu').style.display='none';
}
loadswf(waflash);
});
}
function proc_resize(){
if(typeof(Event) === 'function'){
window.dispatchEvent(new Event('resize'));
}else{
var evt = window.document.createEvent('UIEvents');
evt.initUIEvent('resize', true, false, window, 0);
window.dispatchEvent(evt);
}
}
function exitHandler(){
if(!loaded)return;
var a=_getid('canvas');
var b=_getid('menu1');
if(isfullscreen()){
b.innerHTML='Exit fullscreen (Emulator 2)';
}else{
b.innerHTML='Enter fullscreen (Emulator 2)';
a.style.width='100%';
a.style.height='100%';
}
setTimeout(function(){
proc_resize();
},100);
a.focus();
}
document.addEventListener('webkitfullscreenchange', exitHandler, false);
document.addEventListener('mozfullscreenchange', exitHandler, false);
document.addEventListener('fullscreenchange', exitHandler, false);
document.addEventListener('MSFullscreenChange', exitHandler, false);
function isfullscreen(){
var isInFullScreen = (document.fullscreenElement && document.fullscreenElement !== null) ||
(document.webkitFullscreenElement && document.webkitFullscreenElement !== null) ||
(document.mozFullScreenElement && document.mozFullScreenElement !== null) ||
(document.msFullscreenElement && document.msFullscreenElement !== null);
return isInFullScreen;
}
function proc_fullscreen(){
if(!isfullscreen() && screen.width>0 && screen.height>0){
var a=_getid('canvas');
a.style.width = screen.width+'px';
a.style.height = screen.height+'px';
setTimeout(function(){
proc_resize();
setTimeout(function(){
proc_fullscreen2();
},100);
},100);
}else{
proc_fullscreen2();
}
}
function proc_fullscreen2(){
try{
var elem=document.documentElement;
if(!isfullscreen()){
if (elem.requestFullscreen) {
elem.requestFullscreen();
} else if (elem.mozRequestFullScreen) {
elem.mozRequestFullScreen();
} else if (elem.webkitRequestFullscreen) {
elem.webkitRequestFullscreen();
} else if (elem.msRequestFullscreen) {
elem.msRequestFullscreen();
}
}else{
if(document.exitFullscreen) {
document.exitFullscreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
}
}catch(err){
alert(err+'');
}
}
function loadswf(waflash){
if(!(parent && parent.gbloburl))return;
var xhr = new XMLHttpRequest();
xhr.open('GET', parent.gbloburl);
xhr.responseType = 'arraybuffer';
xhr.onload = function(){
if(this.status == 200){
var uint8Array = new Uint8Array(this.response);
var buf = waflash._malloc(uint8Array.length);
waflash.HEAP8.set(uint8Array, buf);
var res = waflash.ccall('reopenBuffer', 'int', ['string', 'number', 'number'], ['input.swf', buf, uint8Array.length]);
waflash._free(buf);
if(res == 0){
waflash.setStatus('Error. Failed to laod the Flash file.');
}
}else{
waflash.setStatus('Error. Can not get a file data.');
}
};
xhr.onerror = function(){
waflash.setStatus('Error. Can not get a file data.');
};
xhr.send();
}
init();
</script>
</body>
</html>

View File

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

0
waflash/etc/ Normal file
View File

BIN
waflash/etc/wait.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

0
waflash/games/ Normal file
View File

BIN
waflash/games/sse.swf Normal file

Binary file not shown.

View File

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Play | Club Penguin Advanced</title>
</head>
<body>
<div id = "container"></div>
<object type="application/x-shockwave-flash" id="game" name="game" data="loader.swf"
width="760"
height="480">
<param name="allowScriptAccess" value="always">
</object>
<script src="/src/ruffle.js"></script>
</body>
</html>

View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

712
waflash/index.html Normal file
View File

@ -0,0 +1,712 @@
<html>
<head>
<title>Working Demo for WAFlash</title>
<script src="js/common2.js" type="text/javascript"></script>
<script>
var gadb=false;
function setstorage(name,value){
if (window.localStorage){
localStorage[name]=value+'';
}else{
//setCookie(name, value, 1000*60*60*24*365*10);
}
}
function getstorage(name){
var s;
if (window.localStorage){
s=localStorage[name];
}else{
//s=getCookie(name);
}
return s;
}
</script>
</head>
<body>
<table id="maintable" align=center class="divopt">
<div style="margin-top:2px;margin-bottom:1px">
<table>
<tr>
<td>
<div id="dfile1" style="display:inline"></div>
<td>
</table>
<script>document.getElementById("dfile1").innerHTML='<input type="file" id="fileload1" name="files[]" style="width:230px">';</script>
</div>
<div id="codearea" style="margin-bottom:15px;margin-top:5px"></div>
<textarea id="script1" style="display:none"><script>
function proc_loaded(){
document.getElementById('loading').style.display='none';
}
function init(){
window.addEventListener('click',function(e){
window.focus();
},false);
}
init();
</script>
</textarea>
<tr>
<td align=center>
<script>
function proc_sample(filename){
var resp={};
resp.id='(Sample) '+filename;
resp.title=resp.id;
resp.downloadUrl="https://thumbsdb.herokuapp.com/flashplayer/sample/"+filename;
resp.issample=true;
gd_loadfile('',resp);
}
var gfiles;
var gmaxsize=60;
function handleFileSelect(files){
if(!window.FileReader || !window.XMLHttpRequest){
alert("This browser does not support.");
return;
}
if(files) gfiles=files;
if(!gfiles || gfiles.length==0) return;
var tot=0;
for(var i = 0, f; f = gfiles[i]; i++){
var usearray=false;
var f=gfiles[i];
if(f.size>gmaxsize*1024*1024){
alert('The file size is too large to view. (around '+gmaxsize+' MB limit)');
return;
}
var reader = new FileReader();
reader.onload = function(e) {
var blob = new Blob([e.target.result]);
gd_bloburl=window.URL.createObjectURL(blob);
var resp={};
resp.id='(Local) '+this.name;
resp.title=resp.id;
proc_loadgame(gd_bloburl, resp);
};
reader.onerror = function(){
alert('Read Error: '+this.name);
};
reader.id=i;
reader.name=f.name;
if(!reader.readAsArrayBuffer){
alert("This browser does not support.");
return;
}else{
reader.readAsArrayBuffer(f);
}
break;
}
}
function init2(){
_getid('fileload1').onchange=function(e){
if(!e || !e.target){
alert("This browser does not support.");
return;
}
handleFileSelect(e.target.files);
}
var holder = document;
holder.ondragover = function (e) {
try{var ua=navigator.userAgent;
if(ua && ua.indexOf("Chrome")>=0){
if(e.originalEvent) e = e.originalEvent;
if(e.dataTransfer){
var b = e.dataTransfer.effectAllowed;
e.dataTransfer.dropEffect = ('move' === b || 'linkMove' === b) ? 'move' : 'copy';
}
}
}catch(err){}
return false;
};
holder.ondragend = function () { return false; };
holder.ondrop = function (e) {
e.preventDefault();
handleFileSelect(e.dataTransfer.files);
return false;
};
if(navigator.userAgent && navigator.userAgent.toLowerCase().indexOf("windows")>=0){
var a=_getid('fileload1');
a.setAttribute("accept",".swf");
}
var s=100;
if(!isNaN(s)){
if(s<0) s=0; if(s>100) s=100;
}
sel_emulator_onchange();
window.onbeforeunload=function(){
for(var i = 0; i < g_lastdata.length; i++){
if(g_lastdata[i].url) window.URL.revokeObjectURL(g_lastdata[i].url);
}
}
}
function sel_emulator_onchange(){
setstorage('sel_emulator',"emu2");
}
function volume1_onchange(){
try{
setstorage('volume1',_getid('volume1').value);
var v=parseInt(_getid('volume1').value)/100;
var a=_getid("emulator2");
if(a){
var ifrm=_getfrmdoc(a);
if(ifrm && ifrm.proc_volume) ifrm.proc_volume(v);
}
}catch(err){}
}
function size_width_onchange(f,nosize){
var w=_getid('size_width').value;
var h=_getid('size_height').value;
if(w<100)w=100;
if(w>1000)w=1000;
if(h<100)h=100;
if(h>900)h=900;
if(f){
_getid('size_width_n').value=w;
_getid('size_height_n').value=h;
}
function find(parent){
var a=parent.getElementsByTagName('*');
for(var i = 0; i < a.length; i++){
var s=a[i].tagName;
if (s=="IFRAME" || s=="EMBED" || s=="OBJECT"){
if (s=="OBJECT") find(a[i]);
a[i].width=w;
a[i].height=h;
}
}
}
if(!nosize) find(_getid("codearea"));
}
function size_width_n_onchange(f){
var w=_getid('size_width_n').value;
var h=_getid('size_height_n').value;
if(w<100)w=100;
if(w>1000)w=1000;
if(h<100)h=100;
if(h>900)h=900;
_getid('size_width').value=w;
_getid('size_height').value=h;
size_width_onchange();
}
function vphistory_onchange(f){
if(!f.value)return;
for(var i = 0; i < g_lastdata.length; i++){
if(g_lastdata[i].id==f.value){
proc_loadgame(g_lastdata[i].url, g_lastdata[i].resp,true);
break;
}
}
}
function set_flashvars(){
var f=_getid('sel_vphistory');
if(!f || !f.value)return;
for(var i = 0; i < g_lastdata.length; i++){
if(g_lastdata[i].id==f.value){
var s1=g_lastdata[i].resp.flashvars || '';
while(true){
s=prompt('Please enter a flashvars value to apply.\nex) aaa=1&bbb=2&ccc=3',s1);
if(s==null)return;
if(!s) s='';
if(s.indexOf('"')>=0){
s1=s;
alert('Double Quotation(") character is not allowed.');
}else{
break;
}
}
g_lastdata[i].resp.flashvars=s;
alert('It has changed the flashvars value. Click the "Refresh" button above to apply to the current flash.');
break;
}
}
}
var g_lastdata2, script2, gbloburl;
var g_lastdata=[];
function proc_loadscript(src,callback_ok,callback_err){
try{
var xhr = new XMLHttpRequest();
xhr.open('GET', src);
xhr.onload = function(){
if(this.status == 200){
script2=this.response;
callback_ok();
}else{
callback_err();
}
};
xhr.onerror = function(){
callback_err();
};
xhr.send();
}catch(err){
callback_err();
}
}
function proc_loadgame(url, resp, ishistory){
var sel_emulator="emu2" ;
if(window.WebAssembly && sel_emulator=='emu2' && !script2){
proc_loadscript('emulator2/emu2.php?t=2',function(){
proc_loadgame(url, resp, ishistory);
},function(){
alert('Error. Can not download a emulator scripts.');
});
return;
}
g_lastdata2={};
g_lastdata2.url=url;
g_lastdata2.resp=resp;
var w=1000
var h=900
var a=get_data();
for(var i=0; i <= a.length-1; i++){
if(a[i].id==resp.id){
w=a[i].width;
h=a[i].height;
break;
}
}
var codearea=_getid('codearea');
if(sel_emulator=='emu1' || sel_emulator=='emu2'){
if(!window.WebAssembly){
alert("This browser does not support \"Play by Flash Emulator\". Please upgrade your browser.");return;
}
var s1='';
if(sel_emulator=='emu2'){
gbloburl=url;
s1=script2;
}else{
var s='<embed width="100%" height="100%" src="'+url+'" quality="high" pluginspage="https://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="never"';
if(resp.flashvars && resp.flashvars.indexOf('"')<0){
s+=' flashvars="'+resp.flashvars+'"';
}
s+='>';
s1='<html><body><style>body,table,td {font-size:14px; font-family: Arial, Helvetica, sans-serif;}</style>';
s1+='<table id="loading" style="position:absolute;left:10px;top:20px;background: white;padding:3px;border:0px solid silver;-webkit-box-shadow: 0 0 10px #999;-moz-box-shadow: 0 0 10px #999; box-shadow: 0 0 10px #999;"><tr>';
s1+='<td><img src="/etc/wait.gif">';
s1+='<td>Loading library... Please wait a moment.</table>';
s1+=s;
s1+=_getid('script1').value;
s1+='</body></html>';
}
var c=_getid('emulator2');
if(!c){
codearea.innerHTML='<iframe id="emulator2" width="'+w+'" height="'+h+'" frameborder="0" marginwidth="0" marginheight="0" scrolling="NO" allow="autoplay; fullscreen"></iframe>';
c=_getid('emulator2');
if(!c)return;
}else{
c.width=w;
c.height=h;
}
var ifrm=_getfrmdoc(c);
if(ifrm){
c.onload=function(){
c.onload=null;
ifrm.document.open();
ifrm.document.write(s1);
ifrm.document.close();
}
ifrm.location.replace('about:blank');
}
}else{
//check_flash();
var s='';
if(!okflash) s+='<div style="margin-bottom:5px"><font style="color:green">Adobe Flash Player is required. Check the flash player is installed.<br>or Select the "Flash Emulator" above (latest browsers) and Click the Refresh button above.</font></div>';
s+='<embed width="'+w+'" height="'+h+'" src="'+url+'" quality="high" pluginspage="https://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="never"';
if(resp.flashvars && resp.flashvars.indexOf('"')<0){
s+=' flashvars="'+resp.flashvars+'"';
}
s+='>';
//s='<iframe width="'+w+'" height="'+h+'" src="'+url+'"></iframe>';
codearea.innerHTML=s;
}
codearea.data=resp.id;
}
var okflash=null;
function check_flash(){
if(okflash!=null)return;
okflash=false;
try{
if(new ActiveXObject('ShockwaveFlash.ShockwaveFlash'))okflash=true;
}catch(e){
var a=navigator.mimeTypes;
if(a && a['application/x-shockwave-flash'] != undefined && a['application/x-shockwave-flash'].enabledPlugin)okflash=true;
}
}
function openWindow(url, name, w, h) {
var winX = 0;
var winY = 0;
if (parseInt(navigator.appVersion) >= 4) {
winX = (screen.availWidth - w)*.5;
winY = (screen.availHeight - h)*.5;
}
var features = 'width=' + w + ',height=' + h + ',left=' + winX + ',top=' + winY +', resizable=yes, scrollbars=yes';
var win=window.open(url, name, features);
if(win) win.focus();
}
function get_data(){
var s=getstorage('drive_data');
if(!s) s='[]';
var a=[];
try{
a=JSON.parse(s);
}catch(err){
a=[];
}
if(!a)a=[];
return a;
}
function proc_close(){
_getid('codearea').innerHTML='';
}
function proc_refresh(){
if(g_lastdata2){
proc_loadgame(g_lastdata2.url, g_lastdata2.resp, true);
}
}
function proc_save(){
var obj=_getid('codearea');
if(!obj.data)return;
var a=get_data();
if(a.length>30){
a.splice(0,1);
}
for(var i=0; i <= a.length-1; i++){
if(a[i].id==obj.data){
a.splice(i,1);
break;
}
}
var b={}
b.id=obj.data;
b.width=_getid('size_width').value;
b.height=_getid('size_height').value;
a.push(b);
if(window.JSON) setstorage("drive_data",JSON.stringify(a));
show_message("Saved.");
_getid('btn_save').style.color="green";
}
init2();
</script>
<script>
var ismsie=false;
var issafari=false;
if(navigator.appName!="Netscape"){
if(navigator.userAgent.indexOf("MSIE")>=0) ismsie=true;
}
var ua = navigator.userAgent.toLowerCase();
if(ua.indexOf('safari') != -1 && ua.indexOf('chrome') <0) issafari=true;
function gd_btn_login2(){
var a=_getid("gd_btn_login");
if(a.style.display==''){
var x=getScrollLeft()+((getWindowWidth()-a.clientWidth) / 2);
var y=getScrollTop()+((getWindowHeight()-a.clientHeight) / 2);
a.style["border"]="1px solid #000000";
a.style["padding"]="10px";
a.style.left=x+"px";
a.style.top=y+"px";
var b=_getid("gd_frame");
b.style.left=x+"px";
b.style.top=y+"px";
b.style.width=a.offsetWidth+"px";
b.style.height=a.offsetHeight+"px";
b.style.display='';
}
}
function gd_btn_login(isshow){
var a=_getid("gd_btn_login");
if(isshow){
a.style.display='';
gd_btn_login2();
}else{
a.style.display='none';
_getid("gd_frame").style.display='none';
}
}
function gd_login_close(){
gd_btn_login(false);
gd_state='';
}
function gd_login_manual(){
var p={'client_id': CLIENT_ID, 'scope': SCOPES.join(' '), 'immediate': false};
if(gd_userId){p['login_hint']=gd_userId;p['authuser']=-1;}
gapi.auth.authorize(p, function (authResult){
if (authResult && !authResult.error){
gd_loginexp=(new Date()).getTime()+parseInt(authResult.expires_in*0.7*1000);
gd_btn_login(false);gd_info();
show_message("Login ok!!");
if(gd_callback) gd_callback(true);
else gd_open_state(true);
}else{
gd_btn_login(true);
show_message("Login failed!!");
}
});
}
function gd_login(callback,react){
if(gd_loginexp==0 || gd_loginexp<(new Date()).getTime()){
}else{
callback(true);
return;
}
var p={'client_id': CLIENT_ID, 'scope': SCOPES.join(' '), 'immediate': true};
if(gd_userId){p['login_hint']=gd_userId;p['authuser']=-1;}
gapi.auth.authorize(p, function (authResult){
if (authResult && !authResult.error){
gd_loginexp=(new Date()).getTime()+parseInt(authResult.expires_in*0.7*1000);
gd_btn_login(false);gd_info();
callback(true);
}else{
show_message("Login failed!!");
gd_btn_login(true);
callback(false);
if(react) gd_callback=callback;
else gd_callback=null;
}
});
}
function gd_loadpicker() {
gapi.load('picker',{'callback': function(){
gd_pickerloaded=true;
}
});
}
function gd_createpicker() {
var access_token=gapi.auth.getToken().access_token;
if(!access_token){
alert('Error!! No access token.');
return;
}
if(!gd_picker){
var view2 = new google.picker.DocsView(google.picker.ViewId.DOCS);
if(gd_mimetype) view2.setMimeTypes(gd_mimetype);
view2.setMode(google.picker.DocsViewMode.LIST);
var view4 = new google.picker.DocsView();
view4.setIncludeFolders(true);
view4.setParent("root");
//view4.setMimeTypes(gd_mimetype);
view4.setMode(google.picker.DocsViewMode.LIST);
var view5 = new google.picker.View(google.picker.ViewId.RECENTLY_PICKED);
gd_picker = new google.picker.PickerBuilder()
//.enableFeature(google.picker.Feature.NAV_HIDDEN)
//.enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
//.setAppId('')
.setLocale("en") //window.navigator.language || window.navigator.userLanguage || "en"
.setAppId(CLIENT_ID.split("-")[0]) //scope
.setOAuthToken(access_token)
.addView(view2)
.addView(view4)
.addView(view5)
.addView(new google.picker.DocsUploadView())
.setDeveloperKey(gd_developerKey)
.setCallback(gd_pickercallback)
.build();
}
gd_picker.setVisible(true);
}
function gd_pickercallback(data) {
if (data.action == google.picker.Action.PICKED) {
if(data.docs && data.docs.length>0 && data.docs[0].id){
var fileId = data.docs[0].id;
gd_loadfile(fileId);
}
}
}
function gd_loadfile(fileId,mresp){
if(gd_isdownloading){
alert("It's downloading. Please try again in a few minutes. or Cancel the current download.");
return;
}
_getid("downlink").innerHTML="<table><tr><td><div id='gd_progress'>Ready...</div></table>";
function go(resp){
function end(){
gd_isdownloading=false;
clearTimeout(messagetimer);
hide_message();
var a=_getid("downlink");
if(a.innerHTML && a.innerHTML.indexOf("adownlink")<0){
_getid("downlink").innerHTML='Get a swf, flash file from Computer or from Google Drive, and Play the file directly.';
}
}
function error(s){
alert(s);
}
//console.log(resp);
var downloadurl;
if(resp.downloadUrl){
if(fileId) downloadurl='https://www.googleapis.com/drive/v2/files/'+resp.id+'?alt=media';//resp.downloadUrl;
else downloadurl=resp.downloadUrl;
}else if(resp.exportLinks){
for (x in resp.exportLinks){
for(var i = 0; i < gd_export_extension.length; i++){
if(x.toLowerCase().indexOf(gd_export_extension[i])>=0){
downloadurl=resp.exportLinks[x];
resp.fileExtension=gd_export_extension[i];
break;
}
}
if(downloadurl)break;
}
}
if(fileId){
var accessToken = gapi.auth.getToken().access_token;
if(!accessToken){
end();
alert('Error!! No access token.');
return;
}
}
if(downloadurl){
var ourl=downloadurl;//+'&access_token='+encodeURIComponent(accessToken);
//if(downloadurl.indexOf('sample')==0 || resp.issample) ourl=downloadurl;
function setdown(url){
resp.accessToken=accessToken;
proc_loadgame(url, resp);
if(downloadurl.indexOf('sample')==0 || resp.issample) return;
_getid("downlink").innerHTML='&nbsp;<a id="adownlink" style="font-size:16px">Download this file</a> ('+getsize(resp.fileSize)+') &nbsp; Get a swf, flash file from Computer or from Google Drive, and Play the file directly.';
var a=_getid("adownlink");
if(a){
a.href=(resp.downloadUrl && resp.webContentLink) || ourl;
var s='';
if(resp.title){
if(resp.exportLinks) s=resp.title+'.'+resp.fileExtension;
else s=resp.title;
}else{
s='No Name';
}
a.title=s || "";
a.download=s || "";
a.target="_blank";
}
}
if(_getid('emulator')){
end();
setdown(ourl);
return;
}
gd_isdownloading=true;
_getid("downlink").innerHTML="<table><tr><td><img src='images/wait.gif' align='absmiddle'><td><div id='gd_progress'>Downloading...</div><td>&nbsp; <a href='#' id='gd_cancel' style='font-size:15px;display:none'>Cancel</a></table>";
var xhr = new XMLHttpRequest();
var c=_getid('gd_cancel');
if(c){
c.style.display='';
c.onclick=function(){
xhr.abort();
end();
return false;
}
}
gd_lastprogress=(new Date()).getTime();
xhr.open('GET', ourl);
if(issafari) xhr.responseType = 'arraybuffer';
else xhr.responseType = 'blob';
xhr.onprogress=function(event){
if(gd_lastprogress){
var elaspetime = new Date();
var dt=(elaspetime.getTime()-gd_lastprogress)/1000;
if(dt<1)return;
gd_lastprogress=elaspetime.getTime();
}
var a=event;
var total=a.totalSize || resp.fileSize || 0;//a.total
var current=a.position || a.loaded || 0;
var c=_getid('gd_progress');
if(c) c.innerHTML='Downloading... ('+number_format(current)+'/'+number_format(total)+')';
};
if(downloadurl.indexOf('sample')==0 || resp.issample){
}else{
xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
}
xhr.onload = function(){
end();
if(this.status == 200){
if(issafari){
var blob = new Blob([this.response]);
}else{
var blob = this.response;
}
gd_bloburl=window.URL.createObjectURL(blob);
setdown(gd_bloburl);
}else{
var s="Error (status) " + this.status + "("+this.statusText+") occurred while receiving the file.";
error(s);
}
};
xhr.onerror = function(e){
end();
var s="Error " + e.target.status + " occurred while receiving the file.";
error(s);
};
xhr.send();
}else{
end();
if(resp.error && resp.error.message){
alert(resp.error.message);
}else{
alert('Error!! Can not find a download URL.');
}
}
}
if(fileId){
gapi.client.load('drive', 'v2', function() {
var request = gapi.client.drive.files.get({
'fileId': fileId
});
request.execute(function(resp){
go(resp);
});
});
}else{
setTimeout(function(){
go(mresp);
},300);
}
}
function getsize(fileSize){
if(!fileSize) return 'Unknown';
function humanFileSize(bytes){
var thresh = 1024;
if(bytes < thresh) return bytes + ' B';
var units = ['kB','MB','GB','TB','PB','EB','ZB','YB'];
var u = -1;
do {
bytes /= thresh;
++u;
} while(bytes >= thresh);
return bytes.toFixed(1)+' '+units[u];
}
return humanFileSize(fileSize);
}
</script>
</table>
</body>
</html>

0
waflash/js/ Normal file
View File

203
waflash/js/common2.js Normal file
View File

@ -0,0 +1,203 @@
function setCookie(name, value, expires) {
if (!expires) expires=1000*60*60*24*365*5;
path="/";
domain=document.domain;
secure=false;
var today = new Date();
today.setTime( today.getTime() );
var expires_date = new Date( today.getTime() + (expires) );
document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + //expires.toGMTString()
( ( path ) ? ";path=" + path : "" ) +
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
domain=".overbits.net";
document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + //expires.toGMTString()
( ( path ) ? ";path=" + path : "" ) +
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
}
function getCookie( name ) {
var nameOfCookie = name + "=";
var x = 0;
while ( x <= document.cookie.length ) {
var y = (x+nameOfCookie.length);
if ( document.cookie.substring( x, y ) == nameOfCookie ) {
if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 )
endOfCookie = document.cookie.length;
return unescape( document.cookie.substring( y, endOfCookie ) );
}
x = document.cookie.indexOf( " ", x ) + 1;
if ( x == 0 ) break;
}
return "";
}
function _getid(id){
return document.getElementById(id);
}
function trim(str) {
if (!str || !str.replace) str='';
return str.replace(/^\s*|\s*$/g,"");
}
function html_entity_encode(str){
if (!str || !str.replace) str='';
str = str.replace(/&/gi, "&amp;");
str = str.replace(/>/gi, "&gt;");
str = str.replace(/</gi, "&lt;");
str = str.replace(/\"/gi, "&quot;");
str = str.replace(/\'/gi, "&#039;");
return str;
}
function shortstring(s,len){
if (!s) s='';
if (s.length > len) s=s.substr(0,len)+"...";
return s;
}
function cutstringmiddle(s,len,left,right){
if (!s) s='';
if (s.length <= len) return s;
var s1,s2;
s1=s.substr(0,left);
s2=s.substr(s.length-right,s.length);
return s1+'.....'+s2;
}
function number_format(number, decimals, dec_point, thousands_sep) {
number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
var n = !isFinite(+number) ? 0 : +number,
prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
s = '',
toFixedFix = function (n, prec) {
var k = Math.pow(10, prec);
return '' + Math.round(n * k) / k;
};
// Fix for IE parseFloat(0.55).toFixed(0) = 0;
s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
if (s[0].length > 3) {
s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
}
if ((s[1] || '').length < prec) {
s[1] = s[1] || '';
s[1] += new Array(prec - s[1].length + 1).join('0');
}
return s.join(dec);
}
function getWindowWidth(){
var windowWidth = 0;
if (typeof(window.innerWidth) == 'number'){
windowWidth = window.innerWidth;
}else{
var ieStrict = document.documentElement.clientWidth;
var ieQuirks = document.body.clientWidth;
windowWidth = (ieStrict > 0) ? ieStrict : ieQuirks;
}
if(!windowWidth) windowWidth=0;
return windowWidth;
}
function getWindowHeight(){
var windowHeight = 0;
if (typeof(window.innerHeight) == 'number'){
windowHeight = window.innerHeight;
}else{
var ieStrict = document.documentElement.clientHeight;
var ieQuirks = document.body.clientHeight;
windowHeight = (ieStrict > 0) ? ieStrict : ieQuirks;
}
if(!windowHeight) windowHeight=0;
return windowHeight;
}
function getScrollLeft(){
var scrollLeft;
if(document.body && document.body.scrollLeft){
scrollLeft = document.body.scrollLeft;
}else if(document.documentElement && document.documentElement.scrollLeft){
scrollLeft = document.documentElement.scrollLeft;
}
if(!scrollLeft) scrollLeft=0;
return scrollLeft;
}
function getScrollTop(){
var scrollTop;
if(document.body && document.body.scrollTop){
scrollTop = document.body.scrollTop;
}else if(document.documentElement && document.documentElement.scrollTop){
scrollTop = document.documentElement.scrollTop;
}
if(!scrollTop) scrollTop=0;
return scrollTop;
}
var messagetimer=null;
function show_message(s,x,y,padding,timeout){
if (!x) x=10;
if (!y) y=10;
if (!padding) padding=5;
if (!timeout) timeout=2000;
var kind=1;
for(var i=1; i <= 4; i++){
var s1="layer_message";
if (i>1) s1="layer_message"+i;
var obj=document.getElementById(s1);
if (obj){
kind=i;
break;
}
}
obj.style.left="1px";
obj.style.top="1px";
obj.innerHTML="<label>"+s+"</label>";
obj.style.display="";
if (kind==1) {
x=getScrollLeft()+x;
y=getScrollTop()+y;
} else if (kind==2) {
x=getScrollLeft()+((getWindowWidth()-obj.clientWidth) / 2);
y=getScrollTop()+((getWindowHeight()-obj.clientHeight) / 2);
} else if (kind==3) {
x=document.body.offsetWidth-obj.clientWidth-5;
y=getScrollTop()+y;
} else {
x=getScrollLeft()+((getWindowWidth()-obj.clientWidth) / 2);
y=getScrollTop()+y;
}
x=parseInt(x);
y=parseInt(y);
obj.style["border"]="1px solid #000000";
obj.style["padding"]=padding+"px";
obj.style.left=x+"px";
obj.style.top=y+"px";
if (messagetimer) clearTimeout(messagetimer);
messagetimer=setTimeout(hide_message, timeout);
}
function hide_message(){
for(var i=1; i <= 4; i++){
var s1="layer_message";
if (i>1) s1="layer_message"+i;
var obj=document.getElementById(s1);
if (obj){
obj.style.display="none";
}
}
}
function _getfrmdoc(ifrm){
return (ifrm.contentWindow) ? ifrm.contentWindow : (ifrm.contentDocument.document) ? ifrm.contentDocument.document : ifrm.contentDocument;
}