Sigma
This commit is contained in:
parent
d0dc547680
commit
06be8925e8
@ -37,3 +37,15 @@ body {
|
|||||||
background-color: #007acc;
|
background-color: #007acc;
|
||||||
border-color: #007acc;
|
border-color: #007acc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (max-width: 991.98px) {
|
||||||
|
.split-container {
|
||||||
|
flex-direction: column;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.editor-container, .output-container {
|
||||||
|
height: 50vh; /* Adjust as needed */
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -8,6 +8,8 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
const saveBtn = document.getElementById('save-btn');
|
const saveBtn = document.getElementById('save-btn');
|
||||||
const loadBtn = document.getElementById('load-btn');
|
const loadBtn = document.getElementById('load-btn');
|
||||||
const clearOutputBtn = document.getElementById('clear-output-btn');
|
const clearOutputBtn = document.getElementById('clear-output-btn');
|
||||||
|
const runBtn = document.getElementById('run-btn');
|
||||||
|
const runOutput = document.getElementById('run-output');
|
||||||
const obfuscatedOutput = document.getElementById('obfuscated-output');
|
const obfuscatedOutput = document.getElementById('obfuscated-output');
|
||||||
const loader = document.getElementById('loader');
|
const loader = document.getElementById('loader');
|
||||||
const versionSpan = document.getElementById('luau-version');
|
const versionSpan = document.getElementById('luau-version');
|
||||||
@ -248,12 +250,62 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// --- Split View ---
|
// --- Split View ---
|
||||||
Split(['#split-0', '#split-1'], {
|
let split;
|
||||||
sizes: [50, 50],
|
|
||||||
minSize: 200,
|
function setupSplit() {
|
||||||
gutterSize: 8,
|
if (window.innerWidth < 992) {
|
||||||
onDrag: function() {
|
if (split) {
|
||||||
editor.resize();
|
split.destroy();
|
||||||
|
split = null;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!split) {
|
||||||
|
split = Split(['#split-0', '#split-1'], {
|
||||||
|
sizes: [50, 50],
|
||||||
|
minSize: 200,
|
||||||
|
gutterSize: 8,
|
||||||
|
onDrag: function() {
|
||||||
|
editor.resize();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
window.addEventListener('resize', setupSplit);
|
||||||
|
setupSplit(); // Initial call
|
||||||
|
|
||||||
|
runBtn.addEventListener('click', async () => {
|
||||||
|
const code = editor.getValue();
|
||||||
|
runOutput.textContent = '';
|
||||||
|
loader.style.display = 'block';
|
||||||
|
runBtn.disabled = true;
|
||||||
|
|
||||||
|
// Give the UI a moment to update
|
||||||
|
await new Promise(resolve => setTimeout(resolve, 50));
|
||||||
|
|
||||||
|
try {
|
||||||
|
const formData = new FormData();
|
||||||
|
formData.append('code', code);
|
||||||
|
|
||||||
|
const response = await fetch('run.php', {
|
||||||
|
method: 'POST',
|
||||||
|
body: formData
|
||||||
|
});
|
||||||
|
|
||||||
|
if (response.ok) {
|
||||||
|
const result = await response.text();
|
||||||
|
runOutput.textContent = result;
|
||||||
|
} else {
|
||||||
|
runOutput.textContent = `Error: ${response.statusText}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (err) {
|
||||||
|
runOutput.textContent = `Error: ${err.message}`;
|
||||||
|
console.error(err);
|
||||||
|
} finally {
|
||||||
|
loader.style.display = 'none';
|
||||||
|
runBtn.disabled = false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
63
index.php
63
index.php
@ -37,37 +37,46 @@
|
|||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<a class="navbar-brand" href="#">Luau Obfuscator</a>
|
<a class="navbar-brand" href="#">Luau Obfuscator</a>
|
||||||
<div class="ms-auto d-flex align-items-center">
|
<div class="ms-auto d-flex align-items-center">
|
||||||
<span id="luau-version" class="navbar-text me-3">Loading Luau...</span>
|
<span id="luau-version" class="navbar-text me-3 d-none d-lg-inline">Loading Luau...</span>
|
||||||
<span id="save-status" class="navbar-text me-3"></span>
|
|
||||||
|
|
||||||
<div class="btn-group me-2" role="group">
|
<div class="btn-group me-2" role="group">
|
||||||
<button class="btn btn-primary" id="obfuscate-btn">Obfuscate</button>
|
<button class="btn btn-primary" id="obfuscate-btn">Obfuscate</button>
|
||||||
|
<button class="btn btn-success" id="run-btn">Run</button>
|
||||||
</div>
|
</div>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
<div class="btn-group me-2" role="group">
|
<span class="navbar-toggler-icon"></span>
|
||||||
<button class="btn btn-outline-secondary" id="save-btn">Save</button>
|
|
||||||
<button class="btn btn-outline-secondary" id="load-btn">Restore</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="dropdown me-2">
|
|
||||||
<button class="btn btn-secondary dropdown-toggle" type="button" id="examples-dropdown" data-bs-toggle="dropdown" aria-expanded="false">
|
|
||||||
Load Example
|
|
||||||
</button>
|
|
||||||
<ul class="dropdown-menu dropdown-menu-dark" aria-labelledby="examples-dropdown" id="examples-menu">
|
|
||||||
<!-- Examples will be populated by JS -->
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<button class="btn btn-outline-light" id="clear-output-btn">Clear Obfuscated</button>
|
|
||||||
|
|
||||||
<button class="btn btn-info ms-2" id="share-btn" data-bs-toggle="modal" data-bs-target="#share-modal">
|
|
||||||
<i class="bi bi-share-fill"></i> Share
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<button class="btn btn-outline-light ms-2" id="settings-btn" data-bs-toggle="modal" data-bs-target="#settings-modal">
|
|
||||||
<i class="bi bi-gear-fill"></i>
|
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
|
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
|
||||||
|
<li class="nav-item d-lg-none"><span id="luau-version-mobile" class="navbar-text">Loading Luau...</span></li>
|
||||||
|
<li class="nav-item"><span id="save-status" class="navbar-text"></span></li>
|
||||||
|
<li class="nav-item btn-group" role="group">
|
||||||
|
<button class="btn btn-outline-secondary" id="save-btn">Save</button>
|
||||||
|
<button class="btn btn-outline-secondary" id="load-btn">Restore</button>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="examples-dropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
Load Example
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-dark" aria-labelledby="examples-dropdown" id="examples-menu">
|
||||||
|
<!-- Examples will be populated by JS -->
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<button class="btn btn-outline-light" id="clear-output-btn">Clear Obfuscated</button>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<button class="btn btn-info ms-2" id="share-btn" data-bs-toggle="modal" data-bs-target="#share-modal">
|
||||||
|
<i class="bi bi-share-fill"></i> Share
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<button class="btn btn-outline-light ms-2" id="settings-btn" data-bs-toggle="modal" data-bs-target="#settings-modal">
|
||||||
|
<i class="bi bi-gear-fill"></i>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
@ -82,6 +91,8 @@ print("Current time: " .. os.date())</div>
|
|||||||
<span class="visually-hidden">Loading...</span>
|
<span class="visually-hidden">Loading...</span>
|
||||||
</div>
|
</div>
|
||||||
<pre id="obfuscated-output"></pre>
|
<pre id="obfuscated-output"></pre>
|
||||||
|
<h5 class="text-light">Run Output</h5>
|
||||||
|
<pre id="run-output"></pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|||||||
15
run.php
Executable file
15
run.php
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
if (isset($_POST['code'])) {
|
||||||
|
$code = $_POST['code'];
|
||||||
|
$tmp_dir = '/home/ubuntu/.gemini/tmp/ec2c6b8cb2ac3d6ef62b888a61e62d5ab1e71e46b3c4963f2a040a3c33c7038b/';
|
||||||
|
$file = tempnam($tmp_dir, 'luau_');
|
||||||
|
file_put_contents($file, $code);
|
||||||
|
|
||||||
|
$output = shell_exec("luau " . escapeshellarg($file) . " 2>&1");
|
||||||
|
unlink($file);
|
||||||
|
|
||||||
|
echo $output;
|
||||||
|
} else {
|
||||||
|
echo "No code provided.";
|
||||||
|
}
|
||||||
|
?>
|
||||||
Loading…
x
Reference in New Issue
Block a user