Delete templates directory
This commit is contained in:
@@ -1,56 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<meta name="description" content="PacCrypt - 403 Forbidden Access" />
|
|
||||||
<title>403 Forbidden - PacCrypt</title>
|
|
||||||
|
|
||||||
<!-- Favicon -->
|
|
||||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/PacCrypt.png') }}" />
|
|
||||||
|
|
||||||
<!-- Stylesheets -->
|
|
||||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}" />
|
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- Scripts -->
|
|
||||||
<script type="module" src="{{ url_for('static', filename='js/main.js') }}"></script>
|
|
||||||
</head>
|
|
||||||
<body class="dark">
|
|
||||||
<!-- Header -->
|
|
||||||
<header class="card logo-header">
|
|
||||||
<div class="logo-container">
|
|
||||||
<img src="{{ url_for('static', filename='img/PacCrypt.png') }}" alt="PacCrypt Logo" />
|
|
||||||
<div class="logo-text">
|
|
||||||
<h1>PACCRYPT</h1>
|
|
||||||
<p>Securely Share Text and Files</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<!-- Main Content -->
|
|
||||||
<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>
|
|
||||||
|
|
||||||
<!-- Navigation -->
|
|
||||||
<div class="button-group mt-4">
|
|
||||||
<a href="{{ url_for('index') }}">
|
|
||||||
<button type="button">Return Home</button>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<!-- Footer -->
|
|
||||||
<footer>
|
|
||||||
<p>© 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>
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<meta name="description" content="PacCrypt - 404 Page Not Found" />
|
|
||||||
<title>404 Not Found - PacCrypt</title>
|
|
||||||
|
|
||||||
<!-- Favicon -->
|
|
||||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/PacCrypt.png') }}" />
|
|
||||||
|
|
||||||
<!-- Stylesheets -->
|
|
||||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}" />
|
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- Scripts -->
|
|
||||||
<script type="module" src="{{ url_for('static', filename='js/main.js') }}"></script>
|
|
||||||
</head>
|
|
||||||
<body class="dark">
|
|
||||||
<!-- Header -->
|
|
||||||
<header class="card logo-header">
|
|
||||||
<div class="logo-container">
|
|
||||||
<img src="{{ url_for('static', filename='img/PacCrypt.png') }}" alt="PacCrypt Logo" />
|
|
||||||
<div class="logo-text">
|
|
||||||
<h1>PACCRYPT</h1>
|
|
||||||
<p>Securely Share Text and Files</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<!-- Main Content -->
|
|
||||||
<main>
|
|
||||||
<section class="card form-group" style="padding: 50px 30px;">
|
|
||||||
<h2 style="color: #ff0066; font-size: 2.5em;">404 - Not Found</h2>
|
|
||||||
<p style="font-size: 1.2em; color: #cccccc;">
|
|
||||||
Whoops! That page doesn't seem to exist. Maybe it got encrypted?
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<!-- Navigation -->
|
|
||||||
<div class="button-group">
|
|
||||||
<a href="{{ url_for('index') }}">
|
|
||||||
<button type="button">Return Home</button>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<!-- Footer -->
|
|
||||||
<footer>
|
|
||||||
<p>© 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>
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<meta name="description" content="PacCrypt - 500 Internal Server Error" />
|
|
||||||
<title>500 Server Error - PacCrypt</title>
|
|
||||||
|
|
||||||
<!-- Favicon -->
|
|
||||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/PacCrypt.png') }}" />
|
|
||||||
|
|
||||||
<!-- Stylesheets -->
|
|
||||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}" />
|
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- Scripts -->
|
|
||||||
<script type="module" src="{{ url_for('static', filename='js/main.js') }}"></script>
|
|
||||||
</head>
|
|
||||||
<body class="dark">
|
|
||||||
<!-- Header -->
|
|
||||||
<header class="card logo-header">
|
|
||||||
<div class="logo-container">
|
|
||||||
<img src="{{ url_for('static', filename='img/PacCrypt.png') }}" alt="PacCrypt Logo" />
|
|
||||||
<div class="logo-text">
|
|
||||||
<h1>PACCRYPT</h1>
|
|
||||||
<p>Securely Share Text and Files</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<!-- Main Content -->
|
|
||||||
<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.
|
|
||||||
We're working on patching it up.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<!-- Navigation -->
|
|
||||||
<div class="button-group mt-4">
|
|
||||||
<a href="{{ url_for('index') }}">
|
|
||||||
<button type="button">Return Home</button>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<!-- Footer -->
|
|
||||||
<footer>
|
|
||||||
<p>© 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>
|
|
||||||
@@ -1,257 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<meta name="description" content="PacCrypt - Admin Panel" />
|
|
||||||
<title>Admin Panel - PacCrypt</title>
|
|
||||||
|
|
||||||
<!-- Favicon -->
|
|
||||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/PacCrypt.png') }}" />
|
|
||||||
|
|
||||||
<!-- Stylesheets -->
|
|
||||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}" />
|
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- Scripts -->
|
|
||||||
<script type="module" src="{{ url_for('static', filename='js/main.js') }}"></script>
|
|
||||||
</head>
|
|
||||||
<body class="dark">
|
|
||||||
|
|
||||||
<!-- Header -->
|
|
||||||
<header class="card logo-header">
|
|
||||||
<div class="logo-container">
|
|
||||||
<img src="{{ url_for('static', filename='img/PacCrypt.png') }}" alt="PacCrypt Logo" />
|
|
||||||
<div class="logo-text">
|
|
||||||
<h1>PACCRYPT</h1>
|
|
||||||
<p>ADMIN PANEL</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<!-- Main Content -->
|
|
||||||
<main>
|
|
||||||
<!-- Site Map Section -->
|
|
||||||
<section id="sitemap-section" class="card form-group">
|
|
||||||
<h2>Server Management</h2>
|
|
||||||
|
|
||||||
<div class="sitemap-header">
|
|
||||||
<button onclick="toggleSitemap()" style="margin-bottom: 10px;">Show Site Map</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="sitemap-list" class="sitemap-content" style="display: none;">
|
|
||||||
<ul style="list-style: none; padding-left: 0;">
|
|
||||||
{% for route in routes %}
|
|
||||||
<li style="margin-bottom: 5px;"><code>{{ route }}</code></li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Server Management Buttons -->
|
|
||||||
<div class="admin-button-grid">
|
|
||||||
<button onclick="restartServer()">Restart Server</button>
|
|
||||||
<form action="{{ url_for('admin_logout') }}" method="GET" style="display: inline;">
|
|
||||||
<button type="submit">Log Out</button>
|
|
||||||
</form>
|
|
||||||
<button onclick="updateServer()">Update Server</button>
|
|
||||||
<form action="{{ url_for('admin_settings') }}" method="GET" style="display: inline;">
|
|
||||||
<button type="submit">Settings</button>
|
|
||||||
</form>
|
|
||||||
<button onclick="resetAdmin()" class="danger-button">Reset Admin</button>
|
|
||||||
<button onclick="clearUploads()" class="danger-button">Clear PacShare</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Flash Messages -->
|
|
||||||
<div id="admin-feedback" class="copy-feedback" style="display: none;"></div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Password Change Section -->
|
|
||||||
<section id="password-change-section" class="card form-group">
|
|
||||||
<h2>Change Admin Password</h2>
|
|
||||||
|
|
||||||
<!-- Password Feedback -->
|
|
||||||
{% 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 %}
|
|
||||||
|
|
||||||
<!-- Password Change Form -->
|
|
||||||
<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>
|
|
||||||
|
|
||||||
<!-- Server Status Section -->
|
|
||||||
<section id="server-status-section" class="card form-group">
|
|
||||||
<h2>Server Status</h2>
|
|
||||||
<ul class="status-list">
|
|
||||||
<li>Uptime: <code>{{ server_info.uptime }}</code></li>
|
|
||||||
<li>Server Time: <code>{{ server_info.server_time }}</code></li>
|
|
||||||
<li>Python Version: <code>{{ server_info.python_version }}</code></li>
|
|
||||||
<li>Flask Debug Mode: <code>{{ server_info.debug_mode }}</code></li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Server Logs Section -->
|
|
||||||
<section id="server-logs-section" class="card form-group">
|
|
||||||
<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;"></pre>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Footer -->
|
|
||||||
<footer>
|
|
||||||
<p>© 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>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
function toggleSitemap() {
|
|
||||||
const list = document.getElementById('sitemap-list');
|
|
||||||
const button = document.querySelector('.sitemap-header button');
|
|
||||||
|
|
||||||
if (list.style.display === 'none') {
|
|
||||||
list.style.display = 'block';
|
|
||||||
button.textContent = 'Hide Site Map';
|
|
||||||
} else {
|
|
||||||
list.style.display = 'none';
|
|
||||||
button.textContent = 'Show Site Map';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function restartServer() {
|
|
||||||
if (!confirm('Are you sure you want to restart the server? This will temporarily disconnect all users.')) return;
|
|
||||||
|
|
||||||
try {
|
|
||||||
const response = await fetch('{{ url_for("restart_server") }}', {
|
|
||||||
method: 'POST',
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const data = await response.json();
|
|
||||||
|
|
||||||
if (response.ok) {
|
|
||||||
showFeedback(data.message);
|
|
||||||
// Add a small delay before redirecting to allow the server to restart
|
|
||||||
setTimeout(() => {
|
|
||||||
window.location.reload();
|
|
||||||
}, 2000);
|
|
||||||
} else {
|
|
||||||
showFeedback(data.error || 'Failed to restart server.');
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
showFeedback('Failed to restart server.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function updateServer() {
|
|
||||||
if (!confirm('Are you sure you want to pull the latest changes from GitHub?')) return;
|
|
||||||
|
|
||||||
try {
|
|
||||||
const response = await fetch('{{ url_for("admin_update_server") }}', {
|
|
||||||
method: 'POST',
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const data = await response.json();
|
|
||||||
|
|
||||||
if (response.ok) {
|
|
||||||
showFeedback(data.message);
|
|
||||||
} else {
|
|
||||||
showFeedback(data.error || 'Failed to update server from GitHub.');
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
showFeedback('Failed to update server from GitHub.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function resetAdmin() {
|
|
||||||
if (!confirm('Are you sure you want to reset admin credentials?')) return;
|
|
||||||
|
|
||||||
try {
|
|
||||||
const response = await fetch('{{ url_for("admin_reset") }}', {
|
|
||||||
method: 'POST',
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (response.ok) {
|
|
||||||
showFeedback('Admin credentials reset. Please create new credentials.');
|
|
||||||
setTimeout(() => {
|
|
||||||
window.location.href = '{{ url_for("admin_setup") }}';
|
|
||||||
}, 2000);
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
showFeedback('Failed to reset admin credentials.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function clearUploads() {
|
|
||||||
if (!confirm('Are you sure you want to delete ALL uploaded files?')) return;
|
|
||||||
|
|
||||||
try {
|
|
||||||
const response = await fetch('{{ url_for("admin_clear_uploads") }}', {
|
|
||||||
method: 'POST',
|
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (response.ok) {
|
|
||||||
showFeedback('All uploaded files have been cleared.');
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
showFeedback('Failed to clear uploaded files.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function showFeedback(message) {
|
|
||||||
const feedback = document.getElementById('admin-feedback');
|
|
||||||
feedback.textContent = message;
|
|
||||||
feedback.style.display = 'block';
|
|
||||||
feedback.classList.add('show');
|
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
feedback.classList.remove('show');
|
|
||||||
setTimeout(() => {
|
|
||||||
feedback.style.display = 'none';
|
|
||||||
}, 300);
|
|
||||||
}, 3000);
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<meta name="description" content="PacCrypt - Admin Login" />
|
|
||||||
<title>Admin Login - PacCrypt</title>
|
|
||||||
|
|
||||||
<!-- Favicon -->
|
|
||||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/PacCrypt.png') }}" />
|
|
||||||
|
|
||||||
<!-- Stylesheets -->
|
|
||||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}" />
|
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- Scripts -->
|
|
||||||
<script type="module" src="{{ url_for('static', filename='js/main.js') }}"></script>
|
|
||||||
</head>
|
|
||||||
<body class="dark">
|
|
||||||
<!-- Header -->
|
|
||||||
<header class="card logo-header">
|
|
||||||
<div class="logo-container">
|
|
||||||
<img src="{{ url_for('static', filename='img/PacCrypt.png') }}" alt="PacCrypt Logo" />
|
|
||||||
<div class="logo-text">
|
|
||||||
<h1>PACCRYPT</h1>
|
|
||||||
<p>Admin Login</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
<!-- Main Content -->
|
|
||||||
<main>
|
|
||||||
<!-- Login Form Section -->
|
|
||||||
<section class="card form-group">
|
|
||||||
<h2>Admin Login</h2>
|
|
||||||
|
|
||||||
<!-- Flash Messages -->
|
|
||||||
{% with messages = get_flashed_messages() %}
|
|
||||||
{% if messages %}
|
|
||||||
<p style="color: red;">{{ messages[0] }}</p>
|
|
||||||
{% endif %}
|
|
||||||
{% endwith %}
|
|
||||||
|
|
||||||
<!-- Login Form -->
|
|
||||||
<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 -->
|
|
||||||
<footer>
|
|
||||||
<p>© 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>
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<meta name="description" content="PacCrypt - Admin Settings" />
|
|
||||||
<title>Admin Settings - PacCrypt</title>
|
|
||||||
|
|
||||||
<!-- Favicon -->
|
|
||||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/PacCrypt.png') }}" />
|
|
||||||
|
|
||||||
<!-- Stylesheets -->
|
|
||||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}" />
|
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap" rel="stylesheet">
|
|
||||||
|
|
||||||
</head>
|
|
||||||
<body class="dark">
|
|
||||||
<!-- Header -->
|
|
||||||
<!-- Header -->
|
|
||||||
<header class="card logo-header">
|
|
||||||
<div class="logo-container">
|
|
||||||
<img src="{{ url_for('static', filename='img/PacCrypt.png') }}" alt="PacCrypt Logo" />
|
|
||||||
<div class="logo-text">
|
|
||||||
<h1>PACCRYPT</h1>
|
|
||||||
<p>Server Settings</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
<!-- Main Content -->
|
|
||||||
<main>
|
|
||||||
<!-- Settings Form Section -->
|
|
||||||
<section class="card form-group">
|
|
||||||
<h2>Upload Settings</h2>
|
|
||||||
|
|
||||||
<!-- Flash Messages -->
|
|
||||||
{% with messages = get_flashed_messages() %}
|
|
||||||
{% if messages %}
|
|
||||||
<ul style="color: lime;">
|
|
||||||
{% for message in messages %}
|
|
||||||
<li>{{ message }}</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% endif %}
|
|
||||||
{% endwith %}
|
|
||||||
|
|
||||||
<!-- Settings Form -->
|
|
||||||
<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 />
|
|
||||||
|
|
||||||
<!-- Action Buttons -->
|
|
||||||
<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>© 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>
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<meta name="description" content="PacCrypt - Admin Setup" />
|
|
||||||
<title>PacCrypt - Admin Setup</title>
|
|
||||||
|
|
||||||
<!-- Favicon -->
|
|
||||||
<link rel="icon" type="image/png" href="{{ url_for('static', filename='img/PacCrypt.png') }}" />
|
|
||||||
|
|
||||||
<!-- Stylesheets -->
|
|
||||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}" />
|
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- Scripts -->
|
|
||||||
<script type="module" src="{{ url_for('static', filename='js/main.js') }}"></script>
|
|
||||||
</head>
|
|
||||||
<body class="dark">
|
|
||||||
<!-- Header -->
|
|
||||||
<header class="card logo-header">
|
|
||||||
<div class="logo-container">
|
|
||||||
<img src="{{ url_for('static', filename='img/PacCrypt.png') }}" alt="PacCrypt Logo" />
|
|
||||||
<div class="logo-text">
|
|
||||||
<h1>PACCRYPT</h1>
|
|
||||||
<p>Admin Setup</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<!-- Main Content -->
|
|
||||||
<main>
|
|
||||||
<!-- Setup Form Section -->
|
|
||||||
<section class="card form-group">
|
|
||||||
<h2>Create Admin Account</h2>
|
|
||||||
|
|
||||||
<!-- Flash Messages -->
|
|
||||||
{% with messages = get_flashed_messages() %}
|
|
||||||
{% if messages %}
|
|
||||||
<p style="color: red;">{{ messages[0] }}</p>
|
|
||||||
{% endif %}
|
|
||||||
{% endwith %}
|
|
||||||
|
|
||||||
<!-- Setup Form -->
|
|
||||||
<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>© 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>
|
|
||||||
@@ -1,211 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<meta name="description" content="PacCrypt - Secure text and file encryption with password generation" />
|
|
||||||
<title>PacCrypt</title>
|
|
||||||
|
|
||||||
<!-- Favicon -->
|
|
||||||
<link rel="icon" href="{{ url_for('static', filename='img/PacCrypt.png') }}" type="image/png" />
|
|
||||||
|
|
||||||
<!-- Stylesheets -->
|
|
||||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}" />
|
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- Scripts -->
|
|
||||||
<script type="module" src="{{ url_for('static', filename='js/main.js') }}" defer></script>
|
|
||||||
</head>
|
|
||||||
<body class="dark">
|
|
||||||
<!-- Header -->
|
|
||||||
<header class="card logo-header">
|
|
||||||
<div class="logo-container">
|
|
||||||
<img src="{{ url_for('static', filename='img/PacCrypt.png') }}" alt="PacCrypt Logo" />
|
|
||||||
<div class="logo-text">
|
|
||||||
<h1>PACCRYPT</h1>
|
|
||||||
<p>Securely Share Text and Files</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<!-- Main Content -->
|
|
||||||
<main>
|
|
||||||
<!-- Password Generator Section -->
|
|
||||||
<section id="password-generator-section" class="card form-group">
|
|
||||||
<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 Password</button>
|
|
||||||
</div>
|
|
||||||
<div id="password-copy-feedback" class="copy-feedback">Password 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" style="margin-top: 6px;">
|
|
||||||
<button type="button" onclick="resetGame()">Restart Game</button>
|
|
||||||
<button type="button" onclick="exitGame()">Exit Game</button>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Encryption/Decryption Section -->
|
|
||||||
<section id="encoding-section" class="card form-group">
|
|
||||||
<h2>Encrypt & Decrypt</h2>
|
|
||||||
<form id="crypto-form" class="form-group">
|
|
||||||
<!-- Encryption Type Selection -->
|
|
||||||
<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>
|
|
||||||
|
|
||||||
<!-- Operation Toggle -->
|
|
||||||
<div class="toggle-container">
|
|
||||||
<span class="toggle-label">Encrypt</span>
|
|
||||||
<label class="material-switch">
|
|
||||||
<input type="checkbox" id="operation-toggle">
|
|
||||||
<span class="material-slider"></span>
|
|
||||||
</label>
|
|
||||||
<span class="toggle-label">Decrypt</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Text Input Section -->
|
|
||||||
<div id="text-section" class="form-group">
|
|
||||||
<textarea id="input-text" placeholder="Enter your message..."></textarea>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Password Input -->
|
|
||||||
<div id="password-input" class="form-group">
|
|
||||||
<input type="password" id="password" placeholder="Encryption/Decryption Password" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- File Input Section -->
|
|
||||||
<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>
|
|
||||||
|
|
||||||
<!-- Action Buttons -->
|
|
||||||
<div class="button-group">
|
|
||||||
<button type="submit">Execute</button>
|
|
||||||
<button type="button" id="copy-output-btn">Copy Output</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Output Section -->
|
|
||||||
<textarea id="output-text" readonly placeholder="Encrypted/Decrypted Output"></textarea>
|
|
||||||
<div class="button-group">
|
|
||||||
<button type="button" id="clear-all-btn" class="danger-button">Clear All</button>
|
|
||||||
</div>
|
|
||||||
<div id="output-copy-feedback" class="copy-feedback">Text copied to clipboard!</div>
|
|
||||||
</form>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- File Sharing Section -->
|
|
||||||
<section id="sharing-section" class="card form-group">
|
|
||||||
<h2 style="margin-bottom: unset;">PacShare</h2>
|
|
||||||
<p style="margin-top: unset;">Securely share encrypted files.</p>
|
|
||||||
|
|
||||||
<!-- Flash Messages -->
|
|
||||||
{% 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 %}
|
|
||||||
<div class="share-link-container">
|
|
||||||
<a id="share-link" href="{{ message.split(' at ')[1] }}" target="_blank">{{ message.split(" at ")[1] }}</a>
|
|
||||||
<button type="button" onclick="copyShareLink()">Copy Link</button>
|
|
||||||
<div id="shared-link-feedback" class="copy-feedback">Link copied to clipboard!</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
<script>window.onload = () => window.scrollTo(0, document.body.scrollHeight);</script>
|
|
||||||
{% endif %}
|
|
||||||
{% endwith %}
|
|
||||||
|
|
||||||
|
|
||||||
<!-- File Upload Form -->
|
|
||||||
<!-- Share Link Container (initially hidden) -->
|
|
||||||
<div class="share-link-container" id="share-link-container" style="display: none;">
|
|
||||||
<a id="share-link" href="#" target="_blank"></a>
|
|
||||||
<button type="button" id="copy-share-btn">Copy Link</button>
|
|
||||||
<div id="shared-link-feedback" class="copy-feedback">Link copied to clipboard!</div>
|
|
||||||
</div>
|
|
||||||
<form method="POST" enctype="multipart/form-data" class="form-group" id="upload-form">
|
|
||||||
<input type="file" name="file" id="upload-file" required />
|
|
||||||
<input type="password" name="enc_password" placeholder="Encryption/Decryption Password" required />
|
|
||||||
<input type="password" name="pickup_password" placeholder="Pickup Password" required />
|
|
||||||
<div class="button-group">
|
|
||||||
<button type="submit">Upload and Generate Link</button>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
<p style="color: #9c0000;">BOTH PASSWORDS ARE REQUIRED FOR PICKUP</p>
|
|
||||||
<script>
|
|
||||||
document.getElementById('upload-form').addEventListener('submit', async (e) => {
|
|
||||||
e.preventDefault();
|
|
||||||
const formData = new FormData(e.target);
|
|
||||||
|
|
||||||
try {
|
|
||||||
const response = await fetch('/', {
|
|
||||||
method: 'POST',
|
|
||||||
body: formData
|
|
||||||
});
|
|
||||||
const data = await response.json();
|
|
||||||
|
|
||||||
if (data.error) {
|
|
||||||
alert(data.error);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (data.success && data.pickup_url) {
|
|
||||||
const shareLink = document.getElementById('share-link');
|
|
||||||
const shareLinkContainer = document.getElementById('share-link-container');
|
|
||||||
|
|
||||||
shareLink.href = data.pickup_url;
|
|
||||||
shareLink.textContent = data.pickup_url;
|
|
||||||
shareLinkContainer.style.display = 'flex';
|
|
||||||
|
|
||||||
// Clear form fields
|
|
||||||
document.getElementById('upload-file').value = '';
|
|
||||||
document.getElementsByName('enc_password')[0].value = '';
|
|
||||||
document.getElementsByName('pickup_password')[0].value = '';
|
|
||||||
|
|
||||||
// Scroll to the share link
|
|
||||||
shareLinkContainer.scrollIntoView({ behavior: 'smooth' });
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
alert('Error uploading file: ' + error.message);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- File Limits Information -->
|
|
||||||
<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>© 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>
|
|
||||||
@@ -1,99 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<meta name="description" content="PacCrypt - Secure file pickup and decryption" />
|
|
||||||
<title>PacCrypt - Secure File Pickup</title>
|
|
||||||
|
|
||||||
<!-- Favicon -->
|
|
||||||
<link rel="icon" href="{{ url_for('static', filename='img/PacCrypt.png') }}" type="image/png" />
|
|
||||||
|
|
||||||
<!-- Stylesheets -->
|
|
||||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/styles.css') }}" />
|
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap" rel="stylesheet">
|
|
||||||
</head>
|
|
||||||
<body class="dark">
|
|
||||||
<!-- Header -->
|
|
||||||
<header class="card logo-header">
|
|
||||||
<div class="logo-container">
|
|
||||||
<img src="{{ url_for('static', filename='img/PacCrypt.png') }}" alt="PacCrypt Logo" />
|
|
||||||
<div class="logo-text">
|
|
||||||
<h1>PACCRYPT</h1>
|
|
||||||
<p>Encrypted File Pickup</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<!-- Main Content -->
|
|
||||||
<main>
|
|
||||||
<!-- File Pickup Section -->
|
|
||||||
<section id="pickup-section" class="card form-group">
|
|
||||||
<h2>File Pickup</h2>
|
|
||||||
|
|
||||||
<!-- Flash Messages -->
|
|
||||||
{% with messages = get_flashed_messages() %}
|
|
||||||
{% if messages %}
|
|
||||||
<ul style="color: lime; list-style: none; padding-left: 0;">
|
|
||||||
{% for message in messages %}
|
|
||||||
<li>{{ message }}</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% endif %}
|
|
||||||
{% endwith %}
|
|
||||||
|
|
||||||
<!-- File Info -->
|
|
||||||
<div class="form-group">
|
|
||||||
<p style="color: #00ff99; margin-bottom: 15px;">File ID: <code>{{ file_id }}</code></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Pickup Form -->
|
|
||||||
<form method="POST" class="form-group">
|
|
||||||
<div class="form-group">
|
|
||||||
<input type="password"
|
|
||||||
name="pickup_password"
|
|
||||||
placeholder="Pickup Password"
|
|
||||||
required
|
|
||||||
autocomplete="off" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-group">
|
|
||||||
<input type="password"
|
|
||||||
name="enc_password"
|
|
||||||
placeholder="Encryption Password"
|
|
||||||
required
|
|
||||||
autocomplete="off" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="button-group">
|
|
||||||
<button type="submit">Decrypt and Download</button>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Security Notice Section -->
|
|
||||||
<section id="security-notice-section" class="card form-group">
|
|
||||||
<h2>Security Notice</h2>
|
|
||||||
<p style="color: #00ff99; text-align: center;">
|
|
||||||
Make sure you're on the correct domain before entering any passwords.<br>
|
|
||||||
Your file will be permanently deleted after download.
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Link ID Section -->
|
|
||||||
<section id="link-id-section" class="card form-group">
|
|
||||||
<p style="color: #00ff99; text-align: center; font-family: monospace; font-size: 1.1em;">
|
|
||||||
Link ID: <code>{{ file_id }}</code>
|
|
||||||
</p>
|
|
||||||
</section>
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<!-- Footer -->
|
|
||||||
<footer>
|
|
||||||
<p>© 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>
|
|
||||||
Reference in New Issue
Block a user