Backup Commit

This commit is contained in:
2025-05-20 12:36:47 +02:00
parent e4f85d21b6
commit 53c39085bc
58 changed files with 8424 additions and 0 deletions
+195
View File
@@ -0,0 +1,195 @@
<head>
<style>
@font-face{
font-family: rubik;
src: url(https://mfgames.net/assets/Rubik-VariableFont_wght.ttf);
}
* {
font-family: rubik;
}
input {
color: white;
background-color: #2e2e2e;
border: none;
font-size: 20px;
margin: 3px;
padding: 5px;
border-radius: 5px;
}
button {
color: white;
background-color: #3e3e3e;
border: none;
font-size: 20px;
margin: 3px;
padding: 5px 10px;
border-radius: 10px;
}
</style>
</head>
<?php
/*$_POST["url"] = "https://polycrow.gumroad.com/l/airhocks";
$_POST["species"] = "Rexouium Novabeast";
$_POST["nsfw"] = 0;
$_GET["section"] = 1;*/
$url = $_POST["url"];
$species = $_POST["species"];
$nsfw = $_POST["nsfw"];
$section = $_GET["section"];
$isExisting = false;
if (isset($_POST["url"]) && isset($_POST["species"]) && isset($_POST["nsfw"])) {
//if (true) {
$servername = "localhost";
$username = "database_access";
$password = "DataAccess1.";
$dbname = "avali_shop";
if (str_contains($url, '?')) {
$url = substr($url, 0, strpos($url, "?"));
}
$string = file_get_contents($url);
$dom = new DomDocument();
$dom->loadHTML($string);
$finder = new DomXPath($dom);
$content = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProductPage ')]")[0]->textContent;
$content = json_decode($content);
$c = $content->product;
$currency = "{
\"usd\": \"$\",
\"eur\": \"\",
\"crc\": \"\",
\"gbp\": \"£\",
\"ils\": \"\",
\"inr\": \"\",
\"jpy\": \"¥\",
\"krw\": \"\",
\"ngn\": \"\",
\"php\": \"\",
\"pln\": \"\",
\"pyg\": \"\",
\"thb\": \"฿\",
\"uah\": \"\",
\"vnd\": \"\",
\"aud\": \"A\$\",
\"cad\": \"CAD\$\"
}";
$currency = json_decode($currency);
$currencyOutput = $c->currency_code;
if ($c->thumbnail_url == null) {
$thumbnailURL = $c->covers[0]->url;
} else $thumbnailURL = $c->thumbnail_url;
$rating = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' rating-average ')]")[0]->textContent;
if ($rating == null || $rating == "" || $rating == " ") $rating = "None";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
$failed = true;
}
$c->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->name)));
$c->seller->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->seller->name)));
$species = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$species)));
$sql2 = "SELECT * FROM `content` WHERE
name LIKE \"%" . $c->name . "%\" AND
url_link LIKE \"%" . $url . "%\" AND
url_image LIKE \"%" . $thumbnailURL . "%\" AND
creator LIKE \"%" . $c->seller->name . "%\";";
$result2 = $conn->query($sql2);
if ($result2->num_rows > 0) {
$isExisting = true;
} else {
$isExisting = false;
}
$sql = "INSERT INTO content (
`name`,
`price`,
`currency`,
`url_link`,
`url_image`,
`creator`,
`rating`,
`species`,
`nsfw`,
`section`
)
VALUES (
'" . $c->name . "',
'" . $c->price_cents . "',
'" . $currency->$currencyOutput . "',
'" . $url . "',
'" . $thumbnailURL . "',
'" . $c->seller->name . "',
'" . $rating . "',
'" . $species . "',
'" . $nsfw . "',
" . $section . "
)";
if ($isExisting == false) {
if ($conn->query($sql) === TRUE) {
echo "<a style=\"color: green;\">Successful !</a>";
} else {
$errormsg = "<a style=\"color: red;\">Error: " . $sql . "<br>" . $conn->error . "</a>";
$failed = true;
}
} else {
echo "<a style=\"color: orange;\">Already Exists!</a>";
}
$conn->close();
}
?>
<body style="background-color: #1e1e1e; color: white">
<form action="AutoInsertData.php?section=<?php echo $section; ?>" method="post">
<label for="url">URL:</label><br>
<input type="text" id="url" name="url" style="width:100%"><br>
<label for="species">Species:</label><br>
<input type="text" id="species" name="species" style="width:100%"><br>
<label for="nsfw">NSFW:</label><br>
<input type="text" id="nsfw" name="nsfw" value="0" style="width:100%">
<button type="submit">Submit</button>
</form>
<br>
<br>
<?php
echo "
'" . $c->name . "', <br>
'" . ($c->price_cents / 100) . "', <br>
'" . $currency->$currencyOutput . "', <br>
'" . $url . "', <br>
'" . $thumbnailURL . "', <br>
'" . $c->seller->name . "', <br>
'" . $rating . "', <br>
'" . $species . "',<br>
'" . $nsfw . "'";
?>
+27
View File
@@ -0,0 +1,27 @@
<?php
$url = "https://myriadd.gumroad.com";
if (str_contains($url, '?')) {
$url = substr($url, 0, strpos($url, "?"));
}
$string = file_get_contents($url);
$dom = new DomDocument();
$dom->loadHTML($string);
$finder = new DomXPath($dom);
$content = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' stretched-link ')]");
foreach($content as $node) {
$tmp = $node->attributes[0]->value;
if (str_contains($tmp, '?')) {
$tmp = substr($tmp, 0, strpos($tmp, "?"));
}
print_r($tmp);
echo "<br>";
}
?>
+181
View File
@@ -0,0 +1,181 @@
<!--head>
<style>
@font-face{
font-family: rubik;
src: url(https://mfgames.net/assets/Rubik-VariableFont_wght.ttf);
}
* {
font-family: rubik;
}
input {
color: white;
background-color: #2e2e2e;
border: none;
font-size: 20px;
margin: 3px;
padding: 5px;
border-radius: 5px;
}
button {
color: white;
background-color: #3e3e3e;
border: none;
font-size: 20px;
margin: 3px;
padding: 5px 10px;
border-radius: 10px;
}
</style>
</head-->
<?php
$multilineString = "https://nuciboli.gumroad.com/l/bee-hold?layout=discover&recommended_by=search
https://rickyop.gumroad.com/l/fowfoj?layout=discover&recommended_by=search
https://rickyop.gumroad.com/l/olawcq?layout=discover&recommended_by=search
https://mainmuse.gumroad.com/l/TigerUndies?layout=discover&recommended_by=search
https://feyote.gumroad.com/l/TigerBeeLegWarmers?layout=discover&recommended_by=search
https://kuraikaiju.gumroad.com/l/JexWings?layout=discover&recommended_by=search
https://kiragontex.gumroad.com/l/hpvrrb?layout=discover&recommended_by=search
https://mainmuse.gumroad.com/l/TigerDress?layout=discover&recommended_by=search
https://n5xk.gumroad.com/l/aakbf?layout=discover&recommended_by=search
https://novaicnight.gumroad.com/l/SimpleOutfitTB?layout=discover&recommended_by=search
https://rickyop.gumroad.com/l/kgqfxb?layout=discover&recommended_by=search
https://rickyop.gumroad.com/l/lclhh?layout=discover&recommended_by=search
https://rickyop.gumroad.com/l/szcnn?layout=discover&recommended_by=search
https://feyote.gumroad.com/l/TigerBeeOnesie?layout=discover&recommended_by=search
https://adjerry91.gumroad.com/l/TigerBeeFaceTracking?layout=discover&recommended_by=search
https://blizzball.gumroad.com/l/tigerbeehoodie?layout=discover&recommended_by=search
https://rickyop.gumroad.com/l/cpwds?layout=discover&recommended_by=search
https://rickyop.gumroad.com/l/pybaf?layout=discover&recommended_by=search";
$linesArray = explode("\n", $multilineString);
foreach ($linesArray as $line) {
doit($line, "Neo's Tiger Bee", 0, 1);
}
function doit($url, $species, $nsfw, $section) {
$isExisting = false;
$servername = "localhost";
$username = "siskeldev";
$password = "LuckyAimie";
$dbname = "avali_shop";
if (str_contains($url, '?')) {
$url = substr($url, 0, strpos($url, "?"));
}
$string = file_get_contents($url);
$dom = new DomDocument();
$dom->loadHTML($string);
$finder = new DomXPath($dom);
$content = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProductPage ')]")[0]->textContent;
$content = json_decode($content);
$c = $content->product;
$currency = "{
\"usd\": \"$\",
\"eur\": \"\",
\"crc\": \"\",
\"gbp\": \"£\",
\"ils\": \"\",
\"inr\": \"\",
\"jpy\": \"¥\",
\"krw\": \"\",
\"ngn\": \"\",
\"php\": \"\",
\"pln\": \"\",
\"pyg\": \"\",
\"thb\": \"฿\",
\"uah\": \"\",
\"vnd\": \"\",
\"aud\": \"A\$\",
\"cad\": \"CAD\$\"
}";
$currency = json_decode($currency);
$currencyOutput = $c->currency_code;
if ($c->thumbnail_url == null) {
$thumbnailURL = $c->covers[0]->url;
} else $thumbnailURL = $c->thumbnail_url;
$rating = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' rating-average ')]")[0]->textContent;
if ($rating == null || $rating == "" || $rating == " ") $rating = "None";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
$failed = true;
}
$c->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->name)));
$c->seller->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->seller->name)));
$species = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$species)));
$sql2 = "SELECT * FROM `content` WHERE
name LIKE \"%" . $c->name . "%\" AND
url_link LIKE \"%" . $url . "%\" AND
url_image LIKE \"%" . $thumbnailURL . "%\" AND
creator LIKE \"%" . $c->seller->name . "%\";";
$result2 = $conn->query($sql2);
if ($result2->num_rows > 0) {
$isExisting = true;
} else {
$isExisting = false;
}
$sql = "INSERT INTO content (
`name`,
`price`,
`currency`,
`url_link`,
`url_image`,
`creator`,
`rating`,
`species`,
`nsfw`,
`section`
)
VALUES (
'" . $c->name . "',
'" . $c->price_cents . "',
'" . $currency->$currencyOutput . "',
'" . $url . "',
'" . $thumbnailURL . "',
'" . $c->seller->name . "',
'" . $rating . "',
'" . $species . "',
'" . $nsfw . "',
" . $section . "
)";
if ($isExisting == false) {
if ($conn->query($sql) === TRUE) {
echo "Successful! URL: " . $url;
} else {
echo "Error: " . $sql . " -|- " . $conn->error;
}
} else {
echo "Already Exists! URL: " . $url;
}
$conn->close();
}
?>
+41
View File
@@ -0,0 +1,41 @@
<?php
// ERROR CODES: 50 = NO SESSION UUID SET LOGIN OR CREATE WISHLIST
$servername = "localhost";
$username = "database_access";
$password = "DataAccess1.";
$dbname = "avali_shop";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
session_start();
$itemId = (int)$_POST["id"];
$uuid = $_SESSION["uuid"];
$sql = "SELECT * FROM wishlist_uuid WHERE uuid=\"" . $uuid . "\"";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
if ($row["array"] != "") {
$currentArray = json_decode($row["array"]);
} else {
$currentArray = array();
}
if (!in_array($itemId, $currentArray)) {
$currentArray[] = $itemId;
}
print_r(json_encode($currentArray));
$sql_Update = "UPDATE `wishlist_uuid` SET `last_use`='" . date("Y-m-d H:i:s") . "',`array`='" . json_encode($currentArray) . "' WHERE uuid='" . $uuid . "'";
$result_Update = $conn->query($sql_Update);
?>
Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

