update 2025-03-20 10:53:12

This commit is contained in:
kenzok8 2025-03-20 10:53:12 +08:00
parent 9476363a01
commit 5c3c4593f0
6 changed files with 91 additions and 30 deletions

View File

@ -68,7 +68,6 @@ body {
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
}
h1 {
@ -185,6 +184,7 @@ form .form-control {
}
.form-select option {
background-color: oklch(38% .20 240) !important;
background-color: var(--bs-form-select);
color: var(--bs-radius-bg) !important;
}
@ -529,12 +529,13 @@ button:disabled {
}
.royal-style {
font-family: 'Cinzel Decorative', cursive;
font-weight: 900;
font-size: 80px;
letter-spacing: 4px;
text-align: center;
margin-top: 20px;
font-family: 'Cinzel Decorative', cursive !important;
font-weight: 900 !important;
font-size: 80px !important;
letter-spacing: 4px !important;
text-align: center !important;
margin-top: 20px !important;
transition: all var(-- bs-transition-speed);
}
.royal-style:hover {
@ -610,12 +611,12 @@ h1:hover, h2:hover, h3:hover, h4:hover, h5:hover, h6:hover {
}
.royal-style {
font-family: 'Cinzel Decorative', cursive;
font-weight: 900;
font-size: 80px;
letter-spacing: 4px;
text-align: center;
margin-top: 20px;
font-family: 'Cinzel Decorative', cursive !important;
font-weight: 900 !important;
font-size: 80px !important;
letter-spacing: 4px !important;
text-align: center !important;
margin-top: 20px !important;
transition: all var(-- bs-transition-speed);
}

View File

@ -737,6 +737,7 @@
'delete_old_config' => 'Alte Konfigurationsdateien für eine neue Installation löschen',
'tmp_neko_cleared' => 'Das Verzeichnis /tmp/neko wurde erfolgreich gelöscht.',
'tmp_neko_not_exist' => 'Das Verzeichnis /tmp/neko existiert nicht. Keine Maßnahmen wurden ergriffen.',
'enable_openwrt_theme' => 'OpenWRT-Design-Kompatibilitätsmodus aktivieren (Erfordert das luci-theme-spectra Design)',
'subscribeUrlPlaceholder' => 'Bitte geben Sie den Abonnement-Link ein, trennen Sie mehrere Links mit |',
'statusMessages' => [
'https://www.baidu.com/' => ['accessible' => 'Die Website von Baidu ist erreichbar.', 'notAccessible' => 'Die Website von Baidu ist nicht erreichbar, bitte überprüfen Sie die Netzwerkverbindung.'],
@ -1519,6 +1520,7 @@
'clear_config' => 'Effacer la configuration',
'delete_old_config' => 'Supprimer les anciens fichiers de configuration pour une nouvelle installation',
'tmp_neko_cleared' => 'Le répertoire /tmp/neko a été effacé avec succès.',
'enable_openwrt_theme' => 'Activer le mode de compatibilité du thème OpenWRT (Requiert le thème luci-theme-spectra installé)',
'tmp_neko_not_exist' => 'Le répertoire /tmp/neko n\'existe pas. Aucune action n\'a été entreprise.',
'subscribeUrlPlaceholder' => 'Veuillez entrer le lien d\'abonnement, séparez plusieurs liens par |',
'statusMessages' => [
@ -2380,6 +2382,7 @@
'delete_old_config' => '删除旧配置文件全新安装',
'tmp_neko_cleared' => '已成功清理 /tmp/neko 目录。',
'tmp_neko_not_exist' => '/tmp/neko 目录不存在。未采取任何行动。',
'enable_openwrt_theme' => '启用 OpenWRT 主题兼容模式「需安装 luci-theme-spectra 主题」',
'subscribeUrlPlaceholder' => '请输入订阅链接,多个链接用 | 分隔'
],
'en' => [
@ -3200,6 +3203,7 @@
'state_cleared' => '✅ Player state cleared',
'clear_config' => 'Clear Config',
'delete_old_config' => 'Delete old configuration files for a fresh install',
'enable_openwrt_theme' => 'Enable OpenWRT theme compatibility mode (Requires luci-theme-spectra theme installed)',
'tmp_neko_cleared' => 'The /tmp/neko directory has been successfully cleared.',
'tmp_neko_not_exist' => 'The /tmp/neko directory does not exist. No action taken.',
'subscribeUrlPlaceholder' => 'Please enter the subscription link, separate multiple links with |',
@ -3993,6 +3997,7 @@
'state_cleared' => '✅ 播放器狀態已清除',
'clear_config' => '清除配置',
'delete_old_config' => '刪除舊配置文件全新安裝',
'enable_openwrt_theme' => '啟用 OpenWRT 主題兼容模式(需要安裝 luci-theme-spectra 主題)',
'tmp_neko_cleared' => '已成功清理 /tmp/neko 目錄。',
'tmp_neko_not_exist' => '/tmp/neko 目錄不存在。未採取任何行動。',
'subscribeUrlPlaceholder' => '請輸入訂閱鏈接,多個鏈接用 | 分隔',
@ -4777,6 +4782,7 @@
'state_cleared' => '✅ 플레이어 상태가 초기화되었습니다',
'clear_config' => '설정 지우기',
'delete_old_config' => '새 설치를 위한 오래된 설정 파일 삭제',
'enable_openwrt_theme' => 'OpenWRT 테마 호환 모드 활성화 (luci-theme-spectra 테마 필요)',
'tmp_neko_cleared' => '/tmp/neko 디렉토리가 성공적으로 지워졌습니다.',
'tmp_neko_not_exist' => '/tmp/neko 디렉토리가 존재하지 않습니다. 조치가 취해지지 않았습니다.',
'subscribeUrlPlaceholder' => '구독 링크를 입력하십시오. 여러 링크는 | 로 구분하십시오.',
@ -5549,6 +5555,7 @@
'state_cleared' => '✅ プレーヤーの状態がクリアされました',
'clear_config' => '設定をクリア',
'delete_old_config' => '新規インストールのための古い設定ファイルを削除',
'enable_openwrt_theme' => 'OpenWRT テーマ互換モードを有効にするluci-theme-spectra テーマが必要)',
'tmp_neko_cleared' => '/tmp/neko ディレクトリが正常にクリアされました。',
'tmp_neko_not_exist' => '/tmp/neko ディレクトリは存在しません。行動は取られませんでした。',
'subscribeUrlPlaceholder' => '購読リンクを入力してください。複数のリンクは | で区切ります。',
@ -6321,6 +6328,7 @@
'state_cleared' => '✅ Состояние плеера очищено',
'clear_config' => 'Очистить конфигурацию',
'delete_old_config' => 'Удалить старые файлы конфигурации для новой установки',
'enable_openwrt_theme' => 'Включить режим совместимости с темой OpenWRT (Требуется установленная тема luci-theme-spectra)',
'tmp_neko_cleared' => 'Каталог /tmp/neko успешно очищен.',
'tmp_neko_not_exist' => 'Каталог /tmp/neko не существует. Действия не предпринимались.',
'subscribeUrlPlaceholder' => 'Пожалуйста, введите ссылку на подписку, разделяйте несколько ссылок с помощью |',
@ -7104,6 +7112,7 @@
'state_cleared' => '✅ تم مسح حالة المشغل',
'clear_config' => 'مسح التكوين',
'delete_old_config' => 'حذف ملفات التكوين القديمة لتثبيت جديد',
'enable_openwrt_theme' => 'تمكين وضع توافق سمة OpenWRT (يتطلب تثبيت سمة luci-theme-spectra)',
'tmp_neko_cleared' => 'تم مسح دليل /tmp/neko بنجاح.',
'tmp_neko_not_exist' => 'دليل /tmp/neko غير موجود. لم يتم اتخاذ أي إجراء.',
'subscribeUrlPlaceholder' => 'يرجى إدخال رابط الاشتراك، ويفصل بين الروابط المتعددة بواسطة |',
@ -7890,6 +7899,7 @@
'state_cleared' => '✅ Estado del reproductor borrado',
'clear_config' => 'Borrar configuración',
'delete_old_config' => 'Eliminar archivos de configuración antiguos para una instalación nueva',
'enable_openwrt_theme' => 'Habilitar el modo de compatibilidad con el tema OpenWRT (Requiere el tema luci-theme-spectra instalado)',
'tmp_neko_cleared' => 'El directorio /tmp/neko ha sido borrado con éxito.',
'tmp_neko_not_exist' => 'El directorio /tmp/neko no existe. No se ha tomado ninguna acción.',
'subscribeUrlPlaceholder' => 'Por favor ingrese el enlace de suscripción, separe varios enlaces con |',
@ -8672,6 +8682,7 @@
'state_cleared' => '✅ Trạng thái trình phát đã được xóa',
'clear_config' => 'Xóa cấu hình',
'delete_old_config' => 'Xóa các tệp cấu hình cũ để cài đặt mới',
'enable_openwrt_theme' => 'Bật chế độ tương thích giao diện OpenWRT (Cần cài đặt giao diện luci-theme-spectra)',
'tmp_neko_cleared' => 'Thư mục /tmp/neko đã được xóa thành công.',
'tmp_neko_not_exist' => 'Thư mục /tmp/neko không tồn tại. Không có hành động nào được thực hiện.',
'subscribeUrlPlaceholder' => 'Vui lòng nhập liên kết đăng ký, phân tách các liên kết bằng |',

View File

@ -4787,6 +4787,10 @@ function speakMessage(message) {
<input class="form-check-input" type="checkbox" id="bodyBackground">
<label class="form-check-label" for="bodyBackground" data-translate="transparent_body">Enable transparent body background</label>
</div>
<div class="form-check mt-3">
<input class="form-check-input" type="checkbox" id="openwrtTheme" />
<label class="form-check-label" for="openwrtTheme" data-translate="enable_openwrt_theme">Enable OpenWRT Theme Compatibility</label>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" data-translate="close">Close</button>
@ -4803,9 +4807,10 @@ const modalWidthValue = document.getElementById("modalWidthValue");
const group1Checkbox = document.getElementById("group1Background");
const bodyBackgroundCheckbox = document.getElementById("bodyBackground");
const openwrtThemeCheckbox = document.getElementById("openwrtTheme");
function updateSliderColor(value, slider, valueElement) {
let red = Math.min(Math.max((value - 800) / (2400 - 800) * 255, 0), 255);
let red = Math.min(Math.max((value - 800) / (5400 - 800) * 255, 0), 255);
let green = 255 - red;
slider.style.background = `linear-gradient(to right, rgb(${red}, ${green}, 255), rgb(${255 - red}, ${green}, ${255 - red}))`;
@ -4843,6 +4848,11 @@ modalSlider.oninput = function() {
showNotification(translations['modal_width_updated'].replace('%s', modalSlider.value));
};
openwrtThemeCheckbox.onchange = function () {
sendCSSUpdate();
showNotification(openwrtThemeCheckbox.checked ? 'OpenWRT theme enabled' : 'OpenWRT theme disabled');
};
function sendCSSUpdate() {
const width = slider.value;
const modalWidth = modalSlider.value;
@ -4858,7 +4868,8 @@ function sendCSSUpdate() {
width: width,
modalWidth: modalWidth,
group1: group1,
bodyBackground: bodyBackground
bodyBackground: bodyBackground,
openwrtTheme: openwrtThemeCheckbox.checked ? 1 : 0
})
}).then(response => response.json())
.then(data => console.log('CSS 更新成功:', data))

View File

@ -254,6 +254,7 @@ form .form-control {
}
.form-select option {
background-color: oklch(45% .24 277.023) !important;
background-color: var(--bs-form-select);
color: var(--bs-radius-bg) !important;
}
@ -598,12 +599,13 @@ button:disabled {
}
.royal-style {
font-family: 'Cinzel Decorative', cursive;
font-weight: 900;
font-size: 80px;
letter-spacing: 4px;
text-align: center;
margin-top: 20px;
font-family: 'Cinzel Decorative', cursive !important;
font-weight: 900 !important;
font-size: 80px !important;
letter-spacing: 4px !important;
text-align: center !important;
margin-top: 20px !important;
transition: all var(-- bs-transition-speed);
}
.royal-style:hover {
@ -679,12 +681,12 @@ h1:hover, h2:hover, h3:hover, h4:hover, h5:hover, h6:hover {
}
.royal-style {
font-family: 'Cinzel Decorative', cursive;
font-weight: 900;
font-size: 80px;
letter-spacing: 4px;
text-align: center;
margin-top: 20px;
font-family: 'Cinzel Decorative', cursive !important;
font-weight: 900 !important;
font-size: 80px !important;
letter-spacing: 4px !important;
text-align: center !important;
margin-top: 20px !important;
transition: all var(-- bs-transition-speed);
}

View File

@ -5,6 +5,7 @@ $width = isset($data['width']) ? $data['width'] : null;
$modalWidth = isset($data['modalWidth']) ? $data['modalWidth'] : null;
$applyGroup1 = isset($data['group1']) && $data['group1'] == 1;
$applyBodyBackground = isset($data['bodyBackground']) && $data['bodyBackground'] == 1;
$applyOpenWrtTheme = isset($data['openwrtTheme']) && $data['openwrtTheme'] == 1;
if ($width !== null && $modalWidth !== null) {
$cssFilePath = 'assets/theme/transparent.css';
@ -76,4 +77,32 @@ if ($applyGroup1 || $applyBodyBackground) {
} else {
echo json_encode(['status' => 'error', 'message' => 'Transparent background not enabled']);
}
$pingFilePath = 'ping.php';
if (file_exists($pingFilePath)) {
$pingContent = file_get_contents($pingFilePath);
if ($applyOpenWrtTheme) {
$additionalContent = '
<!-- START OpenWRT Theme -->
<link rel="stylesheet" href="/luci-static/spectra/css/dark.css">
<script src="/luci-static/spectra/js/custom.js"></script>
<!-- END OpenWRT Theme -->
';
if (strpos($pingContent, '<!-- START OpenWRT Theme -->') === false) {
$pingContent .= $additionalContent;
file_put_contents($pingFilePath, $pingContent);
echo json_encode(['status' => 'success', 'message' => 'OpenWRT theme enabled']);
} else {
echo json_encode(['status' => 'info', 'message' => 'OpenWRT theme already enabled']);
}
} else {
$pingContent = preg_replace('/<!-- START OpenWRT Theme -->.*?<!-- END OpenWRT Theme -->/s', '', $pingContent);
file_put_contents($pingFilePath, $pingContent);
echo json_encode(['status' => 'success', 'message' => 'OpenWRT theme disabled']);
}
} else {
echo json_encode(['status' => 'error', 'message' => 'ping.php not found']);
}
?>

View File

@ -26,10 +26,17 @@ istoreenhance_pull() {
echo "istoreenhance_pull ${full_image_name}"
# 直接拉取镜像
docker pull "$full_image_name"
if [ $? -ne 0 ]; then
echo "istoreenhance_pull failed"
exit 1
fi
else
echo "not found registry.linkease.net"
echo "docker pull ${image_name}"
echo "istoreenhance_pull ${image_name}"
docker pull "$image_name"
if [ $? -ne 0 ]; then
echo "download failed, not found registry.linkease.net"
exit 1
fi
fi
else
# 否则运行 docker pull
@ -38,7 +45,7 @@ istoreenhance_pull() {
if [ $? -ne 0 ]; then
# 判断是否安装 iStoreEnhance
if [ -z "$isInstall" ]; then
echo "download failed, install istoreenhance to speedup, \"https://doc.linkease.com/zh/guide/istore/software/istoreenhance.html\""
echo "download failed, install istoreenhance to speedup, \"https://doc.linkease.com/zh/guide/istore/software/istoreenhance.html\""
else
echo "download failed, enable istoreenhance to speedup"
fi