mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-07-27 10:31:38 +08:00
🌴 Sync 2026-05-13 20:46:46
This commit is contained in:
parent
88814b43f1
commit
0ab04d37bb
@ -16,8 +16,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-amlogic
|
||||
PKG_VERSION:=3.1.309
|
||||
PKG_RELEASE:=9
|
||||
PKG_VERSION:=3.1.312
|
||||
PKG_RELEASE:=10
|
||||
|
||||
PKG_LICENSE:=GPL-2.0 License
|
||||
PKG_MAINTAINER:=ophub <https://github.com/ophub/luci-app-amlogic>
|
||||
|
||||
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="85" height="20" role="img" aria-label="JavaScript"><title>JavaScript</title><g shape-rendering="crispEdges"><rect width="0" height="20" fill="#555"/><rect x="0" width="85" height="20" fill="#323330"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><image x="5" y="3" width="14" height="14" href="data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjZjdkZjFlIiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+SmF2YVNjcmlwdDwvdGl0bGU+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6bTIyLjAzNCAxOC4yNzZjLS4xNzUtMS4wOTUtLjg4OC0yLjAxNS0zLjAwMy0yLjg3My0uNzM2LS4zNDUtMS41NTQtLjU4NS0xLjc5Ny0xLjE0LS4wOTEtLjMzLS4xMDUtLjUxLS4wNDYtLjcwNS4xNS0uNjQ2LjkxNS0uODQgMS41MTUtLjY2LjM5LjEyLjc1LjQyLjk3Ni45IDEuMDM0LS42NzYgMS4wMzQtLjY3NiAxLjc1NS0xLjEyNS0uMjctLjQyLS40MDQtLjYwMS0uNTg2LS43OC0uNjMtLjcwNS0xLjQ2OS0xLjA2NS0yLjgzNC0xLjAzNGwtLjcwNS4wODljLS42NzYuMTY1LTEuMzIuNTI1LTEuNzEgMS4wMDUtMS4xNCAxLjI5MS0uODExIDMuNTQxLjU2OSA0LjQ3MSAxLjM2NSAxLjAyIDMuMzYxIDEuMjQ0IDMuNjE2IDIuMjA1LjI0IDEuMTctLjg3IDEuNTQ1LTEuOTY2IDEuNDEtLjgxMS0uMTgtMS4yNi0uNTg2LTEuNzU1LTEuMzM2bC0xLjgzIDEuMDUxYy4yMS40OC40NS42ODkuODEgMS4xMDkgMS43NCAxLjc1NiA2LjA5IDEuNjY2IDYuODcxLTEuMDA0LjAyOS0uMDkuMjQtLjcwNS4wNzQtMS42NWwuMDQ2LjA2N3ptLTguOTgzLTcuMjQ1aC0yLjI0OGMwIDEuOTM4LS4wMDkgMy44NjQtLjAwOSA1LjgwNSAwIDEuMjMyLjA2MyAyLjM2My0uMTM4IDIuNzExLS4zMy42ODktMS4xOC42MDEtMS41NjYuNDgtLjM5Ni0uMTk2LS41OTctLjQ2Ni0uODMtLjg1NS0uMDYzLS4xMDUtLjExLS4xOTYtLjEyNy0uMTk2bC0xLjgyNSAxLjEyNWMuMzA1LjYzLjc1IDEuMTcyIDEuMzI0IDEuNTE3Ljg1NS41MSAyLjAwNC42NzUgMy4yMDcuNDA1Ljc4My0uMjI2IDEuNDU4LS42OTEgMS44MTEtMS40MTEuNTEtLjkzLjQwMi0yLjA3LjM5Ny0zLjM0Ni4wMTItMi4wNTQgMC00LjEwOSAwLTYuMTc5bC4wMDQtLjA1NnoiLz48L3N2Zz4="/><text x="515" y="140" transform="scale(.1)" fill="#fff" textLength="570">JavaScript</text></g></svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 5.9 KiB |
@ -283,7 +283,6 @@ return view.extend({
|
||||
var verPlugin = E('span', _('Collecting data...'));
|
||||
var verKernel = E('span', _('Collecting data...'));
|
||||
var verRescue = E('span', _('Collecting data...'));
|
||||
var branchSpan = E('span');
|
||||
|
||||
// Per-action status spans (right side, updated by poll)
|
||||
var statusFw = E('span');
|
||||
@ -419,8 +418,7 @@ return view.extend({
|
||||
E('p', _('Provide OpenWrt Firmware, Kernel and Plugin online check, download and update service.')),
|
||||
E('div', { class: 'cbi-section' }, [
|
||||
E('p', { style: 'text-align:center' }, [
|
||||
_('Update plugins first, then update the kernel or firmware. More options can be configured in [Plugin Settings].'),
|
||||
' ', branchSpan
|
||||
_('Update plugins first, then update the kernel or firmware. More options can be configured in [Plugin Settings].')
|
||||
]),
|
||||
E('table', { class: 'amlogic-row-table' }, [
|
||||
E('tr', [
|
||||
@ -461,10 +459,6 @@ return view.extend({
|
||||
dom.content(verKernel, s && s.current_kernel_version
|
||||
? E('span', { class: 'amlogic-status-ok' }, _('Current Version') + ' [ ' + s.current_kernel_version + ' ] ')
|
||||
: E('span', { class: 'amlogic-status-err' }, _('Invalid value.')));
|
||||
var branchLabel = s && s.plugin_branch
|
||||
? (s.plugin_branch === 'lua' ? 'Lua' : 'JavaScript')
|
||||
: (s && s.has_luci_js ? 'JavaScript' : 'Lua');
|
||||
dom.content(branchSpan, ' [ ' + branchLabel + ' ] ');
|
||||
|
||||
// Rescue row: show same kernel version directly via the verRescue span
|
||||
dom.content(verRescue, s && s.current_kernel_version
|
||||
|
||||
@ -23,6 +23,9 @@ const callAuthor = rpc.declare({
|
||||
// Called on every info page load so the sidebar menu is correct from first visit.
|
||||
const callSyncMenu = rpc.declare({ object: 'luci.amlogic', method: 'sync_menu' });
|
||||
|
||||
// Get runtime state to determine plugin_branch for the language badge.
|
||||
const callState = rpc.declare({ object: 'luci.amlogic', method: 'state' });
|
||||
|
||||
// Static list of supported boxes (display only, not used in any logic).
|
||||
const SUPPORTED_BOXES = [
|
||||
_('Amlogic s922x --- [ Beelink, Beelink-Pro, Ugoos-AM6-Plus, ODROID-N2, Khadas-VIM3, Ali-CT2000 ]'),
|
||||
@ -57,9 +60,27 @@ return view.extend({
|
||||
handleReset: null,
|
||||
|
||||
load: function () {
|
||||
// Fire sync_menu in background (don't block render on it).
|
||||
callSyncMenu().catch(function () {});
|
||||
return callAuthor();
|
||||
// Call sync_menu and wait for it. sync_menu writes menu_install /
|
||||
// menu_armcpu into UCI and clears the LuCI index cache on the server.
|
||||
// On first boot from USB the install menu may be missing from the
|
||||
// browser-side navigation (built before sync_menu ran). After the RPC
|
||||
// returns we check if the sidebar already has an install link; if not,
|
||||
// reload once so the browser re-fetches the updated menu tree.
|
||||
// A URL hash flag (#menu-synced) prevents an infinite reload loop.
|
||||
const alreadyReloaded = window.location.hash === '#menu-synced';
|
||||
const syncMenuPromise = callSyncMenu().then(function (res) {
|
||||
if (alreadyReloaded) return;
|
||||
if (res && res.show_install === 'yes') {
|
||||
// Check if the sidebar navigation already contains the install link.
|
||||
const installLink = document.querySelector('a[href*="amlogic/install"]');
|
||||
if (!installLink) {
|
||||
// Server has updated the index cache; reload to pick up new nav.
|
||||
window.location.replace(window.location.pathname + '#menu-synced');
|
||||
window.location.reload();
|
||||
}
|
||||
}
|
||||
}).catch(function () {});
|
||||
return Promise.all([callAuthor(), syncMenuPromise]).then(function (r) { return r[0]; });
|
||||
},
|
||||
|
||||
render: function (authorUrl) {
|
||||
@ -67,6 +88,23 @@ return view.extend({
|
||||
amlogicShared.ensureCss();
|
||||
const res = L.resource('amlogic');
|
||||
|
||||
// Language badge image — default to javascript.svg (JS version),
|
||||
// will be confirmed/corrected after the state RPC resolves.
|
||||
var langsImg = E('img', {
|
||||
id: 'Langs',
|
||||
src: res + '/javascript.svg', alt: 'javascript',
|
||||
width: '86', height: '20',
|
||||
style: 'margin:0 5px; vertical-align:middle; border-radius:3px'
|
||||
});
|
||||
|
||||
// Fetch plugin_branch from state and update the language badge.
|
||||
callState().then(function (s) {
|
||||
var isLua = s && s.plugin_branch === 'lua';
|
||||
langsImg.src = res + (isLua ? '/lua.svg' : '/javascript.svg');
|
||||
langsImg.alt = isLua ? 'lua' : 'javascript';
|
||||
langsImg.setAttribute('width', isLua ? '46' : '86');
|
||||
}).catch(function () {});
|
||||
|
||||
// Flatten the supported-boxes list to [text, <br>, text, <br>, ...].
|
||||
const boxRows = [];
|
||||
for (let i = 0; i < SUPPORTED_BOXES.length; i++)
|
||||
@ -86,13 +124,13 @@ return view.extend({
|
||||
E('img', {
|
||||
src: res + '/packit.svg', alt: 'Packit',
|
||||
width: '168', height: '20',
|
||||
style: 'cursor:pointer; margin:0 5px',
|
||||
style: 'cursor:pointer; margin:0 5px; vertical-align:middle; border-radius:3px',
|
||||
click: function () { openExternal('https://github.com/unifreq/openwrt_packit'); }
|
||||
}),
|
||||
E('img', {
|
||||
src: res + '/author.svg', alt: 'Author',
|
||||
width: '168', height: '20',
|
||||
style: 'cursor:pointer; margin:0 5px',
|
||||
style: 'cursor:pointer; margin:0 5px; vertical-align:middle; border-radius:3px',
|
||||
click: function () {
|
||||
callAuthor().then(function (repo) {
|
||||
let url = String(repo || '').trim();
|
||||
@ -106,9 +144,10 @@ return view.extend({
|
||||
E('img', {
|
||||
src: res + '/plugin.svg', alt: 'luci-app-amlogic',
|
||||
width: '160', height: '20',
|
||||
style: 'cursor:pointer; margin:0 5px',
|
||||
style: 'cursor:pointer; margin:0 5px; vertical-align:middle; border-radius:3px',
|
||||
click: function () { openExternal('https://github.com/ophub/luci-app-amlogic'); }
|
||||
})
|
||||
}),
|
||||
langsImg
|
||||
])
|
||||
]),
|
||||
E('tr', [
|
||||
|
||||
@ -69,7 +69,7 @@ return view.extend({
|
||||
value: _('Update OpenWrt firmware'), style: 'display:none',
|
||||
click: ui.createHandlerFn(this, function (ev) {
|
||||
return doButton(ev.currentTarget,
|
||||
_('Updating...'), _('Successful Update'), _('Update Failed'),
|
||||
_('Updating...'), _('Update Failed'),
|
||||
function () { return callStartUpd('auto@updated@/tmp'); });
|
||||
})
|
||||
});
|
||||
@ -78,7 +78,7 @@ return view.extend({
|
||||
value: _('Replace OpenWrt Kernel'), style: 'display:none; margin-left:5px',
|
||||
click: ui.createHandlerFn(this, function (ev) {
|
||||
return doButton(ev.currentTarget,
|
||||
_('Updating...'), _('Successful Update'), _('Update Failed'),
|
||||
_('Updating...'), _('Update Failed'),
|
||||
function () { return callStartKnl(); });
|
||||
})
|
||||
});
|
||||
@ -86,13 +86,23 @@ return view.extend({
|
||||
const knLog = E('span');
|
||||
const fwVer = E('span', _('Collecting data...'));
|
||||
|
||||
function doButton(btn, busyText, ok, fail, fn) {
|
||||
// Shared button state machine: disabled -> RPC -> success/fail label.
|
||||
function doButton(btn, busyText, fail, fn) {
|
||||
// Shared button state machine: disabled -> RPC -> updating/fail label.
|
||||
// On success (code==0) the button stays in busyText state and
|
||||
// remains disabled — the device is about to reboot, so there is
|
||||
// nothing to restore. Only on failure do we surface an error and
|
||||
// re-enable the button so the user can retry.
|
||||
btn.disabled = true; btn.value = busyText;
|
||||
return Promise.resolve(fn()).then(function (r) {
|
||||
btn.value = (r && r.code == 0) ? ok : fail;
|
||||
}).catch(function () { btn.value = fail; })
|
||||
.finally(function () { btn.disabled = false; });
|
||||
if (!r || r.code !== 0) {
|
||||
btn.value = fail;
|
||||
btn.disabled = false;
|
||||
}
|
||||
// code == 0 → keep busyText + disabled (update in progress)
|
||||
}).catch(function () {
|
||||
btn.value = fail;
|
||||
btn.disabled = false;
|
||||
});
|
||||
}
|
||||
|
||||
function refreshList() {
|
||||
|
||||
@ -475,7 +475,12 @@ function m_start_plugin() {
|
||||
+ ' uci set amlogic.config.amlogic_plugin_branch=\'lua\' 2>/dev/null\n'
|
||||
+ ' fi\n'
|
||||
+ ' uci commit amlogic 2>/dev/null\n'
|
||||
+ ' fi) &\n'
|
||||
+ ' fi\n'
|
||||
+ ' # Restart services so the newly installed files take effect immediately,\n'
|
||||
+ ' # avoiding the need for users to manually clear browser cache.\n'
|
||||
+ ' /etc/init.d/rpcd restart >> "$LOG" 2>&1\n'
|
||||
+ ' /etc/init.d/uhttpd restart >> "$LOG" 2>&1\n'
|
||||
+ ' ) &\n'
|
||||
+ 'else\n'
|
||||
+ ' echo "--- INSTALLATION FAILED! ---" >> "$LOG"\n'
|
||||
+ ' [ -f "$cfg_bak" ] && cp -f "$cfg_bak" "$cfg"\n'
|
||||
@ -747,7 +752,8 @@ function m_sync_menu() {
|
||||
const show_armcpu = (index(p, 'qemu') < 0) ? 'yes' : 'no';
|
||||
shcall('uci -q set amlogic.config.menu_install=' + shq(show_install) +
|
||||
' && uci -q set amlogic.config.menu_armcpu=' + shq(show_armcpu) +
|
||||
' && uci commit amlogic');
|
||||
' && uci commit amlogic' +
|
||||
' && rm -f /tmp/luci-indexcache* && rm -rf /tmp/luci-modulecache/*');
|
||||
return { code: 0, show_install, show_armcpu };
|
||||
}
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-openlist2
|
||||
PKG_VERSION:=1.0.2
|
||||
PKG_RELEASE:=2
|
||||
PKG_RELEASE:=3
|
||||
|
||||
LUCI_TITLE:=LuCI support for openlist
|
||||
LUCI_DEPENDS:=+openlist2
|
||||
|
||||
@ -6,34 +6,34 @@
|
||||
'require uci';
|
||||
'require view';
|
||||
|
||||
var callServiceList = rpc.declare({
|
||||
const callServiceList = rpc.declare({
|
||||
object: 'service',
|
||||
method: 'list',
|
||||
params: ['name'],
|
||||
expect: { '': {} }
|
||||
});
|
||||
|
||||
function getServiceStatus() {
|
||||
return L.resolveDefault(callServiceList('openlist2'), {}).then(function (res) {
|
||||
var isRunning = false;
|
||||
const getServiceStatus = () => {
|
||||
return L.resolveDefault(callServiceList('openlist2'), {}).then(res => {
|
||||
let isRunning = false;
|
||||
try {
|
||||
isRunning = res['openlist2']['instances']['openlist2']['running'];
|
||||
} catch (e) { }
|
||||
return isRunning;
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
function renderStatus(isRunning, protocol, webport, site_url) {
|
||||
var spanTemp = '<em><span style="color:%s"><strong>%s %s</strong></span></em>';
|
||||
var renderHTML;
|
||||
const renderStatus = (isRunning, protocol, webport, site_url) => {
|
||||
const spanTemp = '<em><span style="color:%s"><strong>%s %s</strong></span></em>';
|
||||
let renderHTML;
|
||||
if (isRunning) {
|
||||
var buttonUrl = '';
|
||||
let buttonUrl = '';
|
||||
if (site_url && site_url.trim() !== '') {
|
||||
buttonUrl = site_url;
|
||||
} else {
|
||||
buttonUrl = String.format('%s//%s:%s/', protocol, window.location.hostname, webport);
|
||||
buttonUrl = `${protocol}//${window.location.hostname}:${webport}/`;
|
||||
}
|
||||
var button = String.format('<input class="cbi-button-reload" type="button" style="margin-left: 50px" value="%s" onclick="window.open(\'%s\')">',
|
||||
const button = String.format('<input class="cbi-button-reload" type="button" style="margin-left: 50px" value="%s" onclick="window.open(\'%s\')">',
|
||||
_('Open Web Interface'), buttonUrl);
|
||||
renderHTML = spanTemp.format('green', 'OpenList', _('RUNNING')) + button;
|
||||
} else {
|
||||
@ -41,20 +41,20 @@ function renderStatus(isRunning, protocol, webport, site_url) {
|
||||
}
|
||||
|
||||
return renderHTML;
|
||||
}
|
||||
};
|
||||
|
||||
return view.extend({
|
||||
load: function () {
|
||||
load() {
|
||||
return Promise.all([
|
||||
uci.load('openlist2')
|
||||
]);
|
||||
},
|
||||
|
||||
handleResetPassword: async function (data) {
|
||||
var data_dir = uci.get(data[0], '@openlist2[0]', 'data_dir') || '/etc/openlist2';
|
||||
async handleResetPassword(data) {
|
||||
const data_dir = uci.get(data[0], '@openlist2[0]', 'data_dir') || '/etc/openlist2';
|
||||
try {
|
||||
var newpassword = await fs.exec('/usr/bin/openlist2', ['admin', 'random', '--data', data_dir]);
|
||||
var new_password = newpassword.stdout.match(/password:\s*(\S+)/)[1];
|
||||
const newpassword = await fs.exec('/usr/bin/openlist2', ['admin', 'random', '--data', data_dir]);
|
||||
const new_password = newpassword.stdout.match(/password:\s*(\S+)/)[1];
|
||||
|
||||
const textArea = document.createElement('textarea');
|
||||
textArea.value = new_password;
|
||||
@ -62,23 +62,23 @@ return view.extend({
|
||||
textArea.select();
|
||||
document.execCommand('copy');
|
||||
document.body.removeChild(textArea);
|
||||
alert(_('Username:') + 'admin\n' + _('New Password:') + new_password + '\n\n' + _('New password has been copied to clipboard.'));
|
||||
alert(`${_('Username:')}admin\n${_('New Password:')}${new_password}\n\n${_('New password has been copied to clipboard.')}`);
|
||||
} catch (error) {
|
||||
console.error('Failed to reset password: ', error);
|
||||
}
|
||||
},
|
||||
|
||||
render: function (data) {
|
||||
var m, s, o;
|
||||
var webport = uci.get(data[0], '@openlist2[0]', 'port') || '5244';
|
||||
var ssl = uci.get(data[0], '@openlist2[0]', 'ssl') || '0';
|
||||
var protocol;
|
||||
render(data) {
|
||||
let m, s, o;
|
||||
const webport = uci.get(data[0], '@openlist2[0]', 'port') || '5244';
|
||||
const ssl = uci.get(data[0], '@openlist2[0]', 'ssl') || '0';
|
||||
let protocol;
|
||||
if (ssl === '0') {
|
||||
protocol = 'http:';
|
||||
} else if (ssl === '1') {
|
||||
protocol = 'https:';
|
||||
}
|
||||
var site_url = uci.get(data[0], '@openlist2[0]', 'site_url') || '';
|
||||
const site_url = uci.get(data[0], '@openlist2[0]', 'site_url') || '';
|
||||
|
||||
m = new form.Map('openlist2', _('OpenList'),
|
||||
_('A file list program that supports multiple storage.'));
|
||||
@ -87,26 +87,27 @@ return view.extend({
|
||||
s.anonymous = true;
|
||||
s.addremove = false;
|
||||
|
||||
s.render = function () {
|
||||
poll.add(function () {
|
||||
return L.resolveDefault(getServiceStatus()).then(function (res) {
|
||||
var view = document.getElementById('service_status');
|
||||
view.innerHTML = renderStatus(res, protocol, webport, site_url);
|
||||
s.render = () => {
|
||||
poll.add(() => {
|
||||
return L.resolveDefault(getServiceStatus()).then(res => {
|
||||
const view = document.getElementById('service_status');
|
||||
if (view)
|
||||
view.innerHTML = renderStatus(res, protocol, webport, site_url);
|
||||
});
|
||||
});
|
||||
|
||||
return E('div', { class: 'cbi-section', id: 'status_bar' }, [
|
||||
E('p', { id: 'service_status' }, _('Collecting data...'))
|
||||
]);
|
||||
}
|
||||
};
|
||||
|
||||
s = m.section(form.NamedSection, '@openlist2[0]', 'openlist2');
|
||||
|
||||
s.tab('basic', _('Basic Settings'));
|
||||
s.tab('global', _('Global Settings'));
|
||||
s.tab("log", _("Logs"));
|
||||
s.tab("database", _("Database"));
|
||||
s.tab("scheme", _("Web Protocol"));
|
||||
s.tab('log', _('Logs'));
|
||||
s.tab('database', _('Database'));
|
||||
s.tab('scheme', _('Web Protocol'));
|
||||
s.tab('tasks', _('Task threads'));
|
||||
s.tab('cors', _('CORS Settings'));
|
||||
s.tab('s3', _('Object Storage'));
|
||||
|
||||
@ -5,21 +5,21 @@
|
||||
'require uci';
|
||||
'require view';
|
||||
|
||||
var scrollPosition = 0;
|
||||
var userScrolled = false;
|
||||
var logTextarea;
|
||||
var log_path;
|
||||
let scrollPosition = 0;
|
||||
let userScrolled = false;
|
||||
let logTextarea;
|
||||
let log_path;
|
||||
|
||||
uci.load('openlist2').then(function() {
|
||||
uci.load('openlist2').then(() => {
|
||||
log_path = uci.get('openlist2', '@openlist2[0]', 'log_path') || '/var/log/openlist2.log';
|
||||
});
|
||||
|
||||
function pollLog() {
|
||||
const pollLog = () => {
|
||||
return Promise.all([
|
||||
fs.read_direct(log_path, 'text').then(function (res) {
|
||||
fs.read_direct(log_path, 'text').then(res => {
|
||||
return res.trim().split(/\n/).join('\n').replace(/\u001b\[33mWARN\u001b\[0m/g, '').replace(/\u001b\[36mINFO\u001b\[0m/g, '').replace(/\u001b\[31mERRO\u001b\[0m/g, '');
|
||||
}),
|
||||
]).then(function (data) {
|
||||
]).then(data => {
|
||||
logTextarea.value = data[0] || _('No log data.');
|
||||
|
||||
if (!userScrolled) {
|
||||
@ -31,32 +31,33 @@ function pollLog() {
|
||||
};
|
||||
|
||||
return view.extend({
|
||||
handleCleanLogs: function () {
|
||||
handleCleanLogs() {
|
||||
return fs.write(log_path, '')
|
||||
.catch(function (e) { ui.addNotification(null, E('p', e.message)) });
|
||||
.catch(e => { ui.addNotification(null, E('p', e.message)) });
|
||||
},
|
||||
|
||||
render: function () {
|
||||
render() {
|
||||
logTextarea = E('textarea', {
|
||||
'id': 'log_content',
|
||||
'class': 'cbi-input-textarea',
|
||||
'wrap': 'off',
|
||||
'readonly': 'readonly',
|
||||
'style': 'width: calc(100% - 20px);height: 535px;margin: 10px;overflow-y: scroll;',
|
||||
});
|
||||
|
||||
logTextarea.addEventListener('scroll', function () {
|
||||
logTextarea.addEventListener('scroll', () => {
|
||||
userScrolled = true;
|
||||
scrollPosition = logTextarea.scrollTop;
|
||||
});
|
||||
|
||||
var log_textarea_wrapper = E('div', { 'id': 'log_textarea' }, logTextarea);
|
||||
const log_textarea_wrapper = E('div', { 'id': 'log_textarea' }, logTextarea);
|
||||
|
||||
setTimeout(function () {
|
||||
setTimeout(() => {
|
||||
poll.add(pollLog);
|
||||
}, 100);
|
||||
|
||||
var clear_logs_button = E('input', { 'class': 'btn cbi-button-action', 'type': 'button', 'style': 'margin-left: 10px; margin-top: 10px;', 'value': _('Clear logs') });
|
||||
clear_logs_button.addEventListener('click', this.handleCleanLogs.bind(this));
|
||||
const clear_logs_button = E('input', { 'class': 'btn cbi-button-action', 'type': 'button', 'style': 'margin-left: 10px; margin-top: 10px;', 'value': _('Clear logs') });
|
||||
clear_logs_button.addEventListener('click', L.bind(this.handleCleanLogs, this));
|
||||
|
||||
return E([
|
||||
E('div', { 'class': 'cbi-map' }, [
|
||||
|
||||
384
luci-app-openlist2/po/templates/openlist2.po
Normal file
384
luci-app-openlist2/po/templates/openlist2.po
Normal file
@ -0,0 +1,384 @@
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:169
|
||||
msgid ""
|
||||
"0 is unlimited, It is recommend to set a low number of concurrency (10-20) "
|
||||
"for poor performance device"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:175
|
||||
msgid ""
|
||||
"0 is unlimited, Limit the maximum concurrency of local agents. The default "
|
||||
"value is 64"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:84
|
||||
msgid "A file list program that supports multiple storage."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:327
|
||||
msgid "Allow Headers"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:323
|
||||
msgid "Allow Methods"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:319
|
||||
msgid "Allow Origins"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:106
|
||||
msgid "Basic Settings"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:157
|
||||
msgid "CDN URL"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:112
|
||||
msgid "CORS Settings"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:138
|
||||
msgid "Cache directory"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:59
|
||||
msgid "Clear logs"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:376
|
||||
msgid "Client IP check in active transfer mode"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:379
|
||||
msgid "Client IP check in passive transfer mode"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:360
|
||||
msgid "Client idle timeout (seconds)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:100
|
||||
msgid "Collecting data..."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:365
|
||||
msgid "Connection timeout (seconds)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:313
|
||||
msgid "Copy Max Retry"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:308
|
||||
msgid "Copy Workers"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:135
|
||||
msgid "Data directory"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:109
|
||||
msgid "Database"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:255
|
||||
msgid "Database DSN"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:224
|
||||
msgid "Database Host"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:242
|
||||
msgid "Database Name"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:238
|
||||
msgid "Database Password"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:228
|
||||
msgid "Database Port"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:251
|
||||
msgid "Database SSL Mode"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:246
|
||||
msgid "Database Table Prefix"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:218
|
||||
msgid "Database Type"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:234
|
||||
msgid "Database Username"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:127
|
||||
msgid "Delayed Start (seconds)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:180
|
||||
msgid "Disable TLS Verify"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:370
|
||||
msgid "Disable active transfer mode"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:283
|
||||
msgid "Download Max Retry"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:278
|
||||
msgid "Download Workers"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:185
|
||||
msgid "Enable Logs"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:260
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:340
|
||||
msgid "Enable SSL"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:373
|
||||
msgid "Enable binary transfer mode"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:357
|
||||
msgid "Enable non-20 port for active transfer"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:118
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:344
|
||||
msgid "Enabled FTP"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:332
|
||||
msgid "Enabled S3"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:383
|
||||
msgid "Enabled SFTP"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:114
|
||||
msgid "FTP"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:347
|
||||
msgid "FTP Port"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:263
|
||||
msgid "Force HTTPS"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:149
|
||||
msgid "Force read config"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:143
|
||||
msgid "Generate a new random password."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:107
|
||||
msgid "Global Settings"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/root/usr/share/rpcd/acl.d/luci-app-openlist2.json:3
|
||||
msgid "Grant UCI access for luci-app-openlist2"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:160
|
||||
msgid "JWT Key"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:212
|
||||
msgid "Log Compress"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:189
|
||||
msgid "Log path"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:163
|
||||
msgid "Login Validity Period (hours)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:108
|
||||
#: luci-app-openlist2/root/usr/share/luci/menu.d/luci-app-openlist2.json:21
|
||||
msgid "Logs"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:168
|
||||
msgid "Max Connections"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:194
|
||||
msgid "Max Size (MB)"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:206
|
||||
msgid "Max age"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:200
|
||||
msgid "Max backups"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:174
|
||||
msgid "Max concurrency of local proxies"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:352
|
||||
msgid "Max retries on port conflict during passive transfer"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:221
|
||||
msgid "MySQL"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:40
|
||||
msgid "NOT RUNNING"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:65
|
||||
msgid "New Password:"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:65
|
||||
msgid "New password has been copied to clipboard."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:23
|
||||
msgid "No log data."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:113
|
||||
msgid "Object Storage"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:37
|
||||
msgid "Open Web Interface"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:132
|
||||
msgid "Open firewall port"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:83
|
||||
#: luci-app-openlist2/root/usr/share/luci/menu.d/luci-app-openlist2.json:3
|
||||
msgid "OpenList"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:122
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:335
|
||||
msgid "Port"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:222
|
||||
msgid "PostgreSQL"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:38
|
||||
msgid "RUNNING"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:68
|
||||
msgid "Refresh every %s seconds."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:142
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:144
|
||||
msgid "Reset Password"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:115
|
||||
msgid "SFTP"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:386
|
||||
msgid "SFTP Port"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:220
|
||||
msgid "SQLite"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:267
|
||||
msgid "SSL cert"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:268
|
||||
msgid "SSL certificate file path"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:272
|
||||
msgid "SSL key"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:273
|
||||
msgid "SSL key file path"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/root/usr/share/luci/menu.d/luci-app-openlist2.json:13
|
||||
msgid "Setting"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:150
|
||||
msgid ""
|
||||
"Setting this to true will force the program to read the configuration file, "
|
||||
"ignoring environment variables."
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:154
|
||||
msgid "Site URL"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:111
|
||||
msgid "Task threads"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:293
|
||||
msgid "Transfer Max Retry"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:288
|
||||
msgid "Transfer Workers"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:303
|
||||
msgid "Upload Max Retry"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:298
|
||||
msgid "Upload Workers"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:65
|
||||
msgid "Username:"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:110
|
||||
msgid "Web Protocol"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:155
|
||||
msgid ""
|
||||
"When the web is reverse proxied to a subdirectory, this option must be "
|
||||
"filled out to ensure proper functioning of the web. Do not include '/' at "
|
||||
"the end of the URL"
|
||||
msgstr ""
|
||||
@ -1,267 +1,393 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: zh_Hans\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
msgid "OpenList"
|
||||
msgstr "OpenList"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:169
|
||||
msgid ""
|
||||
"0 is unlimited, It is recommend to set a low number of concurrency (10-20) "
|
||||
"for poor performance device"
|
||||
msgstr "默认 0 不限制,低性能设备建议设置较低的并发数(10-20)"
|
||||
|
||||
msgid "Open Web Interface"
|
||||
msgstr "打开 Web 界面"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:175
|
||||
msgid ""
|
||||
"0 is unlimited, Limit the maximum concurrency of local agents. The default "
|
||||
"value is 64"
|
||||
msgstr "限制本地代理最大并发数,值为 0 表示不限制,默认值 64"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:84
|
||||
msgid "A file list program that supports multiple storage."
|
||||
msgstr "一款支持多种存储的目录文件列表程序。"
|
||||
|
||||
msgid "Setting"
|
||||
msgstr "设置"
|
||||
|
||||
msgid "Basic Settings"
|
||||
msgstr "基本设置"
|
||||
|
||||
msgid "Global Settings"
|
||||
msgstr "全局设置"
|
||||
|
||||
msgid "Logs"
|
||||
msgstr "日志"
|
||||
|
||||
msgid "Enabled"
|
||||
msgstr "启用"
|
||||
|
||||
msgid "Port"
|
||||
msgstr "端口"
|
||||
|
||||
msgid "Web Protocol"
|
||||
msgstr "Web 协议"
|
||||
|
||||
msgid "Enable SSL"
|
||||
msgstr "启用 SSL"
|
||||
|
||||
msgid "Force HTTPS"
|
||||
msgstr "强制 HTTPS"
|
||||
|
||||
msgid "SSL cert"
|
||||
msgstr "SSL 证书"
|
||||
|
||||
msgid "SSL certificate file path"
|
||||
msgstr "SSL 证书文件路径"
|
||||
|
||||
msgid "SSL key"
|
||||
msgstr "SSL 密钥"
|
||||
|
||||
msgid "SSL key file path"
|
||||
msgstr "SSL 密钥文件路径"
|
||||
|
||||
msgid "Data directory"
|
||||
msgstr "数据目录"
|
||||
|
||||
msgid "Cache directory"
|
||||
msgstr "缓存目录"
|
||||
|
||||
msgid "RUNNING"
|
||||
msgstr "运行中"
|
||||
|
||||
msgid "NOT RUNNING"
|
||||
msgstr "未运行"
|
||||
|
||||
msgid "Collecting data..."
|
||||
msgstr "收集数据..."
|
||||
|
||||
msgid "NAS"
|
||||
msgstr "网络存储"
|
||||
|
||||
msgid "User Manual"
|
||||
msgstr "用户手册"
|
||||
|
||||
msgid "Open firewall port"
|
||||
msgstr "打开防火墙端口"
|
||||
|
||||
msgid "Enable Logs"
|
||||
msgstr "启用日志"
|
||||
|
||||
msgid "Log path"
|
||||
msgstr "日志文件路径"
|
||||
|
||||
msgid "Max Size (MB)"
|
||||
msgstr "日志文件大小(MB)"
|
||||
|
||||
msgid "Max backups"
|
||||
msgstr "日志备份数量"
|
||||
|
||||
msgid "Max age"
|
||||
msgstr "日志保存天数"
|
||||
|
||||
msgid "Log Compress"
|
||||
msgstr "日志压缩"
|
||||
|
||||
msgid "Clear logs"
|
||||
msgstr "清空日志"
|
||||
|
||||
msgid "Reset Password"
|
||||
msgstr "重置密码"
|
||||
|
||||
msgid "Generate a new random password."
|
||||
msgstr "随机生成一个新密码。"
|
||||
|
||||
msgid "Username:"
|
||||
msgstr "用户名:"
|
||||
|
||||
msgid "New Password:"
|
||||
msgstr "新密码:"
|
||||
|
||||
msgid "New password has been copied to clipboard."
|
||||
msgstr "新密码已复制到剪贴板。"
|
||||
|
||||
msgid "Force read config"
|
||||
msgstr "强制读取配置"
|
||||
|
||||
msgid "Setting this to true will force the program to read the configuration file, ignoring environment variables."
|
||||
msgstr "将此设置为 true 可以强制程序读取配置文件,而忽略环境变量"
|
||||
|
||||
msgid "Login Validity Period (hours)"
|
||||
msgstr "登录有效期(小时)"
|
||||
|
||||
msgid "Max Connections"
|
||||
msgstr "最大并发连接数"
|
||||
|
||||
msgid "0 is unlimited, It is recommend to set a low number of concurrency (10-20) for poor performance device"
|
||||
msgstr "默认 0 不限制,低性能设备建议设置较低的并发数(10-20)"
|
||||
|
||||
msgid "Max concurrency of local proxies"
|
||||
msgstr "本地代理最大并发数"
|
||||
|
||||
msgid "0 is unlimited, Limit the maximum concurrency of local agents. The default value is 64"
|
||||
msgstr "限制本地代理最大并发数,值为 0 表示不限制,默认值 64"
|
||||
|
||||
msgid "Site URL"
|
||||
msgstr "站点地址"
|
||||
|
||||
msgid "CDN URL"
|
||||
msgstr "CDN 地址"
|
||||
|
||||
msgid "JWT Key"
|
||||
msgstr "JWT 密钥"
|
||||
|
||||
msgid "Disable TLS Verify"
|
||||
msgstr "禁用 TLS 验证"
|
||||
|
||||
msgid "When the web is reverse proxied to a subdirectory, this option must be filled out to ensure proper functioning of the web. Do not include '/' at the end of the URL"
|
||||
msgstr "Web 被反向代理到二级目录时,必须填写该选项以确保 Web 正常工作。URL 结尾请勿携带 '/'"
|
||||
|
||||
msgid "Delayed Start (seconds)"
|
||||
msgstr "开机延时启动(秒)"
|
||||
|
||||
msgid "Database"
|
||||
msgstr "数据库"
|
||||
|
||||
msgid "Database Type"
|
||||
msgstr "数据库类型"
|
||||
|
||||
msgid "Database Host"
|
||||
msgstr "主机"
|
||||
|
||||
msgid "Database Port"
|
||||
msgstr "端口"
|
||||
|
||||
msgid "Database Username"
|
||||
msgstr "用户名"
|
||||
|
||||
msgid "Database Password"
|
||||
msgstr "密码"
|
||||
|
||||
msgid "Database Name"
|
||||
msgstr "数据库名"
|
||||
|
||||
msgid "Database Table Prefix"
|
||||
msgstr "数据库表前缀"
|
||||
|
||||
msgid "Database SSL Mode"
|
||||
msgstr "SSL模式"
|
||||
|
||||
msgid "Database DSN"
|
||||
msgstr "DSN"
|
||||
|
||||
msgid "Task threads"
|
||||
msgstr "任务线程"
|
||||
|
||||
msgid "Download Workers"
|
||||
msgstr "下载任务线程数"
|
||||
|
||||
msgid "Download Max Retry"
|
||||
msgstr "下载任务重试次数"
|
||||
|
||||
msgid "Transfer Workers"
|
||||
msgstr "中转任务线程数"
|
||||
|
||||
msgid "Transfer Max Retry"
|
||||
msgstr "中转任务下载重试次数"
|
||||
|
||||
msgid "Upload Workers"
|
||||
msgstr "上传任务线程数"
|
||||
|
||||
msgid "Upload Max Retry"
|
||||
msgstr "上传任务重试次数"
|
||||
|
||||
msgid "Copy Workers"
|
||||
msgstr "复制任务线程数"
|
||||
|
||||
msgid "Copy Max Retry"
|
||||
msgstr "复制任务重试次数"
|
||||
|
||||
msgid "CORS Settings"
|
||||
msgstr "跨域设置"
|
||||
|
||||
msgid "Allow Origins"
|
||||
msgstr "允许来源(Origins)"
|
||||
|
||||
msgid "Allow Methods"
|
||||
msgstr "允许方法(Methods)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:327
|
||||
msgid "Allow Headers"
|
||||
msgstr "允许标头(Headers)"
|
||||
|
||||
msgid "Object Storage"
|
||||
msgstr "对象存储"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:323
|
||||
msgid "Allow Methods"
|
||||
msgstr "允许方法(Methods)"
|
||||
|
||||
msgid "Enabled S3"
|
||||
msgstr "启用 S3"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:319
|
||||
msgid "Allow Origins"
|
||||
msgstr "允许来源(Origins)"
|
||||
|
||||
msgid "Enabled FTP"
|
||||
msgstr "启用 FTP"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:106
|
||||
msgid "Basic Settings"
|
||||
msgstr "基本设置"
|
||||
|
||||
msgid "FTP Port"
|
||||
msgstr "FTP 端口"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:157
|
||||
msgid "CDN URL"
|
||||
msgstr "CDN 地址"
|
||||
|
||||
msgid "Max retries on port conflict during passive transfer"
|
||||
msgstr "被动传输端口冲突时最大重试次数"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:112
|
||||
msgid "CORS Settings"
|
||||
msgstr "跨域设置"
|
||||
|
||||
msgid "Enable non-20 port for active transfer"
|
||||
msgstr "启用非 20 端口进行主动传输"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:138
|
||||
msgid "Cache directory"
|
||||
msgstr "缓存目录"
|
||||
|
||||
msgid "Client idle timeout (seconds)"
|
||||
msgstr "客户端空闲超时(秒)"
|
||||
|
||||
msgid "Connection timeout (seconds)"
|
||||
msgstr "连接超时(秒)"
|
||||
|
||||
msgid "Disable active transfer mode"
|
||||
msgstr "禁用主动传输模式"
|
||||
|
||||
msgid "Enable binary transfer mode"
|
||||
msgstr "启用二进制传输模式"
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:59
|
||||
msgid "Clear logs"
|
||||
msgstr "清空日志"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:376
|
||||
msgid "Client IP check in active transfer mode"
|
||||
msgstr "主动传输模式下对客户端进行 IP 检查"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:379
|
||||
msgid "Client IP check in passive transfer mode"
|
||||
msgstr "被动传输模式下对客户端进行 IP 检查"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:360
|
||||
msgid "Client idle timeout (seconds)"
|
||||
msgstr "客户端空闲超时(秒)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:100
|
||||
msgid "Collecting data..."
|
||||
msgstr "收集数据..."
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:365
|
||||
msgid "Connection timeout (seconds)"
|
||||
msgstr "连接超时(秒)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:313
|
||||
msgid "Copy Max Retry"
|
||||
msgstr "复制任务重试次数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:308
|
||||
msgid "Copy Workers"
|
||||
msgstr "复制任务线程数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:135
|
||||
msgid "Data directory"
|
||||
msgstr "数据目录"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:109
|
||||
msgid "Database"
|
||||
msgstr "数据库"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:255
|
||||
msgid "Database DSN"
|
||||
msgstr "DSN"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:224
|
||||
msgid "Database Host"
|
||||
msgstr "主机"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:242
|
||||
msgid "Database Name"
|
||||
msgstr "数据库名"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:238
|
||||
msgid "Database Password"
|
||||
msgstr "密码"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:228
|
||||
msgid "Database Port"
|
||||
msgstr "端口"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:251
|
||||
msgid "Database SSL Mode"
|
||||
msgstr "SSL模式"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:246
|
||||
msgid "Database Table Prefix"
|
||||
msgstr "数据库表前缀"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:218
|
||||
msgid "Database Type"
|
||||
msgstr "数据库类型"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:234
|
||||
msgid "Database Username"
|
||||
msgstr "用户名"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:127
|
||||
msgid "Delayed Start (seconds)"
|
||||
msgstr "开机延时启动(秒)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:180
|
||||
msgid "Disable TLS Verify"
|
||||
msgstr "禁用 TLS 验证"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:370
|
||||
msgid "Disable active transfer mode"
|
||||
msgstr "禁用主动传输模式"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:283
|
||||
msgid "Download Max Retry"
|
||||
msgstr "下载任务重试次数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:278
|
||||
msgid "Download Workers"
|
||||
msgstr "下载任务线程数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:185
|
||||
msgid "Enable Logs"
|
||||
msgstr "启用日志"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:260
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:340
|
||||
msgid "Enable SSL"
|
||||
msgstr "启用 SSL"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:373
|
||||
msgid "Enable binary transfer mode"
|
||||
msgstr "启用二进制传输模式"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:357
|
||||
msgid "Enable non-20 port for active transfer"
|
||||
msgstr "启用非 20 端口进行主动传输"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:118
|
||||
msgid "Enabled"
|
||||
msgstr "启用"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:344
|
||||
msgid "Enabled FTP"
|
||||
msgstr "启用 FTP"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:332
|
||||
msgid "Enabled S3"
|
||||
msgstr "启用 S3"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:383
|
||||
msgid "Enabled SFTP"
|
||||
msgstr "启用 SFTP"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:114
|
||||
msgid "FTP"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:347
|
||||
msgid "FTP Port"
|
||||
msgstr "FTP 端口"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:263
|
||||
msgid "Force HTTPS"
|
||||
msgstr "强制 HTTPS"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:149
|
||||
msgid "Force read config"
|
||||
msgstr "强制读取配置"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:143
|
||||
msgid "Generate a new random password."
|
||||
msgstr "随机生成一个新密码。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:107
|
||||
msgid "Global Settings"
|
||||
msgstr "全局设置"
|
||||
|
||||
#: luci-app-openlist2/root/usr/share/rpcd/acl.d/luci-app-openlist2.json:3
|
||||
msgid "Grant UCI access for luci-app-openlist2"
|
||||
msgstr "授予 luci-app-openlist2 的 UCI 访问权限"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:160
|
||||
msgid "JWT Key"
|
||||
msgstr "JWT 密钥"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:212
|
||||
msgid "Log Compress"
|
||||
msgstr "日志压缩"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:189
|
||||
msgid "Log path"
|
||||
msgstr "日志文件路径"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:163
|
||||
msgid "Login Validity Period (hours)"
|
||||
msgstr "登录有效期(小时)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:108
|
||||
#: luci-app-openlist2/root/usr/share/luci/menu.d/luci-app-openlist2.json:21
|
||||
msgid "Logs"
|
||||
msgstr "日志"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:168
|
||||
msgid "Max Connections"
|
||||
msgstr "最大并发连接数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:194
|
||||
msgid "Max Size (MB)"
|
||||
msgstr "日志文件大小(MB)"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:206
|
||||
msgid "Max age"
|
||||
msgstr "日志保存天数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:200
|
||||
msgid "Max backups"
|
||||
msgstr "日志备份数量"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:174
|
||||
msgid "Max concurrency of local proxies"
|
||||
msgstr "本地代理最大并发数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:352
|
||||
msgid "Max retries on port conflict during passive transfer"
|
||||
msgstr "被动传输端口冲突时最大重试次数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:221
|
||||
msgid "MySQL"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:40
|
||||
msgid "NOT RUNNING"
|
||||
msgstr "未运行"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:65
|
||||
msgid "New Password:"
|
||||
msgstr "新密码:"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:65
|
||||
msgid "New password has been copied to clipboard."
|
||||
msgstr "新密码已复制到剪贴板。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:23
|
||||
msgid "No log data."
|
||||
msgstr "无日志数据。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:113
|
||||
msgid "Object Storage"
|
||||
msgstr "对象存储"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:37
|
||||
msgid "Open Web Interface"
|
||||
msgstr "打开 Web 界面"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:132
|
||||
msgid "Open firewall port"
|
||||
msgstr "打开防火墙端口"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:83
|
||||
#: luci-app-openlist2/root/usr/share/luci/menu.d/luci-app-openlist2.json:3
|
||||
msgid "OpenList"
|
||||
msgstr "OpenList"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:122
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:335
|
||||
msgid "Port"
|
||||
msgstr "端口"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:222
|
||||
msgid "PostgreSQL"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:38
|
||||
msgid "RUNNING"
|
||||
msgstr "运行中"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/logs.js:68
|
||||
msgid "Refresh every %s seconds."
|
||||
msgstr "每 %s 秒刷新。"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:142
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:144
|
||||
msgid "Reset Password"
|
||||
msgstr "重置密码"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:115
|
||||
msgid "SFTP"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:386
|
||||
msgid "SFTP Port"
|
||||
msgstr "SFTP 端口"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:220
|
||||
msgid "SQLite"
|
||||
msgstr ""
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:267
|
||||
msgid "SSL cert"
|
||||
msgstr "SSL 证书"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:268
|
||||
msgid "SSL certificate file path"
|
||||
msgstr "SSL 证书文件路径"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:272
|
||||
msgid "SSL key"
|
||||
msgstr "SSL 密钥"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:273
|
||||
msgid "SSL key file path"
|
||||
msgstr "SSL 密钥文件路径"
|
||||
|
||||
#: luci-app-openlist2/root/usr/share/luci/menu.d/luci-app-openlist2.json:13
|
||||
msgid "Setting"
|
||||
msgstr "设置"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:150
|
||||
msgid ""
|
||||
"Setting this to true will force the program to read the configuration file, "
|
||||
"ignoring environment variables."
|
||||
msgstr "将此设置为 true 可以强制程序读取配置文件,而忽略环境变量"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:154
|
||||
msgid "Site URL"
|
||||
msgstr "站点地址"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:111
|
||||
msgid "Task threads"
|
||||
msgstr "任务线程"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:293
|
||||
msgid "Transfer Max Retry"
|
||||
msgstr "中转任务下载重试次数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:288
|
||||
msgid "Transfer Workers"
|
||||
msgstr "中转任务线程数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:303
|
||||
msgid "Upload Max Retry"
|
||||
msgstr "上传任务重试次数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:298
|
||||
msgid "Upload Workers"
|
||||
msgstr "上传任务线程数"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:65
|
||||
msgid "Username:"
|
||||
msgstr "用户名:"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:110
|
||||
msgid "Web Protocol"
|
||||
msgstr "Web 协议"
|
||||
|
||||
#: luci-app-openlist2/htdocs/luci-static/resources/view/openlist2/basic.js:155
|
||||
msgid ""
|
||||
"When the web is reverse proxied to a subdirectory, this option must be "
|
||||
"filled out to ensure proper functioning of the web. Do not include '/' at "
|
||||
"the end of the URL"
|
||||
msgstr ""
|
||||
"Web 被反向代理到二级目录时,必须填写该选项以确保 Web 正常工作。URL 结尾请勿携"
|
||||
"带 '/'"
|
||||
|
||||
@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-passwall
|
||||
PKG_VERSION:=26.5.11
|
||||
PKG_RELEASE:=119
|
||||
PKG_RELEASE:=120
|
||||
PKG_PO_VERSION:=$(PKG_VERSION)
|
||||
|
||||
PKG_CONFIG_DEPENDS:= \
|
||||
|
||||
@ -775,6 +775,9 @@ function gen_config_server(node)
|
||||
config.outbounds[index][k] = nil
|
||||
end
|
||||
end
|
||||
if value.protocol == "freedom" and api.compare_versions(xray_version, "<", "26.5.3") then -- Todo is to remove it
|
||||
value.settings = nil
|
||||
end
|
||||
end
|
||||
|
||||
return config
|
||||
@ -1245,9 +1248,9 @@ function gen_config(var)
|
||||
interface = node.iface
|
||||
}
|
||||
},
|
||||
settings = {
|
||||
settings = (api.compare_versions(xray_version, ">", "26.4.25")) and { -- Todo: Remove version check
|
||||
finalRules = {{ action = "allow" }}
|
||||
}
|
||||
} or nil
|
||||
}
|
||||
sys.call(string.format("mkdir -p %s && touch %s/%s", api.TMP_IFACE_PATH, api.TMP_IFACE_PATH, node.iface))
|
||||
end
|
||||
@ -2023,7 +2026,12 @@ function gen_proto_config(var)
|
||||
|
||||
-- 额外传出连接
|
||||
table.insert(outbounds, {
|
||||
protocol = "freedom", tag = "direct", settings = {finalRules = {{ action = "allow" }}}, sockopt = {mark = 255}
|
||||
protocol = "freedom",
|
||||
tag = "direct",
|
||||
settings = (api.compare_versions(xray_version, ">", "26.4.25")) and { -- Todo: Remove version check
|
||||
finalRules = {{ action = "allow" }}
|
||||
} or nil,
|
||||
sockopt = {mark = 255}
|
||||
})
|
||||
|
||||
local config = {
|
||||
|
||||
@ -8,12 +8,12 @@ PKG_NAME:=alwaysonline
|
||||
PKG_UPSTREAM_VERSION:=1.2.1
|
||||
PKG_UPSTREAM_GITHASH:=206292ca68e4d6c81b215163a7bbd0cd2eb36860
|
||||
PKG_VERSION:=$(PKG_UPSTREAM_VERSION)~$(call version_abbrev,$(PKG_UPSTREAM_GITHASH))
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
UCI_VERSION:=0.2025.01.25
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/Jamesits/alwaysonline.git
|
||||
PKG_SOURCE_VERSION:=fc4faba4a73ffdb93745b02a816ea5c883bfbb34
|
||||
PKG_SOURCE_VERSION:=c328927a0fac3ffc869a3dc04c33256cf0f3365c
|
||||
PKG_MIRROR_HASH:=skip
|
||||
|
||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_UPSTREAM_VERSION)
|
||||
|
||||
@ -5,8 +5,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=fastfetch
|
||||
PKG_VERSION:=2.62.1
|
||||
PKG_RELEASE:=5
|
||||
PKG_VERSION:=2.63.1
|
||||
PKG_RELEASE:=6
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/fastfetch-cli/fastfetch/tar.gz/$(PKG_VERSION)?
|
||||
|
||||
Loading…
Reference in New Issue
Block a user