+110
View File
@@ -0,0 +1,110 @@
function addFav(id) {
return new Promise(function (resolve) {
const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = function () {
}
xmlhttp.open("POST", "/addFav.php");
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send('id=' + id);
});
}
function remFav(id) {
return new Promise(function (resolve) {
const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = function () {
}
xmlhttp.open("POST", "/remFav.php");
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send('id=' + id);
});
}
function getFav() {
return new Promise(function (resolve) {
const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = function () {
document.getElementById("wishlist").innerHTML = this.responseText;
console.log(this.responseText);
}
xmlhttp.open("POST", "/getFav.php");
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send();
});
}
function refreshLiked() {
document.querySelectorAll('.likebutton').forEach(element => {
var exists = false;
try {
wishlistArray.forEach(function(item) {
if (element.attributes[1].value == String(item["id"])) {
exists = true;
}
});
} catch (err) {
err.message;
}
if (exists) {
element.innerHTML = "<icon>favorite</icon>";
} else {
element.innerHTML = "<icon>favorite_border</icon>";
}
return new Promise(function (resolve) {
const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = async function () {
document.getElementById("wishlistScript").innerHTML = "var wishlistArray = " + this.responseText;
wishlistArray = JSON.parse(this.responseText);
}
xmlhttp.open("POST", "/getFavArray.php");
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send();
});
});
}
getFav();
async function accOpen() {
if (!login) {
document.getElementById("wishlist").innerHTML = "<p>Please Login into your Wishlist to see your Wishlist</p>";
}
currentpos = document.body.scrollTop;
document.getElementById("footer").classList.add("addHeight");
await sleep(100);
try { document.getElementById("filter").style = "top: " + document.body.scrollTop + "px;"; } catch(err) {}
await sleep(400);
document.getElementById("body").classList.add("disableScrollbar");
try { document.getElementById("filter").classList.add("filterDisplay"); } catch(err) {}
try { document.getElementById("filterdiv").style = "display: none !important;"; } catch(err) {}
try { document.getElementById("accdiv").style = "display: grid !important;"; } catch(err) {}
document.getElementById("filterbutton").href = "#foclose";
filterisopened = true;
}
async function accClose() {
await sleep(200);
document.getElementById("body").classList.remove("disableScrollbar");
try { document.getElementById("filter").classList.remove("filterDisplay"); } catch(err) {}
await sleep(400);
await sleep(200);
document.getElementById("footer").classList.remove("addHeight");
document.getElementById("filterbutton").href = "#fo";
try { document.getElementById("filterdiv").style = "display: none !important;"; } catch(err) {}
try { document.getElementById("accdiv").style = "display: grid !important;"; } catch(err) {}
filterisopened = false;
}
+25
View File
@@ -0,0 +1,25 @@
function AvaliMode() {
if(!document.getElementById('id1')) {
var link = document.createElement('link');
link.id = 'id1';
link.rel = 'stylesheet';
link.href = '/assets/style/avali.css';
document.head.appendChild(link);
AvaliSet("true");
} else {
document.getElementById("id1").remove();
AvaliSet("false");
}
}
function AvaliSet(VarIDD) {
return new Promise(function (resolve) {
const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = function () {
resolve(xmlhttp.response)
}
xmlhttp.open("POST", "/setavali.php");
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send('avali=' + VarIDD);
});
}
+63
View File
@@ -0,0 +1,63 @@
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function changeNavAttach() {
if (window.pageYOffset >= sticky) {
navbar.classList.add("sticky");
navbar.classList.add("ontop");
} else {
navbar.classList.remove("sticky");
navbar.classList.remove("ontop");
}
}
async function topForBottomBarProductPreview() {
if (window.windowWidth < 1001) {
document.getElementById("purchaseSection").style.top = (825 + document.getElementById("productPage").scrollTop) + "px";
} else {
document.getElementById("purchaseSection").style.top = null;
}
}
document.getElementById("productPage").onscroll = function () {
topForBottomBarProductPreview();
};
window.onscroll = function () {
changeNavAttach();
};
function disableScroll() {
window.addEventListener('DOMMouseScroll', preventDefault, false); // older FF
window.addEventListener(wheelEvent, preventDefault, wheelOpt); // modern desktop
window.addEventListener('touchmove', preventDefault, wheelOpt); // mobile
window.addEventListener('keydown', preventDefaultForScrollKeys, false);
}
function enableScroll() {
window.removeEventListener('DOMMouseScroll', preventDefault, false);
window.removeEventListener(wheelEvent, preventDefault, wheelOpt);
window.removeEventListener('touchmove', preventDefault, wheelOpt);
window.removeEventListener('keydown', preventDefaultForScrollKeys, false);
}
function preventDefault(e) {
e.preventDefault();
}
function preventDefaultForScrollKeys(e) {
if (keys[e.keyCode]) {
preventDefault(e);
return false;
}
}
function menu() {
var x = document.getElementById("navbar");
if (x.className.includes("responsive")) {
x.className = x.className.replace(" responsive", "");
} else {
x.className += " responsive";
}
}
+108
View File
@@ -0,0 +1,108 @@
window.addEventListener('resize', function() {
if (window.innerWidth > 800) {
document.getElementById("styleshed").innerHTML = ".likeButton {top: " + (document.getElementsByClassName("imgItem")[0].clientHeight - 18) + "px !important}";
} else {
document.getElementById("styleshed").innerHTML = ".likeButton {top: " + (document.getElementsByClassName("imgItem")[0].clientHeight - 58) + "px !important}";
}
});
function getClickedElement() {
document.addEventListener('click', async function(event) {
var clickedElement = event.target;
if (clickedElement.classList[0] == "deletebutton") {
var itemid = clickedElement.attributes[2].value
remFav(itemid);
await sleep(200);
getFav();
await sleep(3000);
refreshLiked();
}
});
}
getClickedElement();
window.addEventListener('locationchange', function () {
console.log('location changed!');
});
if (window.location.hash == "#fo") {
try { filterOpen(); } catch(err) { console.log(err.message); }
} else if (window.location.hash == "#foclose") {
try { filterClose(); } catch(err) { console.log(err.message); }
try { accClose(); } catch(err) { console.log(err.message); }
window.location = window.location.replace("#foclose", "");
} else if (window.location.hash == "#acc") {
try { accOpen(); } catch(err) { console.log(err.message); }
} else if (window.location.hash.includes("#p")) {
try { clearModal(); } catch(err) { console.log(err.message); }
try { openModal(); } catch(err) { console.log(err.message); }
let vartmp = window.location.hash.replace("#p", "");
try { setProduct(vartmp); } catch(err) { console.log(err.message); }
try { openProduct(); } catch(err) { console.log(err.message); }
} else if (window.location.hash.includes("#insert")) {
try { openModalInsert(); } catch(err) { console.log(err.message); }
} else {
try { closeModal(); } catch(err) { console.log(err.message); }
try { closeModalInsert(); } catch(err) { console.log(err.message); }
try { clearModal(); } catch(err) { console.log(err.message); }
try { filterClose(); } catch(err) { console.log(err.message); }
try { accClose(); } catch(err) { console.log(err.message); }
}
window.addEventListener('hashchange', async function () {
if (window.location.hash == "#fo") {
try { filterOpen(); } catch(err) { console.log(err.message); }
} else if (window.location.hash == "#acc") {
try { accOpen(); } catch(err) { console.log(err.message); }
} else if (window.location.hash.includes("#p")) {
try { clearModal(); } catch(err) { console.log(err.message); }
try { openModal(); } catch(err) { console.log(err.message); }
let vartmp = window.location.hash.replace("#p", "");
try { setProduct(vartmp); } catch(err) { console.log(err.message); }
try { openProduct(); } catch(err) { console.log(err.message); }
} else if (window.location.hash.includes("#insert")) {
try { openModalInsert(); } catch(err) { console.log(err.message); }
} else {
try { closeModal(); } catch(err) { console.log(err.message); }
try { closeModalInsert(); } catch(err) { console.log(err.message); }
await sleep(200);
try { clearModal(); } catch(err) { console.log(err.message); }
try { filterClose(); } catch(err) { console.log(err.message); }
try { accClose(); } catch(err) { console.log(err.message); }
}
});
document.body.addEventListener('keypress', function(e) {
if (e.key == "Escape" && filterisopened == true) {
location.href='/';
}
});
try {
window.addEventListener("test", null, Object.defineProperty({}, 'passive', {
get: function () {
supportsPassive = true;
}
}));
} catch (e) { }
function addListener() {
try {
var elements = document.getElementsByClassName('nsfw-filter');
for (var element in elements) {
elements[element].addEventListener('click', function (e) {
e.target.remove();
})
}
} catch (e) {}
}
addListener();
+33
View File
@@ -0,0 +1,33 @@
async function filterOpen() {
currentpos = document.body.scrollTop;
document.getElementById("footer").classList.add("addHeight");
await sleep(100);
document.getElementById("filter").style = "top: " + document.body.scrollTop + "px;";
await sleep(400);
document.getElementById("body").classList.add("disableScrollbar");
document.getElementById("filterdiv").style = "display: grid !important;";
document.getElementById("accdiv").style = "display: none !important;";
document.getElementById("filter").classList.add("filterDisplay");
document.getElementById("filterbutton").href = "#foclose";
filterisopened = true;
}
async function filterClose() {
document.getElementById("body").classList.remove("disableScrollbar");
document.getElementById("filter").classList.remove("filterDisplay");
await sleep(400);
await sleep(200);
document.getElementById("footer").classList.remove("addHeight");
document.getElementById("filterbutton").href = "#fo";
document.getElementById("filterdiv").style = "display: grid !important;";
document.getElementById("accdiv").style = "display: none !important;";
filterisopened = false;
}
+69
View File
@@ -0,0 +1,69 @@
async function openModalInsert() {
document.getElementById("insertData").classList.add("visibilityVisible");
await sleep(100);
document.getElementById("insertData").classList.add("backgroundYES");
document.getElementById("body").classList.add("disableScrollbar");
await sleep(200);
try {document.getElementById("insertWindow").classList.add("visibilityVisible");} catch (e) {}
}
async function closeModalInsert() {
try {document.getElementById("insertWindow").classList.remove("visibilityVisible");} catch (e) {}
await sleep(200);
try {document.getElementById("insertData").classList.remove("visibilityVisible");} catch (e) {}
try {document.getElementById("insertData").classList.remove("backgroundYES");} catch (e) {}
try {document.getElementById("insertData").style = "";} catch (e) {}
document.getElementById("body").classList.remove("disableScrollbar");
}
async function openModal() {
document.getElementById("previewProduct").classList.add("visibilityVisible");
await sleep(100);
document.getElementById("previewProduct").classList.add("backgroundYES");
document.getElementById("body").classList.add("disableScrollbar");
}
async function openProduct() {
document.getElementById("previewProduct").style = "top:" + (document.body.scrollTop) + "px;";
await sleep(400);
document.getElementById("productPage").classList.add("visibilityVisible");
await sleep(200);
try {
document.getElementsByClassName("slide")[0].style.display = "block";
} catch (e) {}
}
async function closeModal() {
document.getElementById("productPage").classList.remove("visibilityVisible");
await sleep(200);
document.getElementById("previewProduct").classList.remove("visibilityVisible");
document.getElementById("previewProduct").classList.remove("backgroundYES");
document.getElementById("previewProduct").style = "";
document.getElementById("body").classList.remove("disableScrollbar");
document.getElementById("productLoading").style = "display: flex;";
}
function clearModal() {
document.getElementById("productImageContainer").innerHTML = "";
document.getElementById("productDescription").innerHTML = "";
document.getElementById("containsSection").innerHTML = "";
document.getElementById("gotoproduct").style = "";
document.getElementById("purchasePrice").innerHTML = "";
document.getElementById("creatorImg").src = "";
document.getElementById("creatorName").innerHTML = "";
document.getElementById("ratingSection").style = "";
document.getElementById("productImageContainer").style = "";
document.getElementById("productImageContainerButtons").style = "";
document.getElementById("productMetaData").style = "";
data = "";
}
function backback() {
var tmp = window.scrollY;
window.location = "#";
window.scrollTo(0, tmp);
}
+138
View File
@@ -0,0 +1,138 @@
function plusDivs(n) {
showDivs(slideIndex += n);
}
function showDivs(n) {
var i;
var x = document.getElementsByClassName("slide");
if (n > x.length) {slideIndex = 1}
if (n < 1) {slideIndex = x.length}
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
if (document.getElementById("previewProduct").classList.value.includes("visibilityVisible")) {
x[slideIndex-1].style.display = "block";
}
}
function getGumroadData(VarIDD) {
return new Promise(function (resolve) {
const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = function () {
resolve(xmlhttp.response)
}
xmlhttp.open("POST", "/getGumroadData.php");
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send('id=' + VarIDD);
});
}
async function setProduct(varID) {
try {
var remoteCode = await getGumroadData(varID);
data = JSON.parse(remoteCode);
data.product.covers.forEach(element => {
if (element.type == "image") {
document.getElementById("productImageContainer").innerHTML += "<img class=\"slide\" src=\"" + element.url + "\" style=\"display:none;\">";
} else if (element.type == "video") {
document.getElementById("productImageContainer").innerHTML += "<video class=\"slide\" src=\"" + element.url + "\" controls=\"show\" style=\"display:none;\">";
}
});
if (data.product.summary != null) {
document.getElementById("containsSection").innerHTML += "<a class=\"contentSum\">" + data.product.summary + "<br></a>";
}
try {
data.product.attributes.forEach(element => {
if (element.name != null) {
document.getElementById("containsSection").innerHTML += "<a class=\"contentTribute\"><g style=\"font-weight: 100;\">" + element.name + "</g>" + element.value + "</a>";
} else {
document.getElementById("containsSection").innerHTML += "<a class=\"contentTribute\"><g style=\"font-weight: 100;\"> </g>" + element.value + "</a>";
}
});
} catch (e) {
document.getElementById("containsSection").innerHTML += "<a class=\"contentTribute\"><g style=\"font-weight: 100;\">No Content Tags</g></a>";
}
document.getElementById("productDescription").innerHTML = data.product.description_html + "<br><br>";
document.getElementById("creatorImg").src = data.product.seller.avatar_url;
document.getElementById("gotoproduct").href = data.product.long_url;
document.getElementById("gotoproduct2").href = data.product.long_url;
if (data.product.long_url.includes("booth.pm")) {
document.getElementById("gotoproduct").innerHTML = "Get on Booth!";
document.getElementById("gotoproduct").style = "visibility: unset !important;";
document.getElementById("gotoproduct2").innerHTML = "Get on Booth!";
document.getElementById("gotoproduct2").style = "visibility: unset !important;";
document.getElementById("ratingSection").style = "display: none !important;";
} else if (data.product.long_url.includes("gumroad.com")) {
document.getElementById("gotoproduct").innerHTML = "Get on Gumroad!";
document.getElementById("gotoproduct").style = "visibility: unset !important;";
document.getElementById("gotoproduct2").innerHTML = "Get on Gumroad!";
document.getElementById("gotoproduct2").style = "visibility: unset !important;";
document.getElementById("ratingSection").style = "display: flex !important;";
}
document.getElementById("productMetaData").style = "display: block !important;";
document.getElementById("productImageContainer").style = "display: flex !important;";
document.getElementById("productImageContainerButtons").style = "display: flex !important;";
document.getElementById("productLoading").style = "display: none !important;";
if (data.product.currency_code == "eur") {
document.getElementById("purchasePrice").innerHTML = (data.product.price_cents / 100) + "€";
document.getElementById("purchasePrice2").innerHTML = (data.product.price_cents / 100) + "€";
} else {
document.getElementById("purchasePrice").innerHTML = currency_symbols[data.product.currency_code.toUpperCase()] + (data.product.price_cents / 100);
document.getElementById("purchasePrice2").innerHTML = currency_symbols[data.product.currency_code.toUpperCase()] + (data.product.price_cents / 100);
}
const ex1 = data.product.rating_counts[0],
ex2 = data.product.rating_counts[1],
ex3 = data.product.rating_counts[2],
ex4 = data.product.rating_counts[3],
ex5 = data.product.rating_counts[4];
var tmp1, tmp2, tmp3, tmp4, tmp5, tmpGlobal=ex1+ex2+ex3+ex4+ex5;
var tmpaddon1, tmpaddon2, tmpaddon3, tmpaddon4, tmpaddon5;
tmp1 = (100 / tmpGlobal) * ex1;
tmp2 = (100 / tmpGlobal) * ex2;
tmp3 = (100 / tmpGlobal) * ex3;
tmp4 = (100 / tmpGlobal) * ex4;
tmp5 = (100 / tmpGlobal) * ex5;
if (tmp1 == 0) tmpaddon1 = "display: none;";
if (tmp2 == 0) tmpaddon2 = "display: none;";
if (tmp3 == 0) tmpaddon3 = "display: none;";
if (tmp4 == 0) tmpaddon4 = "display: none;";
if (tmp5 == 0) tmpaddon5 = "display: none;";
document.getElementById("g1").innerHTML = "(" + ex1 + ")";
document.getElementById("g2").innerHTML = "(" + ex2 + ")";
document.getElementById("g3").innerHTML = "(" + ex3 + ")";
document.getElementById("g4").innerHTML = "(" + ex4 + ")";
document.getElementById("g5").innerHTML = "(" + ex5 + ")";
document.getElementById("progressFiller1").style = "width: " + tmp1 + "%;" + tmpaddon1;
document.getElementById("progressFiller2").style = "width: " + tmp2 + "%;" + tmpaddon2;
document.getElementById("progressFiller3").style = "width: " + tmp3 + "%;" + tmpaddon3;
document.getElementById("progressFiller4").style = "width: " + tmp4 + "%;" + tmpaddon4;
document.getElementById("progressFiller5").style = "width: " + tmp5 + "%;" + tmpaddon5;
document.getElementById("creatorName").innerHTML = data.product.seller.name;
document.getElementById("creatorName").href = "?s=" + data.product.seller.name;
document.getElementsByClassName("slide")[0].style.display = "block";
} catch (e) {}
data = null;
document.getElementsByClassName("slide")[0].style.display = "block";
}
+33
View File
@@ -0,0 +1,33 @@
if (window.innerWidth > 800) {
document.getElementById("styleshed").innerHTML = ".likeButton {top: " + (document.getElementsByClassName("imgItem")[0].clientHeight - 18) + "px !important}";
} else {
document.getElementById("styleshed").innerHTML = ".likeButton {top: " + (document.getElementsByClassName("imgItem")[0].clientHeight - 58) + "px !important}";
}
document.querySelectorAll('.likebutton').forEach(element => {
element.addEventListener("click", async function () {
var itemid = this.attributes[1].value
if (this.innerHTML == "<icon>favorite_border</icon>") {
addFav(itemid);
await sleep(200);
getFav();
this.innerHTML = "<icon>favorite</icon>";
} else if (this.innerHTML == "<icon>favorite</icon>") {
remFav(itemid);
await sleep(200);
getFav();
this.innerHTML = "<icon>favorite_border</icon>";
}
});
});
async function myFunction() {
if (window.pageYOffset >= sticky) {
navbar.classList.add("sticky");
navbar.classList.add("ontop");
} else {
navbar.classList.remove("sticky");
navbar.classList.remove("ontop");
}
}
+14
View File
@@ -0,0 +1,14 @@
function searchInputFocus() {
document.getElementById("sinp").focus();
document.getElementById("sinp").focus();
document.getElementById("sinp").select();
document.getElementById("sinp").select();
}
function searchFocus() {
document.getElementById("stxt").classList.add("floataway");
}
function searchBlur() {
document.getElementById("stxt").classList.remove("floataway");
}
+46
View File
@@ -0,0 +1,46 @@
var data;
var currentHash;
var myOldUrl = window.location.href;
var navbar = document.getElementById("navbar");
var sticky = navbar.offsetTop;
var filterOpened = false;
var windowWidth = window.innerWidth;
var currency_symbols = {
'USD': '$', // US Dollar
'EUR': '€', // Euro
'CRC': '₡', // Costa Rican Colón
'GBP': '£', // British Pound Sterling
'ILS': '₪', // Israeli New Sheqel
'INR': '₹', // Indian Rupee
'JPY': '¥', // Japanese Yen
'KRW': '₩', // South Korean Won
'NGN': '₦', // Nigerian Naira
'PHP': '₱', // Philippine Peso
'PLN': 'zł', // Polish Zloty
'PYG': '₲', // Paraguayan Guarani
'THB': '฿', // Thai Baht
'UAH': '₴', // Ukrainian Hryvnia
'VND': '₫', // Vietnamese Dong
'AUD': 'A$'
};
var keys = {
37: 1,
38: 1,
39: 1,
40: 1
};
var currentpos = 0;
var filterisopened = true;
var slideIndex = 1;
var supportsPassive = false;
var wheelOpt = supportsPassive ? {
passive: false
} : false;
var wheelEvent = 'onwheel' in document.createElement('div') ? 'wheel' : 'mousewheel';
+53
View File
@@ -0,0 +1,53 @@
@font-face{
font-family: avali;
src: url(https://furatalog.xyz/assets/fonts/avali-scratch.ttf);
}
* {
font-family: avali;
}
.previewButton {
font-size: 30px !important;
}
header a {
font-size: 1.3rem;
}
footer a {
font-size: 40px;
}
#navbar a {
font-size: 25.5px;
}
.header h2 {
font-size: 3em;
}
.header p {
font-size: 50px;
}
.searchfield input {
font-size: 24px;
}
.pagenav a {
font-size: 42px;
}
.nsfw-ask {
font-size: 25.5px;
}
.filter-container-item {
font-size: 45px;
margin-bottom: 5px;
}
.filter-inner a {
margin-bottom: 10px !important;
}
File diff suppressed because it is too large Load Diff
+195
View File
@@ -0,0 +1,195 @@
<head>
<style>
@font-face{
font-family: rubik;
src: url(https://mfgames.net/assets/Rubik-VariableFont_wght.ttf);
}
* {
font-family: rubik;
}
input {
color: white;
background-color: #2e2e2e;
border: none;
font-size: 20px;
margin: 3px;
padding: 5px;
border-radius: 5px;
}
button {
color: white;
background-color: #3e3e3e;
border: none;
font-size: 20px;
margin: 3px;
padding: 5px 10px;
border-radius: 10px;
}
</style>
</head>
<?php
$url = $_POST["url"];
$species = $_POST["species"];
$nsfw = $_POST["nsfw"];
$isExisting = false;
/*
$url = "https://flashychisme.gumroad.com/l/SimpleHoodieWickerbeast";
$species = "Wickerbeast";
$nsfw = "0";
*/
if (isset($_POST["url"]) && isset($_POST["species"]) && isset($_POST["nsfw"])) {
//if (true) {
$servername = "localhost";
$username = "siskeldev";
$password = "LuckyAimie";
$dbname = "avali_shop";
if (str_contains($url, '?')) {
$url = substr($url, 0, strpos($url, "?"));
}
$string = file_get_contents($url);
$dom = new DomDocument();
$dom->loadHTML($string);
$finder = new DomXPath($dom);
$content = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProductPage ')]")[0]->textContent;
$content = json_decode($content);
$c = $content->product;
$currency = "{
\"usd\": \"$\",
\"eur\": \"\",
\"crc\": \"\",
\"gbp\": \"£\",
\"ils\": \"\",
\"inr\": \"\",
\"jpy\": \"¥\",
\"krw\": \"\",
\"ngn\": \"\",
\"php\": \"\",
\"pln\": \"\",
\"pyg\": \"\",
\"thb\": \"฿\",
\"uah\": \"\",
\"vnd\": \"\",
\"aud\": \"A\$\",
\"cad\": \"CAD\$\"
}";
$currency = json_decode($currency);
$currencyOutput = $c->currency_code;
if ($c->thumbnail_url == null) {
$thumbnailURL = $c->covers[0]->url;
} else $thumbnailURL = $c->thumbnail_url;
$rating = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' rating-average ')]")[0]->textContent;
if ($rating == null || $rating == "" || $rating == " ") $rating = "None";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
$failed = true;
}
$c->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->name)));
$c->seller->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->seller->name)));
$species = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$species)));
$sql2 = "SELECT * FROM `content` WHERE
name LIKE \"%" . $c->name . "%\" AND
url_link LIKE \"%" . $url . "%\" AND
url_image LIKE \"%" . $thumbnailURL . "%\" AND
creator LIKE \"%" . $c->seller->name . "%\";";
$result2 = $conn->query($sql2);
if ($result2->num_rows > 0) {
$isExisting = true;
} else {
$isExisting = false;
}
$sql = "INSERT INTO content (
`name`,
`price`,
`currency`,
`url_link`,
`url_image`,
`creator`,
`rating`,
`species`,
`nsfw`,
`section`
)
VALUES (
'" . $c->name . "',
'" . $c->price_cents . "',
'" . $currency->$currencyOutput . "',
'" . $url . "',
'" . $thumbnailURL . "',
'" . $c->seller->name . "',
'" . $rating . "',
'" . $species . "',
'" . $nsfw . "',
1
)";
if ($isExisting == false) {
if ($conn->query($sql) === TRUE) {
echo "<a style=\"color: green;\">Successful !</a>";
} else {
$errormsg = "<a style=\"color: red;\">Error: " . $sql . "<br>" . $conn->error . "</a>";
$failed = true;
}
} else {
echo "<a style=\"color: orange;\">Already Exists!</a>";
}
$conn->close();
}
?>
<body style="background-color: #1e1e1e; color: white">
<form action="AutoInsertData.php" method="post">
<label for="url">URL:</label><br>
<input type="text" id="url" name="url" style="width:100%"><br>
<label for="species">Species:</label><br>
<input type="text" id="species" name="species" style="width:100%"><br>
<label for="nsfw">NSFW:</label><br>
<input type="text" id="nsfw" name="nsfw" value="0" style="width:100%">
<button type="submit">Submit</button>
</form>
<br>
<br>
<?php
echo "
'" . $c->name . "', <br>
'" . ($c->price_cents / 100) . "', <br>
'" . $currency->$currencyOutput . "', <br>
'" . $url . "', <br>
'" . $thumbnailURL . "', <br>
'" . $c->seller->name . "', <br>
'" . $rating . "', <br>
'" . $species . "',<br>
'" . $nsfw . "'";
?>
+66
View File
@@ -0,0 +1,66 @@
<?php
//$_GET["sort"] = "free";
//$_GET["t"] = "davali";
//$_GET["s"] = "Novabeast";
$o = "";
require_once("../lib.php");
$mflib = new MFLib();
require_once("../elements.php");
$mfelements = new MFElements();
$actual_link = $mflib->getLink();
$mflib->limitperpage = 15;
$mflib->setCookie();
session_start();
if ( isset($_GET["s"]) && $_GET["s"] == "61776746" ) {
$_SESSION["adminmode"] = true;
header("Location: https://furatalog.xyz/avatar-assets/#insert");
} else if ( isset($_GET["s"]) && $_GET["s"] == "59572354") {
$_SESSION["adminmode"] = false;
header("Location: https://furatalog.xyz/avatar-assets/");
}
$mflib->initialize();
$wishlistArray = $mflib->dataGetWishlist();
if (!isset($_GET["p"])) $_GET["p"] = 1;
$o .= "<html>";
$o .= $mfelements->printHead($wishlistArray);
$o .= "<body id=\"body\">";
$o .= $mfelements->printSiteHeader();
$o .= "<div id=\"filter\" class=\"filter\" >";
$o .= $mfelements->printFilterSection($mflib, $actual_link);
$o .= $mfelements->printAccountSection($mflib);
$o .= "</div>";
$o .= $mfelements->printPreviewProductPage();
if (isset($_SESSION["adminmode"]) && $_SESSION["adminmode"] == true) {
$o .= $mfelements->printAdminInsertData($mflib);
}
$o .= $mfelements->printNavbar($mflib);
$o .= $mfelements->printPageContent($mflib, $wishlistArray);
$o .= $mfelements->printNSFWpromt($actual_link);
$o .= $mfelements->printFooter($mflib);
$o .= $mfelements->printJSLoginVar();
$o .= $mfelements->printScriptSources();
$o .= "</body></html>";
echo $o;
+195
View File
@@ -0,0 +1,195 @@
<head>
<style>
@font-face{
font-family: rubik;
src: url(https://mfgames.net/assets/Rubik-VariableFont_wght.ttf);
}
* {
font-family: rubik;
}
input {
color: white;
background-color: #2e2e2e;
border: none;
font-size: 20px;
margin: 3px;
padding: 5px;
border-radius: 5px;
}
button {
color: white;
background-color: #3e3e3e;
border: none;
font-size: 20px;
margin: 3px;
padding: 5px 10px;
border-radius: 10px;
}
</style>
</head>
<?php
$url = $_POST["url"];
$species = $_POST["species"];
$nsfw = $_POST["nsfw"];
$isExisting = false;
/*
$url = "https://flashychisme.gumroad.com/l/SimpleHoodieWickerbeast";
$species = "Wickerbeast";
$nsfw = "0";
*/
if (isset($_POST["url"]) && isset($_POST["species"]) && isset($_POST["nsfw"])) {
//if (true) {
$servername = "localhost";
$username = "siskeldev";
$password = "LuckyAimie";
$dbname = "avali_shop";
if (str_contains($url, '?')) {
$url = substr($url, 0, strpos($url, "?"));
}
$string = file_get_contents($url);
$dom = new DomDocument();
$dom->loadHTML($string);
$finder = new DomXPath($dom);
$content = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProductPage ')]")[0]->textContent;
$content = json_decode($content);
$c = $content->product;
$currency = "{
\"usd\": \"$\",
\"eur\": \"\",
\"crc\": \"\",
\"gbp\": \"£\",
\"ils\": \"\",
\"inr\": \"\",
\"jpy\": \"¥\",
\"krw\": \"\",
\"ngn\": \"\",
\"php\": \"\",
\"pln\": \"\",
\"pyg\": \"\",
\"thb\": \"฿\",
\"uah\": \"\",
\"vnd\": \"\",
\"aud\": \"A\$\",
\"cad\": \"CAD\$\"
}";
$currency = json_decode($currency);
$currencyOutput = $c->currency_code;
if ($c->thumbnail_url == null) {
$thumbnailURL = $c->covers[0]->url;
} else $thumbnailURL = $c->thumbnail_url;
$rating = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' rating-average ')]")[0]->textContent;
if ($rating == null || $rating == "" || $rating == " ") $rating = "None";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
$failed = true;
}
$c->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->name)));
$c->seller->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->seller->name)));
$species = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$species)));
$sql2 = "SELECT * FROM `content` WHERE
name LIKE \"%" . $c->name . "%\" AND
url_link LIKE \"%" . $url . "%\" AND
url_image LIKE \"%" . $thumbnailURL . "%\" AND
creator LIKE \"%" . $c->seller->name . "%\";";
$result2 = $conn->query($sql2);
if ($result2->num_rows > 0) {
$isExisting = true;
} else {
$isExisting = false;
}
$sql = "INSERT INTO content (
`name`,
`price`,
`currency`,
`url_link`,
`url_image`,
`creator`,
`rating`,
`species`,
`nsfw`,
`section`
)
VALUES (
'" . $c->name . "',
'" . $c->price_cents . "',
'" . $currency->$currencyOutput . "',
'" . $url . "',
'" . $thumbnailURL . "',
'" . $c->seller->name . "',
'" . $rating . "',
'" . $species . "',
'" . $nsfw . "',
3
)";
if ($isExisting == false) {
if ($conn->query($sql) === TRUE) {
echo "<a style=\"color: green;\">Successful !</a>";
} else {
$errormsg = "<a style=\"color: red;\">Error: " . $sql . "<br>" . $conn->error . "</a>";
$failed = true;
}
} else {
echo "<a style=\"color: orange;\">Already Exists!</a>";
}
$conn->close();
}
?>
<body style="background-color: #1e1e1e; color: white">
<form action="AutoInsertData.php" method="post">
<label for="url">URL:</label><br>
<input type="text" id="url" name="url" style="width:100%"><br>
<label for="species">Species:</label><br>
<input type="text" id="species" name="species" style="width:100%"><br>
<label for="nsfw">NSFW:</label><br>
<input type="text" id="nsfw" name="nsfw" value="0" style="width:100%">
<button type="submit">Submit</button>
</form>
<br>
<br>
<?php
echo "
'" . $c->name . "', <br>
'" . ($c->price_cents / 100) . "', <br>
'" . $currency->$currencyOutput . "', <br>
'" . $url . "', <br>
'" . $thumbnailURL . "', <br>
'" . $c->seller->name . "', <br>
'" . $rating . "', <br>
'" . $species . "',<br>
'" . $nsfw . "'";
?>
+65
View File
@@ -0,0 +1,65 @@
<?php
//$_GET["sort"] = "free";
//$_GET["t"] = "davali";
$o = "";
require_once("../lib.php");
$mflib = new MFLib();
require_once("../elements.php");
$mfelements = new MFElements();
$actual_link = $mflib->getLink();
$mflib->limitperpage = 15;
$mflib->setCookie();
session_start();
if ( isset($_GET["s"]) && $_GET["s"] == "61776746" ) {
$_SESSION["adminmode"] = true;
header("Location: https://furatalog.xyz/avatar-bases/#insert");
} else if ( isset($_GET["s"]) && $_GET["s"] == "59572354") {
$_SESSION["adminmode"] = false;
header("Location: https://furatalog.xyz/avatar-bases/");
}
$mflib->initialize();
$wishlistArray = $mflib->dataGetWishlist();
if (!isset($_GET["p"])) $_GET["p"] = 1;
$o .= "<html>";
$o .= $mfelements->printHead($wishlistArray);
$o .= "<body id=\"body\">";
$o .= $mfelements->printSiteHeader();
$o .= "<div id=\"filter\" class=\"filter\" >";
$o .= $mfelements->printFilterSection($mflib, $actual_link);
$o .= $mfelements->printAccountSection($mflib);
$o .= "</div>";
$o .= $mfelements->printPreviewProductPage();
if (isset($_SESSION["adminmode"]) && $_SESSION["adminmode"] == true) {
$o .= $mfelements->printAdminInsertData($mflib);
}
$o .= $mfelements->printNavbar($mflib);
$o .= $mfelements->printPageContent($mflib, $wishlistArray);
$o .= $mfelements->printNSFWpromt($actual_link);
$o .= $mfelements->printFooter($mflib);
$o .= $mfelements->printJSLoginVar();
$o .= $mfelements->printScriptSources();
$o .= "</body></html>";
echo $o;
+196
View File
@@ -0,0 +1,196 @@
<head>
<style>
@font-face{
font-family: rubik;
src: url(https://mfgames.net/assets/Rubik-VariableFont_wght.ttf);
}
* {
font-family: rubik;
}
input {
color: white;
background-color: #2e2e2e;
border: none;
font-size: 20px;
margin: 3px;
padding: 5px;
border-radius: 5px;
}
button {
color: white;
background-color: #3e3e3e;
border: none;
font-size: 20px;
margin: 3px;
padding: 5px 10px;
border-radius: 10px;
}
</style>
</head>
<?php
$url = $_POST["url"];
$species = $_POST["species"];
$nsfw = $_POST["nsfw"];
$isExisting = false;
/*
$url = "https://flashychisme.gumroad.com/l/SimpleHoodieWickerbeast";
$species = "Wickerbeast";
$nsfw = "0";
*/
if (isset($_POST["url"]) && isset($_POST["species"]) && isset($_POST["nsfw"])) {
//if (true) {
$servername = "localhost";
$username = "siskeldev";
$password = "LuckyAimie";
$dbname = "avali_shop";
if (str_contains($url, '?')) {
$url = substr($url, 0, strpos($url, "?"));
}
$string = file_get_contents($url);
$dom = new DomDocument();
$dom->loadHTML($string);
$finder = new DomXPath($dom);
$content = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProductPage ')]")[0]->textContent;
$content = json_decode($content);
$c = $content->product;
$currency = "{
\"usd\": \"$\",
\"eur\": \"\",
\"crc\": \"\",
\"gbp\": \"£\",
\"ils\": \"\",
\"inr\": \"\",
\"jpy\": \"¥\",
\"krw\": \"\",
\"ngn\": \"\",
\"php\": \"\",
\"pln\": \"\",
\"pyg\": \"\",
\"thb\": \"฿\",
\"uah\": \"\",
\"vnd\": \"\",
\"aud\": \"A\$\",
\"cad\": \"CAD\$\"
}";
$currency = json_decode($currency);
$currencyOutput = $c->currency_code;
if ($c->thumbnail_url == null) {
$thumbnailURL = $c->covers[0]->url;
} else $thumbnailURL = $c->thumbnail_url;
$rating = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' rating-average ')]")[0]->textContent;
if ($rating == null || $rating == "" || $rating == " ") $rating = "None";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
$failed = true;
}
$c->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->name)));
$c->seller->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->seller->name)));
$species = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$species)));
$sql2 = "SELECT * FROM `content` WHERE
name LIKE \"%" . $c->name . "%\" AND
url_link LIKE \"%" . $url . "%\" AND
url_image LIKE \"%" . $thumbnailURL . "%\" AND
creator LIKE \"%" . $c->seller->name . "%\";";
$result2 = $conn->query($sql2);
if ($result2->num_rows > 0) {
$isExisting = true;
} else {
$isExisting = false;
}
$sql = "INSERT INTO content (
`name`,
`price`,
`currency`,
`url_link`,
`url_image`,
`creator`,
`rating`,
`species`,
`nsfw`,
`section`
)
VALUES (
'" . $c->name . "',
'" . $c->price_cents . "',
'" . $currency->$currencyOutput . "',
'" . $url . "',
'" . $thumbnailURL . "',
'" . $c->seller->name . "',
'" . $rating . "',
'" . $species . "',
'" . $nsfw . "',
2
)";
if ($isExisting == false) {
if ($conn->query($sql) === TRUE) {
echo "<a style=\"color: green;\">Successful !</a>";
} else {
$errormsg = "<a style=\"color: red;\">Error: " . $sql . "<br>" . $conn->error . "</a>";
$failed = true;
}
} else {
echo "<a style=\"color: orange;\">Already Exists!</a>";
}
$conn->close();
}
?>
<body style="background-color: #1e1e1e; color: white">
<form action="AutoInsertData.php" method="post">
<label for="url">URL:</label><br>
<input type="text" id="url" name="url" style="width:100%"><br>
<label for="species">Species:</label><br>
<input type="text" id="species" name="species" style="width:100%"><br>
<label for="nsfw">NSFW:</label><br>
<input type="text" id="nsfw" name="nsfw" value="0" style="width:100%">
<button type="submit">Submit</button>
</form>
<br>
<br>
<?php
echo "
'" . $c->name . "', <br>
'" . ($c->price_cents / 100) . "', <br>
'" . $currency->$currencyOutput . "', <br>
'" . $url . "', <br>
'" . $thumbnailURL . "', <br>
'" . $c->seller->name . "', <br>
'" . $rating . "', <br>
'" . $species . "',<br>
'" . $nsfw . "',<br>
2";
?>
+65
View File
@@ -0,0 +1,65 @@
<?php
//$_GET["sort"] = "free";
//$_GET["t"] = "davali";
$o = "";
require_once("../lib.php");
$mflib = new MFLib();
require_once("../elements.php");
$mfelements = new MFElements();
$actual_link = $mflib->getLink();
$mflib->limitperpage = 15;
$mflib->setCookie();
session_start();
if ( isset($_GET["s"]) && $_GET["s"] == "61776746" ) {
$_SESSION["adminmode"] = true;
header("Location: https://furatalog.xyz/avatars/#insert");
} else if ( isset($_GET["s"]) && $_GET["s"] == "59572354") {
$_SESSION["adminmode"] = false;
header("Location: https://furatalog.xyz/avatars/");
}
$mflib->initialize();
$wishlistArray = $mflib->dataGetWishlist();
if (!isset($_GET["p"])) $_GET["p"] = 1;
$o .= "<html>";
$o .= $mfelements->printHead($wishlistArray);
$o .= "<body id=\"body\">";
$o .= $mfelements->printSiteHeader();
$o .= "<div id=\"filter\" class=\"filter\" >";
$o .= $mfelements->printFilterSection2($mflib, $actual_link);
$o .= $mfelements->printAccountSection($mflib);
$o .= "</div>";
$o .= $mfelements->printPreviewProductPage();
if (isset($_SESSION["adminmode"]) && $_SESSION["adminmode"] == true) {
$o .= $mfelements->printAdminInsertData($mflib);
}
$o .= $mfelements->printNavbar($mflib);
$o .= $mfelements->printPageContent($mflib, $wishlistArray);
$o .= $mfelements->printNSFWpromt($actual_link);
$o .= $mfelements->printFooter($mflib);
$o .= $mfelements->printJSLoginVar();
$o .= $mfelements->printScriptSources();
$o .= "</body></html>";
echo $o;
+32
View File
@@ -0,0 +1,32 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bestellungen</title>
</head>
<body>
<form action="da.php" method="post">
<h2>Ihre Bestellungen</h2>
<p>Ihre Anrede lautet: </p>
<p><input type="radio" name="anrede" checked="checked" value="m"> Herr
<input type="radio" name="anrede" value="w"> Frau
<input type="radio" name="anrede" value="c"> Firma
</p>
<p> Bitte geben Sie Ihren Namen ein: </p>
<p><input type="text" name="meinname"></p>
<p> Bitte geben Sie das Gewünschte gericht ein: </p>
<p><input type="text" name="gericht"></p>
<p> Bitte geben Sie die gewünschte Anzahl ein: </p>
<p><select name="anzahl">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select></p>
<p><input type="reset" value="Werte Zurücksetzten"><input type="submit" value="Senden"></p>
</form>
</body>
</html>
+28
View File
@@ -0,0 +1,28 @@
<?php
$anrede = $_POST["anrede"];
$meinname = $_POST["meinname"];
$gericht = $_POST["gericht"];
$anzahl = $_POST["anzahl"];
if (
isset($anrede) &&
isset($meinname) &&
isset($gericht) &&
isset($anzahl)
) {
switch ($anrede) {
case "w":
echo "<p>Sehr geehrte Frau <b>" . $meinname . "</b>, </p>";
break;
case "m":
echo "<p>Sehr geehrter Herr <b>" . $meinname . "</b>, </p>";
break;
default:
echo "<p>Sehr geehrte <b>Damen und Herren</b>, </p>";
break;
}
echo "<p> Sie haben das Gericht <b>" . $gericht . " " . $anzahl . "</b> mal bestellt.";
}
?>
+9
View File
@@ -0,0 +1,9 @@
<?php
$discordInvite = "Uf7p8f7Sbm";
$discordBase = "https://discord.gg/";
$link = $discordBase . $discordInvite;
header("Location: " . $link);
die();
?>
+826
View File
@@ -0,0 +1,826 @@
<?php
class MFElements {
function printHead($wishlistArray) {
$tmp = "
<head>
<style id=\"styleshed\"></style>
<link rel=\"stylesheet\" href=\"/assets/style/navbar.css\">
<link rel=\"shortcut icon\" href=\"/assets/logo.ico\" type=\"image/x-icon\">
<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" />
<link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css\">
<!--link rel=\"preload\" as=\"image\" href=\"https://booth.pximg.net/ac5dfed4-26bc-4308-86ad-e67e837e5d30/i/4560238/f762721d-4be8-47f1-9c3d-f5eec608ebc4_base_resized.jpg\"-->
<meta property=\"og:site_name\" content=\"Furatalog.xyz\">
<meta property=\"og:title\" content=\"Furatalog - Avatar Assets, Bases and More\">
<meta property=\"og:type\" content=\"website\" />
<meta property=\"og:description\" content=\"A Collection of Furry Assets, Prebuild Furry Avatars and Furry Bases\">
<meta property=\"og:image\" content=\"https://furatalog.xyz/assets/banner.png\">
<meta property=\"og:url\" content=\"https://furatalog.xyz/\">
<!-- Twitter Meta Data -->
<meta name=\"twitter:title\" content=\"Furatalog - Avatar Assets, Bases and More\">
<meta name=\"twitter:description\" content=\"A Collection of Furry Assets, Prebuild Furry Avatars and Furry Bases\">
<meta name=\"twitter:image\" content=\"https://furatalog.xyz/assets/banner.png\">
<meta name=\"twitter:card\" content=\"summary_large_image\">
<meta name=\"twitter:site\" content=\"@siskeldev\">
<!-- Discord Meta Data -->
<meta name=\"theme-color\" content=\"#860086\">
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-5BZW6TPR');</script>
<!-- End Google Tag Manager -->
<!-- Google tag (gtag.js) -->
<script async src=\"https://www.googletagmanager.com/gtag/js?id=G-2PMVNZWB8J\"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-2PMVNZWB8J');
</script>
<!-- WishlistData -->
<script id=\"wishlistScript\">
var wishlistArray = " . json_encode($wishlistArray) . "
</script>
<!-- Generic Meta Data -->
<title>Home - Furatalog.xyz</title>
<meta charset=\"UTF-8\">
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">
<meta name=\"robots\" content=\"index, nofollow\">
<meta name=\"description\" content=\"Furatalog - Avatar Assets, Bases and More\">
<meta name=\"keywords\" content=\"Avatar, VRChat, Unity 2019, Unity 2022, Blender, Gumroad, \">
<meta name=\"author\" content=\"© SiskelDev 2023\">";
if(isset($_SESSION["avali"]) && $_SESSION["avali"] == "true")
$tmp = $tmp . "<link id=\"id1\" rel=\"stylesheet\" href=\"/assets/avali.css\">";
$tmp = $tmp . "</head>";
return $tmp;
}
function printSiteHeader() {
$tmp = "
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src=\"https://www.googletagmanager.com/ns.html?id=GTM-5BZW6TPR\" height=\"0\" width=\"0\" style=\"display:none;visibility:hidden\"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<div class=\"header\" id=\"header\" style=\"cursor: default\">
<h2>Furatalog.xyz</h2>
<p>A Collection of Furry Assets, Prebuild Furry Avatars and Furry Bases</p>
</div>";
return $tmp;
}
function printFilterSection($mflib, $actual_link) {
//$actual_link = "https://furatalog.xyz/?t=rex&sort=free#fo";
/*if (str_contains($actual_link, "?sort")) {
$actual_link_wo_sort = substr($actual_link, 0, strpos($actual_link, '?sort'));
}
if (str_contains($actual_link, "&sort")) {
$actual_link_wo_sort = substr($actual_link, 0, strpos($actual_link, '&sort'));
}*/
if (str_contains($actual_link, "?sort") && !str_contains($actual_link, "&sort") || !str_contains($actual_link, "?")) {
$actual_link = str_replace("?sort=priceup", "", $actual_link);
$actual_link = str_replace("?sort=pricedown", "", $actual_link);
$actual_link = str_replace("?sort=free", "", $actual_link);
$actual_link = str_replace("&sort=priceup", "", $actual_link);
$actual_link = str_replace("&sort=pricedown", "", $actual_link);
$actual_link = str_replace("&sort=free", "", $actual_link);
$addonSort = "?sort=";
} else {
$actual_link = str_replace("?sort=priceup", "", $actual_link);
$actual_link = str_replace("?sort=pricedown", "", $actual_link);
$actual_link = str_replace("?sort=free", "", $actual_link);
$actual_link = str_replace("&sort=priceup", "", $actual_link);
$actual_link = str_replace("&sort=pricedown", "", $actual_link);
$actual_link = str_replace("&sort=free", "", $actual_link);
$addonSort = "&sort=";
}
$tmp = "
<div class=\"filter-inner\" id=\"filterdiv\" style=\"display: grid !important;\">
<div class=\"filter-container-item\">
<div>
<h3>Sorting</h3>
";
if (isset($_GET["sort"]) && $_GET["sort"] == "priceup") {
$tmp .= "<a href=\"" . $actual_link . "\" class=\"activeA\">Price (Lowest - Highest)</a>";
} else {
$tmp .= "<a href=\"" . $actual_link . $addonSort . "priceup\">Price (Lowest - Highest)</a>";
}
if (isset($_GET["sort"]) && $_GET["sort"] == "pricedown") {
$tmp .= "<a href=\"" . $actual_link . "\" class=\"activeA\">Price (Highest - Lowest)</a>";
} else {
$tmp .= "<a href=\"" . $actual_link . $addonSort . "pricedown\">Price (Highest - Lowest)</a>";
}
if (isset($_GET["sort"]) && $_GET["sort"] == "free") {
$tmp .= "<a href=\"" . $actual_link . "\" class=\"activeA\">Free</a>";
} else {
$tmp .= "<a href=\"" . $actual_link . $addonSort . "free\">Free</a>";
}
$tmp .= "
</div>
</div>
<div class=\"filter-container-item\">
<div>
<h3>Settings</h3>";
if (str_contains($actual_link, "?") == false) {
$addon = "?nsfw=";
} else {
$addon = "&nsfw=";
}
if (isset($_GET["sort"])) {
$addon2 = "&sort=" . $_GET["sort"];
} else $addon2 = "";
if (isset($_SESSION["nsfw"]) && $_SESSION["nsfw"] == "true") {
$tmp .= "
<div>
<a href=\"" . $actual_link . $addon . "false" . $addon2 . "\">Disable NSFW</a>
</div>";
} else {
$tmp .= "
<div>
<a href=\"" . $actual_link . $addon . "true" . $addon2 . "\">Enable NSFW</a>
</div>";
}
if (isset($_SESSION["nsfw"]) && $_SESSION["nsfw"] == "true") {
if (str_contains($actual_link, "?") == false) {
$addon2 = "?nsfwblur=";
} else {
$addon2 = "&nsfwblur=";
}
if (isset($_GET["sort"])) {
$addon3 = "&sort=" . $_GET["sort"];
} else $addon3 = "";
if ($_SESSION["nsfwblur"] == "true") {
$tmp .= "
<div>
<a href=\"" . $actual_link . $addon2 . "false" . $addon3 . "\">Disable NSFW-Blur</a>
</div>";
} else {
$tmp .= "
<div>
<a href=\"" . $actual_link . $addon2 . "true" . $addon3 . "\">Enable NSFW-Blur</a>
</div>";
}
}
$tmp .= "<a onclick=\"AvaliMode();\" id=\"avaliMode\">Avali-Mode</a>
</div>
</div>";
if ($mflib->isItMobile == false) {
$tmp .= "
<div class=\"filter-container-item barFilterL\">
</div>
<div class=\"filter-container-item barFilterR\">
</div>";
} else {
$tmp .= "
<div class=\"filter-container-item mobileFilter\">
</div>";
}
$tmp .= "
<div class=\"filter-container-item\">
";
if (isset($_GET["s"])) {
$tmpfilterS = "";
}
if (isset($_GET["sort"])) {
$sortaddon = "&sort=" . $_GET["sort"];
} else {
$sortaddon = "";
}
$tmp .= "<div class=\"species-cat\">";
foreach ($mflib->dataGetOverSpecies() as $row) {
$tmp .= "<div class=\"species-cat-item\">";
$tmp .= "<h3>" . $row["name"] . "</h3>";
foreach ($mflib->dataGetSpecies($row["tag"]) as $row2) {
if ($mflib->current_speciesShort == $row2["shorted"]) {
$temp = "class=\"activeA\"";
$tempA = "/";
if (isset($_GET["s"]) && $_GET["s"]) {
$tempA .= "?s=" . $_GET["s"];
}
} else {
$temp = "";
if (isset($_GET["s"]) && $_GET["s"]) {
$tempA = "?t=" . $row2["shorted"] . "";
$tempA .= "&s=" . $_GET["s"];
} else {
$tempA = "?t=" . $row2["shorted"] . "";
}
}
$tmp .= "<a " . $temp . " href=\"" . $tempA . $sortaddon . "\">" . $row2["species"] . "</a>";
}
$tmp .= "</div>";
}
$tmp .= "</div>";
$tmp .= "<h3>Others</h3>";
foreach ($mflib->dataGetOtherSpecies() as $row) {
if ($mflib->current_speciesShort == $row["shorted"]) {
$temp = "class=\"activeA\"";
$tempA = "/";
if (isset($_GET["s"]) && $_GET["s"] != "") {
$tempA .= "?s=" . $_GET["s"];
}
} else {
$temp = "";
if (isset($_GET["s"]) && $_GET["s"] != "") {
$tempA = "?t=" . $row["shorted"] . "";
$tempA .= "&s=" . $_GET["s"];
} else {
$tempA = "?t=" . $row["shorted"] . "";
}
}
$tmp .= "<a " . $temp . " href=\"" . $tempA . $sortaddon . "\">" . $row["species"] . "</a>";
}
$tmp .= "
</div>";
if ($mflib->isItMobile == true) {
$tmp .= "
<div class=\"filter-container-item mobileFilter\">
</div>";
}
$tmp .= "
<div class=\"filter-container-item\">
<h3>Base Links</h3>";
foreach ($mflib->dataGetAllSpecies() as $row) {
$tmp .= "<a href=\"" . $row["base_link"] . "\">" . $row["species"] . "</a>";
}
$tmp .= " </div>
<div class=\"filter-last\">
</div>
</div>";
return $tmp;
}
function printFilterSection2($mflib, $actual_link) {
if (str_contains($actual_link, "?sort") && !str_contains($actual_link, "&sort") || !str_contains($actual_link, "?")) {
$actual_link = str_replace("?sort=priceup", "", $actual_link);
$actual_link = str_replace("?sort=pricedown", "", $actual_link);
$actual_link = str_replace("?sort=free", "", $actual_link);
$actual_link = str_replace("&sort=priceup", "", $actual_link);
$actual_link = str_replace("&sort=pricedown", "", $actual_link);
$actual_link = str_replace("&sort=free", "", $actual_link);
$addonSort = "?sort=";
} else {
$actual_link = str_replace("?sort=priceup", "", $actual_link);
$actual_link = str_replace("?sort=pricedown", "", $actual_link);
$actual_link = str_replace("?sort=free", "", $actual_link);
$actual_link = str_replace("&sort=priceup", "", $actual_link);
$actual_link = str_replace("&sort=pricedown", "", $actual_link);
$actual_link = str_replace("&sort=free", "", $actual_link);
$addonSort = "&sort=";
}
$tmp = "
<div class=\"filter-inner\" id=\"filterdiv\" style=\"display: grid !important;\">
<div class=\"filter-container-item\">
<div>
<h3>Sorting</h3>
";
if (isset($_GET["sort"]) && $_GET["sort"] == "priceup") {
$tmp .= "<a href=\"" . $actual_link . "\" class=\"activeA\">Price (Lowest - Highest)</a>";
} else {
$tmp .= "<a href=\"" . $actual_link . $addonSort . "priceup\">Price (Lowest - Highest)</a>";
}
if (isset($_GET["sort"]) && $_GET["sort"] == "pricedown") {
$tmp .= "<a href=\"" . $actual_link . "\" class=\"activeA\">Price (Highest - Lowest)</a>";
} else {
$tmp .= "<a href=\"" . $actual_link . $addonSort . "pricedown\">Price (Highest - Lowest)</a>";
}
if (isset($_GET["sort"]) && $_GET["sort"] == "free") {
$tmp .= "<a href=\"" . $actual_link . "\" class=\"activeA\">Free</a>";
} else {
$tmp .= "<a href=\"" . $actual_link . $addonSort . "free\">Free</a>";
}
$tmp .= "
</div>
</div>
<div class=\"filter-container-item\">
<div>
<h3>Settings</h3>";
if (str_contains($actual_link, "?") == false) {
$addon = "?nsfw=";
} else {
$addon = "&nsfw=";
}
if (isset($_GET["sort"])) {
$addon2 = "&sort=" . $_GET["sort"];
} else $addon2 = "";
if (isset($_SESSION["nsfw"]) && $_SESSION["nsfw"] == "true") {
$tmp .= "
<div>
<a href=\"" . $actual_link . $addon . "false" . $addon2 . "\">Disable NSFW</a>
</div>";
} else {
$tmp .= "
<div>
<a href=\"" . $actual_link . $addon . "true" . $addon2 . "\">Enable NSFW</a>
</div>";
}
if (isset($_SESSION["nsfw"]) && $_SESSION["nsfw"] == "true") {
if (str_contains($actual_link, "?") == false) {
$addon2 = "?nsfwblur=";
} else {
$addon2 = "&nsfwblur=";
}
if (isset($_GET["sort"])) {
$addon3 = "&sort=" . $_GET["sort"];
} else $addon3 = "";
if ($_SESSION["nsfwblur"] == "true") {
$tmp .= "
<div>
<a href=\"" . $actual_link . $addon2 . "false" . $addon3 . "\">Disable NSFW-Blur</a>
</div>";
} else {
$tmp .= "
<div>
<a href=\"" . $actual_link . $addon2 . "true" . $addon3 . "\">Enable NSFW-Blur</a>
</div>";
}
}
$tmp .= "<a onclick=\"AvaliMode();\" id=\"avaliMode\">Avali-Mode</a>
</div>
</div>";
$tmp .= "
<div class=\"filter-container-item\">
";
if (isset($_GET["s"])) {
$tmpfilterS = "";
}
if (isset($_GET["sort"])) {
$sortaddon = "&sort=" . $_GET["sort"];
} else {
$sortaddon = "";
}
$tmp .= "<div class=\"species-cat\">";
$tmp .= "</div>";
$tmp .= "
</div>";
if ($mflib->isItMobile == true) {
$tmp .= "
<div class=\"filter-container-item mobileFilter\">
</div>";
}
$tmp .= "
<div class=\"filter-last\">
</div>
</div>";
return $tmp;
}
function printAccountSection($mflib) {
$tmp = "<div class=\"filter-inner-acc\" id=\"accdiv\" style=\"display: none !important;\">
<div class=\"filter-container-item\">";
if (!isset($_SESSION["uuid"])) {
$tmp .= "
<div id=\"login-form\">
<h2>Wishlist</h2>
<br><br>
<form action=\"/login.php\" method=\"post\">
<input name=\"uuid\" type=\"text\" id=\"uuidInput\" placeholder=\"Wishlist-ID\">
<button id=\"login-button\">Login</button>
</form>
<br>
<div class=\"line\"></div>
<br>
<form action=\"/register.php\">
<button id=\"reg-button\">Register</button>
</form>
<br>
<a>Please Save your Wishlist-ID to access it after logout.</a><br>
<a>When Registering a new Wishlist, be aware that the wishlist will be Deletet after 1 year of not using the Wishlist.</a>
</div>";
} else {
$tmp .= "
<div id=\"login-form\">
<h2>Wishlist</h2>
<p>Your Wishlist-ID:</p><a>" . $_SESSION["uuid"] . "</a>
<br>
<form action=\"/logout.php\">
<button id=\"logout-button\">Logout</button>
</form>
</div>";
}
$tmp .= "</div>";
if (isset($_SESSION["uuid"]) && $_SESSION["uuid"] != "") {
if ($mflib->dataGetWishlist() != null) {
$tmp .= "
<table id=\"wishlist\">
<tr>
<th>Item Name</th>
<th>Price</th>
<th>Creator</th>
<th>Rating</th>
<th>Edit</th>
</tr>";
foreach ($mflib->dataGetWishlist() as $row) {
if (strlen($row["name"]) >= 40) {
$NAME = substr(substr($row["name"], 0, 40), 0, strrpos(substr($row["name"], 0, 40), ' ')) . " ...";
} else $NAME = $row["name"];
if (!isset($row["rating"])) {
$row["rating"] = "None";
}
$tmp .= "
<tr>
<td alt=\"" . $row["name"] . "\"><a href=\"" . $row["url_link"] . "\">" . $NAME . "</td>
<td>" . $row["currency"] . "" . str_replace(".00", "", sprintf ("%.2f", $row["price"])) . "</td>
<td>" . $row["creator"] . "</td>
<td>" . $row["rating"] . "</td>
<td><a class=\"deletebutton\" id=\"del\" itemid=\"" . $row["id"] . "\">Delete</a></td>
</tr>";
}
$tmp .= "</table>";
} else {
//$tmp .= "<table id=\"wishlist\"><p>You have nothing currently in your Wishlist</p></table>";
$tmp .= "<table id=\"wishlist\"></table>";
}
} else {
$tmp .= "<table id=\"wishlist\"></table>";
}
$tmp .= "</div>";
return $tmp;
}
function printPreviewProductPage() {
return "
<div id=\"previewProduct\" class=\"\">
<div class=\"backback\" onclick=\"backback()\">
</div>
<div id=\"productPage\">
<div id=\"productLoading\">
<div class=\"loader\"></div>
</div>
<div class=\"productImages\">
<div id=\"productImageContainer\">
</div>
<div id=\"productImageContainerButtons\">
<a class=\"first\" onclick=\"plusDivs(-1)\">
<button class=\"w3-button w3-black w3-display-left\" onclick=\"plusDivs(-1)\">&#10094;</button>
</a>
<a class=\"second\" onclick=\"plusDivs(1)\">
<button class=\"w3-button w3-black w3-display-right\" onclick=\"plusDivs(1)\">&#10095;</button>
</a>
</div>
</div>
<div id=\"productDescription\">
</div>
<div id=\"productMetaData\">
<div id=\"productMetaDataContainer\">
<div id=\"creatorSection\">
<img id=\"creatorImg\" src=\"\" alt=\"\">
<a id=\"creatorName\"></a>
</div>
<div id=\"containsSection\">
</div>
<div id=\"ratingSection\">
<a id=\"R5\" class=\"RGlobal\">⭐5 <g id=\"g5\">(1)</g><div id=\"progressbar\"><div id=\"progressFiller5\" class=\"pfGlobal\"></div></div></a>
<a id=\"R4\" class=\"RGlobal\">⭐4 <g id=\"g4\">(1)</g><div id=\"progressbar\"><div id=\"progressFiller4\" class=\"pfGlobal\"></div></div></a>
<a id=\"R3\" class=\"RGlobal\">⭐3 <g id=\"g3\">(1)</g><div id=\"progressbar\"><div id=\"progressFiller3\" class=\"pfGlobal\"></div></div></a>
<a id=\"R2\" class=\"RGlobal\">⭐2 <g id=\"g2\">(1)</g><div id=\"progressbar\"><div id=\"progressFiller2\" class=\"pfGlobal\"></div></div></a>
<a id=\"R1\" class=\"RGlobal\">⭐1 <g id=\"g1\">(1)</g><div id=\"progressbar\"><div id=\"progressFiller1\" class=\"pfGlobal\"></div></div></a>
</div>
<div id=\"purchaseSection\">
<a id=\"purchasePrice\"></a>
<a id=\"gotoproduct\">Get on -----!</a>
</div>
</div>
</div>
<div id=\"purchaseSection2\">
<a id=\"purchasePrice2\"></a>
<a id=\"gotoproduct2\">Get on -----!</a>
</div>
</div>
</div>
";
}
function printAdminInsertData($mflib) {
return "
<div id=\"insertData\" class=\"\">
<div class=\"backback\" onclick=\"backback()\"></div>
<div id=\"insertWindow\">
<iframe src=\"https://furatalog.xyz/AutoInsertData.php?section=" . $mflib->currentSection . "\" height=\"100%\" width=\"100%\" style=\"border: none\"></iframe>
</div>
</div>";
}
function printNavbar($mflib) {
$tmp = "
<div id=\"navbar\">
" . /*<a class=\"nav-spacer\"></a> */ "
<a id=\"homebutton\" href=\"/\" style=\"cursor: pointer;\">Home</a>
<a class=\"nav-spacer\">|</a>";
if ($mflib->currentSection == 1) {
$tmp .= "<a id=\"sectionbutton\" href=\"/avatar-assets/\" style=\"cursor: pointer;\">Avatar-Assets</a>";
} else if ($mflib->currentSection == 2) {
$tmp .= "<a id=\"sectionbutton\" href=\"/avatars/\" style=\"cursor: pointer;\">Prebuild Avatars</a>";
} else if ($mflib->currentSection == 3) {
$tmp .= "<a id=\"sectionbutton\" href=\"/avatar-bases/\" style=\"cursor: pointer;\">Avatar-Bases</a>";
} else if ($mflib->currentSection == 4) {
$tmp .= "<a id=\"sectionbutton\" href=\"/worlds/\" style=\"cursor: pointer;\">Worlds</a>";
}
$tmp .= "
<a class=\"nav-spacer\">|</a>
<a id=\"filterbutton\" href=\"#fo\" style=\"cursor: pointer;\">Filter</a>
<a id=\"accbutton\" href=\"#acc\" style=\"cursor: pointer;\">Account</a>
<a class=\"nav-spacer\">|</a>
<a id=\"discordbutton\" href=\"/discord\" style=\"cursor: pointer;\">Discord Server</a>
";
if (isset($_SESSION["adminmode"]) && $_SESSION["adminmode"]) {
$tmp .= "<a id=\"insertbutton\" href=\"#insert\" style=\"cursor: pointer;\">Insert New Data</a>
<a id=\"insertbutton\" href=\"?s=59572354\" style=\"cursor: pointer;\">Disable AdminMode</a>";
}
$tmp .= "
<a>&nbsp;</a>
<div id=\"searchdiv\" style=\"float: right; \">
<a class=\"searchtxt\" id=\"stxt\" style=\"float: left;\" onclick=\"searchInputFocus()\">Search</a>
<form class=\"searchfield\" action=\"\" method=\"get\">
<input onblur=\"searchBlur()\" onfocus=\"searchFocus()\" id=\"sinp\" class=\"toFloataway\" name=\"s\" type=\"text\" ";
if (isset($_GET["s"]))
$tmp .= "value=\"" . $mflib->searchQuery . "\"";
$tmp .= "/>";
if (isset($_GET["t"])) {
$tmp .= "<input style=\"display: none;\" name=\"t\" value=\"" . $_GET["t"] . "\">";
}
$tmp .= "
<input class=\"btn\" type=\"submit\"/>
</form>
</div>
<a id=\"menubutton\" href=\"javascript:void(0);\" onclick=\"menu()\"><i class=\"fa fa-bars\"></i></a>
</div>";
return $tmp;
}
function printPageContent($mflib, $wishlistArray) {
$tmp = "<div class=\"row\">";
foreach ($mflib->dataGetPageContent() as $row) {
$tmp .= "<div class=\"column\">";
if (isset($_SESSION["nsfwblur"]) && $_SESSION["nsfwblur"] == true) {
if (isset($row["nsfw"]) && $row["nsfw"] == 1)
$tmp .= "
<div class=\"nsfw-filter\">
<a class=\"txt\">NSFW Content</a></br></br>
<a class=\"btn\">Click to Show</a>
</div>
";
}
if (strlen($row["name"]) >= 40) {
$NAME = substr(substr($row["name"], 0, 40), 0, strrpos(substr($row["name"], 0, 40), ' ')) . " ...";
} else $NAME = $row["name"];
$tmp .= "
<a href='" . $row["url_link"] . "' class=\"imagecontainer\">
<img class=\"imgItem\" src=\"" . $row["url_image"] . "\">
";
//if (!$mflib->isItMobile)
$tmp .= "
<a href=\"#p" . $row["id"] . "\" class=\"previewButton\">Preview</a>
";
if (isset($_SESSION["uuid"]) && $_SESSION["uuid"] != null) {
$liked = false;
if ($wishlistArray != null) {
foreach ($wishlistArray as $k) {
if ($row["id"] == $k["id"]) {
$liked = true;
}
}
}
if ($liked) {
$tmp .= "<a class=\"likeButton\" itemid=\"" . $row["id"] . "\"><icon>favorite</icon></a>";
} else {
$tmp .= "<a class=\"likeButton\" itemid=\"" . $row["id"] . "\"><icon>favorite_border</icon></a>";
}
}
if (!isset($row["rating"])) {
$row["rating"] = "None";
}
$tmp .= "
</a>
<header>
<a title=\"" . $row["name"] . "\">" . $NAME . "</a>
<a style=\"text-decoration: underline;z-index: 90;\" href=\"?s=" . $row["creator"] . "\">" . $row["creator"] . "</a>
<a>⭐" . $row["rating"] . "</a>
</header>
<footer>
";
//print_r($row);
$tmp .= "
<a>" . $row["currency"] . "" . str_replace(".00", "", sprintf ("%.2f", ($row["price"] / 100))) . "</a>
</footer>
</div>
";
}
$tmp .= "</div>";
return $tmp;
}
function printNSFWpromt($actual_link) {
$tmp = "";
if (str_contains($actual_link, "?") == false) {
$addon = "?nsfw=";
} else {
$addon = "&nsfw=";
}
if (!isset($_SESSION["promtshown"])) {
$tmp .= "
<div class=\"nsfw-ask\">
<a class=\"nsfw-text\">Do you want to see NSFW Content? </a>
<br>
<div class=\"btns\">
<a class=\"nsfwbtn\" href=\"" . $actual_link . $addon . "true\">Yes</a>
<a class=\"nsfwbtn\" href=\"" . $actual_link . $addon . "false\">No</a>
</div>
</div>";
}
if (!isset($_SESSION["promtshown"])) {
$tmp .= "<div class=\"discord-wp\">";
} else {
$tmp .= "<div class=\"discord\">";
}
$tmp .= "
<a class=\"discord-text\">Join The Discord Server</a>
<br>
<div class=\"discord-btns\">
<a class=\"discordbtn\" href=\"/discord\">Join Now</a>
</div>
</div>";
return $tmp;
}
function printFooter($mflib) {
$tmp = "
<div class=\"footer\" id=\"footer\">
<div class=\"pagenav\">";
$tmp .= $mflib->footerBackArrow();
$tmp .= $mflib->footerBackDots();
$tmp .= $mflib->footerPages();
$tmp .= $mflib->footerForwardDots();
$tmp .= $mflib->footerForwardArrow();
$tmp .= "</div>
</div>";
return $tmp;
}
function printJSLoginVar() {
$tmp = "";
if(isset($_SESSION["uuid"]) && $_SESSION["uuid"] != "") {
$tmp .= "<script>
var login = true;
</script>";
} else {
$tmp .= "<script>
var login = false;
</script>";
}
return $tmp;
}
function printScriptSources() {
return "
<script src=\"/assets/scripts/default-functions.js\"></script>
<script src=\"/assets/scripts/script.js\"></script>
<script src=\"/assets/scripts/account.js\"></script>
<script src=\"/assets/scripts/avali.js\"></script>
<script src=\"/assets/scripts/modal.js\"></script>
<script src=\"/assets/scripts/preview.js\"></script>
<script src=\"/assets/scripts/filter.js\"></script>
<script src=\"/assets/scripts/event-listener.js\"></script>
<script src=\"/assets/scripts/search.js\"></script>
<script src=\"/assets/scripts/variables.js\"></script>";
}
}
+432
View File
@@ -0,0 +1,432 @@
<head>
<style>
body,
html {
padding: 0;
margin: 0;
font-family: 'Quicksand', sans-serif;
font-weight: 400;
overflow: hidden;
}
.writing {
width: 320px;
height: 200px;
background-color: #3f3f3f;
border: 1px solid #bbbbbb;
border-radius: 6px 6px 4px 4px;
position: relative;
}
.writing .topbar{
position: absolute;
width: 100%;
height: 12px;
background-color: #f1f1f1;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.writing .topbar div{
height: 6px;
width: 6px;
border-radius: 50%;
margin: 3px;
float: left;
}
.writing .topbar div.green{
background-color: #60d060;
}
.writing .topbar div.red{
background-color: red;
}
.writing .topbar div.yellow{
background-color: #e6c015;
}
.writing .code {
padding: 15px;
}
.writing .code ul {
list-style: none;
margin: 0;
padding: 0;
}
.writing .code ul li {
background-color: #9e9e9e;
width: 0;
height: 7px;
border-radius: 6px;
margin: 10px 0;
}
.container {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
height: 100vh;
width: 100%;
-webkit-transition: -webkit-transform .5s;
transition: -webkit-transform .5s;
transition: transform .5s;
transition: transform .5s, -webkit-transform .5s;
}
.stack-container {
position: relative;
width: 420px;
height: 210px;
-webkit-transition: width 1s, height 1s;
transition: width 1s, height 1s;
}
.pokeup {
-webkit-transition: all .3s ease;
transition: all .3s ease;
}
.pokeup:hover {
-webkit-transform: translateY(-10px);
transform: translateY(-10px);
-webkit-transition: .3s ease;
transition: .3s ease;
}
.error {
width: 400px;
padding: 40px;
text-align: center;
}
.error h1 {
font-size: 125px;
padding: 0;
margin: 0;
font-weight: 700;
}
.error h2 {
margin: -30px 0 0 0;
padding: 0px;
font-size: 47px;
letter-spacing: 12px;
}
.perspec {
-webkit-perspective: 1000px;
perspective: 1000px;
}
.writeLine{
-webkit-animation: writeLine .4s linear forwards;
animation: writeLine .4s linear forwards;
}
.explode{
-webkit-animation: explode .5s ease-in-out forwards;
animation: explode .5s ease-in-out forwards;
}
.card {
-webkit-animation: tiltcard .5s ease-in-out 1s forwards;
animation: tiltcard .5s ease-in-out 1s forwards;
position: absolute;
}
@-webkit-keyframes tiltcard {
0% {
-webkit-transform: rotateY(0deg);
transform: rotateY(0deg);
}
100% {
-webkit-transform: rotateY(-30deg);
transform: rotateY(-30deg);
}
}
@keyframes tiltcard {
0% {
-webkit-transform: rotateY(0deg);
transform: rotateY(0deg);
}
100% {
-webkit-transform: rotateY(-30deg);
transform: rotateY(-30deg);
}
}
@-webkit-keyframes explode {
0% {
-webkit-transform: translate(0, 0) scale(1);
transform: translate(0, 0) scale(1);
}
100% {
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
}
}
@keyframes explode {
0% {
-webkit-transform: translate(0, 0) scale(1);
transform: translate(0, 0) scale(1);
}
100% {
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
}
}
@-webkit-keyframes writeLine {
0% {
width:0;
}
100% {
width: var(--linelength);
}
}
@keyframes writeLine {
0% {
width:0;
}
100% {
width: var(--linelength);
}
}
@media screen and (max-width: 1000px) {
.container {
-webkit-transform: scale(.85);
transform: scale(.85);
}
}
@media screen and (max-width: 850px) {
.container {
-webkit-transform: scale(.75);
transform: scale(.75);
}
}
@media screen and (max-width: 775px) {
.container {
-ms-flex-wrap: wrap-reverse;
flex-wrap: wrap-reverse;
-webkit-box-align: inherit;
-ms-flex-align: inherit;
align-items: inherit;
}
}
@media screen and (max-width: 370px) {
.container {
-webkit-transform: scale(.6);
transform: scale(.6);
}
}
</style>
</head>
<body>
<div class="container">
<div class="error">
<h1>400</h1>
<h2>error</h2>
<p>Ein Fehler ist aufgetreten</p>
<p>&nbsp;</p>
<a onclick="history.go(0)" style="border: 0px; background-color: rgb(59, 0, 253); border-radius: 5px; padding: 9px; padding-left: 85px; padding-right: 85px; color: white; cursor: pointer;">Neuladen</a><br/><br/>
<a onclick="window.location='/'" style="border: 0px; background-color: #bfc0c2; border-radius: 5px; padding: 9px; padding-left: 72px; padding-right: 71px; color: black; cursor: pointer;">Zur Startseite</a>
</div>
<div class="stack-container">
<div class="card-container">
<div class="perspec" style="--spreaddist: 125px; --scaledist: .75; --vertdist: -25px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 100px; --scaledist: .8; --vertdist: -20px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist:75px; --scaledist: .85; --vertdist: -15px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 50px; --scaledist: .9; --vertdist: -10px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 25px; --scaledist: .95; --vertdist: -5px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 0px; --scaledist: 1; --vertdist: 0px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
const stackContainer = document.querySelector('.stack-container');
const cardNodes = document.querySelectorAll('.card-container');
const perspecNodes = document.querySelectorAll('.perspec');
const perspec = document.querySelector('.perspec');
const card = document.querySelector('.card');
let counter = stackContainer.children.length;
//function to generate random number
function randomIntFromInterval(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
//after tilt animation, fire the explode animation
card.addEventListener('animationend', function () {
perspecNodes.forEach(function (elem, index) {
elem.classList.add('explode');
});
});
//after explode animation do a bunch of stuff
perspec.addEventListener('animationend', function (e) {
if (e.animationName === 'explode') {
cardNodes.forEach(function (elem, index) {
//add hover animation class
elem.classList.add('pokeup');
//add event listner to throw card on click
elem.addEventListener('click', function () {
let updown = [800, -800]
let randomY = updown[Math.floor(Math.random() * updown.length)];
let randomX = Math.floor(Math.random() * 1000) - 1000;
elem.style.transform = `translate(${randomX}px, ${randomY}px) rotate(-540deg)`
elem.style.transition = "transform 1s ease, opacity 2s";
elem.style.opacity = "0";
counter--;
if (counter === 0) {
stackContainer.style.width = "0";
stackContainer.style.height = "0";
}
});
//generate random number of lines of code between 4 and 10 and add to each card
let numLines = randomIntFromInterval(5, 10);
//loop through the lines and add them to the DOM
for (let index = 0; index < numLines; index++) {
let lineLength = randomIntFromInterval(25, 97);
var node = document.createElement("li");
node.classList.add('node-' + index);
elem.querySelector('.code ul').appendChild(node).setAttribute('style', '--linelength: ' + lineLength + '%;');
//draw lines of code 1 by 1
if (index == 0) {
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
} else {
elem.querySelector('.code ul .node-' + (index - 1)).addEventListener('animationend', function (e) {
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
});
}
}
});
}
});
</script>
</body>
+432
View File
@@ -0,0 +1,432 @@
<head>
<style>
body,
html {
padding: 0;
margin: 0;
font-family: 'Quicksand', sans-serif;
font-weight: 400;
overflow: hidden;
}
.writing {
width: 320px;
height: 200px;
background-color: #3f3f3f;
border: 1px solid #bbbbbb;
border-radius: 6px 6px 4px 4px;
position: relative;
}
.writing .topbar{
position: absolute;
width: 100%;
height: 12px;
background-color: #f1f1f1;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.writing .topbar div{
height: 6px;
width: 6px;
border-radius: 50%;
margin: 3px;
float: left;
}
.writing .topbar div.green{
background-color: #60d060;
}
.writing .topbar div.red{
background-color: red;
}
.writing .topbar div.yellow{
background-color: #e6c015;
}
.writing .code {
padding: 15px;
}
.writing .code ul {
list-style: none;
margin: 0;
padding: 0;
}
.writing .code ul li {
background-color: #9e9e9e;
width: 0;
height: 7px;
border-radius: 6px;
margin: 10px 0;
}
.container {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
height: 100vh;
width: 100%;
-webkit-transition: -webkit-transform .5s;
transition: -webkit-transform .5s;
transition: transform .5s;
transition: transform .5s, -webkit-transform .5s;
}
.stack-container {
position: relative;
width: 420px;
height: 210px;
-webkit-transition: width 1s, height 1s;
transition: width 1s, height 1s;
}
.pokeup {
-webkit-transition: all .3s ease;
transition: all .3s ease;
}
.pokeup:hover {
-webkit-transform: translateY(-10px);
transform: translateY(-10px);
-webkit-transition: .3s ease;
transition: .3s ease;
}
.error {
width: 400px;
padding: 40px;
text-align: center;
}
.error h1 {
font-size: 125px;
padding: 0;
margin: 0;
font-weight: 700;
}
.error h2 {
margin: -30px 0 0 0;
padding: 0px;
font-size: 47px;
letter-spacing: 12px;
}
.perspec {
-webkit-perspective: 1000px;
perspective: 1000px;
}
.writeLine{
-webkit-animation: writeLine .4s linear forwards;
animation: writeLine .4s linear forwards;
}
.explode{
-webkit-animation: explode .5s ease-in-out forwards;
animation: explode .5s ease-in-out forwards;
}
.card {
-webkit-animation: tiltcard .5s ease-in-out 1s forwards;
animation: tiltcard .5s ease-in-out 1s forwards;
position: absolute;
}
@-webkit-keyframes tiltcard {
0% {
-webkit-transform: rotateY(0deg);
transform: rotateY(0deg);
}
100% {
-webkit-transform: rotateY(-30deg);
transform: rotateY(-30deg);
}
}
@keyframes tiltcard {
0% {
-webkit-transform: rotateY(0deg);
transform: rotateY(0deg);
}
100% {
-webkit-transform: rotateY(-30deg);
transform: rotateY(-30deg);
}
}
@-webkit-keyframes explode {
0% {
-webkit-transform: translate(0, 0) scale(1);
transform: translate(0, 0) scale(1);
}
100% {
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
}
}
@keyframes explode {
0% {
-webkit-transform: translate(0, 0) scale(1);
transform: translate(0, 0) scale(1);
}
100% {
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
}
}
@-webkit-keyframes writeLine {
0% {
width:0;
}
100% {
width: var(--linelength);
}
}
@keyframes writeLine {
0% {
width:0;
}
100% {
width: var(--linelength);
}
}
@media screen and (max-width: 1000px) {
.container {
-webkit-transform: scale(.85);
transform: scale(.85);
}
}
@media screen and (max-width: 850px) {
.container {
-webkit-transform: scale(.75);
transform: scale(.75);
}
}
@media screen and (max-width: 775px) {
.container {
-ms-flex-wrap: wrap-reverse;
flex-wrap: wrap-reverse;
-webkit-box-align: inherit;
-ms-flex-align: inherit;
align-items: inherit;
}
}
@media screen and (max-width: 370px) {
.container {
-webkit-transform: scale(.6);
transform: scale(.6);
}
}
</style>
</head>
<body>
<div class="container">
<div class="error">
<h1>401</h1>
<h2>error</h2>
<p>Authentifizierungfehler</p>
<p>&nbsp;</p>
<a onclick="history.go(0)" style="border: 0px; background-color: rgb(59, 0, 253); border-radius: 5px; padding: 9px; padding-left: 85px; padding-right: 85px; color: white; cursor: pointer;">Neuladen</a><br/><br/>
<a onclick="window.location='/'" style="border: 0px; background-color: #bfc0c2; border-radius: 5px; padding: 9px; padding-left: 72px; padding-right: 71px; color: black; cursor: pointer;">Zur Startseite</a>
</div>
<div class="stack-container">
<div class="card-container">
<div class="perspec" style="--spreaddist: 125px; --scaledist: .75; --vertdist: -25px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 100px; --scaledist: .8; --vertdist: -20px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist:75px; --scaledist: .85; --vertdist: -15px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 50px; --scaledist: .9; --vertdist: -10px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 25px; --scaledist: .95; --vertdist: -5px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 0px; --scaledist: 1; --vertdist: 0px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
const stackContainer = document.querySelector('.stack-container');
const cardNodes = document.querySelectorAll('.card-container');
const perspecNodes = document.querySelectorAll('.perspec');
const perspec = document.querySelector('.perspec');
const card = document.querySelector('.card');
let counter = stackContainer.children.length;
//function to generate random number
function randomIntFromInterval(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
//after tilt animation, fire the explode animation
card.addEventListener('animationend', function () {
perspecNodes.forEach(function (elem, index) {
elem.classList.add('explode');
});
});
//after explode animation do a bunch of stuff
perspec.addEventListener('animationend', function (e) {
if (e.animationName === 'explode') {
cardNodes.forEach(function (elem, index) {
//add hover animation class
elem.classList.add('pokeup');
//add event listner to throw card on click
elem.addEventListener('click', function () {
let updown = [800, -800]
let randomY = updown[Math.floor(Math.random() * updown.length)];
let randomX = Math.floor(Math.random() * 1000) - 1000;
elem.style.transform = `translate(${randomX}px, ${randomY}px) rotate(-540deg)`
elem.style.transition = "transform 1s ease, opacity 2s";
elem.style.opacity = "0";
counter--;
if (counter === 0) {
stackContainer.style.width = "0";
stackContainer.style.height = "0";
}
});
//generate random number of lines of code between 4 and 10 and add to each card
let numLines = randomIntFromInterval(5, 10);
//loop through the lines and add them to the DOM
for (let index = 0; index < numLines; index++) {
let lineLength = randomIntFromInterval(25, 97);
var node = document.createElement("li");
node.classList.add('node-' + index);
elem.querySelector('.code ul').appendChild(node).setAttribute('style', '--linelength: ' + lineLength + '%;');
//draw lines of code 1 by 1
if (index == 0) {
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
} else {
elem.querySelector('.code ul .node-' + (index - 1)).addEventListener('animationend', function (e) {
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
});
}
}
});
}
});
</script>
</body>
+432
View File
@@ -0,0 +1,432 @@
<head>
<style>
body,
html {
padding: 0;
margin: 0;
font-family: 'Quicksand', sans-serif;
font-weight: 400;
overflow: hidden;
}
.writing {
width: 320px;
height: 200px;
background-color: #3f3f3f;
border: 1px solid #bbbbbb;
border-radius: 6px 6px 4px 4px;
position: relative;
}
.writing .topbar{
position: absolute;
width: 100%;
height: 12px;
background-color: #f1f1f1;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.writing .topbar div{
height: 6px;
width: 6px;
border-radius: 50%;
margin: 3px;
float: left;
}
.writing .topbar div.green{
background-color: #60d060;
}
.writing .topbar div.red{
background-color: red;
}
.writing .topbar div.yellow{
background-color: #e6c015;
}
.writing .code {
padding: 15px;
}
.writing .code ul {
list-style: none;
margin: 0;
padding: 0;
}
.writing .code ul li {
background-color: #9e9e9e;
width: 0;
height: 7px;
border-radius: 6px;
margin: 10px 0;
}
.container {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
height: 100vh;
width: 100%;
-webkit-transition: -webkit-transform .5s;
transition: -webkit-transform .5s;
transition: transform .5s;
transition: transform .5s, -webkit-transform .5s;
}
.stack-container {
position: relative;
width: 420px;
height: 210px;
-webkit-transition: width 1s, height 1s;
transition: width 1s, height 1s;
}
.pokeup {
-webkit-transition: all .3s ease;
transition: all .3s ease;
}
.pokeup:hover {
-webkit-transform: translateY(-10px);
transform: translateY(-10px);
-webkit-transition: .3s ease;
transition: .3s ease;
}
.error {
width: 400px;
padding: 40px;
text-align: center;
}
.error h1 {
font-size: 125px;
padding: 0;
margin: 0;
font-weight: 700;
}
.error h2 {
margin: -30px 0 0 0;
padding: 0px;
font-size: 47px;
letter-spacing: 12px;
}
.perspec {
-webkit-perspective: 1000px;
perspective: 1000px;
}
.writeLine{
-webkit-animation: writeLine .4s linear forwards;
animation: writeLine .4s linear forwards;
}
.explode{
-webkit-animation: explode .5s ease-in-out forwards;
animation: explode .5s ease-in-out forwards;
}
.card {
-webkit-animation: tiltcard .5s ease-in-out 1s forwards;
animation: tiltcard .5s ease-in-out 1s forwards;
position: absolute;
}
@-webkit-keyframes tiltcard {
0% {
-webkit-transform: rotateY(0deg);
transform: rotateY(0deg);
}
100% {
-webkit-transform: rotateY(-30deg);
transform: rotateY(-30deg);
}
}
@keyframes tiltcard {
0% {
-webkit-transform: rotateY(0deg);
transform: rotateY(0deg);
}
100% {
-webkit-transform: rotateY(-30deg);
transform: rotateY(-30deg);
}
}
@-webkit-keyframes explode {
0% {
-webkit-transform: translate(0, 0) scale(1);
transform: translate(0, 0) scale(1);
}
100% {
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
}
}
@keyframes explode {
0% {
-webkit-transform: translate(0, 0) scale(1);
transform: translate(0, 0) scale(1);
}
100% {
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
}
}
@-webkit-keyframes writeLine {
0% {
width:0;
}
100% {
width: var(--linelength);
}
}
@keyframes writeLine {
0% {
width:0;
}
100% {
width: var(--linelength);
}
}
@media screen and (max-width: 1000px) {
.container {
-webkit-transform: scale(.85);
transform: scale(.85);
}
}
@media screen and (max-width: 850px) {
.container {
-webkit-transform: scale(.75);
transform: scale(.75);
}
}
@media screen and (max-width: 775px) {
.container {
-ms-flex-wrap: wrap-reverse;
flex-wrap: wrap-reverse;
-webkit-box-align: inherit;
-ms-flex-align: inherit;
align-items: inherit;
}
}
@media screen and (max-width: 370px) {
.container {
-webkit-transform: scale(.6);
transform: scale(.6);
}
}
</style>
</head>
<body>
<div class="container">
<div class="error">
<h1>403</h1>
<h2>error</h2>
<p>Keine Berechtigung</p>
<p>&nbsp;</p>
<a onclick="history.go(0)" style="border: 0px; background-color: rgb(59, 0, 253); border-radius: 5px; padding: 9px; padding-left: 85px; padding-right: 85px; color: white; cursor: pointer;">Neuladen</a><br/><br/>
<a onclick="window.location='/'" style="border: 0px; background-color: #bfc0c2; border-radius: 5px; padding: 9px; padding-left: 72px; padding-right: 71px; color: black; cursor: pointer;">Zur Startseite</a>
</div>
<div class="stack-container">
<div class="card-container">
<div class="perspec" style="--spreaddist: 125px; --scaledist: .75; --vertdist: -25px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 100px; --scaledist: .8; --vertdist: -20px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist:75px; --scaledist: .85; --vertdist: -15px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 50px; --scaledist: .9; --vertdist: -10px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 25px; --scaledist: .95; --vertdist: -5px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 0px; --scaledist: 1; --vertdist: 0px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
const stackContainer = document.querySelector('.stack-container');
const cardNodes = document.querySelectorAll('.card-container');
const perspecNodes = document.querySelectorAll('.perspec');
const perspec = document.querySelector('.perspec');
const card = document.querySelector('.card');
let counter = stackContainer.children.length;
//function to generate random number
function randomIntFromInterval(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
//after tilt animation, fire the explode animation
card.addEventListener('animationend', function () {
perspecNodes.forEach(function (elem, index) {
elem.classList.add('explode');
});
});
//after explode animation do a bunch of stuff
perspec.addEventListener('animationend', function (e) {
if (e.animationName === 'explode') {
cardNodes.forEach(function (elem, index) {
//add hover animation class
elem.classList.add('pokeup');
//add event listner to throw card on click
elem.addEventListener('click', function () {
let updown = [800, -800]
let randomY = updown[Math.floor(Math.random() * updown.length)];
let randomX = Math.floor(Math.random() * 1000) - 1000;
elem.style.transform = `translate(${randomX}px, ${randomY}px) rotate(-540deg)`
elem.style.transition = "transform 1s ease, opacity 2s";
elem.style.opacity = "0";
counter--;
if (counter === 0) {
stackContainer.style.width = "0";
stackContainer.style.height = "0";
}
});
//generate random number of lines of code between 4 and 10 and add to each card
let numLines = randomIntFromInterval(5, 10);
//loop through the lines and add them to the DOM
for (let index = 0; index < numLines; index++) {
let lineLength = randomIntFromInterval(25, 97);
var node = document.createElement("li");
node.classList.add('node-' + index);
elem.querySelector('.code ul').appendChild(node).setAttribute('style', '--linelength: ' + lineLength + '%;');
//draw lines of code 1 by 1
if (index == 0) {
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
} else {
elem.querySelector('.code ul .node-' + (index - 1)).addEventListener('animationend', function (e) {
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
});
}
}
});
}
});
</script>
</body>
+434
View File
@@ -0,0 +1,434 @@
<head>
<title>Seite Nicht Gefunden | MFGames.de</title>
<style>
body {
color: white;
/*background-color: #252525;*/
}
html {
background-color: #181a1b !important;
}
body,
html {
padding: 0;
margin: 0;
font-family: 'Quicksand', sans-serif;
font-weight: 400;
overflow: hidden;
}
.writing {
width: 320px;
height: 200px;
background-color: rgb(47, 51, 53);
border: 1px solid rgb(129, 120, 106);
border-radius: 6px 6px 4px 4px;
position: relative;
}
.writing .topbar{
position: absolute;
width: 100%;
height: 12px;
background-color: #050505;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.writing .topbar div{
height: 6px;
width: 6px;
border-radius: 50%;
margin: 3px;
float: left;
}
.writing .topbar div.green{
background-color: #60d060;
}
.writing .topbar div.red{
background-color: red;
}
.writing .topbar div.yellow{
background-color: #e6c015;
}
.writing .code {
padding: 15px;
}
.writing .code ul {
list-style: none;
margin: 0;
padding: 0;
}
.writing .code ul li {
background-color: rgb(79, 85, 89);
width: 0;
height: 7px;
border-radius: 6px;
margin: 10px 0;
}
.container {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
height: 100vh;
width: 100%;
-webkit-transition: -webkit-transform .5s;
transition: -webkit-transform .5s;
transition: transform .5s;
transition: transform .5s, -webkit-transform .5s;
}
.stack-container {
position: relative;
width: 420px;
height: 210px;
-webkit-transition: width 1s, height 1s;
transition: width 1s, height 1s;
}
.pokeup {
-webkit-transition: all .3s ease;
transition: all .3s ease;
}
.pokeup:hover {
-webkit-transform: translateY(-10px);
transform: translateY(-10px);
-webkit-transition: .3s ease;
transition: .3s ease;
}
.error {
width: 400px;
padding: 40px;
text-align: center;
}
.error h1 {
font-size: 125px;
padding: 0;
margin: 0;
font-weight: 700;
}
.error h2 {
margin: -30px 0 0 0;
padding: 0px;
font-size: 47px;
letter-spacing: 12px;
}
.perspec {
-webkit-perspective: 1000px;
perspective: 1000px;
}
.writeLine{
-webkit-animation: writeLine .4s linear forwards;
animation: writeLine .4s linear forwards;
}
.explode{
-webkit-animation: explode .5s ease-in-out forwards;
animation: explode .5s ease-in-out forwards;
}
.card {
-webkit-animation: tiltcard .5s ease-in-out 1s forwards;
animation: tiltcard .5s ease-in-out 1s forwards;
position: absolute;
}
@-webkit-keyframes tiltcard {
0% {
-webkit-transform: rotateY(0deg);
transform: rotateY(0deg);
}
100% {
-webkit-transform: rotateY(-30deg);
transform: rotateY(-30deg);
}
}
@keyframes tiltcard {
0% {
-webkit-transform: rotateY(0deg);
transform: rotateY(0deg);
}
100% {
-webkit-transform: rotateY(-30deg);
transform: rotateY(-30deg);
}
}
@-webkit-keyframes explode {
0% {
-webkit-transform: translate(0, 0) scale(1);
transform: translate(0, 0) scale(1);
}
100% {
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
}
}
@keyframes explode {
0% {
-webkit-transform: translate(0, 0) scale(1);
transform: translate(0, 0) scale(1);
}
100% {
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
}
}
@-webkit-keyframes writeLine {
0% {
width:0;
}
100% {
width: var(--linelength);
}
}
@keyframes writeLine {
0% {
width:0;
}
100% {
width: var(--linelength);
}
}
@media screen and (max-width: 1000px) {
.container {
-webkit-transform: scale(.85);
transform: scale(.85);
}
}
@media screen and (max-width: 850px) {
.container {
-webkit-transform: scale(.75);
transform: scale(.75);
}
}
@media screen and (max-width: 775px) {
.container {
-ms-flex-wrap: wrap-reverse;
flex-wrap: wrap-reverse;
-webkit-box-align: inherit;
-ms-flex-align: inherit;
align-items: inherit;
}
}
@media screen and (max-width: 370px) {
.container {
-webkit-transform: scale(.6);
transform: scale(.6);
}
}
</style>
</head>
<body>
<div class="container">
<div class="error">
<h1>404</h1>
<h2>error</h2>
<p>Seite wurde nicht gefunden.</p>
<p>&nbsp;</p>
<a onclick="history.go(0)" style="border: 0px; background-color: #454a4d; border-radius: 5px; padding: 9px; padding-left: 85px; padding-right: 85px; color: white; cursor: pointer; margin-bottom: 10px;">Neuladen</a><br/><br/>
<a onclick="window.location='/'" style="border: 0px;background-color: #313537;border-radius: 5px;padding: 9px;padding-left: 72px;padding-right: 71px;color: white;cursor: pointer;">Zur Startseite</a>
</div>
<div class="stack-container">
<div class="card-container">
<div class="perspec" style="--spreaddist: 125px; --scaledist: .75; --vertdist: -25px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 100px; --scaledist: .8; --vertdist: -20px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist:75px; --scaledist: .85; --vertdist: -15px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 50px; --scaledist: .9; --vertdist: -10px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 25px; --scaledist: .95; --vertdist: -5px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 0px; --scaledist: 1; --vertdist: 0px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
const stackContainer = document.querySelector('.stack-container');
const cardNodes = document.querySelectorAll('.card-container');
const perspecNodes = document.querySelectorAll('.perspec');
const perspec = document.querySelector('.perspec');
const card = document.querySelector('.card');
let counter = stackContainer.children.length;
function randomIntFromInterval(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
card.addEventListener('animationend', function () {
perspecNodes.forEach(function (elem, index) {
elem.classList.add('explode');
});
});
perspec.addEventListener('animationend', function (e) {
if (e.animationName === 'explode') {
cardNodes.forEach(function (elem, index) {
elem.classList.add('pokeup');
elem.addEventListener('click', function () {
let updown = [800, -800]
let randomY = updown[Math.floor(Math.random() * updown.length)];
let randomX = Math.floor(Math.random() * 1000) - 1000;
elem.style.transform = `translate(${randomX}px, ${randomY}px) rotate(-540deg)`
elem.style.transition = "transform 1s ease, opacity 2s";
elem.style.opacity = "0";
counter--;
if (counter === 0) {
stackContainer.style.width = "0";
stackContainer.style.height = "0";
}
});
let numLines = randomIntFromInterval(5, 10);
for (let index = 0; index < numLines; index++) {
let lineLength = randomIntFromInterval(25, 97);
var node = document.createElement("li");
node.classList.add('node-' + index);
elem.querySelector('.code ul').appendChild(node).setAttribute('style', '--linelength: ' + lineLength + '%;');
//draw lines of code 1 by 1
if (index == 0) {
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
} else {
elem.querySelector('.code ul .node-' + (index - 1)).addEventListener('animationend', function (e) {
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
});
}
}
});
}
});
</script>
</body>
+432
View File
@@ -0,0 +1,432 @@
<head>
<style>
body,
html {
padding: 0;
margin: 0;
font-family: 'Quicksand', sans-serif;
font-weight: 400;
overflow: hidden;
}
.writing {
width: 320px;
height: 200px;
background-color: #3f3f3f;
border: 1px solid #bbbbbb;
border-radius: 6px 6px 4px 4px;
position: relative;
}
.writing .topbar{
position: absolute;
width: 100%;
height: 12px;
background-color: #f1f1f1;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.writing .topbar div{
height: 6px;
width: 6px;
border-radius: 50%;
margin: 3px;
float: left;
}
.writing .topbar div.green{
background-color: #60d060;
}
.writing .topbar div.red{
background-color: red;
}
.writing .topbar div.yellow{
background-color: #e6c015;
}
.writing .code {
padding: 15px;
}
.writing .code ul {
list-style: none;
margin: 0;
padding: 0;
}
.writing .code ul li {
background-color: #9e9e9e;
width: 0;
height: 7px;
border-radius: 6px;
margin: 10px 0;
}
.container {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
height: 100vh;
width: 100%;
-webkit-transition: -webkit-transform .5s;
transition: -webkit-transform .5s;
transition: transform .5s;
transition: transform .5s, -webkit-transform .5s;
}
.stack-container {
position: relative;
width: 420px;
height: 210px;
-webkit-transition: width 1s, height 1s;
transition: width 1s, height 1s;
}
.pokeup {
-webkit-transition: all .3s ease;
transition: all .3s ease;
}
.pokeup:hover {
-webkit-transform: translateY(-10px);
transform: translateY(-10px);
-webkit-transition: .3s ease;
transition: .3s ease;
}
.error {
width: 400px;
padding: 40px;
text-align: center;
}
.error h1 {
font-size: 125px;
padding: 0;
margin: 0;
font-weight: 700;
}
.error h2 {
margin: -30px 0 0 0;
padding: 0px;
font-size: 47px;
letter-spacing: 12px;
}
.perspec {
-webkit-perspective: 1000px;
perspective: 1000px;
}
.writeLine{
-webkit-animation: writeLine .4s linear forwards;
animation: writeLine .4s linear forwards;
}
.explode{
-webkit-animation: explode .5s ease-in-out forwards;
animation: explode .5s ease-in-out forwards;
}
.card {
-webkit-animation: tiltcard .5s ease-in-out 1s forwards;
animation: tiltcard .5s ease-in-out 1s forwards;
position: absolute;
}
@-webkit-keyframes tiltcard {
0% {
-webkit-transform: rotateY(0deg);
transform: rotateY(0deg);
}
100% {
-webkit-transform: rotateY(-30deg);
transform: rotateY(-30deg);
}
}
@keyframes tiltcard {
0% {
-webkit-transform: rotateY(0deg);
transform: rotateY(0deg);
}
100% {
-webkit-transform: rotateY(-30deg);
transform: rotateY(-30deg);
}
}
@-webkit-keyframes explode {
0% {
-webkit-transform: translate(0, 0) scale(1);
transform: translate(0, 0) scale(1);
}
100% {
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
}
}
@keyframes explode {
0% {
-webkit-transform: translate(0, 0) scale(1);
transform: translate(0, 0) scale(1);
}
100% {
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
}
}
@-webkit-keyframes writeLine {
0% {
width:0;
}
100% {
width: var(--linelength);
}
}
@keyframes writeLine {
0% {
width:0;
}
100% {
width: var(--linelength);
}
}
@media screen and (max-width: 1000px) {
.container {
-webkit-transform: scale(.85);
transform: scale(.85);
}
}
@media screen and (max-width: 850px) {
.container {
-webkit-transform: scale(.75);
transform: scale(.75);
}
}
@media screen and (max-width: 775px) {
.container {
-ms-flex-wrap: wrap-reverse;
flex-wrap: wrap-reverse;
-webkit-box-align: inherit;
-ms-flex-align: inherit;
align-items: inherit;
}
}
@media screen and (max-width: 370px) {
.container {
-webkit-transform: scale(.6);
transform: scale(.6);
}
}
</style>
</head>
<body>
<div class="container">
<div class="error">
<h1>405</h1>
<h2>error</h2>
<p>Methode nicht erlaubt</p>
<p>&nbsp;</p>
<a onclick="history.go(0)" style="border: 0px; background-color: rgb(59, 0, 253); border-radius: 5px; padding: 9px; padding-left: 85px; padding-right: 85px; color: white; cursor: pointer;">Neuladen</a><br/><br/>
<a onclick="window.location='/'" style="border: 0px; background-color: #bfc0c2; border-radius: 5px; padding: 9px; padding-left: 72px; padding-right: 71px; color: black; cursor: pointer;">Zur Startseite</a>
</div>
<div class="stack-container">
<div class="card-container">
<div class="perspec" style="--spreaddist: 125px; --scaledist: .75; --vertdist: -25px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 100px; --scaledist: .8; --vertdist: -20px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist:75px; --scaledist: .85; --vertdist: -15px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 50px; --scaledist: .9; --vertdist: -10px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 25px; --scaledist: .95; --vertdist: -5px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 0px; --scaledist: 1; --vertdist: 0px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
const stackContainer = document.querySelector('.stack-container');
const cardNodes = document.querySelectorAll('.card-container');
const perspecNodes = document.querySelectorAll('.perspec');
const perspec = document.querySelector('.perspec');
const card = document.querySelector('.card');
let counter = stackContainer.children.length;
//function to generate random number
function randomIntFromInterval(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
//after tilt animation, fire the explode animation
card.addEventListener('animationend', function () {
perspecNodes.forEach(function (elem, index) {
elem.classList.add('explode');
});
});
//after explode animation do a bunch of stuff
perspec.addEventListener('animationend', function (e) {
if (e.animationName === 'explode') {
cardNodes.forEach(function (elem, index) {
//add hover animation class
elem.classList.add('pokeup');
//add event listner to throw card on click
elem.addEventListener('click', function () {
let updown = [800, -800]
let randomY = updown[Math.floor(Math.random() * updown.length)];
let randomX = Math.floor(Math.random() * 1000) - 1000;
elem.style.transform = `translate(${randomX}px, ${randomY}px) rotate(-540deg)`
elem.style.transition = "transform 1s ease, opacity 2s";
elem.style.opacity = "0";
counter--;
if (counter === 0) {
stackContainer.style.width = "0";
stackContainer.style.height = "0";
}
});
//generate random number of lines of code between 4 and 10 and add to each card
let numLines = randomIntFromInterval(5, 10);
//loop through the lines and add them to the DOM
for (let index = 0; index < numLines; index++) {
let lineLength = randomIntFromInterval(25, 97);
var node = document.createElement("li");
node.classList.add('node-' + index);
elem.querySelector('.code ul').appendChild(node).setAttribute('style', '--linelength: ' + lineLength + '%;');
//draw lines of code 1 by 1
if (index == 0) {
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
} else {
elem.querySelector('.code ul .node-' + (index - 1)).addEventListener('animationend', function (e) {
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
});
}
}
});
}
});
</script>
</body>
+432
View File
@@ -0,0 +1,432 @@
<head>
<style>
body,
html {
padding: 0;
margin: 0;
font-family: 'Quicksand', sans-serif;
font-weight: 400;
overflow: hidden;
}
.writing {
width: 320px;
height: 200px;
background-color: #3f3f3f;
border: 1px solid #bbbbbb;
border-radius: 6px 6px 4px 4px;
position: relative;
}
.writing .topbar{
position: absolute;
width: 100%;
height: 12px;
background-color: #f1f1f1;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.writing .topbar div{
height: 6px;
width: 6px;
border-radius: 50%;
margin: 3px;
float: left;
}
.writing .topbar div.green{
background-color: #60d060;
}
.writing .topbar div.red{
background-color: red;
}
.writing .topbar div.yellow{
background-color: #e6c015;
}
.writing .code {
padding: 15px;
}
.writing .code ul {
list-style: none;
margin: 0;
padding: 0;
}
.writing .code ul li {
background-color: #9e9e9e;
width: 0;
height: 7px;
border-radius: 6px;
margin: 10px 0;
}
.container {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
height: 100vh;
width: 100%;
-webkit-transition: -webkit-transform .5s;
transition: -webkit-transform .5s;
transition: transform .5s;
transition: transform .5s, -webkit-transform .5s;
}
.stack-container {
position: relative;
width: 420px;
height: 210px;
-webkit-transition: width 1s, height 1s;
transition: width 1s, height 1s;
}
.pokeup {
-webkit-transition: all .3s ease;
transition: all .3s ease;
}
.pokeup:hover {
-webkit-transform: translateY(-10px);
transform: translateY(-10px);
-webkit-transition: .3s ease;
transition: .3s ease;
}
.error {
width: 400px;
padding: 40px;
text-align: center;
}
.error h1 {
font-size: 125px;
padding: 0;
margin: 0;
font-weight: 700;
}
.error h2 {
margin: -30px 0 0 0;
padding: 0px;
font-size: 47px;
letter-spacing: 12px;
}
.perspec {
-webkit-perspective: 1000px;
perspective: 1000px;
}
.writeLine{
-webkit-animation: writeLine .4s linear forwards;
animation: writeLine .4s linear forwards;
}
.explode{
-webkit-animation: explode .5s ease-in-out forwards;
animation: explode .5s ease-in-out forwards;
}
.card {
-webkit-animation: tiltcard .5s ease-in-out 1s forwards;
animation: tiltcard .5s ease-in-out 1s forwards;
position: absolute;
}
@-webkit-keyframes tiltcard {
0% {
-webkit-transform: rotateY(0deg);
transform: rotateY(0deg);
}
100% {
-webkit-transform: rotateY(-30deg);
transform: rotateY(-30deg);
}
}
@keyframes tiltcard {
0% {
-webkit-transform: rotateY(0deg);
transform: rotateY(0deg);
}
100% {
-webkit-transform: rotateY(-30deg);
transform: rotateY(-30deg);
}
}
@-webkit-keyframes explode {
0% {
-webkit-transform: translate(0, 0) scale(1);
transform: translate(0, 0) scale(1);
}
100% {
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
}
}
@keyframes explode {
0% {
-webkit-transform: translate(0, 0) scale(1);
transform: translate(0, 0) scale(1);
}
100% {
-webkit-transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
transform: translate(var(--spreaddist), var(--vertdist)) scale(var(--scaledist));
}
}
@-webkit-keyframes writeLine {
0% {
width:0;
}
100% {
width: var(--linelength);
}
}
@keyframes writeLine {
0% {
width:0;
}
100% {
width: var(--linelength);
}
}
@media screen and (max-width: 1000px) {
.container {
-webkit-transform: scale(.85);
transform: scale(.85);
}
}
@media screen and (max-width: 850px) {
.container {
-webkit-transform: scale(.75);
transform: scale(.75);
}
}
@media screen and (max-width: 775px) {
.container {
-ms-flex-wrap: wrap-reverse;
flex-wrap: wrap-reverse;
-webkit-box-align: inherit;
-ms-flex-align: inherit;
align-items: inherit;
}
}
@media screen and (max-width: 370px) {
.container {
-webkit-transform: scale(.6);
transform: scale(.6);
}
}
</style>
</head>
<body>
<div class="container">
<div class="error">
<h1>500</h1>
<h2>error</h2>
<p>Server Arbeiten:</p>
<p>Wir arbeiten momentan an den Servern und beheben ein paar Probleme.</p>
<a onclick="history.go(0)" style="border: 0px; background-color: rgb(59, 0, 253); border-radius: 5px; padding: 9px; padding-left: 85px; padding-right: 85px; color: white; cursor: pointer;">Neuladen</a><br/><br/>
<a onclick="window.location='/'" style="border: 0px; background-color: #bfc0c2; border-radius: 5px; padding: 9px; padding-left: 72px; padding-right: 71px; color: black; cursor: pointer;">Zur Startseite</a>
</div>
<div class="stack-container">
<div class="card-container">
<div class="perspec" style="--spreaddist: 125px; --scaledist: .75; --vertdist: -25px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 100px; --scaledist: .8; --vertdist: -20px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist:75px; --scaledist: .85; --vertdist: -15px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 50px; --scaledist: .9; --vertdist: -10px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 25px; --scaledist: .95; --vertdist: -5px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="card-container">
<div class="perspec" style="--spreaddist: 0px; --scaledist: 1; --vertdist: 0px;">
<div class="card">
<div class="writing">
<div class="topbar">
<div class="red"></div>
<div class="yellow"></div>
<div class="green"></div>
</div>
<div class="code">
<ul>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
const stackContainer = document.querySelector('.stack-container');
const cardNodes = document.querySelectorAll('.card-container');
const perspecNodes = document.querySelectorAll('.perspec');
const perspec = document.querySelector('.perspec');
const card = document.querySelector('.card');
let counter = stackContainer.children.length;
//function to generate random number
function randomIntFromInterval(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
//after tilt animation, fire the explode animation
card.addEventListener('animationend', function () {
perspecNodes.forEach(function (elem, index) {
elem.classList.add('explode');
});
});
//after explode animation do a bunch of stuff
perspec.addEventListener('animationend', function (e) {
if (e.animationName === 'explode') {
cardNodes.forEach(function (elem, index) {
//add hover animation class
elem.classList.add('pokeup');
//add event listner to throw card on click
elem.addEventListener('click', function () {
let updown = [800, -800]
let randomY = updown[Math.floor(Math.random() * updown.length)];
let randomX = Math.floor(Math.random() * 1000) - 1000;
elem.style.transform = `translate(${randomX}px, ${randomY}px) rotate(-540deg)`
elem.style.transition = "transform 1s ease, opacity 2s";
elem.style.opacity = "0";
counter--;
if (counter === 0) {
stackContainer.style.width = "0";
stackContainer.style.height = "0";
}
});
//generate random number of lines of code between 4 and 10 and add to each card
let numLines = randomIntFromInterval(5, 10);
//loop through the lines and add them to the DOM
for (let index = 0; index < numLines; index++) {
let lineLength = randomIntFromInterval(25, 97);
var node = document.createElement("li");
node.classList.add('node-' + index);
elem.querySelector('.code ul').appendChild(node).setAttribute('style', '--linelength: ' + lineLength + '%;');
//draw lines of code 1 by 1
if (index == 0) {
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
} else {
elem.querySelector('.code ul .node-' + (index - 1)).addEventListener('animationend', function (e) {
elem.querySelector('.code ul .node-' + index).classList.add('writeLine');
});
}
}
});
}
});
</script>
</body>
+47
View File
@@ -0,0 +1,47 @@
<?php
require_once("lib.php");
$mflib = new MFLib();
$mflib->limitperpage = 15;
$mflib->setCookie();
session_start();
$mflib->initialize();
if (isset($_SESSION["uuid"]) && $_SESSION["uuid"] != "") {
if ($mflib->dataGetWishlist() != null) {
echo "
<tr>
<th>Item Name</th>
<th>Price</th>
<th>Creator</th>
<th>Rating</th>
<th>Edit</th>
</tr>";
foreach ($mflib->dataGetWishlist() as $row) {
if (strlen($row["name"]) >= 40) {
$NAME = substr(substr($row["name"], 0, 40), 0, strrpos(substr($row["name"], 0, 40), ' ')) . " ...";
} else $NAME = $row["name"];
if (!isset($row["rating"])) {
$row["rating"] = "None";
}
echo "
<tr>
<td alt=\"" . $row["name"] . "\"><a href=\"" . $row["url_link"] . "\">" . $NAME . "</td>
<td>" . $row["currency"] . "" . str_replace(".00", "", sprintf ("%.2f", $row["price"])) . "</td>
<td>" . $row["creator"] . "</td>
<td>" . $row["rating"] . "</td>
<td><a class=\"deletebutton\" id=\"del\" itemid=\"" . $row["id"] . "\">Delete</a></td>
</tr>";
}
} else {
echo "<table id=\"wishlist\"><p>You have nothing currently in your Wishlist</p></table>";
}
}
?>
+16
View File
@@ -0,0 +1,16 @@
<?php
require_once("lib.php");
$mflib = new MFLib();
$mflib->limitperpage = 15;
$mflib->setCookie();
session_start();
$mflib->initialize();
$wishlistArray = $mflib->dataGetWishlist();
print_r(json_encode($wishlistArray));
?>
+77
View File
@@ -0,0 +1,77 @@
<?php
class getGumroadData {
public $jsonData;
//public $jsonOBJ;
public $setURL;
function load($url) {
if (str_contains($url, '.gumroad.com/')) {
$string = file_get_contents($url);
$dom = new DomDocument();
$dom->loadHTML($string);
$finder = new DomXPath($dom);
$this->jsonData = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProductPage ')]")[0]->textContent;
} elseif (str_contains($url, 'booth.pm/')) {
$string = file_get_contents($url);
$dom = new DomDocument();
$dom->loadHTML($string);
$finder = new DomXPath($dom);
$tmp = $finder->query("//*[contains(concat(' ', normalize-space(@type), ' '), ' application/ld+json ')]")[0]->textContent;
$tmp = json_decode($tmp);
$boothArray = array('product' => array('name' => $tmp->name,
'description_html' => str_replace("\n", "<br>", $tmp->description) . "<br><br><br><br>",
'long_url' => $tmp->url,
'price_cents' => str_replace("¥ ", "", str_replace(",", "", $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' variation-price u-text-right ')]")[0]->textContent)) * 100,
'currency_code' => $tmp->offers->priceCurrency,
'rating_counts' => array(0,0,0,0,0),
'covers' => array(
array('url' => $tmp->image, 'filetype' => "png", 'type' => "image"),
array('url' => $tmp->image, 'filetype' => "png", 'type' => "image")
),
'seller' => array(
'name' => $finder->query("//*[contains(concat(' ', normalize-space(@data-product-list), ' '), ' from market_show via market_item_detail to shop_index ')]")[0]->textContent,
'avatar_url' => str_replace("48x48", "128x128", $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' h-[24px] rounded-oval w-[24px] ')]")[0]->attributes[2]->value)
)
));
$this->jsonData = json_encode($boothArray);
//echo $tmp;
}
}
function getURL($id) {
$servername = "localhost";
$username = "database_access";
$password = "DataAccess1.";
$dbname = "avali_shop";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM content WHERE id=\"" . $id . "\"";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$this->setURL = str_replace("?layout=profile","", $row["url_link"]);
}
}
$thisGumroad = new getGumroadData();
$thisGumroad->getURL($_POST["id"]);
//$thisGumroad->getURL("173");
$thisGumroad->load($thisGumroad->setURL);
print_r($thisGumroad->jsonData);
+80
View File
@@ -0,0 +1,80 @@
<?php
require_once("lib.php");
$mflib = new MFLib();
require_once("elements.php");
$mfelements = new MFElements();
$mflib->initializeDB();
$mflib->limitperpage = 15;
$_GET["p"] = $_POST["p"];
foreach ($mflib->dataGetPageContent() as $row) {
$tmp .= "<div class=\"column\">";
if (isset($_SESSION["nsfwblur"]) && $_SESSION["nsfwblur"] == true) {
if (isset($row["nsfw"]) && $row["nsfw"] == 1)
$tmp .= "
<div class=\"nsfw-filter\">
<a class=\"txt\">NSFW Content</a></br></br>
<a class=\"btn\">Click to Show</a>
</div>
";
}
if (strlen($row["name"]) >= 40) {
$NAME = substr(substr($row["name"], 0, 40), 0, strrpos(substr($row["name"], 0, 40), ' ')) . " ...";
} else $NAME = $row["name"];
$tmp .= "
<a href='" . $row["url_link"] . "' class=\"imagecontainer\">
<img class=\"imgItem\" src=\"" . $row["url_image"] . "\">
";
if (!$mflib->isItMobile)
$tmp .= "
<a href=\"#p" . $row["id"] . "\" class=\"previewButton\">Preview</a>
";
if (isset($_SESSION["uuid"]) && $_SESSION["uuid"] != null) {
$liked = false;
foreach ($wishlistArray as $k) {
if ($row["id"] == $k["id"]) {
$liked = true;
}
}
if ($liked) {
$tmp .= "<a class=\"likeButton\" itemid=\"" . $row["id"] . "\"><icon>favorite</icon></a>";
} else {
$tmp .= "<a class=\"likeButton\" itemid=\"" . $row["id"] . "\"><icon>favorite_border</icon></a>";
}
}
if (!isset($row["rating"])) {
$row["rating"] = "None";
}
$tmp .= "
</a>
<header>
<a title=\"" . $row["name"] . "\">" . $NAME . "</a>
<a style=\"text-decoration: underline;z-index: 90;\" href=\"?s=" . $row["creator"] . "\">" . $row["creator"] . "</a>
<a>⭐" . $row["rating"] . "</a>
</header>
<footer>
";
//print_r($row);
$tmp .= "
<a>" . $row["currency"] . "" . str_replace(".00", "", sprintf ("%.2f", $row["price"])) . "</a>
</footer>
</div>
";
}
echo $tmp;
+20
View File
@@ -0,0 +1,20 @@
{
"folders": [
{
"path": "/var/www/html"
},
{
"path": "/var/www/dev.siskeldev"
},
{
"path": "../nerdnation"
},
{
"path": "../devilpatt"
},
{
"path": "../../../home/siskeldev"
}
],
"settings": {}
}
+127
View File
@@ -0,0 +1,127 @@
<?php
$maintenance = false;
//$_GET["sort"] = "free";
//$_GET["t"] = "davali";
$o = "";
require_once("lib.php");
$mflib = new MFLib();
require_once("elements.php");
$mfelements = new MFElements();
$actual_link = $mflib->getLink();
$mflib->limitperpage = 15;
$mflib->setCookie();
session_start();
$mflib->initialize();
$wishlistArray = $mflib->dataGetWishlist();
if (!isset($_GET["p"])) $_GET["p"] = 1;
$o .= "<html>";
$o .= $mfelements->printHead($wishlistArray);
$o .= "<body id=\"body\">";
$o .= $mfelements->printSiteHeader();
$o .= '
<div class="row-main">
<div class="column-main col1" onclick="window.location = \'/avatar-assets\'">
<a href="/avatar-assets/">Avatar Assets</a>
</div>
<div class="column-main col2" onclick="window.location = \'/avatar-bases\'">
<a href="/avatar-bases/">Avatar Bases</a>
</div>
<div class="column-main col3" onclick="window.location = \'/avatars\'">
<a href="/avatars/">Prebuild Avatars</a>
</div>
<div class="column-main col4" onclick="window.location = \'/worlds\'">
<a href="/worlds/">Worlds</a>
</div>
</div>';
$o .= $mfelements->printNSFWpromt($actual_link);
$o .= $mfelements->printJSLoginVar();
$o .= $mfelements->printScriptSources();
$o .= "</body></html>";
if ($maintenance) {
echo "";
} else {
echo $o;
die();
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Maintenance - MFGames.net</title>
<style>
@font-face{
font-family: orifont;
src: url(https://mfgames.net/assets/fonts/LEVIBRUSH.TTF);
}
@font-face{
font-family: rubik;
src: url(https://mfgames.net/assets/fonts/Rubik-VariableFont_wght.ttf);
}
head, body {
height: 100%;
margin: 0px;
background-color: #121212 !important;
}
div {
}
h2 {
font-family: orifont;
color: #ffffff;
font-size: 50pt;
}
p {
font-family: orifont;
color: #aaa;
font-size: 30pt;
}
.centered{
position:absolute;
text-align: center;
width:500px;
height:300px;
left:50%;
top:50%;
margin-left:-250px;
margin-top:-150px;
}
</style>
</head>
<body>
<div class="centered">
<h2>MFGames.net</h2>
<p>Currently Under Construction</p>
</div>
</body>
</html>
+465
View File
@@ -0,0 +1,465 @@
<?php
// Wenn Filter -> Filter löschen button
class MFLib {
// Public Variables to be accessed though Class Initialisation in Variable
public $searchQuery = ""; // string: What has been searched; Public Access
public $limitperpage = 15; // int: Default -> 15; Can be overridden
public $current_species; // string: Current Filtered Species (Get Through Database);
public $current_speciesShort; // string: Shorted version of current Filtered Species (Get Through Database); Public Access
public $currentSection = 0;
public $isItMobile = true;
// Private Variables for Class only
private $dbConn; // object: Database Object to interact with while Class is Accessed through function; not for Public access
private $limitbegin; // string: Will be set through current pagenumber; Database knows through this where to start the current Search; no for Public access
private $nsfwfilter;
private $nsfwfilter2;
private $totalpages;
private $lastpage;
private $ifsearch; // string: While a SearchQuery is present it will contain a specific part for the Redirection URL at Footer Page Navigation; not for Public access
private $query_over_species;
private $PageContent;
// Main Functions
function initialize() {
$this->initializeDB();
$this->isMobile();
$this->setCookie();
$this->doNSFW($this->getLink(), $this->getSection());
$this->doNSFWBlur($this->getLink());
$this->doSearch();
$this->doLastPage();
$this->setBeginn();
$this->setCurrentSpecies();
$this->setCurrentTotalPages();
$this->setErrorHandlerFunc();
}
function getSection() {
$section = 0;
if (str_contains($_SERVER['REQUEST_URI'], 'avatar-bases')) {
$section = 3;
} else if (str_contains($_SERVER['REQUEST_URI'], 'avatar-assets')) {
$section = 1;
} else if (str_contains($_SERVER['REQUEST_URI'], 'avatars')) {
$section = 2;
} else if (str_contains($_SERVER['REQUEST_URI'], 'worlds')) {
$section = 4;
}
$this->currentSection = $section;
return $section;
}
function getLink() {
return (empty($_SERVER['HTTPS']) ? 'http' : 'https') . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
}
function isMobile() {
$useragent = $_SERVER['HTTP_USER_AGENT'];
if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',$useragent)) {
$this->isItMobile = true;
} else {
$this->isItMobile = false;
}
return $this->isItMobile;
}
// Override Section
function doNSFW($link, $section) {
if (isset($_GET["nsfw"])) {
if ($_GET["nsfw"] == "true") {
$_SESSION["nsfw"] = true;
$_SESSION["promtshown"] = true;
$_SESSION["nsfwblur"] = true;
$link = str_replace("&nsfw=true", "", str_replace("?nsfw=true&", "?", str_replace("?nsfw=true", "", $link)));
header("Location: " . $link);
die();
}
if ($_GET["nsfw"] == "false") {
$_SESSION["nsfw"] = false;
$_SESSION["promtshown"] = true;
$_SESSION["nsfwblur"] = true;
$link = str_replace("&nsfw=false", "", str_replace("?nsfw=false&", "?", str_replace("?nsfw=false", "", $link)));
header("Location: " . $link);
die();
}
}
if (isset($_SESSION["nsfw"]) && $_SESSION["nsfw"] == true) {
$this->nsfwfilter = "AND section=" . $section;
$this->nsfwfilter2 = "WHERE section=" . $section;
} else {
$this->nsfwfilter = "AND section=" . $section . " AND nsfw='0'";
$this->nsfwfilter2 = "WHERE section=" . $section . " AND nsfw='0'";
}
}
function doNSFWBlur($link) {
if (isset($_GET["nsfwblur"])) {
if ($_GET["nsfwblur"] == "true") {
$_SESSION["nsfwblur"] = true;
$link = str_replace("&nsfwblur=true", "", str_replace("?nsfwblur=true&", "?", str_replace("?nsfwblur=true", "", $link)));
header("Location: " . $link);
} else {
$_SESSION["nsfwblur"] = false;
$link = str_replace("&nsfwblur=false", "", str_replace("?nsfwblur=false&", "?", str_replace("?nsfwblur=false", "", $link)));
header("Location: " . $link);
}
}
}
function doSearch() {
if (isset($_GET["s"])) {
$this->searchQuery = str_replace("'", "\'", str_replace("`", "\`", str_replace('"', '\"', $_GET["s"])));
}
if (isset($_GET["s"])) {
$this->ifsearch = "&s=" . $_GET["s"];
} else $this->ifsearch = "";
}
function doLastPage() {
if (isset($_GET["p"])) {
$this->lastpage = $_GET["p"];
} else $this->lastpage = 1;
}
function setBeginn() {
if (isset($_GET["p"])) {
$this->limitbegin = ($_GET["p"] - 1) * $this->limitperpage;
} else {
$_GET["p"] = 1;
$this->limitbegin = 0;
}
}
function setCurrentSpecies() {
if (isset($_GET["t"])) {
$sql = "SELECT * FROM species WHERE `shorted`=\"" . $_GET["t"] . "\" ORDER BY id ASC";
$result = $this->dbConn->query($sql);
$current_type = $result->fetch_assoc();
if ($current_type["species"] == "( - Props - )") $current_type["species"] = "Props";
$this->current_species = $current_type["species"];
$this->current_speciesShort = $current_type["shorted"];
$this->current_species = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$this->current_species)));
}
}
function setCookie() {
$maxlifetime = 86400;
$secure = true;
$httponly = true;
$samesite = 'lax';
session_set_cookie_params([
'lifetime' => $maxlifetime,
'path' => '/',
'domain' => $_SERVER['HTTP_HOST'],
'secure' => $secure,
'httponly' => $httponly,
'samesite' => $samesite
]);
}
function setCurrentTotalPages() {
$SEARCH = $this->searchQuery;
if (isset($_GET["sort"]) && $_GET["sort"] == "free") {
$PRICE = "price=0";
} else {
$PRICE = "price IS NOT NULL";
}
// Setting the NSFW Filter for the Content
if (isset($_SESSION["nsfw"]) && $_SESSION["nsfw"] == true) {
$NSFW = "nsfw IS NOT NULL"; // Disable NSFW Filter
} else {
$NSFW = "nsfw=0"; // Enable NSFW Filter
}
$SECTION = "section=" . $this->currentSection;
if ($SEARCH != "") {
$NAME_SEARCH = "name LIKE '%" . $SEARCH . "%'";
$CREATOR_SEARCH = "creator LIKE '%" . $SEARCH . "%'";
$SPECIES_SEARCH = "species LIKE '%" . $SEARCH . "%'";
} else {
$NAME_SEARCH = "name IS NOT NULL";
$CREATOR_SEARCH = "creator IS NOT NULL";
$SPECIES_SEARCH = "species IS NOT NULL";
}
$sql = "SELECT count(*) as total from content WHERE
" . $PRICE . " AND " . $NAME_SEARCH . " AND " . $SECTION . " AND " . $NSFW . "
OR " . $PRICE . " AND " . $CREATOR_SEARCH . " AND " . $SECTION . " AND " . $NSFW . "
OR " . $PRICE . " AND " . $SPECIES_SEARCH . " AND " . $SECTION . " AND " . $NSFW . ";";
$this->totalpages = ceil($this->setQuery($sql)[0]['total'] / $this->limitperpage);
}
function setErrorHandlerFunc() {
// A user-defined error handler function
function myErrorHandler($errno, $errstr, $errfile, $errline) {
echo "<b>Custom error:</b> [$errno] $errstr<br>";
echo " Error on line $errline in $errfile<br>";
}
// Set user-defined error handler function
set_error_handler("myErrorHandler");
}
function getErrorPage($page) {
$htmlFile = file_get_contents("/var/www/error/" . $page . ".html");
return $htmlFile;
}
// Database Initialisation
function initializeDB() {
$servername = "localhost";
$username = "database_access";
$password = "DataAccess1.";
$dbname = "avali_shop";
try {
$this->dbConn = new mysqli($servername, $username, $password, $dbname);
$this->testDB();
} catch (Exception $e) {
echo $this->getErrorPage(500);
die();
}
}
function testDB() {
if ($this->dbConn->connect_error) {
die("Connection failed: " . $this->dbConn->connect_error);
}
}
function setQuery($sql) {
$query = $this->dbConn->query($sql);
$array = array();
if ($query->num_rows > 0) {
while ($row = $query->fetch_assoc()) {
$temparray = array();
foreach ($row as $element) {
$key = array_search ($element, $row);
$temparray = $temparray + array($key => $element);
}
array_push($array, $temparray);
}
}
return $array;
}
// Get Database Data
function dataGetOverSpecies() {
return $this->setQuery("SELECT * FROM over_species");
}
function dataGetOtherSpecies() {
return $this->setQuery("SELECT * FROM species WHERE a_tag=\"\"");
}
function dataGetSpecies($tag) {
return $this->setQuery("SELECT * FROM species WHERE a_tag=\"" . $tag . "\" ORDER BY species ASC");
}
function dataGetAllSpecies() {
return $this->setQuery("SELECT * FROM species");
}
function dataGetPageContent() {
$SEARCH = $this->searchQuery;
$LIMIT = "LIMIT " . $this->limitbegin . ", " . $this->limitperpage;
if (isset($_GET["sort"]) && $_GET["sort"] == "free") {
$PRICE = "price=0";
} else {
$PRICE = "price IS NOT NULL";
}
if (isset($_GET["sort"]) && $_GET["sort"] == "priceup") {
$ORDER = "ORDER BY price ASC"; // Sort by Lowest to Highes Price
} else if (isset($_GET["sort"]) && $_GET["sort"] == "pricedown") {
$ORDER = "ORDER BY price DESC"; // Sort by Highes to Lowest Price
} else {
$ORDER = "ORDER BY id DESC"; // Sort by Recently Added
}
// Setting the NSFW Filter for the Content
if (isset($_SESSION["nsfw"]) && $_SESSION["nsfw"] == true) {
$NSFW = "nsfw IS NOT NULL"; // Disable NSFW Filter
} else {
$NSFW = "nsfw=0"; // Enable NSFW Filter
}
$SECTION = "section=" . $this->currentSection;
if ($SEARCH != "") {
$NAME_SEARCH = "name LIKE '%" . $SEARCH . "%'";
$CREATOR_SEARCH = "creator LIKE '%" . $SEARCH . "%'";
$SPECIES_SEARCH = "species LIKE '%" . $SEARCH . "%'";
$SPECIES_TYPE = "";
} else {
$NAME_SEARCH = "name IS NOT NULL";
$CREATOR_SEARCH = "creator IS NOT NULL";
$SPECIES_SEARCH = "species IS NOT NULL";
$SPECIES_TYPE = "species";
}
if (isset($_GET["t"])) {
$TYPE = "AND species LIKE \"%" . $this->current_species . "%\"";
} else {
$TYPE = "";
}
$sql = "SELECT * from content WHERE
" . $PRICE . " AND " . $NAME_SEARCH . " AND " . $SECTION . " " . $TYPE . " AND " . $NSFW . "
OR " . $PRICE . " AND " . $CREATOR_SEARCH . " AND " . $SECTION . " " . $TYPE . " AND " . $NSFW . "
OR " . $PRICE . " AND " . $SPECIES_SEARCH . " AND " . $SECTION . " " . $TYPE . " AND " . $NSFW . "
" . $ORDER . " " . $LIMIT . ";";
$return = $this->setQuery($sql);
$this->PageContent = $return;
return $return;
}
function dataGetWishlist() {
if (isset($_SESSION["uuid"])) {
$wishArray = json_decode($this->setQuery("SELECT * FROM wishlist_uuid WHERE uuid=\"" . $_SESSION["uuid"] . "\"")[0]["array"]);
} else $wishArray = null;
$descWishArray = array();
$returnArray = array();
if ($wishArray != null) {
for($x = 0; $x < count($wishArray); $x++) {
$descWishArray[] = $wishArray[count($wishArray) - 1 - $x];
}
} else {
return null;
}
if ($descWishArray != null) {
foreach ($descWishArray as $wish) {
$returnArray[] = $this->setQuery("SELECT * FROM content WHERE id=\"" . $wish . "\"")[0];
}
}
return $returnArray;
}
// Print Footer
function footerBackArrow() {
$tmp = "";
$hrefbuilder = "?p=" . ($this->lastpage - 1);
if (isset($_GET["t"]) && $_GET["t"] != "") $hrefbuilder .= "&t=" . $this->current_speciesShort . "";
if (isset($_GET["s"]) && $_GET["s"] != "") $hrefbuilder .= "&s=" . $_GET["s"];
if (isset($_GET["sort"]) && $_GET["sort"] != "") $hrefbuilder .= "&sort=" . $_GET["sort"];
if (isset($_GET["p"]) && $this->lastpage != 1) {
$tmp = "<a href=\"" . $hrefbuilder . "\" class=\"previous round\">&#8249;</a>";
}
return $tmp;
}
function footerForwardArrow() {
$tmp = "";
$hrefbuilder = "?p=" . ($this->lastpage + 1);
if (isset($_GET["t"]) && $_GET["t"] != "") $hrefbuilder .= "&t=" . $this->current_speciesShort . "";
if (isset($_GET["s"]) && $_GET["s"] != "") $hrefbuilder .= "&s=" . $_GET["s"];
if (isset($_GET["sort"]) && $_GET["sort"] != "") $hrefbuilder .= "&sort=" . $_GET["sort"];
if ($this->lastpage != $this->totalpages && $this->totalpages != 0) {
$tmp = "<a href=\"" . $hrefbuilder . "\" class=\"previous round\">&#8250;</a>";
}
return $tmp;
}
function footerBackDots() {
$tmp = "";
$hrefbuilder = "?p=1";
if (isset($_GET["t"]) && $_GET["t"] != "") $hrefbuilder .= "&t=" . $this->current_speciesShort . "";
if (isset($_GET["s"]) && $_GET["s"] != "") $hrefbuilder .= "&s=" . $_GET["s"];
if (isset($_GET["sort"]) && $_GET["sort"] != "") $hrefbuilder .= "&sort=" . $_GET["sort"];
if (1 != $this->lastpage && 1 < $this->lastpage && 1 < $this->lastpage + 1 && 2 != $this->lastpage) {
$tmp = "<a href=\"" . $hrefbuilder . "\" class=\"previous round\">1</a>";
if (3 != $this->lastpage) {
$tmp = $tmp . "<a class=\"threedots-l\">…</a>";
}
}
return $tmp;
}
function footerForwardDots() {
$tmp = "";
$hrefbuilder = "?p=" . $this->totalpages;
if (isset($_GET["t"]) && $_GET["t"] != "") $hrefbuilder .= "&t=" . $this->current_speciesShort . "";
if (isset($_GET["s"]) && $_GET["s"] != "") $hrefbuilder .= "&s=" . $_GET["s"];
if (isset($_GET["sort"]) && $_GET["sort"] != "") $hrefbuilder .= "&sort=" . $_GET["sort"];
if ($this->totalpages != $this->lastpage && $this->totalpages > $this->lastpage && $this->totalpages > $this->lastpage + 1) {
if ($this->totalpages - 1 > $this->lastpage + 1) {
$tmp = $tmp . "<a class=\"threedots-l\">…</a>";
}
$tmp = $tmp . "<a href=\"" . $hrefbuilder . "\" class=\"previous round\">" . $this->totalpages . "</a>";
}
return $tmp;
}
function footerPages() {
$tmp = " ";
for ($x = 0; $x < $this->totalpages; $x++) {
if ($_GET["p"] == $x + 1) {
$temp = "style=\"color: white;\"";
} else {
$temp = "";
}
$hrefbuilder = "?p=" . ($x + 1);
if (isset($_GET["t"]) && $_GET["t"] != "") $hrefbuilder .= "&t=" . $this->current_speciesShort . "";
if (isset($_GET["s"]) && $_GET["s"] != "") $hrefbuilder .= "&s=" . $_GET["s"];
if (isset($_GET["sort"]) && $_GET["sort"] != "") $hrefbuilder .= "&sort=" . $_GET["sort"];
if ($x + 1 == $_GET["p"] - 1 || $x + 1 == $_GET["p"] || $x + 1 == $_GET["p"] + 1) {
$tmp = $tmp . "<a " . $temp . " href=\"" . $hrefbuilder . "\" class=\"previous round\">" . ($x + 1) . "</a>";
}
}
return $tmp;
}
}
+28
View File
@@ -0,0 +1,28 @@
aa
<?php
session_start();
$servername = "localhost";
$username = "database_access";
$password = "DataAccess1.";
$dbname = "avali_shop";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql_test = "SELECT * FROM wishlist_uuid WHERE uuid=\"" . $_POST["uuid"] . "\"";
$result_test = $conn->query($sql_test);
if ($result_test->num_rows > 0) {
$row = $result_test->fetch_assoc();
if ($row["uuid"] == (string)$_POST["uuid"]) {
$_SESSION["uuid"] = (string)$_POST["uuid"];
}
}
header("Location:javascript://history.go(-2);");
header("Location: https://mfgames.net/#acc");
?>
+11
View File
@@ -0,0 +1,11 @@
aa
<?php
session_start();
$_SESSION["uuid"] = null;
unset($_SESSION["uuid"]);
header("Location: https://mfgames.net/");
?>
+64
View File
@@ -0,0 +1,64 @@
<?php
session_start();
function uniqidReal($lenght = 13) {
// uniqid gives 13 chars, but you could adjust it to your needs.
if (function_exists("random_bytes")) {
$bytes = random_bytes(ceil($lenght / 2));
} elseif (function_exists("openssl_random_pseudo_bytes")) {
$bytes = openssl_random_pseudo_bytes(ceil($lenght / 2));
} else {
throw new Exception("no cryptographically secure random function available");
}
return substr(bin2hex($bytes), 0, $lenght);
}
function getNewUUID() {
return uniqidReal() . "-" . uniqidReal() . "-" . uniqidReal();
}
$servername = "localhost";
$username = "database_access";
$password = "DataAccess1.";
$dbname = "avali_shop";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if (!isset($_SESSION["uuid"])) {
$exists = true;
$NEWuuid;
while($exists) {
$NEWuuid = getNewUUID();
$sql = "SELECT * FROM wishlist_uuid WHERE uuid=\"" . $NEWuuid . "\"";
//$sql = "SELECT * FROM wishlist_uuid WHERE uuid=\"" . $_GET["uuid"] . "\"";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
if ($result->num_rows > 0) {
$exists = true;
} else {
$exists = false;
}
}
$sql_create = "INSERT INTO `wishlist_uuid`(`uuid`, `last_use`, `array`) VALUES ('" . $NEWuuid . "','" . date("Y-m-d H:i:s") . "', '')";
$result_create = $conn->query($sql_create);
$_SESSION["uuid"] = $NEWuuid;
}
header("Location: https://mfgames.net/#acc");
?>
+47
View File
@@ -0,0 +1,47 @@
<?php
// ERROR CODES: 50 = NO SESSION UUID SET LOGIN OR CREATE WISHLIST
$servername = "localhost";
$username = "database_access";
$password = "DataAccess1.";
$dbname = "avali_shop";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
session_start();
$mode = $_POST["m"];
$itemId = (int)$_POST["id"];
$uuid = $_SESSION["uuid"];
$sql = "SELECT * FROM wishlist_uuid WHERE uuid=\"" . $uuid . "\"";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
if ($row["array"] != "") {
$currentArray = json_decode($row["array"]);
} else {
$currentArray = array();
}
$to_remove = $itemId;
$key = array_search($to_remove, $currentArray);
if ($key !== false) {
unset($currentArray[$key]);
}
$currentArray = array_values($currentArray);
print_r(json_encode($currentArray));
$sql_Update = "UPDATE `wishlist_uuid` SET `last_use`='" . date("Y-m-d H:i:s") . "',`array`='" . json_encode($currentArray) . "' WHERE uuid='" . $uuid . "'";
$result_Update = $conn->query($sql_Update);
?>
+2
View File
@@ -0,0 +1,2 @@
user-agent: *
disallow: /phpmyadmin/
+9
View File
@@ -0,0 +1,9 @@
<?php
session_start();
if (isset($_POST["avali"]) && $_POST["avali"] == "true") {
$_SESSION["avali"] = "true";
} else if (isset($_POST["avali"]) && $_POST["avali"] == "false") {
$_SESSION["avali"] = "false";
}
?>
+11
View File
@@ -0,0 +1,11 @@
<?php
$asdasdas = array(13, 1234, 634, 784, 90);
if (array_search("1234", $asdasdas) !== false) {
echo "true";
} else {
echo "false";
}
?>
+16
View File
@@ -0,0 +1,16 @@
<?php
$url = "https://scarthefur.gumroad.com/l/kitabikini";
$string = file_get_contents($url);
$dom = new DomDocument();
@$dom->loadHTML($string);
$finder = new DomXPath($dom);
$content = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProductPage ')]")[0]->textContent;
$content = json_decode($content);
print_r($content->product->seller);
?>
+57
View File
@@ -0,0 +1,57 @@
<?php
/*
// ERROR CODES: 50 = NO SESSION UUID SET LOGIN OR CREATE WISHLIST
$servername = "localhost";
$username = "database_access";
$password = "DataAccess1.";
$dbname = "avali_shop";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
session_start();
$mode = $_GET["m"];
$itemId = (int)$_GET["id"];
$uuid = $_SESSION["uuid"];
$sql = "SELECT * FROM wishlist_uuid WHERE uuid=\"" . $uuid . "\"";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
if ($row["array"] != "") {
$currentArray = json_decode($row["array"]);
} else {
$currentArray = array();
}
if ($mode == "add") {
if (!in_array($itemId, $currentArray)) {
$currentArray[] = $itemId;
}
} else if ($mode == "rem") {
$to_remove = $itemId;
$key = array_search($to_remove, $currentArray);
if ($key !== false) {
unset($currentArray[$key]);
}
$currentArray = array_values($currentArray);
}
print_r(json_encode($currentArray));
$sql_Update = "UPDATE `wishlist_uuid` SET `last_use`='" . date("Y-m-d H:i:s") . "',`array`='" . json_encode($currentArray) . "' WHERE uuid='" . $uuid . "'";
$result_Update = $conn->query($sql_Update);
*/
?>
+196
View File
@@ -0,0 +1,196 @@
<head>
<style>
@font-face{
font-family: rubik;
src: url(https://mfgames.net/assets/Rubik-VariableFont_wght.ttf);
}
* {
font-family: rubik;
}
input {
color: white;
background-color: #2e2e2e;
border: none;
font-size: 20px;
margin: 3px;
padding: 5px;
border-radius: 5px;
}
button {
color: white;
background-color: #3e3e3e;
border: none;
font-size: 20px;
margin: 3px;
padding: 5px 10px;
border-radius: 10px;
}
</style>
</head>
<?php
$url = $_POST["url"];
$species = $_POST["species"];
$nsfw = $_POST["nsfw"];
$isExisting = false;
/*
$url = "https://flashychisme.gumroad.com/l/SimpleHoodieWickerbeast";
$species = "Wickerbeast";
$nsfw = "0";
*/
if (isset($_POST["url"]) && isset($_POST["species"]) && isset($_POST["nsfw"])) {
//if (true) {
$servername = "localhost";
$username = "siskeldev";
$password = "LuckyAimie";
$dbname = "avali_shop";
if (str_contains($url, '?')) {
$url = substr($url, 0, strpos($url, "?"));
}
$string = file_get_contents($url);
$dom = new DomDocument();
$dom->loadHTML($string);
$finder = new DomXPath($dom);
$content = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProductPage ')]")[0]->textContent;
$content = json_decode($content);
$c = $content->product;
$currency = "{
\"usd\": \"$\",
\"eur\": \"\",
\"crc\": \"\",
\"gbp\": \"£\",
\"ils\": \"\",
\"inr\": \"\",
\"jpy\": \"¥\",
\"krw\": \"\",
\"ngn\": \"\",
\"php\": \"\",
\"pln\": \"\",
\"pyg\": \"\",
\"thb\": \"฿\",
\"uah\": \"\",
\"vnd\": \"\",
\"aud\": \"A\$\",
\"cad\": \"CAD\$\"
}";
$currency = json_decode($currency);
$currencyOutput = $c->currency_code;
if ($c->thumbnail_url == null) {
$thumbnailURL = $c->covers[0]->url;
} else $thumbnailURL = $c->thumbnail_url;
$rating = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' rating-average ')]")[0]->textContent;
if ($rating == null || $rating == "" || $rating == " ") $rating = "None";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
$failed = true;
}
$c->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->name)));
$c->seller->name = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$c->seller->name)));
$species = str_replace("'","\'",str_replace("`","\`",str_replace('"','\"',$species)));
$sql2 = "SELECT * FROM `content` WHERE
name LIKE \"%" . $c->name . "%\" AND
url_link LIKE \"%" . $url . "%\" AND
url_image LIKE \"%" . $thumbnailURL . "%\" AND
creator LIKE \"%" . $c->seller->name . "%\";";
$result2 = $conn->query($sql2);
if ($result2->num_rows > 0) {
$isExisting = true;
} else {
$isExisting = false;
}
$sql = "INSERT INTO content (
`name`,
`price`,
`currency`,
`url_link`,
`url_image`,
`creator`,
`rating`,
`species`,
`nsfw`,
`section`
)
VALUES (
'" . $c->name . "',
'" . $c->price_cents . "',
'" . $currency->$currencyOutput . "',
'" . $url . "',
'" . $thumbnailURL . "',
'" . $c->seller->name . "',
'" . $rating . "',
'" . $species . "',
'" . $nsfw . "',
4
)";
if ($isExisting == false) {
if ($conn->query($sql) === TRUE) {
echo "<a style=\"color: green;\">Successful !</a>";
} else {
$errormsg = "<a style=\"color: red;\">Error: " . $sql . "<br>" . $conn->error . "</a>";
$failed = true;
}
} else {
echo "<a style=\"color: orange;\">Already Exists!</a>";
}
$conn->close();
}
?>
<body style="background-color: #1e1e1e; color: white">
<form action="AutoInsertData.php" method="post">
<label for="url">URL:</label><br>
<input type="text" id="url" name="url" style="width:100%"><br>
<label for="species">Species:</label><br>
<input type="text" id="species" name="species" style="width:100%"><br>
<label for="nsfw">NSFW:</label><br>
<input type="text" id="nsfw" name="nsfw" value="0" style="width:100%">
<button type="submit">Submit</button>
</form>
<br>
<br>
<?php
echo "
'" . $c->name . "', <br>
'" . ($c->price_cents / 100) . "', <br>
'" . $currency->$currencyOutput . "', <br>
'" . $url . "', <br>
'" . $thumbnailURL . "', <br>
'" . $c->seller->name . "', <br>
'" . $rating . "', <br>
'" . $species . "',<br>
'" . $nsfw . "',<br>
2";
?>
+68
View File
@@ -0,0 +1,68 @@
<?php
//$_GET["sort"] = "free";
//$_GET["t"] = "davali";
$o = "";
require_once("../lib.php");
$mflib = new MFLib();
require_once("../elements.php");
$mfelements = new MFElements();
$actual_link = $mflib->getLink();
$mflib->limitperpage = 15;
$mflib->setCookie();
session_start();
if ( isset($_GET["s"]) && $_GET["s"] == "61776746" ) {
$_SESSION["adminmode"] = true;
header("Location: https://mfgames.net/#insert");
} else if ( isset($_GET["s"]) && $_GET["s"] == "59572354") {
$_SESSION["adminmode"] = false;
header("Location: https://mfgames.net/");
}
$mflib->initialize();
$wishlistArray = $mflib->dataGetWishlist();
if (!isset($_GET["p"])) $_GET["p"] = 1;
$o .= "<html>";
$o .= $mfelements->printHead($wishlistArray);
$o .= "<body id=\"body\">";
$o .= $mfelements->printSiteHeader();
$o .= "<div id=\"filter\" class=\"filter\" >";
$o .= $mfelements->printFilterSection2($mflib, $actual_link);
$o .= $mfelements->printAccountSection($mflib);
$o .= "</div>";
if ($mflib->isItMobile == false) {
$o .= $mfelements->printPreviewProductPage();
if (isset($_SESSION["adminmode"]) && $_SESSION["adminmode"] == true) {
$o .= $mfelements->printAdminInsertData($mflib);
}
}
$o .= $mfelements->printNavbar($mflib);
$o .= $mfelements->printPageContent($mflib, $wishlistArray);
$o .= $mfelements->printNSFWpromt($actual_link);
$o .= $mfelements->printFooter($mflib);
$o .= $mfelements->printJSLoginVar();
$o .= $mfelements->printScriptSources();
$o .= "</body></html>";
echo $o;