Initial Commit of v2
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Big Insert - Admin Panel - Furatalog.xyz</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="main">
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
session_start();
|
||||
if (!isset($_SESSION["login"]) && $_SESSION["login"] != "true-as-hell") {
|
||||
header("Location: login.php");
|
||||
die();
|
||||
}
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Admin Panel - Furatalog.xyz</title>
|
||||
<link rel="stylesheet" href="/data/style/style.css">
|
||||
<link rel="stylesheet" href="/data/style/colors.css">
|
||||
<style>
|
||||
html, body {
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
padding: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="sidebar">
|
||||
<a href="logout.php">Logout</a>
|
||||
<a class="active" href="/admin/">Dashboard</a>
|
||||
<a href="/admin/insert.php">Insert Data (Gumroad)</a>
|
||||
<a href="/admin/insert-species.php">Insert Species</a>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="adminpanel">
|
||||
<h2>Admin Panel</h2>
|
||||
<p>Welcome to the admin panel.</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,215 @@
|
||||
<?php
|
||||
|
||||
session_start();
|
||||
if (!isset($_SESSION["login"]) && $_SESSION["login"] != "true-as-hell") {
|
||||
header("Location: login.php");
|
||||
die();
|
||||
}
|
||||
|
||||
$_POST["nsfw"] = isset($_POST["nsfw"]) ? "1" : "0";
|
||||
|
||||
function myErrorHandler($errno, $errstr, $errfile, $errline) {
|
||||
echo "<p>Custom error:</p> [$errno] $errstr<br>";
|
||||
echo "Error on line $errline in $errfile<br>";
|
||||
}
|
||||
|
||||
// Set user-defined error handler function
|
||||
//set_error_handler("myErrorHandler");
|
||||
|
||||
$furatalog = new mysqli("localhost", "furatalog_admin_usr", "NR6tLk7c56bPT5[]", "furatalog");
|
||||
|
||||
if (isset($_POST["url"])) {
|
||||
|
||||
$givenURL = $_POST["url"];
|
||||
|
||||
$isExisting = $furatalog->query("SELECT * FROM species WHERE url='" . $givenURL . "'");
|
||||
if ($isExisting->num_rows > 0) {
|
||||
$isExistent = true;
|
||||
} else {
|
||||
if (str_contains($givenURL, "gumroad")) {
|
||||
$creatorURL = implode('/', array_slice(explode('/', $givenURL), 0, 3));
|
||||
$creatorRequestResult = $furatalog->query("SELECT * FROM creator WHERE `gumroad_url`='" . $creatorURL . "'");
|
||||
|
||||
if ($creatorRequestResult->num_rows > 0) {
|
||||
$creatorID = $creatorRequestResult->fetch_assoc()["id"];
|
||||
} else {
|
||||
$scrapingUrl = $creatorURL;
|
||||
|
||||
$string = file_get_contents($scrapingUrl);
|
||||
|
||||
$dom = new DomDocument();
|
||||
$dom->loadHTML($string);
|
||||
$finder = new DomXPath($dom);
|
||||
|
||||
$creatorName = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' profile ')]")[0]->childNodes[0]->childNodes[0]->textContent;
|
||||
$creatorUrl = $scrapingUrl;
|
||||
$creatorpicture = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' profile ')]")[0]->childNodes[0]->childNodes[0]->childNodes[0]->attributes[1]->textContent;
|
||||
|
||||
$creatorCreateResult = $furatalog->query("INSERT INTO `creator` (`id`, `name`, `pb_url`, `booth_url`, `gumroad_url`, `payhip_url`, `jinxxy_url`) VALUES (NULL, '" . str_replace("'", "\'", $creatorName) . "', '" . $creatorpicture . "', '', '" . $creatorURL . "', '', '')");
|
||||
|
||||
$creatorResult = $furatalog->query("SELECT id FROM `creator` WHERE gumroad_url='" . $creatorURL . "'");
|
||||
|
||||
$creatorID = $creatorResult->fetch_assoc()["id"];
|
||||
}
|
||||
|
||||
$newCreatorResult = $furatalog->query("SELECT * FROM creator WHERE id=" . $creatorID . "");
|
||||
$newCreatorResultResult = $newCreatorResult->fetch_assoc();
|
||||
|
||||
$new_creatorid = $newCreatorResultResult["id"];
|
||||
$new_creatorName = $newCreatorResultResult["name"];
|
||||
$new_creatorPb = $newCreatorResultResult["pb_url"];
|
||||
$new_boothURL = $newCreatorResultResult["booth_url"];
|
||||
$new_gumroadURL = $newCreatorResultResult["gumroad_url"];
|
||||
$new_payhipURL = $newCreatorResultResult["payhip_url"];
|
||||
$new_jinxxyURL = $newCreatorResultResult["jinxxy_url"];
|
||||
|
||||
$tempURL = file_get_contents($givenURL);
|
||||
|
||||
$dom = new DomDocument();
|
||||
$dom->loadHTML($tempURL);
|
||||
$finder = new DomXPath($dom);
|
||||
|
||||
$content = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProductPage ')]")[0]->textContent;
|
||||
if ($content == "" || $content == null) {
|
||||
$content = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProfileProductPage ')]")[0]->textContent;
|
||||
}
|
||||
$content = json_decode($content);
|
||||
$contentItem = $content->product;
|
||||
|
||||
|
||||
if ($contentItem->thumbnail_url == "" || $contentItem->thumbnail_url == null) {
|
||||
$newThumbnail = $contentItem->covers[0]->url;
|
||||
} else {
|
||||
$newThumbnail = $contentItem->thumbnail_url;
|
||||
}
|
||||
|
||||
$newPrice = $contentItem->price_cents;
|
||||
|
||||
if (isset($contentItem->options[0]->price_difference_cents)) {
|
||||
$newPrice = $contentItem->options[0]->price_difference_cents;
|
||||
}
|
||||
|
||||
|
||||
$furatalog->query("INSERT INTO `species` (`name`, `tag`, `url`, `creator_id`) VALUES ('" .
|
||||
str_replace("'", "\'", $_POST["name"]) . "', '" .
|
||||
$_POST["tag"] . "', '" .
|
||||
$givenURL . "', '" .
|
||||
$new_creatorid . "')");
|
||||
|
||||
$contentResult = $furatalog->query("SELECT * FROM species WHERE url='" . $givenURL . "'");
|
||||
$contentResultResult = $contentResult->fetch_assoc();
|
||||
|
||||
$new_id = $contentResultResult["id"];
|
||||
$new_name = $contentResultResult["name"];
|
||||
$new_tag = $contentResultResult["tag"];
|
||||
$new_url = $contentResultResult["url"];
|
||||
$new_creatorid = $contentResultResult["creator_id"];
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo file_get_contents("/var/www/furatalog-cdn/mainHead.html"); ?>
|
||||
<title>Insert Species - Admin Panel - Furatalog.xyz</title>
|
||||
<style>
|
||||
html, body {
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
padding: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="sidebar">
|
||||
<a href="logout.php">Logout</a>
|
||||
<a href="/admin/">Dashboard</a>
|
||||
<a href="/admin/insert.php">Insert Data (Gumroad)</a>
|
||||
<a class="active" href="/admin/insert-species.php">Insert Species</a>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="insert">
|
||||
<h2>Insert Data</h2>
|
||||
<form action="/admin/insert-species.php" method="post">
|
||||
<input type="text" name="name" placeholder="Name" autocomplete="off">
|
||||
<input type="text" name="tag" placeholder="Tag" autocomplete="off">
|
||||
<input type="text" id="url" name="url" placeholder="URL" autocomplete="off">
|
||||
<input type="submit" value="Submit">
|
||||
<input type="text" name="species" id="speciesIncluded" style="display: none;">
|
||||
</form>
|
||||
</div>
|
||||
<div class="insert-result">
|
||||
<?php
|
||||
if (isset($isExistent) && $isExistent) {
|
||||
echo "<p>Content already exists in the database.</p>";
|
||||
}
|
||||
?>
|
||||
<div class="summary">
|
||||
<table>
|
||||
<tr>
|
||||
<th>New Species Inserted</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ID</td>
|
||||
<td><?php echo $new_id; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Name</td>
|
||||
<td><?php echo $new_name; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Tag</td>
|
||||
<td><?php echo $new_tag; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>URL</td>
|
||||
<td><?php echo $new_url; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Creator ID</td>
|
||||
<td><?php echo $new_creatorid; ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Creator</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ID</td>
|
||||
<td><?php echo $new_creatorid; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Name</td>
|
||||
<td><?php echo $new_creatorName; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Creator PB</td>
|
||||
<td><?php echo $new_creatorPb; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Booth URL</td>
|
||||
<td><?php echo $new_boothURL; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Gumroad URL</td>
|
||||
<td><?php echo $new_gumroadURL; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Payhip URL</td>
|
||||
<td><?php echo $new_payhipURL; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Jinxxy URL</td>
|
||||
<td><?php echo $new_jinxxyURL; ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,401 @@
|
||||
<?php
|
||||
|
||||
session_start();
|
||||
if (!isset($_SESSION["login"]) && $_SESSION["login"] != "true-as-hell") {
|
||||
header("Location: login.php");
|
||||
die();
|
||||
}
|
||||
|
||||
if (isset($_GET["url"])) {
|
||||
$presetedURL = $_GET["url"];
|
||||
} else {
|
||||
$presetedURL = "";
|
||||
}
|
||||
|
||||
$nsfw = isset($_POST["nsfw"]) ? "1" : "0";
|
||||
|
||||
function myErrorHandler($errno, $errstr, $errfile, $errline) {
|
||||
echo "<p>Custom error:</p> [$errno] $errstr<br>";
|
||||
echo "Error on line $errline in $errfile<br>";
|
||||
}
|
||||
|
||||
// Set user-defined error handler function
|
||||
//set_error_handler("myErrorHandler");
|
||||
|
||||
$furatalog = new mysqli("localhost", "furatalog_admin_usr", "NR6tLk7c56bPT5[]", "furatalog");
|
||||
|
||||
if (isset($_POST["url"])) {
|
||||
|
||||
$givenURL = $_POST["url"];
|
||||
|
||||
$isExisting = $furatalog->query("SELECT * FROM content WHERE url='" . $givenURL . "'");
|
||||
if ($isExisting->num_rows > 0) {
|
||||
$isExistent = true;
|
||||
|
||||
$new_id = "";
|
||||
$new_name = "";
|
||||
$new_price = "";
|
||||
$new_rating = "";
|
||||
$new_creatorid = "";
|
||||
$new_currencyid = "";
|
||||
$new_url = "";
|
||||
$new_image = "https://public-files.gumroad.com/nx5vne5h5y4bktwzh0gcfev59taj";
|
||||
$new_nsfw = "";
|
||||
$new_section = "";
|
||||
|
||||
} else {
|
||||
if (str_contains($givenURL, "gumroad")) {
|
||||
$creatorURL = implode('/', array_slice(explode('/', $givenURL), 0, 3));
|
||||
$creatorRequestResult = $furatalog->query("SELECT * FROM creator WHERE `gumroad_url`='" . $creatorURL . "'");
|
||||
|
||||
if ($creatorRequestResult->num_rows > 0) {
|
||||
$creatorID = $creatorRequestResult->fetch_assoc()["id"];
|
||||
} else {
|
||||
$scrapingUrl = $creatorURL;
|
||||
|
||||
$string = file_get_contents($scrapingUrl);
|
||||
|
||||
$dom = new DomDocument();
|
||||
$dom->loadHTML($string);
|
||||
$finder = new DomXPath($dom);
|
||||
|
||||
$creatorName = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' profile ')]")[0]->childNodes[0]->childNodes[0]->textContent;
|
||||
$creatorUrl = $scrapingUrl;
|
||||
$creatorpicture = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' profile ')]")[0]->childNodes[0]->childNodes[0]->childNodes[0]->attributes[1]->textContent;
|
||||
|
||||
$creatorCreateResult = $furatalog->query("INSERT INTO `creator` (`id`, `name`, `pb_url`, `booth_url`, `gumroad_url`, `payhip_url`, `jinxxy_url`) VALUES (NULL, '" . str_replace("'", "\'", $creatorName) . "', '" . $creatorpicture . "', '', '" . $creatorURL . "', '', '')");
|
||||
|
||||
$creatorResult = $furatalog->query("SELECT id FROM `creator` WHERE gumroad_url='" . $creatorURL . "'");
|
||||
|
||||
$creatorID = $creatorResult->fetch_assoc()["id"];
|
||||
}
|
||||
|
||||
$newCreatorResult = $furatalog->query("SELECT * FROM creator WHERE id=" . $creatorID . "");
|
||||
$newCreatorResultResult = $newCreatorResult->fetch_assoc();
|
||||
|
||||
$new_creatorid = $newCreatorResultResult["id"];
|
||||
$new_creatorName = $newCreatorResultResult["name"];
|
||||
$new_creatorPb = $newCreatorResultResult["pb_url"];
|
||||
$new_boothURL = $newCreatorResultResult["booth_url"];
|
||||
$new_gumroadURL = $newCreatorResultResult["gumroad_url"];
|
||||
$new_payhipURL = $newCreatorResultResult["payhip_url"];
|
||||
$new_jinxxyURL = $newCreatorResultResult["jinxxy_url"];
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$tempURL = file_get_contents($givenURL);
|
||||
|
||||
$dom = new DomDocument();
|
||||
$dom->loadHTML($tempURL);
|
||||
$finder = new DomXPath($dom);
|
||||
|
||||
$content = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProductPage ')]")[0]->textContent;
|
||||
if ($content == "" || $content == null) {
|
||||
$content = $finder->query("//*[contains(concat(' ', normalize-space(@data-component-name), ' '), ' ProfileProductPage ')]")[0]->textContent;
|
||||
}
|
||||
$content = json_decode($content);
|
||||
$contentItem = $content->product;
|
||||
|
||||
|
||||
|
||||
$currentCurrency = $contentItem->currency_code;
|
||||
|
||||
$newCurrencyResult = $furatalog->query("SELECT * FROM currency WHERE currency='" . $currentCurrency . "'");
|
||||
$newCurrencyResultResult = $newCurrencyResult->fetch_assoc();
|
||||
|
||||
$new_currencyid = $newCurrencyResultResult["id"];
|
||||
$new_currencyshort = $newCurrencyResultResult["currency"];
|
||||
$new_currencysymbol = $newCurrencyResultResult["symbol"];
|
||||
$new_currencyfontawesome = $newCurrencyResultResult["font-awesome"];
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if ($contentItem->thumbnail_url == "" || $contentItem->thumbnail_url == null) {
|
||||
$newThumbnail = $contentItem->covers[0]->url;
|
||||
} else {
|
||||
$newThumbnail = $contentItem->thumbnail_url;
|
||||
}
|
||||
|
||||
$newPrice = $contentItem->price_cents;
|
||||
|
||||
if (isset($contentItem->options[0]->price_difference_cents)) {
|
||||
$newPrice = (int)$newPrice + (int)$contentItem->options[0]->price_difference_cents;
|
||||
}
|
||||
|
||||
|
||||
$furatalog->query("INSERT INTO `content` (`id`, `name`, `price`, `rating`, `creator_id`, `currency_id`, `url`, `image`, `nsfw`, `section`) VALUES (NULL, '" .
|
||||
str_replace("'", "\'", $contentItem->name) . "', '" .
|
||||
$newPrice . "', '" .
|
||||
$contentItem->ratings->average . "', '" .
|
||||
$new_creatorid . "', '" .
|
||||
$new_currencyid . "', '" .
|
||||
$givenURL . "', '" .
|
||||
$newThumbnail . "', '" .
|
||||
$nsfw . "', '" .
|
||||
$_POST["section"] . "')");
|
||||
|
||||
|
||||
|
||||
|
||||
$parsed_url = parse_url($givenURL);
|
||||
$clean_url = $parsed_url['scheme'] . '://' . $parsed_url['host'] . $parsed_url['path'];
|
||||
|
||||
$contentResult = $furatalog->query("SELECT * FROM content WHERE url LIKE '%" . $clean_url . "%'");
|
||||
$contentResultResult = $contentResult->fetch_assoc();
|
||||
|
||||
$new_id = $contentResultResult["id"];
|
||||
$new_name = $contentResultResult["name"];
|
||||
$new_price = $contentResultResult["price"];
|
||||
$new_rating = $contentResultResult["rating"];
|
||||
$new_creatorid = $contentResultResult["creator_id"];
|
||||
$new_currencyid = $contentResultResult["currency_id"];
|
||||
$new_url = $contentResultResult["url"];
|
||||
$new_image = $contentResultResult["image"];
|
||||
$new_nsfw = $contentResultResult["nsfw"];
|
||||
$new_section = $contentResultResult["section"];
|
||||
|
||||
|
||||
|
||||
$species = explode(" ", $_POST["species"]);
|
||||
|
||||
foreach ($species as $key => $value) {
|
||||
$speciesResult = $furatalog->query("SELECT * FROM species WHERE tag='" . $value . "'");
|
||||
$speciesResultResult = $speciesResult->fetch_assoc();
|
||||
|
||||
$speciesID = $speciesResultResult["id"];
|
||||
|
||||
$furatalog->query("INSERT INTO `content_species` (`content_id`, `species_id`) VALUES ('" . $new_id . "', '" . $speciesID . "')");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
$new_id = "";
|
||||
$new_name = "";
|
||||
$new_price = "";
|
||||
$new_rating = "";
|
||||
$new_creatorid = "";
|
||||
$new_currencyid = "";
|
||||
$new_url = "";
|
||||
$new_image = "https://public-files.gumroad.com/nx5vne5h5y4bktwzh0gcfev59taj";
|
||||
$new_nsfw = "";
|
||||
$new_section = "";
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo file_get_contents("/var/www/furatalog-cdn/mainHead.html"); ?>
|
||||
<title>Insert Data - Admin Panel - Furatalog.xyz</title>
|
||||
<style>
|
||||
html, body {
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
padding: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="sidebar">
|
||||
<a href="logout.php">Logout</a>
|
||||
<a href="/admin/">Dashboard</a>
|
||||
<a class="active" href="/admin/insert.php">Insert Data (Gumroad)</a>
|
||||
<a href="/admin/insert-species.php">Insert Species</a>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="insert">
|
||||
<h2>Insert Data</h2>
|
||||
<form action="/admin/insert.php" method="post">
|
||||
<div>
|
||||
<input type="text" id="url" name="url" placeholder="URL" autocomplete="off" value="<?php echo $presetedURL; ?>">
|
||||
<select name="section" id="section">
|
||||
<option value="1">Assets</option>
|
||||
<option value="2">Avatars</option>
|
||||
<option value="3">Bases</option>
|
||||
<option value="4">Worlds</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="specieslist">
|
||||
<p>Species</p>
|
||||
<?php
|
||||
|
||||
$requestSpeciesResult = $furatalog->query("SELECT * FROM `species`");
|
||||
while ($row = $requestSpeciesResult->fetch_assoc()) {
|
||||
echo "
|
||||
<label>
|
||||
<input type=\"checkbox\" name=\"" . $row["tag"] . "\">" . $row["name"] . "
|
||||
</label><br>";
|
||||
}
|
||||
|
||||
?>
|
||||
</div>
|
||||
<br>
|
||||
<div>
|
||||
<input type="checkbox" name="nsfw" id="nsfw">
|
||||
<label for="nsfw">NSFW</label>
|
||||
</div>
|
||||
<input type="submit" value="Submit">
|
||||
<input type="text" name="species" id="speciesIncluded" style="display: none;">
|
||||
</form>
|
||||
</div>
|
||||
<div class="insert-result">
|
||||
<?php
|
||||
if (isset($isExistent) && $isExistent) {
|
||||
echo "<p>Content already exists in the database.</p>";
|
||||
}
|
||||
?>
|
||||
<div class="summary">
|
||||
<table>
|
||||
<tr>
|
||||
<th>New Content Inserted</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ID</td>
|
||||
<td><?php echo $new_id; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Name</td>
|
||||
<td><?php echo $new_name; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Price</td>
|
||||
<td><?php echo $new_price; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Rating</td>
|
||||
<td><?php echo $new_rating; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Creator ID</td>
|
||||
<td><?php echo $new_creatorid; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Currency ID</td>
|
||||
<td><?php echo $new_currencyid; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>URL</td>
|
||||
<td><?php echo $new_url; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Image</td>
|
||||
<td><?php echo $new_image; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>NSFW</td>
|
||||
<td><?php echo $new_nsfw; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Section</td>
|
||||
<td><?php echo $new_section; ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Creator</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ID</td>
|
||||
<td><?php echo $new_creatorid; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Name</td>
|
||||
<td><?php echo $new_creatorName; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Creator PB</td>
|
||||
<td><?php echo $new_creatorPb; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Booth URL</td>
|
||||
<td><?php echo $new_boothURL; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Gumroad URL</td>
|
||||
<td><?php echo $new_gumroadURL; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Payhip URL</td>
|
||||
<td><?php echo $new_payhipURL; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Jinxxy URL</td>
|
||||
<td><?php echo $new_jinxxyURL; ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Currency</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ID</td>
|
||||
<td><?php echo $new_currencyid; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Currency</td>
|
||||
<td><?php echo $new_currencyshort; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Symbol</td>
|
||||
<td><?php echo $new_currencysymbol; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Font-Awesome</td>
|
||||
<td><?php echo $new_currencyfontawesome; ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
if ($new_id != "") {
|
||||
echo "<div class='item-container' style=\"background-image: url('". $new_image ."')\">
|
||||
<a href='". $new_url ."'><div class='item'>
|
||||
<img src='". $new_image ."'>
|
||||
<div class='item-info'>
|
||||
<a class='name' title='". $new_name ."'>". $new_name ."</a>
|
||||
<div class='info'>
|
||||
<a class='creator'>
|
||||
<img src=\"". $new_creatorPb ."\">
|
||||
". $new_creatorName ."
|
||||
</a>
|
||||
<a class=\"price\">" . sprintf("%.2f", (double)($new_price / 100)) . " " . $new_currencyfontawesome ."</a>
|
||||
</div>
|
||||
</div>
|
||||
</div></a>
|
||||
</div>";
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
// Select all checkboxes and the result input field
|
||||
const checkboxes = document.querySelectorAll('input[type="checkbox"]');
|
||||
const resultInput = document.getElementById('speciesIncluded');
|
||||
|
||||
// Function to update the result input field
|
||||
function updateResult() {
|
||||
const selectedNames = Array.from(checkboxes) // Convert NodeList to Array
|
||||
.filter(checkbox => checkbox.checked) // Filter only checked checkboxes
|
||||
.map(checkbox => checkbox.name); // Map to their name attributes
|
||||
|
||||
// Join the names with a comma and update the result input
|
||||
resultInput.value = selectedNames.join(' ');
|
||||
}
|
||||
|
||||
// Add event listeners to all checkboxes
|
||||
checkboxes.forEach(checkbox => {
|
||||
checkbox.addEventListener('change', updateResult); // Listen for 'change' event
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
if (isset($_GET["ref"])) {
|
||||
$_SESSION["ref"] = $_GET["ref"];
|
||||
}
|
||||
|
||||
if (isset($_POST["username"]) && isset($_POST["password"])) {
|
||||
if ($_POST["username"] == "SiskelDev" && password_verify($_POST["password"], "\$2y\$10\$uhkbDXtndzyDKsJh7d14HOBE7JoWiqYQPx3r88xDhWHnL9W4t4OJa")) {
|
||||
$_SESSION["login"] = "true-as-hell";
|
||||
$redirect = isset($_SESSION["ref"]) ? $_SESSION["ref"] : "index";
|
||||
unset($_SESSION["ref"]);
|
||||
header("Location: " . $redirect . ".php");
|
||||
die();
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_SESSION["login"]) && $_SESSION["login"] == "true-as-hell") {
|
||||
header("Location: index.php");
|
||||
die();
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<?php echo file_get_contents("/var/www/furatalog-cdn/mainHead.html"); ?>
|
||||
<title>Admin Login</title>
|
||||
<style>
|
||||
html, body {
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
padding: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="login-container">
|
||||
<a class="backbutton" href="/">← Back to Furatalog</a>
|
||||
<h1>Admin Login</h1>
|
||||
<p>Please login to access the admin panel.</p>
|
||||
<br>
|
||||
<form action="login.php" method="post">
|
||||
<input type="text" name="username" placeholder="Username" autoComplete='off'>
|
||||
<input type="password" name="password" placeholder="Password" autoComplete='off'>
|
||||
<input type="submit" value="Login">
|
||||
</form>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
session_start();
|
||||
session_destroy();
|
||||
header("Location: login.php");
|
||||
die();
|
||||
?>
|
||||
@@ -0,0 +1,142 @@
|
||||
<?php
|
||||
|
||||
session_start();
|
||||
if (isset($_SESSION["tmpdata"])) {
|
||||
$_POST["data"] = $_SESSION["tmpdata"];
|
||||
unset($_SESSION["tmpdata"]);
|
||||
}
|
||||
|
||||
if (!isset($_SESSION["login"]) && $_SESSION["login"] != "true-as-hell") {
|
||||
$_SESSION["tmpdata"] = $_POST["data"];
|
||||
header("Location: login.php?ref=redirectFromJinxxy");
|
||||
die();
|
||||
}
|
||||
|
||||
$creator_name;
|
||||
$creator_pb;
|
||||
$creator_jinxxyURL;
|
||||
|
||||
$content_name;
|
||||
$content_price;
|
||||
$content_rating;
|
||||
|
||||
$content_creator_id;
|
||||
$content_currency_id;
|
||||
|
||||
$content_url;
|
||||
$content_image;
|
||||
|
||||
$userData;
|
||||
$productData;
|
||||
|
||||
$data = json_decode($_POST["data"]);
|
||||
|
||||
$apolloState = $data->props->pageProps->__APOLLO_STATE__;
|
||||
$rootData = $data->props->pageProps->__APOLLO_STATE__->ROOT_QUERY;
|
||||
|
||||
// getting the product data
|
||||
foreach ($rootData as $key => $value) {
|
||||
if (strpos($key, 'product') !== false) {
|
||||
$temp = $value->__ref;
|
||||
|
||||
foreach ($apolloState as $key => $value) {
|
||||
if (strpos($key, $temp) !== false) {
|
||||
$productData = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// getting the user data
|
||||
foreach ($apolloState as $key => $value) {
|
||||
if (strpos($key, $productData->user->__ref) !== false) {
|
||||
$userData = $value;
|
||||
}
|
||||
}
|
||||
|
||||
// getting user profilePicture
|
||||
foreach ($apolloState as $key => $value) {
|
||||
if (strpos($key, $userData->profile_image->__ref) !== false) {
|
||||
$creator_pb = $value->url;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($apolloState as $key => $value) {
|
||||
if (strpos($key, $productData->cover->__ref) !== false) {
|
||||
$content_image = $value->url;
|
||||
}
|
||||
}
|
||||
|
||||
// set creator name
|
||||
$creator_name = $userData->name;
|
||||
|
||||
// set creator jinxxy url
|
||||
$creator_jinxxyURL = "https://jinxxy.com/" . $userData->username;
|
||||
|
||||
|
||||
|
||||
// set content name
|
||||
$content_name = $productData->name;
|
||||
|
||||
// set content price
|
||||
$content_price = $productData->base_price;
|
||||
|
||||
// set procuct url
|
||||
$content_url = "https://jinxxy.com/" . $data->props->pageProps->username . "/" . $data->props->pageProps->url_slug;
|
||||
|
||||
// set no rating
|
||||
$content_rating = "null";
|
||||
|
||||
// currency type
|
||||
$currency_currency = strtolower($productData->currency_code);
|
||||
|
||||
/*
|
||||
echo '<br><span style="font-family: consolas">Creator Name </span>' . $creator_name;
|
||||
echo '<br><span style="font-family: consolas">Creator PB </span>' . $creator_pb;
|
||||
echo '<br><span style="font-family: consolas">Creator JinxxyURL </span>' . $creator_jinxxyURL;
|
||||
echo '<br>';
|
||||
echo '<br>';
|
||||
echo '<br>';
|
||||
echo '<br><span style="font-family: consolas">Content Name </span>' . $content_name;
|
||||
echo '<br><span style="font-family: consolas">Content Price </span>' . $content_price;
|
||||
echo '<br><span style="font-family: consolas">Content Rating </span>' . $content_rating;
|
||||
echo '<br>';
|
||||
echo '<br><span style="font-family: consolas">Content CreatorID </span>' . $content_creator_id;
|
||||
echo '<br><span style="font-family: consolas">Content CurrencyID </span>' . $content_currency_id;
|
||||
echo '<br>';
|
||||
echo '<br><span style="font-family: consolas">Content URL </span>' . $content_url;
|
||||
echo '<br><span style="font-family: consolas">Content Image </span>' . $content_image;
|
||||
echo '<br>';
|
||||
echo '<br><span style="font-family: consolas">Currency Code </span>' . $currency_currency;
|
||||
*/
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo file_get_contents("/var/www/furatalog-cdn/mainHead.html"); ?>
|
||||
<title>Insert From Jinxxy - Admin Panel - Furatalog.xyz</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="main">
|
||||
<form action="insert-jinxxy.php" class="insert" method="post">
|
||||
<input type="text" name="creator_name" value="<?php echo $creator_name; ?>"><br>
|
||||
<input type="text" name="creator_pb" value="<?php echo $creator_pb; ?>"><br>
|
||||
<input type="text" name="creator_jinxxyURL" value="<?php echo $creator_jinxxyURL; ?>"><br>
|
||||
<input type="text" name="content_name" value="<?php echo $content_name; ?>"><br>
|
||||
<input type="text" name="content_price" value="<?php echo $content_price; ?>"><br>
|
||||
<input type="text" name="content_rating" value="<?php echo $content_rating; ?>"><br>
|
||||
<input type="text" name="content_creator_id" value="<?php echo $content_creator_id; ?>"><br>
|
||||
<input type="text" name="content_currency_id" value="<?php echo $content_currency_id; ?>"><br>
|
||||
<input type="text" name="content_url" value="<?php echo $content_url; ?>"><br>
|
||||
<input type="text" name="content_image" value="<?php echo $content_image; ?>"><br>
|
||||
<input type="text" name="currency_currency" value="<?php echo $currency_currency; ?>"><br>
|
||||
<input type="submit" value="Insert">
|
||||
</form>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,66 @@
|
||||
// ==UserScript==
|
||||
// @name Redirect to Furatalog
|
||||
// @namespace furatalog.xyz
|
||||
// @version 1.0
|
||||
// @description Data Redirection to Furatalog.xyz Admin Panel for Injection into the Database
|
||||
// @author SiskelDev
|
||||
// @match https://jinxxy.com/*
|
||||
// @icon https://www.google.com/s2/favicons?sz=64&domain=jinxxy.com
|
||||
// @grant none
|
||||
// ==/UserScript==
|
||||
|
||||
(function() {
|
||||
var data = document.getElementById('__NEXT_DATA__').innerHTML;
|
||||
|
||||
// creating new form element
|
||||
var form = document.createElement('form');
|
||||
form.setAttribute('method', 'post');
|
||||
form.setAttribute('action', 'https://furatalog.xyz/admin/redirectFromJinxxy.php');
|
||||
|
||||
// creating new input element
|
||||
var input = document.createElement('input');
|
||||
input.setAttribute('name', 'data');
|
||||
input.setAttribute('value', data);
|
||||
input.setAttribute('readonly', 'true');
|
||||
|
||||
// creating submit button
|
||||
var button = document.createElement('button');
|
||||
button.setAttribute('type', 'submit');
|
||||
button.innerText = 'Submit';
|
||||
|
||||
// appending input to form
|
||||
form.appendChild(input);
|
||||
|
||||
// appending button to form
|
||||
form.appendChild(button);
|
||||
|
||||
input.style.padding = "2px";
|
||||
input.style.backgroundColor = "#3a3a3a";
|
||||
input.style.color = "gray";
|
||||
input.style.borderRadius = "10px 10px 0px 0px";
|
||||
input.style.border = "solid 0px";
|
||||
input.style.marginBottom = "2px";
|
||||
input.style.width = "190px";
|
||||
|
||||
button.style.padding = "4px";
|
||||
button.style.width = "190px";
|
||||
button.style.color = "white";
|
||||
button.style.backgroundColor = "#3a3a3a";
|
||||
button.style.borderRadius = "0px 0px 10px 10px";
|
||||
|
||||
// appending style to form for absolute positioning
|
||||
form.style.position = 'fixed';
|
||||
form.style.top = '68px';
|
||||
form.style.left = '5px';
|
||||
form.style.width = '202px';
|
||||
form.style.height = '74px';
|
||||
form.style.zIndex = '9999';
|
||||
form.style.padding = "5px"
|
||||
form.style.backgroundColor = "#2a2a2a";
|
||||
form.style.borderRadius = "15px";
|
||||
form.style.border = "lightgray solid 1px";
|
||||
|
||||
// appending form to body
|
||||
document.body.prepend(form);
|
||||
|
||||
})();
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
require_once("/var/www/furatalog-misc/furatalog.lib.php");
|
||||
$lib = new furatalogLib();
|
||||
$lib->init();
|
||||
|
||||
$section = 1;
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo file_get_contents("/var/www/furatalog-cdn/mainHead.html"); ?>
|
||||
<title>Assets - Furatalog.xyz</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="navigation">
|
||||
<a href="/">Home </a>
|
||||
<a class="nocursor nohover">|</a>
|
||||
<a href="/assets/" class="navitem active">Assets</a>
|
||||
<a href="/bases/" class="navitem">Avatar-Bases</a>
|
||||
<a href="/avatars/" class="navitem">Avatars</a>
|
||||
<a href="/worlds/" class="navitem">Worlds</a>
|
||||
<div class="dropdown">
|
||||
<a class="dropbtn">▼</a>
|
||||
<div class="dropdown-content">
|
||||
<a href="/assets/" class="active">Assets</a>
|
||||
<a href="/bases/">Avatar-Bases</a>
|
||||
<a href="/avatars/">Avatars</a>
|
||||
<a href="/worlds/">Worlds</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<form action="./">
|
||||
<input name="s" type="text" placeholder="Search 🔍" autoComplete='off' value="<?php echo $_GET["s"]; ?>">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main">
|
||||
<?php $lib->printItemLists($section); ?>
|
||||
</div>
|
||||
|
||||
<?php $lib->printNsfwCheck(); ?>
|
||||
|
||||
<footer>
|
||||
<p>
|
||||
© 2025 <a href="https://siskel.dev">SiskelDev</a>. All rights reserved.<br>
|
||||
All trademarks are property of their respective owners in the US and other countries.<br>
|
||||
Information displayed on furatalog.xyz is provided without any guarantee of accuracy or currency.
|
||||
</p>
|
||||
</footer>
|
||||
|
||||
<?php $lib->printScriptSec(); ?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
require_once("/var/www/furatalog-misc/furatalog.lib.php");
|
||||
$lib = new furatalogLib();
|
||||
$lib->init();
|
||||
|
||||
$section = 2;
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo file_get_contents("/var/www/furatalog-cdn/mainHead.html"); ?>
|
||||
<title>Avatars - Furatalog.xyz</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="navigation">
|
||||
<a href="/">Home</a>
|
||||
<a class="nocursor nohover">|</a>
|
||||
<a href="/assets/" class="navitem">Assets</a>
|
||||
<a href="/bases/" class="navitem">Avatar-Bases</a>
|
||||
<a href="/avatars/" class="navitem active">Avatars</a>
|
||||
<a href="/worlds/" class="navitem">Worlds</a>
|
||||
<div class="dropdown">
|
||||
<a class="dropbtn">▼</a>
|
||||
<div class="dropdown-content">
|
||||
<a href="/assets/">Assets</a>
|
||||
<a href="/bases/">Avatar-Bases</a>
|
||||
<a href="/avatars/" class="active">Avatars</a>
|
||||
<a href="/worlds/">Worlds</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<form action="./">
|
||||
<input name="s" type="text" placeholder="Search 🔍" autoComplete='off' value="<?php echo $_GET["s"]; ?>">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main">
|
||||
<?php $lib->printItemLists($section); ?>
|
||||
</div>
|
||||
|
||||
<?php $lib->printNsfwCheck(); ?>
|
||||
|
||||
<footer>
|
||||
<p>
|
||||
© 2025 <a href="https://siskel.dev">SiskelDev</a>. All rights reserved.<br>
|
||||
All trademarks are property of their respective owners in the US and other countries.<br>
|
||||
Information displayed on furatalog.xyz is provided without any guarantee of accuracy or currency.
|
||||
</p>
|
||||
</footer>
|
||||
|
||||
<?php $lib->printScriptSec(); ?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
require_once("/var/www/furatalog-misc/furatalog.lib.php");
|
||||
$lib = new furatalogLib();
|
||||
$lib->init();
|
||||
|
||||
$section = 3;
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo file_get_contents("/var/www/furatalog-cdn/mainHead.html"); ?>
|
||||
<title>Avatar-Bases - Furatalog.xyz</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="navigation">
|
||||
<a href="/">Home</a>
|
||||
<a class="nocursor nohover">|</a>
|
||||
<a href="/assets/" class="navitem">Assets</a>
|
||||
<a href="/bases/" class="navitem active">Avatar-Bases</a>
|
||||
<a href="/avatars/" class="navitem">Avatars</a>
|
||||
<a href="/worlds/" class="navitem">Worlds</a>
|
||||
<div class="dropdown">
|
||||
<a class="dropbtn">▼</a>
|
||||
<div class="dropdown-content">
|
||||
<a href="/assets/">Assets</a>
|
||||
<a href="/bases/">Avatar-Bases</a>
|
||||
<a href="/avatars/" class="active">Avatars</a>
|
||||
<a href="/worlds/">Worlds</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<form action="./">
|
||||
<input name="s" type="text" placeholder="Search 🔍" autoComplete='off' value="<?php echo $_GET["s"]; ?>">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main">
|
||||
<?php $lib->printItemLists($section); ?>
|
||||
</div>
|
||||
|
||||
<?php $lib->printNsfwCheck(); ?>
|
||||
|
||||
<footer>
|
||||
<p>
|
||||
© 2025 <a href="https://siskel.dev">SiskelDev</a>. All rights reserved.<br>
|
||||
All trademarks are property of their respective owners in the US and other countries.<br>
|
||||
Information displayed on furatalog.xyz is provided without any guarantee of accuracy or currency.
|
||||
</p>
|
||||
</footer>
|
||||
|
||||
<?php $lib->printScriptSec(); ?>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Page Title</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<iframe src="https://jinxxy.com/chaosfur/NovaCyberSpine" width="1000" height="500">
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>https://furatalog.xyz/</loc>
|
||||
<lastmod>2025-05-14</lastmod>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://furatalog.xyz/assets/</loc>
|
||||
<lastmod>2025-05-14</lastmod>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://furatalog.xyz/bases/</loc>
|
||||
<lastmod>2025-05-14</lastmod>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://furatalog.xyz/avatars/</loc>
|
||||
<lastmod>2025-05-14</lastmod>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://furatalog.xyz/worlds/</loc>
|
||||
<lastmod>2025-05-14</lastmod>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
</urlset>
|
||||
@@ -0,0 +1,55 @@
|
||||
let startX;
|
||||
|
||||
document.addEventListener('touchstart', function(event) {
|
||||
if (event.touches.length > 1) {
|
||||
event.preventDefault();
|
||||
return;
|
||||
}
|
||||
startX = event.touches[0].clientX; // Get the starting X position
|
||||
});
|
||||
|
||||
document.addEventListener('touchmove', function(event) {
|
||||
if (event.touches.length > 1) {
|
||||
event.preventDefault();
|
||||
return;
|
||||
}
|
||||
|
||||
const moveX = event.touches[0].clientX; // Get the current X position
|
||||
const diffX = startX - moveX; // Calculate the difference
|
||||
|
||||
if (Math.abs(diffX) > 100) { // Check if the swipe is significant
|
||||
document.getElementsByClassName("itemlist")[0].classList.add(diffX > 0 ? 'swipe-left' : 'swipe-right');
|
||||
document.getElementsByClassName("itemlist")[1].classList.add(diffX > 0 ? 'swipe-left' : 'swipe-right');
|
||||
try {
|
||||
document.getElementsByClassName("itemlist")[2].classList.add(diffX > 0 ? 'swipe-left' : 'swipe-right');
|
||||
} catch(err) {
|
||||
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
if (diffX > 0) {
|
||||
if (currentPage < (maxpages)) {
|
||||
window.location.href = './' + nextpage;
|
||||
}
|
||||
} else {
|
||||
if (currentPage > 1) {
|
||||
window.location.href = './' + prevpage;
|
||||
}
|
||||
}
|
||||
}, 500);
|
||||
event.preventDefault();
|
||||
}
|
||||
});
|
||||
|
||||
document.addEventListener('transitionend', function() {
|
||||
setTimeout(()=> {
|
||||
document.getElementsByClassName("itemlist")[0].classList.remove('swipe-left', 'swipe-right');
|
||||
document.getElementsByClassName("itemlist")[1].classList.remove('swipe-left', 'swipe-right');
|
||||
|
||||
try {
|
||||
document.getElementsByClassName("itemlist")[2].classList.remove('swipe-left', 'swipe-right');
|
||||
} catch(err) {
|
||||
|
||||
}
|
||||
}, 300);
|
||||
});
|
||||
@@ -0,0 +1,29 @@
|
||||
:root {
|
||||
/** Base colors */
|
||||
--clr-dark-a0: #000000;
|
||||
--clr-light-a0: #ffffff;
|
||||
|
||||
/** Dark theme primary colors */
|
||||
--clr-primary-a0: #00ff00;
|
||||
--clr-primary-a10: #52ff3f;
|
||||
--clr-primary-a20: #75ff5e;
|
||||
--clr-primary-a30: #8fff78;
|
||||
--clr-primary-a40: #a6ff90;
|
||||
--clr-primary-a50: #baffa7;
|
||||
|
||||
/** Dark theme surface colors */
|
||||
--clr-surface-a0: #121212;
|
||||
--clr-surface-a10: #282828;
|
||||
--clr-surface-a20: #3f3f3f;
|
||||
--clr-surface-a30: #575757;
|
||||
--clr-surface-a40: #717171;
|
||||
--clr-surface-a50: #8b8b8b;
|
||||
|
||||
/** Dark theme tonal surface colors */
|
||||
--clr-surface-tonal-a0: #1b2617;
|
||||
--clr-surface-tonal-a10: #303a2c;
|
||||
--clr-surface-tonal-a20: #475043;
|
||||
--clr-surface-tonal-a30: #5e675b;
|
||||
--clr-surface-tonal-a40: #777e74;
|
||||
--clr-surface-tonal-a50: #91978e;
|
||||
}
|
||||
@@ -0,0 +1,972 @@
|
||||
html, body {
|
||||
color: var(--clr-light-a0);
|
||||
background-color: var(--clr-surface-a0);
|
||||
margin: 0px;
|
||||
font-family: DM Sans, Roboto, -apple-system, Segoe UI, sans-serif;
|
||||
overflow-x: hidden;
|
||||
|
||||
touch-action: pan-y;
|
||||
transition: transform 0.5s ease;
|
||||
max-width: 100%;
|
||||
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* For Chrome, Edge, and Safari */
|
||||
::-webkit-scrollbar {
|
||||
width: 4px; /* Width of the scrollbar */
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: var(--clr-surface-a10) /* Track color */
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: var(--clr-surface-a40); /* Thumb color */
|
||||
border-radius: 10px; /* Rounded corners */
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: var(--clr-surface-a50); /* Thumb color on hover */
|
||||
}
|
||||
|
||||
/* For Firefox */
|
||||
body {
|
||||
scrollbar-color: var(--clr-surface-a50) var(--clr-surface-a10); /* Thumb color and track color */
|
||||
scrollbar-width: thin; /* Makes the scrollbar thinner */
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.swipe-left {
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
|
||||
.swipe-right {
|
||||
transform: translateX(100%);
|
||||
}
|
||||
|
||||
.navigation {
|
||||
width: 75%;
|
||||
background-color: var(--clr-surface-a10);
|
||||
color: var(--clr-light-a0);
|
||||
padding: 10px 12.5%;
|
||||
|
||||
z-index: 100;
|
||||
|
||||
position: fixed;
|
||||
top: 0;
|
||||
|
||||
height: 23px;
|
||||
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.navigation a {
|
||||
text-decoration: none;
|
||||
color: var(--clr-light-a0);
|
||||
font-weight: 800;
|
||||
padding: 0px 10px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.navigation .right {
|
||||
float: right;
|
||||
|
||||
top: -8px;
|
||||
display: block;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.navigation .right input[type="text"] {
|
||||
padding: 10px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
background-color: var(--clr-surface-a10);
|
||||
color: var(--clr-surface-a50);
|
||||
font-size: 16px;
|
||||
text-align: end;
|
||||
height: 19px;
|
||||
}
|
||||
|
||||
.navigation .active {
|
||||
color: var(--clr-primary-a0);
|
||||
}
|
||||
|
||||
.navigation .nocursor {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.navigation .nohover:hover {
|
||||
background-color: inherit !important;
|
||||
}
|
||||
|
||||
.itemlist {
|
||||
max-width: 80%;
|
||||
justify-self: center;
|
||||
width: 100%;
|
||||
padding: 10px 10% 10px 10%;
|
||||
display: grid;
|
||||
justify-content: center;
|
||||
justify-items: center;
|
||||
grid-template-columns: repeat(5, 1fr);
|
||||
grid-template-rows: 1fr;
|
||||
grid-column-gap: 10px;
|
||||
grid-row-gap: 10px;
|
||||
transition: transform 0.5s ease;
|
||||
background-color: var(--clr-surface-a0);
|
||||
}
|
||||
|
||||
.itemlist .item-background {
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 1;
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
-webkit-filter: blur(5px);
|
||||
-moz-filter: blur(5px);
|
||||
-o-filter: blur(5px);
|
||||
-ms-filter: blur(5px);
|
||||
filter: blur(5px);
|
||||
}
|
||||
|
||||
.itemlist .item {
|
||||
/*background-color: var(--clr-surface-a10);*/
|
||||
color: var(--clr-light-a0);
|
||||
/*padding: 10px;*/
|
||||
border-radius: 5px;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
|
||||
height: 100%;
|
||||
|
||||
backdrop-filter: blur(10px) brightness(50%);
|
||||
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.itemlist .item img {
|
||||
width: 100%;
|
||||
border-radius: 5px 5px 0px 0px;
|
||||
aspect-ratio: 1 / 1;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.itemlist .item a.price {
|
||||
color: var(--clr-primary-a30);
|
||||
font-weight: 700;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.itemlist .item .item-info {
|
||||
display: block;
|
||||
color: var(--clr-light-a0);
|
||||
padding: 10px;
|
||||
border-radius: 5px;
|
||||
text-align: center;
|
||||
justify-items: center;
|
||||
cursor: pointer;
|
||||
z-index: 2;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.itemlist .item .item-info img {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
border-radius: 50%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.itemlist .item .item-info .name {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
display: block;
|
||||
text-align: center;
|
||||
max-width: 100%;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.itemlist .item .item-info .creator {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
display: block;
|
||||
text-align: start;
|
||||
max-width: 100%;
|
||||
width: 150px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.itemlist .item .item-info .info {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
width: 95%;
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.itemlist .item img.plattform {
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
border-radius: 50%;
|
||||
object-fit: cover;
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
right: 5px;
|
||||
}
|
||||
|
||||
.itemlist .item img.preview {
|
||||
min-width: 100%;
|
||||
}
|
||||
|
||||
.itemlist .item-container {
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
border-radius: 5px;
|
||||
width: 100%;
|
||||
min-width: 100%;
|
||||
}
|
||||
|
||||
.itemlistnext {
|
||||
position: fixed;
|
||||
top: 40px;
|
||||
left: 100%;
|
||||
}
|
||||
|
||||
.itemlistprev {
|
||||
position: fixed;
|
||||
top: 40px;
|
||||
left: -100%;
|
||||
}
|
||||
|
||||
.main {
|
||||
max-width: 100%;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: grid;
|
||||
}
|
||||
|
||||
.home {
|
||||
margin-top: 80px;
|
||||
justify-items: center;
|
||||
}
|
||||
|
||||
.home p.desc {
|
||||
max-width: 80%;
|
||||
width: 80%;
|
||||
text-align: center;
|
||||
margin-bottom: 80px;
|
||||
padding: 0px 10%;
|
||||
}
|
||||
|
||||
.home h1 {
|
||||
max-width: 80%;
|
||||
width: 80%;
|
||||
text-align: center;
|
||||
padding: 0px 10%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.select-section {
|
||||
max-width: 60%;
|
||||
justify-self: center;
|
||||
width: 100%;
|
||||
padding: 10px 20% 10px 20%;
|
||||
display: grid;
|
||||
justify-content: center;
|
||||
justify-items: center;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
grid-template-rows: 1fr;
|
||||
grid-column-gap: 10px;
|
||||
grid-row-gap: 10px;
|
||||
transition: transform 0.5s ease;
|
||||
}
|
||||
|
||||
.select-section .item-background {
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 1;
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
-webkit-filter: blur(5px);
|
||||
-moz-filter: blur(5px);
|
||||
-o-filter: blur(5px);
|
||||
-ms-filter: blur(5px);
|
||||
filter: blur(5px);
|
||||
}
|
||||
|
||||
.select-section .section {
|
||||
/*background-color: var(--clr-surface-a10);*/
|
||||
color: var(--clr-light-a0);
|
||||
/*padding: 10px;*/
|
||||
border-radius: 5px;
|
||||
text-align: center;
|
||||
justify-items: center;
|
||||
cursor: pointer;
|
||||
|
||||
height: 100%;
|
||||
|
||||
backdrop-filter: blur(3px) brightness(50%);
|
||||
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
|
||||
width: 100%;
|
||||
|
||||
align-content: center;
|
||||
}
|
||||
|
||||
.select-section .section .section-info {
|
||||
color: var(--clr-light-a0);
|
||||
padding: 10px;
|
||||
border-radius: 5px;
|
||||
text-align: center;
|
||||
justify-items: center;
|
||||
cursor: pointer;
|
||||
z-index: 2;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
display: grid;
|
||||
height: calc(100% - 20px);
|
||||
}
|
||||
|
||||
.select-section .section .section-info p {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
display: block;
|
||||
text-align: center;
|
||||
max-width: 100%;
|
||||
width: 100%;
|
||||
margin-bottom: 5px;
|
||||
|
||||
text-decoration: none !important;
|
||||
font-size: x-large;
|
||||
|
||||
align-self: center;
|
||||
|
||||
}
|
||||
|
||||
.select-section .section .section-info desc.desc {
|
||||
font-size: large;
|
||||
}
|
||||
|
||||
.select-section .selection-container {
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
border-radius: 5px;
|
||||
width: 100%;
|
||||
min-height: 200px;
|
||||
}
|
||||
|
||||
.select-section .selection-container a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.dropdown {
|
||||
display: none;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.dropbtn {
|
||||
background-color: var(--clr-surface-a10);
|
||||
color: white;
|
||||
padding: 14px 20px;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.dropdown-content {
|
||||
padding-top: 10px;
|
||||
border-radius: 5px;
|
||||
display: none;
|
||||
position: absolute;
|
||||
background-color: var(--clr-surface-a10);
|
||||
min-width: 160px;
|
||||
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.dropdown-content a {
|
||||
color: var(--clr-light-a0);
|
||||
padding: 12px 16px;
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.dropdown:hover .dropdown-content {
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
footer {
|
||||
position: static;
|
||||
bottom: 0px;
|
||||
background-color: var(--clr-black-a0);
|
||||
color: var(--clr-surface-a50);
|
||||
text-align: center;
|
||||
padding: 20px;
|
||||
margin-top: auto; /* Pushes footer to the bottom */
|
||||
font-family: monospace, consolas, sans-serif;
|
||||
font-size: 14px;
|
||||
|
||||
}
|
||||
|
||||
footer a {
|
||||
color: var(--clr-primary-a30);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.login-container {
|
||||
max-width: 100%;
|
||||
width: 40%;
|
||||
justify-content: center;
|
||||
justify-items: center;
|
||||
transition: transform 0.5s ease;
|
||||
background-color: var(--clr-surface-a0);
|
||||
align-content: center;
|
||||
height: 100%;
|
||||
padding: 20% 30%;
|
||||
}
|
||||
|
||||
.login-container form {
|
||||
display: grid;
|
||||
justify-content: center;
|
||||
justify-items: center;
|
||||
grid-template-columns: repeat(1, 1fr);
|
||||
grid-template-rows: 1fr;
|
||||
grid-column-gap: 10px;
|
||||
grid-row-gap: 10px;
|
||||
transition: transform 0.5s ease;
|
||||
background-color: var(--clr-surface-a0);
|
||||
}
|
||||
|
||||
.login-container form input[type="text"], .login-container form input[type="password"] {
|
||||
padding: 10px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
background-color: var(--clr-surface-a10);
|
||||
color: var(--clr-surface-a50);
|
||||
font-size: 16px;
|
||||
text-align: start;
|
||||
width: 100%;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.login-container form input[type="submit"] {
|
||||
padding: 10px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
background-color: var(--clr-primary-a0);
|
||||
color: var(--clr-dark-a0);
|
||||
font-size: 16px;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.login-container .backbutton {
|
||||
padding: 10px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
color: var(--clr-surface-a20);
|
||||
font-size: 16px;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* The side navigation menu */
|
||||
.sidebar {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 250px;
|
||||
background-color: var(--clr-surface-a10);
|
||||
position: fixed;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/* Sidebar links */
|
||||
.sidebar a {
|
||||
display: block;
|
||||
color: var(--clr-light-a0);
|
||||
padding: 16px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* Active/current link */
|
||||
.sidebar a.active {
|
||||
background-color: var(--clr-surface-a20);
|
||||
color: var(--clr-primary-a0);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
/* Links on mouse-over */
|
||||
.sidebar a:hover:not(.active) {
|
||||
background-color: #555;
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* Page content. The value of the margin-left property should match the value of the sidebar's width property */
|
||||
div.content {
|
||||
margin-left: 200px;
|
||||
padding: 1px 16px;
|
||||
height: calc(100% - 60px);
|
||||
}
|
||||
|
||||
/* On screens that are less than 700px wide, make the sidebar into a topbar */
|
||||
@media screen and (max-width: 700px) {
|
||||
.sidebar {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.sidebar a {
|
||||
float: left;
|
||||
}
|
||||
|
||||
div.content {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
|
||||
.itemlist {
|
||||
max-width: 99%;
|
||||
}
|
||||
}
|
||||
|
||||
/* On screens that are less than 400px, display the bar vertically, instead of horizontally */
|
||||
@media screen and (max-width: 400px) {
|
||||
.sidebar a {
|
||||
text-align: center;
|
||||
float: none;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.adminpanel {
|
||||
max-width: 100%;
|
||||
width: 100%;
|
||||
justify-content: center;
|
||||
justify-items: center;
|
||||
transition: transform 0.5s ease;
|
||||
background-color: var(--clr-surface-a0);
|
||||
align-content: center;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.insert {
|
||||
height: 50%;
|
||||
width: 100%;
|
||||
align-content: center;
|
||||
justify-items: center;
|
||||
min-height: 550px;
|
||||
}
|
||||
|
||||
.insert h2 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.insert form {
|
||||
justify-content: center;
|
||||
align-content: center;
|
||||
transition: transform 0.5s ease;
|
||||
background-color: var(--clr-surface-a0);
|
||||
width: fit-content;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.insert form input[type="text"] {
|
||||
padding: 10px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
background-color: var(--clr-surface-a10);
|
||||
color: var(--clr-surface-a50);
|
||||
font-size: 16px;
|
||||
text-align: start;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.insert form input[type="submit"] {
|
||||
padding: 10px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
background-color: var(--clr-primary-a0);
|
||||
color: var(--clr-dark-a0);
|
||||
font-size: 16px;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.insert form select {
|
||||
padding: 10px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
background-color: var(--clr-surface-a10);
|
||||
color: var(--clr-surface-a50);
|
||||
font-size: 16px;
|
||||
text-align: start;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.insert form input[type="checkbox"]#nsfw {
|
||||
padding: 10px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
background-color: var(--clr-surface-a10);
|
||||
color: var(--clr-surface-a50);
|
||||
font-size: 16px;
|
||||
text-align: start;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.specieslist {
|
||||
max-height: 300px;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.insert-result {
|
||||
height: 50%;
|
||||
width: 100%;
|
||||
justify-items: center;
|
||||
}
|
||||
|
||||
.insert-result .summary {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
flex-direction: row;
|
||||
column-gap: 55px;
|
||||
}
|
||||
|
||||
.insert-result .summary table {
|
||||
border: 1px solid var(--clr-surface-a50);
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.insert-result .summary table th {
|
||||
border-bottom: 1px solid var(--clr-surface-a50);
|
||||
}
|
||||
|
||||
.insert-result .summary table td {
|
||||
border-bottom: 1px solid var(--clr-surface-a50);
|
||||
border-left: 1px solid var(--clr-surface-a50);
|
||||
padding: 0px 10px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.insert-result .item-background {
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 1;
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
-webkit-filter: blur(5px);
|
||||
-moz-filter: blur(5px);
|
||||
-o-filter: blur(5px);
|
||||
-ms-filter: blur(5px);
|
||||
filter: blur(5px);
|
||||
}
|
||||
|
||||
.insert-result .item {
|
||||
/*background-color: var(--clr-surface-a10);*/
|
||||
color: var(--clr-light-a0);
|
||||
/*padding: 10px;*/
|
||||
border-radius: 5px;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
|
||||
height: 100%;
|
||||
|
||||
backdrop-filter: blur(10px) brightness(50%);
|
||||
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.insert-result .item img {
|
||||
width: 100%;
|
||||
border-radius: 5px 5px 0px 0px;
|
||||
aspect-ratio: 1 / 1;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.insert-result .item a.price {
|
||||
color: var(--clr-primary-a30);
|
||||
font-weight: 700;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.insert-result .item .item-info {
|
||||
display: block;
|
||||
color: var(--clr-light-a0);
|
||||
padding: 10px;
|
||||
border-radius: 5px;
|
||||
text-align: center;
|
||||
justify-items: center;
|
||||
cursor: pointer;
|
||||
z-index: 2;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.insert-result .item .item-info img {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
border-radius: 50%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.insert-result .item .item-info .name {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
display: block;
|
||||
text-align: center;
|
||||
max-width: 100%;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.insert-result .item .item-info .creator {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
display: block;
|
||||
text-align: start;
|
||||
max-width: 100%;
|
||||
width: 150px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.insert-result .item .item-info .info {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
width: 95%;
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.insert-result .item-container {
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
border-radius: 5px;
|
||||
|
||||
margin-top: 30px;
|
||||
height: 400px;
|
||||
width: 310px;
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.nsfwcheck {
|
||||
padding: 10px;
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
background-color: var(--clr-surface-a10);
|
||||
color: var(--clr-light-a0);
|
||||
font-size: 16px;
|
||||
text-align: start;
|
||||
margin-bottom: 10px;
|
||||
width: inherit;
|
||||
position: fixed;
|
||||
bottom: 10px;
|
||||
right: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.nsfwcheck a {
|
||||
color: var(--clr-primary-a0);
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
padding: 0px 15px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@media screen and (min-width: 2500px) {
|
||||
.itemlist {
|
||||
grid-template-columns: repeat(8, 1fr);
|
||||
max-width: 90%;
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.navigation {
|
||||
width: 90%;
|
||||
padding: 10px 5%;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1200px) {
|
||||
.itemlist {
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1000px) {
|
||||
.itemlist {
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
}
|
||||
|
||||
.select-section {
|
||||
max-width: 95%;
|
||||
width: 100%;
|
||||
padding: 10px 10% 10px 10%;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
|
||||
.nsfwcheck {
|
||||
width: 100%;
|
||||
height: 100px;
|
||||
bottom: 0px;
|
||||
margin-bottom: 0px;
|
||||
right: 0px;
|
||||
margin-right: 0px;
|
||||
border-radius: 0px;
|
||||
font-size: 20px;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.nsfwcheck a {
|
||||
font-size: 20px;
|
||||
background: var(--clr-surface-a20);
|
||||
border-radius: 5px;
|
||||
padding: 5px 15px;
|
||||
display: block;
|
||||
margin: 0px 10px;
|
||||
}
|
||||
|
||||
.nsfwcheck div.answers {
|
||||
margin-top: 10px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1000px) {
|
||||
.dropdown {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.navitem {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 700px) {
|
||||
.itemlist {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
|
||||
.select-section {
|
||||
max-width: 80%;
|
||||
width: 100%;
|
||||
padding: 10px 10% 10px 10%;
|
||||
grid-template-columns: repeat(1, 1fr);
|
||||
}
|
||||
|
||||
.navigation {
|
||||
width: calc(100% - 20px);
|
||||
padding: 10px 10px;
|
||||
}
|
||||
}
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 112 KiB |
@@ -0,0 +1,109 @@
|
||||
<?php
|
||||
require_once("/var/www/furatalog-misc/furatalog.lib.php");
|
||||
$lib = new furatalogLib();
|
||||
$lib->init();
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo file_get_contents("/var/www/furatalog-cdn/mainHead.html"); ?>
|
||||
<title>Furatalog.xyz</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="navigation">
|
||||
<a href="/" class="active">Home</a>
|
||||
<a class="nocursor nohover">|</a>
|
||||
<a href="/assets/" class="navitem">Assets</a>
|
||||
<a href="/bases/" class="navitem">Avatar-Bases</a>
|
||||
<a href="/avatars/" class="navitem">Avatars</a>
|
||||
<a href="/worlds/" class="navitem">Worlds</a>
|
||||
|
||||
<div class="dropdown">
|
||||
<a class="dropbtn">▼</a>
|
||||
<div class="dropdown-content">
|
||||
<a href="/assets/">Assets</a>
|
||||
<a href="/bases/">Avatar-Bases</a>
|
||||
<a href="/avatars/">Avatars</a>
|
||||
<a href="/worlds/">Worlds</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<form action="./">
|
||||
<input name="s" type="text" placeholder="Search 🔍" autoComplete='off' value="<?php echo $_GET["s"]; ?>">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
if (isset($_GET["s"]) && $_GET["s"] != "") {
|
||||
echo "<div class=\"main\">";
|
||||
|
||||
$lib->printItemLists("");
|
||||
|
||||
echo "</div>";
|
||||
|
||||
$lib->printScriptSec();
|
||||
} else {
|
||||
echo "<div class=\"main\">
|
||||
<div class=\"home\">
|
||||
<h1>Welcome to Furatalog.xyz</h1>
|
||||
<p class=\"desc\">Here you can find a collection of Furry-Assets, Furry-Avatars, and Worlds for VRChat. Use the navigation bar to get started or click on one of the items below!</p>
|
||||
<div class=\"select-section\">
|
||||
<div class='selection-container' style=\"background-image: url('https://public-files.gumroad.com/ffgjnu1jmnc5oxnxhlqx9aj2huhu')\">
|
||||
<a href='/assets/'>
|
||||
<div class='section'>
|
||||
<div class='section-info'>
|
||||
<p>Furry Assets</p>
|
||||
<desc>Assets to put on Avatars</desc>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class='selection-container' style=\"background-image: url('https://booth.pximg.net/63bb113e-c342-4a1d-9041-17363a0b3811/i/4615547/9639d0fc-d290-4bb3-9418-0840b75c97eb_base_resized.jpg')\">
|
||||
<a href='/avatars/'>
|
||||
<div class='section'>
|
||||
<div class='section-info'>
|
||||
<p>Furry Avatars</p>
|
||||
<desc>Preset Avatars, Ready for Upload</desc>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class='selection-container' style=\"background-image: url('https://public-files.gumroad.com/a6iwxttouelpic5r2396wl7kmib1')\">
|
||||
<a href='/bases/'>
|
||||
<div class='section'>
|
||||
<div class='section-info'>
|
||||
<p>Furry Bases</p>
|
||||
<desc>Just the Base Model</desc>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class='selection-container' style=\"background-image: url('https://public-files.gumroad.com/6s31pw5838bavkhdrgckizymduw7')\">
|
||||
<a href='/worlds/'>
|
||||
<div class='section'>
|
||||
<div class='section-info'>
|
||||
<p>Worlds</p>
|
||||
<desc>Preset Worlds, Ready for Upload</desc>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>";
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<?php $lib->printNsfwCheck(); ?>
|
||||
|
||||
<footer>
|
||||
<p>
|
||||
© 2025 <a href="https://siskel.dev">SiskelDev</a>. All rights reserved.<br>
|
||||
All trademarks are property of their respective owners in the US and other countries.<br>
|
||||
Information displayed on furatalog.xyz is provided without any guarantee of accuracy or currency.
|
||||
</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
require_once("/var/www/furatalog-misc/furatalog.lib.php");
|
||||
$lib = new furatalogLib();
|
||||
$lib->init();
|
||||
|
||||
if (isset($_POST["url"]) && $_POST) {
|
||||
$url = $_POST["url"];
|
||||
|
||||
$url = str_replace("'","\'", $url);
|
||||
$url = str_replace("\"","\\\"", $url);
|
||||
|
||||
|
||||
}
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo file_get_contents("/var/www/furatalog-cdn/mainHead.html"); ?>
|
||||
<title>Furatalog.xyz</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="navigation">
|
||||
<a href="/" class="active">Home</a>
|
||||
<a class="nocursor nohover">|</a>
|
||||
<a href="/assets/" class="navitem">Assets</a>
|
||||
<a href="/bases/" class="navitem">Avatar-Bases</a>
|
||||
<a href="/avatars/" class="navitem">Avatars</a>
|
||||
<a href="/worlds/" class="navitem">Worlds</a>
|
||||
|
||||
<div class="dropdown">
|
||||
<a class="dropbtn">▼</a>
|
||||
<div class="dropdown-content">
|
||||
<a href="/assets/">Assets</a>
|
||||
<a href="/bases/">Avatar-Bases</a>
|
||||
<a href="/avatars/">Avatars</a>
|
||||
<a href="/worlds/">Worlds</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<form action="./">
|
||||
<input name="s" type="text" placeholder="Search 🔍" autoComplete='off' value="<?php echo $_GET["s"]; ?>">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main">
|
||||
<form action="/submit/" method="post">
|
||||
<input type="text" name="url">
|
||||
</form>
|
||||
</div>
|
||||
<footer>
|
||||
<p>
|
||||
© 2025 <a href="https://siskel.dev">SiskelDev</a>. All rights reserved.<br>
|
||||
All trademarks are property of their respective owners in the US and other countries.<br>
|
||||
Information displayed on furatalog.xyz is provided without any guarantee of accuracy or currency.
|
||||
</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
require_once("/var/www/furatalog-misc/furatalog.lib.php");
|
||||
$lib = new furatalogLib();
|
||||
$lib->init();
|
||||
|
||||
$section = 4;
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php echo file_get_contents("/var/www/furatalog-cdn/mainHead.html"); ?>
|
||||
<title>Worlds - Furatalog.xyz</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="navigation">
|
||||
<a href="/">Home</a>
|
||||
<a class="nocursor nohover">|</a>
|
||||
<a href="/assets/" class="navitem">Assets</a>
|
||||
<a href="/bases/" class="navitem">Avatar-Bases</a>
|
||||
<a href="/avatars/" class="navitem">Avatars</a>
|
||||
<a href="/worlds/" class="navitem active">Worlds</a>
|
||||
<div class="dropdown">
|
||||
<a class="dropbtn">▼</a>
|
||||
<div class="dropdown-content">
|
||||
<a href="/assets/">Assets</a>
|
||||
<a href="/bases/">Avatar-Bases</a>
|
||||
<a href="/avatars/">Avatars</a>
|
||||
<a href="/worlds/" class="active">Worlds</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<form action="./">
|
||||
<input name="s" type="text" placeholder="Search 🔍" autoComplete='off' value="<?php echo $_GET["s"]; ?>">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main">
|
||||
<?php $lib->printItemLists($section); ?>
|
||||
</div>
|
||||
|
||||
<?php $lib->printNsfwCheck(); ?>
|
||||
|
||||
<footer>
|
||||
<p>
|
||||
© 2025 <a href="https://siskel.dev">SiskelDev</a>. All rights reserved.<br>
|
||||
All trademarks are property of their respective owners in the US and other countries.<br>
|
||||
Information displayed on furatalog.xyz is provided without any guarantee of accuracy or currency.
|
||||
</p>
|
||||
</footer>
|
||||
|
||||
<?php $lib->printScriptSec(); ?>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user