Lots of new features

See release for more info
This commit is contained in:
Tyler
2025-04-29 16:38:33 -10:00
committed by GitHub
parent 265dff3329
commit 6ad2b65aba
20 changed files with 2034 additions and 442 deletions
+33 -30
View File
@@ -1,42 +1,45 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>403 - PacCrypt</title>
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/PacCrypt.png') }}">
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}">
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>403 - PacCrypt</title>
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/PacCrypt.png') }}" />
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}" />
<script type="module" src="{{ url_for('static', filename='js/main.js') }}"></script>
</head>
<body class="dark">
<header class="card" style="margin-bottom: 20px;">
<h1>PacCrypt</h1>
<p>Secure Encoding, Encryption and Password Generation</p>
</header>
<header class="card mb-5">
<h1>PacCrypt</h1>
<p>Secure Encoding, Encryption and Password Generation</p>
</header>
<main>
<section class="card" style="padding: 50px 30px;">
<h2 style="color: #00ff99; font-size: 2.5em;">403 - Forbidden</h2>
<p style="margin-top: 20px; font-size: 1.2em; color: #cccccc;">
Looks like this area is locked behind a secret ghost door! 🛡️👻
</p>
<main>
<section class="card form-group" style="padding: 50px 30px;">
<h2 style="color: #00ff99; font-size: 2.5em;">🚫 403 - Forbidden</h2>
<p class="mt-4" style="font-size: 1.2em; color: #cccccc;">
Looks like this area is locked behind a secret ghost door! 🛡️👻
</p>
<div class="button-group" style="margin-top: 30px;">
<a href="{{ url_for('index') }}">
<button type="button">Return Home</button>
<div class="button-group mt-4">
<a href="{{ url_for('index') }}">
<button type="button">⬅️ Return Home</button>
</a>
</div>
</section>
</main>
<!-- Footer -->
<footer>
<p>&copy; 2025 UnNaturalll-Dev. All rights reserved.</p>
<a href="https://github.com/TySP-Dev" target="_blank" id="github-link">
<img src="\static\img\Github_logo.png"
alt="GitHub Logo" width="100" />
</a>
</div>
</section>
</main>
<footer class="card" style="margin-top: 20px;">
<p>&copy; 2025 UnNaturalll-Dev. All rights reserved.</p>
<a href="https://github.com/TySP-Dev" target="_blank" id="github-link">
<img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Flogos-world.net%2Fwp-content%2Fuploads%2F2020%2F11%2FGitHub-Logo.png&f=1&nofb=1&ipt=b9d67651e313b2cdbeae8a7ec9320dadb278a21a2e7217810b839c233c04f265"
alt="GitHub Logo" width="100">
</a>
</footer>
</footer>
</body>
</html>
+32 -29
View File
@@ -1,42 +1,45 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>404 - PacCrypt</title>
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/PacCrypt.png') }}">
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}">
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>404 - PacCrypt</title>
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/PacCrypt.png') }}" />
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}" />
<script type="module" src="{{ url_for('static', filename='js/main.js') }}"></script>
</head>
<body class="dark">
<header>
<h1>PacCrypt</h1>
<p>Secure Encoding, Encryption and Password Generation</p>
</header>
<header class="card mb-5">
<h1>PacCrypt</h1>
<p>Secure Encoding, Encryption and Password Generation</p>
</header>
<main>
<main>
<section class="card form-group" style="padding: 50px 30px;">
<h2 style="color: #ff0066; font-size: 2.5em;">❓ 404 - Not Found</h2>
<p class="mt-4" style="font-size: 1.2em; color: #cccccc;">
Whoops! That page doesnt seem to exist. Maybe it got encrypted? 🧩🔐
</p>
<section class="card">
<h2>404 - Page Not Found</h2>
<p>Oops! The page you're looking for doesn't exist.</p>
<div class="button-group mt-4">
<a href="{{ url_for('index') }}">
<button type="button">⬅️ Return Home</button>
</a>
</div>
</section>
</main>
<div class="button-group" style="margin-top: 20px;">
<a href="{{ url_for('index') }}">
<button type="button">Return Home</button>
<!-- Footer -->
<footer>
<p>&copy; 2025 UnNaturalll-Dev. All rights reserved.</p>
<a href="https://github.com/TySP-Dev" target="_blank" id="github-link">
<img src="\static\img\Github_logo.png"
alt="GitHub Logo" width="100" />
</a>
</div>
</section>
</main>
<footer>
<p>&copy; 2025 UnNaturalll-Dev. All rights reserved.</p>
<a href="https://github.com/TySP-Dev" target="_blank" id="github-link">
<img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Flogos-world.net%2Fwp-content%2Fuploads%2F2020%2F11%2FGitHub-Logo.png&f=1&nofb=1&ipt=b9d67651e313b2cdbeae8a7ec9320dadb278a21a2e7217810b839c233c04f265"
alt="GitHub Logo" width="100">
</a>
</footer>
</footer>
</body>
</html>
+34 -30
View File
@@ -1,42 +1,46 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>500 - PacCrypt</title>
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/PacCrypt.png') }}">
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}">
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>500 - PacCrypt</title>
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/PacCrypt.png') }}" />
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}" />
<script type="module" src="{{ url_for('static', filename='js/main.js') }}"></script>
</head>
<body class="dark">
<header class="card" style="margin-bottom: 20px;">
<h1>PacCrypt</h1>
<p>Secure Encoding, Encryption and Password Generation</p>
</header>
<header class="card mb-5">
<h1>PacCrypt</h1>
<p>Secure Encoding, Encryption and Password Generation</p>
</header>
<main>
<section class="card" style="padding: 50px 30px;">
<h2 style="color: #00ff99; font-size: 2.5em;">500 - Server Error</h2>
<p style="margin-top: 20px; font-size: 1.2em; color: #cccccc;">
Uh oh! The ghosts chomped the server. 🧟‍♂️
</p>
<main>
<section class="card form-group" style="padding: 50px 30px;">
<h2 style="color: #ff3300; font-size: 2.5em;">💥 500 - Server Error</h2>
<p class="mt-4" style="font-size: 1.2em; color: #cccccc;">
Uh oh! The ghosts chomped the server wires. 🧟‍♂️👾
Were working on patching it up.
</p>
<div class="button-group" style="margin-top: 30px;">
<a href="{{ url_for('index') }}">
<button type="button">Return Home</button>
<div class="button-group mt-4">
<a href="{{ url_for('index') }}">
<button type="button">⬅️ Return Home</button>
</a>
</div>
</section>
</main>
<!-- Footer -->
<footer>
<p>&copy; 2025 UnNaturalll-Dev. All rights reserved.</p>
<a href="https://github.com/TySP-Dev" target="_blank" id="github-link">
<img src="\static\img\Github_logo.png"
alt="GitHub Logo" width="100" />
</a>
</div>
</section>
</main>
<footer class="card" style="margin-top: 20px;">
<p>&copy; 2025 UnNaturalll-Dev. All rights reserved.</p>
<a href="https://github.com/TySP-Dev" target="_blank" id="github-link">
<img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Flogos-world.net%2Fwp-content%2Fuploads%2F2020%2F11%2FGitHub-Logo.png&f=1&nofb=1&ipt=b9d67651e313b2cdbeae8a7ec9320dadb278a21a2e7217810b839c233c04f265"
alt="GitHub Logo" width="100">
</a>
</footer>
</footer>
</body>
</html>
+155
View File
@@ -0,0 +1,155 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Admin Panel - PacCrypt</title>
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/PacCrypt.png') }}">
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}">
<script type="module" src="{{ url_for('static', filename='js/main.js') }}"></script>
</head>
<body class="dark">
<header class="card mb-5">
<h1>PacCrypt Admin Panel</h1>
<p>Site Overview & Controls</p>
</header>
<main>
<!-- Site Map -->
<section class="card form-group">
<h2>🔍 Site Map</h2>
<ul style="list-style: none; padding-left: 0;">
{% for route in routes %}
<li style="margin-bottom: 5px;">🔗 <code>{{ route }}</code></li>
{% endfor %}
</ul>
<div class="button-group mt-4">
<a href="{{ url_for('restart_server') }}">
<button type="button">🔁 Restart Server</button>
</a>
<a href="{{ url_for('admin_logout') }}">
<button type="button">🚪 Log Out</button>
</a>
</div>
<form action="{{ url_for('admin_reset') }}" method="POST" onsubmit="return confirm('Are you sure you want to reset admin credentials?');">
<button type="submit" class="mt-4" style="background-color: #b90000;">⚠️ Reset Admin</button>
</form>
<form action="{{ url_for('admin_clear_uploads') }}" method="POST"
onsubmit="return confirm('Are you sure you want to delete ALL uploaded files?');">
<button type="submit">🗑 Clear All Uploaded Files</button>
</form>
{% with messages = get_flashed_messages(with_categories=true, category_filter=['clear-feedback']) %}
{% for category, message in messages %}
<div class="copy-feedback show">{{ message }}</div>
{% endfor %}
{% endwith %}
</section>
<!-- Change Admin Password -->
<section class="card form-group mt-5">
<h2>🔑 Change Admin Password</h2>
{% with messages = get_flashed_messages(with_categories=true, category_filter=['password-feedback']) %}
{% for category, message in messages %}
<div class="copy-feedback show">{{ message }}</div>
{% endfor %}
{% endwith %}
<form method="POST" action="{{ url_for('admin_change_password') }}">
<input type="password" name="current_password" placeholder="Current Password" required>
<input type="password" name="new_password" placeholder="New Password" required>
<button type="submit">Update Password</button>
</form>
</section>
<!-- Update Server -->
<section class="card form-group mt-5">
<h2>📦 Update Server from GitHub</h2>
<form method="POST" action="{{ url_for('admin_update_server') }}">
<button type="submit" onclick="return confirm('Are you sure you want to pull the latest changes from GitHub?')">
🔁 Pull Latest Changes
</button>
</form>
{% with update_msgs = get_flashed_messages(category_filter=["update"]) %}
{% if update_msgs %}
<div class="copy-feedback show" style="margin-top: 12px;">
{{ update_msgs[0] | safe }}
</div>
{% endif %}
{% endwith %}
</section>
<!-- Server Status -->
<section class="card form-group mt-5">
<h2>📊 Server Status</h2>
<ul style="list-style: none; padding-left: 0;">
<li>🕒 Uptime: <code>{{ server_info.uptime }}</code></li>
<li>📅 Server Time: <code>{{ server_info.time }}</code></li>
<li>🐍 Python Version: <code>{{ server_info.python }}</code></li>
<li>⚙️ Flask Debug Mode: <code>{{ server_info.debug }}</code></li>
</ul>
</section>
<!-- Server Logs -->
<section class="card form-group mt-5">
<h2>📜 Server Logs</h2>
<button onclick="toggleLogs()" style="margin-bottom: 10px;">🔽 Show/Hide Logs</button>
<div id="logLoader" style="display: none; margin-bottom: 10px;">Loading logs...</div>
<pre id="logContainer" style="display: none; max-height: 400px; overflow-y: auto; background: black; color: lime; padding: 10px; border-radius: 8px;"></pre>
</section>
<!-- System Settings -->
<section class="card form-group mt-5">
<h2>🧩 System Configuration</h2>
<p>You can manage upload storage, limits, and expiration policies here:</p>
<a href="{{ url_for('admin_settings') }}">
<button type="button">🛠️ Manage Upload Settings</button>
</a>
</section>
</main>
<!-- Footer -->
<footer>
<p>&copy; 2025 UnNaturalll-Dev. All rights reserved.</p>
<a href="https://github.com/TySP-Dev" target="_blank" id="github-link">
<img src="\static\img\Github_logo.png"
alt="GitHub Logo" width="100" />
</a>
<a href="{{ url_for('sitemap') }}">
<img src="\static\img\sitemap.png"
alt="Sitemap Png" width="55" />
</a>
</footer>
<!-- Log Viewer Script -->
<script>
async function toggleLogs() {
const logContainer = document.getElementById('logContainer');
const logLoader = document.getElementById('logLoader');
if (logContainer.style.display === 'none') {
logLoader.style.display = 'block';
const response = await fetch('{{ url_for('admin_logs') }}');
const data = await response.json();
logLoader.style.display = 'none';
logContainer.innerText = data.logs.join('\\n');
logContainer.style.display = 'block';
} else {
logContainer.style.display = 'none';
}
}
</script>
</body>
</html>
+48
View File
@@ -0,0 +1,48 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Admin Login - PacCrypt</title>
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/PacCrypt.png') }}">
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}">
<script type="module" src="{{ url_for('static', filename='js/main.js') }}"></script>
</head>
<body class="dark">
<header class="card mb-5">
<h1>PacCrypt Admin</h1>
<p>Administrator Login</p>
</header>
<main>
<section class="card form-group">
<h2>🔑 Admin Login</h2>
{% with messages = get_flashed_messages() %}
{% if messages %}
<p style="color: red;">{{ messages[0] }}</p>
{% endif %}
{% endwith %}
<form method="POST">
<input type="text" name="username" placeholder="Username" required>
<input type="password" name="password" placeholder="Password" required>
<div class="button-group mt-3">
<button type="submit">🚪 Log In</button>
</div>
</form>
</section>
</main>
<footer>
<p>&copy; 2025 UnNaturalll-Dev. All rights reserved.</p>
<a href="https://github.com/TySP-Dev" target="_blank" id="github-link">
<img src="\static\img\Github_logo.png"
alt="GitHub Logo" width="100" />
</a>
</footer>
</body>
</html>
+62
View File
@@ -0,0 +1,62 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Admin Settings - PacCrypt</title>
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/PacCrypt.png') }}">
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}">
</head>
<body class="dark">
<header class="card mb-5">
<h1>PacCrypt Admin Settings</h1>
<p>Manage upload configuration securely</p>
</header>
<main>
<section class="card form-group">
<h2>⚙️ Upload Settings</h2>
{% with messages = get_flashed_messages() %}
{% if messages %}
<ul style="color: lime;">
{% for message in messages %}
<li>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
{% endwith %}
<form method="POST">
<label for="upload_folder">Upload Folder Path:</label>
<input type="text" name="upload_folder" id="upload_folder" value="{{ settings.upload_folder }}" required>
<label for="max_file_age_days">Max File Age (Days):</label>
<input type="number" name="max_file_age_days" id="max_file_age_days" value="{{ settings.max_file_age_days }}" min="1" required>
<label for="max_file_size_gb">Max File Size (GB):</label>
<input type="number" name="max_file_size_gb" id="max_file_size_gb" value="{{ settings.max_file_size_bytes // (1024 * 1024 * 1024) }}" step="0.1" min="0.1" required>
<div class="button-group mt-4">
<button type="submit">💾 Save Settings</button>
<a href="{{ url_for('admin_page') }}">
<button type="button">⬅️ Back to Admin Panel</button>
</a>
</div>
</form>
</section>
</main>
<!-- Footer -->
<footer>
<p>&copy; 2025 UnNaturalll-Dev. All rights reserved.</p>
<a href="https://github.com/TySP-Dev" target="_blank" id="github-link">
<img src="\static\img\Github_logo.png"
alt="GitHub Logo" width="100" />
</a>
</footer>
</body>
</html>
+49
View File
@@ -0,0 +1,49 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Admin Setup - PacCrypt</title>
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/PacCrypt.png') }}">
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}">
<script type="module" src="{{ url_for('static', filename='js/main.js') }}"></script>
</head>
<body class="dark">
<header class="card mb-5">
<h1>PacCrypt Admin</h1>
<p>Secure Admin Setup</p>
</header>
<main>
<section class="card form-group">
<h2>🛡️ Create Admin Account</h2>
{% with messages = get_flashed_messages() %}
{% if messages %}
<p style="color: red;">{{ messages[0] }}</p>
{% endif %}
{% endwith %}
<form method="POST">
<input type="text" name="username" placeholder="Username" required>
<input type="password" name="password" placeholder="Password" required>
<div class="button-group mt-3">
<button type="submit">📝 Set Credentials</button>
</div>
</form>
</section>
</main>
<!-- Footer -->
<footer>
<p>&copy; 2025 UnNaturalll-Dev. All rights reserved.</p>
<a href="https://github.com/TySP-Dev" target="_blank" id="github-link">
<img src="\static\img\Github_logo.png"
alt="GitHub Logo" width="100" />
</a>
</footer>
</body>
</html>
+146 -124
View File
@@ -1,124 +1,146 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>PacCrypt</title>
<!-- Favicon -->
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/PacCrypt.png') }}" />
<!-- Styles and Scripts -->
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}" />
<script defer src="{{ url_for('static', filename='js/script.js') }}"></script>
</head>
<body class="dark">
<!-- Header -->
<header>
<h1>PacCrypt</h1>
<p>Secure Encoding, Encryption and Password Generation</p>
</header>
<main>
<!-- Password Generator Section -->
<section id="password-section" class="card">
<h2>Password Generator</h2>
<div class="form-group">
<input type="text" id="password-field" placeholder="Generated password will appear here" readonly />
<div class="button-group">
<button type="button" onclick="generateRandomPassword()">Generate</button>
<button type="button" onclick="copyToClipboard('password-field', 'password-toast')">Copy</button>
</div>
<div id="password-toast" class="toast">Copied to Clipboard!</div>
</div>
</section>
<!-- Pacman Game Section -->
<section id="pacman-section" class="card" style="display: none;">
<div class="pacman-wrapper">
<canvas id="pacmanCanvas" width="800" height="600"></canvas>
</div>
<audio id="chomp-sound" src="{{ url_for('static', filename='audio/chomp.mp3') }}"></audio>
<div class="button-group">
<button type="button" onclick="resetGame()">Restart Game</button>
<button type="button" onclick="exitGame()">Exit Game</button>
</div>
</section>
<!-- Text Encoder/Decoder & File Encrypt/Decrypt Section -->
<section id="encoding-section" class="card">
<h2>Text Encoder / Decoder & File Encryption</h2>
<form id="main-form" class="form-group" method="POST" onsubmit="handleSubmit(event)">
<!-- Encryption Type Dropdown -->
<label for="encryption-type">Select Encryption Type:</label>
<select id="encryption-type" name="encryption-type" onchange="toggleEncryptionOptions()">
<option value="basic">Basic (Less Secure)</option>
<option value="advanced" selected>Advanced (More Secure)</option>
</select>
<!-- Encrypt / Decrypt Radio Buttons -->
<div id="encryption-options" class="radio-group">
<label class="radio-button">
<input type="radio" name="operation" value="encrypt" id="encrypt-radio" checked />
<span id="encrypt-label">Encrypt</span>
</label>
<label class="radio-button">
<input type="radio" name="operation" value="decrypt" id="decrypt-radio" />
<span id="decrypt-label">Decrypt</span>
</label>
</div>
<!-- Text Area Input -->
<div id="text-section" class="form-group">
<textarea id="input-text" name="message" placeholder="Enter text here..." oninput="toggleInputMode()"></textarea>
</div>
<!-- Password Input (shared for file + text) -->
<div id="password-input" class="form-group">
<input type="password" id="password" name="password" placeholder="Enter Password" />
</div>
<!-- File Upload Section -->
<div id="file-section" class="form-group" style="display: none;">
<input type="file" id="file-input" onchange="toggleInputMode()" />
<button type="button" id="remove-file-btn" onclick="removeFile()">Remove File</button>
</div>
<!-- Submit Button -->
<div class="button-group">
<button type="submit" class="submit-button">Submit</button>
</div>
</form>
<!-- Output Text Area -->
<div style="height: 20px;"></div>
<textarea id="output-text" readonly placeholder="Result will appear here">{{ result }}</textarea>
<!-- Output Controls -->
<div class="button-group">
<button type="button" onclick="copyToClipboard('output-text', 'output-toast')">Copy Output</button>
<button type="button" onclick="clearAll()">Clear All</button>
</div>
<!-- Output Toast Notification -->
<div id="output-toast" class="toast">Copied to Clipboard!</div>
</section>
</main>
<!-- Footer -->
<footer>
<p>&copy; 2025 UnNaturalll-Dev. All rights reserved.</p>
<a href="https://github.com/TySP-Dev" target="_blank" id="github-link">
<img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Flogos-world.net%2Fwp-content%2Fuploads%2F2020%2F11%2FGitHub-Logo.png&f=1&nofb=1&ipt=b9d67651e313b2cdbeae8a7ec9320dadb278a21a2e7217810b839c233c04f265"
alt="GitHub Logo" width="100" />
</a>
</footer>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>PacCrypt</title>
<link rel="icon" href="{{ url_for('static', filename='img/PacCrypt.png') }}" type="image/png" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}" />
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap" rel="stylesheet">
<script type="module" src="{{ url_for('static', filename='js/main.js') }}" defer></script>
</head>
<body class="dark">
<header class="card mb-5">
<h1>PacCrypt</h1>
<p>Encrypt and share your text or files securely</p>
</header>
<main>
<!-- Password Generator -->
<section class="card form-group mt-5">
<h2>🔑 Password Generator</h2>
<div class="form-group">
<input type="text" id="generated-password" readonly />
<div class="button-group">
<button type="button" id="generate-btn">🎲 Generate</button>
<button type="button" id="copy-btn">📋 Copy</button>
</div>
<div id="password-copy-feedback" class="copy-feedback">Copied to clipboard!</div>
</div>
</section>
<!-- Pacman Game Section -->
<section id="pacman-section" class="card" style="display: none;">
<div class="pacman-wrapper">
<canvas id="pacmanCanvas" width="800" height="600"></canvas>
</div>
<audio id="chomp-sound" src="{{ url_for('static', filename='audio/chomp.mp3') }}"></audio>
<div class="button-group">
<button type="button" onclick="resetGame()">Restart Game</button>
<button type="button" onclick="exitGame()">Exit Game</button>
</div>
</section>
<!-- Encrypt & Decrypt Section -->
<section class="card form-group" id="encoding-section">
<h2>🔐 Encrypt & Decrypt</h2>
<form id="crypto-form" class="form-group">
<div class="form-group">
<label for="encryption-type">Encryption Type:</label>
<select id="encryption-type">
<option value="basic">Basic Cipher</option>
<option value="advanced" selected>Advanced AES</option>
</select>
</div>
<div class="toggle-container">
<span id="toggle-left-label">Encrypt</span>
<label class="switch">
<input type="checkbox" id="operation-toggle" />
<span class="slider round"></span>
</label>
<span id="toggle-right-label">Decrypt</span>
</div>
<div id="text-section" class="form-group">
<textarea id="input-text" placeholder="Enter your message..."></textarea>
</div>
<div id="password-input" class="form-group">
<input type="password" id="password" placeholder="Password (AES only)" />
</div>
<div id="file-section" class="form-group" style="display: none;">
<input type="file" id="file-input" />
<button type="button" id="remove-file-btn">🗑 Remove File</button>
</div>
<div class="button-group mt-3">
<button type="submit">⚡ Execute</button>
<button type="button" id="clear-all-btn">🧹 Clear All</button>
</div>
<textarea id="output-text" readonly placeholder="Result will appear here..."></textarea>
<div class="button-group">
<button type="button" id="copy-output-btn">📋 Copy Output</button>
</div>
<div id="output-copy-feedback" class="copy-feedback">Copied to clipboard!</div>
</form>
</section>
<!-- PacCrypt Sharing -->
<section class="card form-group mt-5">
<h2>📤 PacCrypt Sharing</h2>
<p>Securely share a file with encryption and a pickup password.</p>
{% with messages = get_flashed_messages() %}
{% if messages %}
<ul style="color: lime; list-style: none; padding-left: 0;">
{% for message in messages %}
<li>
{{ message | safe }}
{% if "pickup" in message %}
<br />
<span id="shared-link">{{ message.split(" at ")[1] }}</span>
<button type="button" id="copy-shared-link">📋 Copy Link</button>
<div id="shared-link-feedback" class="copy-feedback">Copied to clipboard!</div>
{% endif %}
</li>
{% endfor %}
</ul>
<script>window.onload = () => window.scrollTo(0, document.body.scrollHeight);</script>
{% endif %}
{% endwith %}
<form method="POST" enctype="multipart/form-data" class="form-group">
<input type="file" name="file" id="upload-file" required />
<input type="password" name="enc_password" placeholder="Encryption Password" required />
<input type="password" name="pickup_password" placeholder="Pickup Password" required />
<div class="button-group mt-3">
<button type="submit">🔒 Upload and Generate Link</button>
</div>
</form>
<p class="text-muted mt-3" style="font-size: 0.85em;">
Files expire after {{ settings.max_file_age_days }} days.<br />
Max file size: {{ settings.max_file_size_bytes // (1024 * 1024 * 1024) }} GB.
</p>
</section>
</main>
<!-- Footer -->
<footer>
<p>&copy; 2025 UnNaturalll-Dev. All rights reserved.</p>
<a href="https://github.com/TySP-Dev" target="_blank" id="github-link">
<img src="\static\img\Github_logo.png"
alt="GitHub Logo" width="100" />
</a>
</footer>
</body>
</html>
+56
View File
@@ -0,0 +1,56 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pickup File - PacCrypt</title>
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/PacCrypt.png') }}">
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}">
</head>
<body class="dark">
<header class="card mb-5">
<h1>PacCrypt Pickup</h1>
<p>Enter passwords to retrieve your file securely</p>
</header>
<main>
<section class="card form-group">
<h2>🔐 Decrypt and Download</h2>
{% with messages = get_flashed_messages() %}
{% if messages %}
<ul style="color: red;">
{% for message in messages %}
<li>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
{% endwith %}
<form method="POST">
<input type="password" name="pickup_password" placeholder="Pickup Password" required>
<input type="password" name="enc_password" placeholder="Encryption Password" required>
<div class="button-group mt-3">
<button type="submit">📥 Decrypt and Download</button>
</div>
</form>
</section>
<section class="card form-group mt-5">
<p style="font-size: 0.9em; color: gray;">Link ID: <code>{{ file_id }}</code></p>
</section>
</main>
<!-- Footer -->
<footer>
<p>&copy; 2025 UnNaturalll-Dev. All rights reserved.</p>
<a href="https://github.com/TySP-Dev" target="_blank" id="github-link">
<img src="\static\img\Github_logo.png"
alt="GitHub Logo" width="100" />
</a>
</footer>
</body>
</html>