7 Commits

Author SHA1 Message Date
Gitea Actions
5213bd4e6e Update manifest version to 2.0.4 [▶️] 2026-01-21 23:55:09 +00:00
8ab3f57894 update debug
All checks were successful
Build, Push, Publish / Build & Release (push) Successful in 27s
2026-01-21 20:54:54 -03:00
Gitea Actions
1431c72909 Update manifest version to 2.0.3 [▶️] 2026-01-21 23:52:06 +00:00
9f3e1b7017 update debug
All checks were successful
Build, Push, Publish / Build & Release (push) Successful in 27s
2026-01-21 20:51:50 -03:00
de13c42a13 fix dbug 2026-01-21 20:51:42 -03:00
Gitea Actions
3457c14bbf Update manifest version to 2.0.2 [▶️] 2026-01-21 23:49:50 +00:00
4acb64e852 debug delete temp
All checks were successful
Build, Push, Publish / Build & Release (push) Successful in 28s
2026-01-21 20:45:52 -03:00
2 changed files with 104 additions and 33 deletions

View File

@@ -1,5 +1,5 @@
{
"version": "2.0.1",
"version": "2.0.4",
"author": "Ivan Carlos",
"upstream_sha": ""
}

View File

@@ -180,6 +180,65 @@ function icc_upload_and_shorten_do_page()
}
}
// Manual Cleanup Handler
if (isset($_POST['action']) && $_POST['action'] == 'icc_manual_cleanup') {
$nonce = $_POST['nonce'] ?? '';
if (yourls_verify_nonce('icc_manual_cleanup', $nonce)) {
echo '<div style="background:#fff; border:1px solid #ccc; padding:10px; margin: 10px 0; max-height: 300px; overflow:auto;">';
echo '<strong>Starting Manual Cleanup Diagnostics...</strong><br/>';
$temp_dir = yourls_get_option('icc_upload_share_dir');
if (!$temp_dir) $temp_dir = sys_get_temp_dir();
echo "Target Directory: " . htmlspecialchars($temp_dir) . "<br/>";
if (!is_dir($temp_dir)) {
echo "<span style='color:red'>Directory does not exist!</span><br/>";
} elseif (!is_writable($temp_dir)) {
echo "<span style='color:red'>Directory is not writable! Permissions issues likely.</span><br/>";
} else {
$files = scandir($temp_dir);
$found = 0;
foreach ($files as $file) {
if ($file == '.' || $file == '..') continue;
// Only look for icc_temp_ folders
if (strpos($file, 'icc_temp_') !== 0) continue;
$path = rtrim($temp_dir, '/') . '/' . $file;
if (!is_dir($path)) continue;
$found++;
$age = time() - filemtime($path);
echo "<hr/><strong>Found:</strong> " . htmlspecialchars($file) . "<br/>";
echo "Path: " . htmlspecialchars($path) . "<br/>";
echo "Age: " . $age . " seconds (" . round($age/3600, 2) . " hours)<br/>";
// Force delete if requested via manual action, or just standard check
// For manual diagnostics, we'll try to delete anything > 24 hours just like the automated one
if ($age > 86400) {
echo "Status: <span style='color:blue'>Older than 24 hours. Attempting deletion...</span><br/>";
icc_rrmdir($path);
if (!file_exists($path)) {
echo "Result: <span style='color:green'>DELETED SUCCESS.</span><br/>";
} else {
echo "Result: <span style='color:red'>DELETED FAILED. Check server log/permissions.</span><br/>";
}
} else {
echo "Status: <span style='color:orange'>Kept (Not old enough).</span><br/>";
}
}
if ($found == 0) {
echo "No temporary 'icc_temp_' folders found.<br/>";
}
}
echo '<strong>Diagnostics Complete.</strong></div>';
} else {
echo "<div class='error'>Security check failed.</div>";
}
}
$message = '';
if (isset($_POST['submit']) && $_POST['submit'] == 'Upload')
$message = icc_upload_and_shorten_process_upload();
@@ -466,8 +525,19 @@ function icc_upload_and_shorten_do_page()
<input type="number" id="icc_upload_suffix_length" name="icc_upload_suffix_length" value="' . $suffix_length . '" min="1" max="32" />
</p>
<p>
<label><strong>Diagnostics:</strong></label><br />
<a href="javascript:void(0);" onclick="document.getElementById(\'icc_cleanup_form\').submit();" class="button">Run Cleanup & Diagnostics Now</a>
<small> (Checks for \'icc_temp_\' folders older than 24 hours and attempts to delete them)</small>
</p>
<p><input type="submit" value="Save Configuration" class="button-primary" /></p>
</form>
<form id="icc_cleanup_form" method="post" style="display:none;">
<input type="hidden" name="action" value="icc_manual_cleanup" />
<input type="hidden" name="nonce" value="' . yourls_create_nonce('icc_manual_cleanup') . '" />
</form>
';
// footer
@@ -603,45 +673,46 @@ function icc_upload_and_shorten_local_file_manager($dir, $url)
}
}
// Recursive directory removal
function icc_rrmdir($dir)
{
if (is_dir($dir)) {
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object != "." && $object != "..") {
if (is_dir($dir . "/" . $object) && !is_link($dir . "/" . $object))
icc_rrmdir($dir . "/" . $object);
else
unlink($dir . "/" . $object);
}
}
// Recursive directory removal
function icc_rrmdir($dir)
{
if (is_dir($dir)) {
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object != "." && $object != "..") {
if (is_dir($dir . "/" . $object) && !is_link($dir . "/" . $object))
icc_rrmdir($dir . "/" . $object);
else
unlink($dir . "/" . $object);
}
rmdir($dir);
}
rmdir($dir);
}
}
// Cleanup Temp Folders
function icc_upload_and_shorten_cleanup_temp()
{
$temp_dir = yourls_get_option('icc_upload_share_dir');
if (!$temp_dir)
$temp_dir = sys_get_temp_dir();
// Cleanup Temp Folders
function icc_upload_and_shorten_cleanup_temp()
{
$temp_dir = yourls_get_option('icc_upload_share_dir');
if (!$temp_dir)
$temp_dir = sys_get_temp_dir();
if (!is_dir($temp_dir))
return;
if (!is_dir($temp_dir))
return;
// Scan for icc_temp_* directories
$files = scandir($temp_dir);
foreach ($files as $file) {
if ($file == '.' || $file == '..')
continue;
// Scan for icc_temp_* directories
$files = scandir($temp_dir);
foreach ($files as $file) {
if ($file == '.' || $file == '..')
continue;
$path = rtrim($temp_dir, '/') . '/' . $file;
if (is_dir($path) && strpos($file, 'icc_temp_') === 0) {
// Check age (1 hour = 3600 seconds)
if (filemtime($path) < (time() - 86400)) {
icc_rrmdir($path);
}
$path = rtrim($temp_dir, '/') . '/' . $file;
if (is_dir($path) && strpos($file, 'icc_temp_') === 0) {
// Check age (1 hour = 3600 seconds)
if (filemtime($path) < (time() - 86400)) {
icc_rrmdir($path);
}
}
}