mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-14 20:48:17 +08:00
🎨 Sync 2026-11-12 00:28:00
This commit is contained in:
1 parent
67c4a47b97
commit
2197585600
12 files changed
+84
-85
No files matched your search
+2
-2
@@ -1,8 +1,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=frp
|
||||
PKG_VERSION:=0.71.0
|
||||
PKG_RELEASE:=10
|
||||
PKG_VERSION:=0.71.1
|
||||
PKG_RELEASE:=11
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/fatedier/frp/tar.gz/v$(PKG_VERSION)?
|
||||
|
||||
@@ -813,9 +813,23 @@ function renderListeners(s, uciconfig, isClient) {
|
||||
o.depends('type', 'vless');
|
||||
o.modalonly = true;
|
||||
|
||||
const initVlessEncryptionOption = function(o, key) {
|
||||
o = s.taboption('field_vless_encryption', form.Value, 'vless_encryption_hmpayload', _('Payload'));
|
||||
o.readonly = true;
|
||||
o.depends('vless_decryption', '1');
|
||||
o.modalonly = true;
|
||||
|
||||
o = s.taboption('field_vless_encryption', CBIDummyCopyValue, '_vless_encryption_decryption', _('decryption'));
|
||||
o.depends('vless_decryption', '1');
|
||||
o.modalonly = true;
|
||||
|
||||
o = s.taboption('field_vless_encryption', CBIDummyCopyValue, '_vless_encryption_encryption', _('encryption'));
|
||||
o.depends('vless_decryption', '1');
|
||||
o.modalonly = true;
|
||||
|
||||
// common part
|
||||
const initVlessEncryptionOption = function(o, key, load_callback = v => v) {
|
||||
o.load = function(section_id) {
|
||||
return new VlessEncryption(uci.get(uciconfig, section_id, 'vless_encryption_hmpayload'))[key];
|
||||
return load_callback(new VlessEncryption(uci.get(uciconfig, section_id, 'vless_encryption_hmpayload'))[key]);
|
||||
}
|
||||
o.onchange = function(ev, section_id, value) {
|
||||
let UIEl = this.section.getUIElement(section_id, 'vless_encryption_hmpayload');
|
||||
@@ -832,29 +846,16 @@ function renderListeners(s, uciconfig, isClient) {
|
||||
});
|
||||
}
|
||||
o.write = function() {};
|
||||
o.depends('vless_decryption', '1');
|
||||
o.modalonly = true;
|
||||
}
|
||||
|
||||
o = s.taboption('field_vless_encryption', form.Value, 'vless_encryption_hmpayload', _('Payload'));
|
||||
o.readonly = true;
|
||||
o.depends('vless_decryption', '1');
|
||||
o.modalonly = true;
|
||||
|
||||
o = s.taboption('field_vless_encryption', CBIDummyCopyValue, '_vless_encryption_decryption', _('decryption'));
|
||||
o.depends('vless_decryption', '1');
|
||||
o.modalonly = true;
|
||||
|
||||
o = s.taboption('field_vless_encryption', CBIDummyCopyValue, '_vless_encryption_encryption', _('encryption'));
|
||||
o.depends('vless_decryption', '1');
|
||||
o.modalonly = true;
|
||||
|
||||
o = s.taboption('field_vless_encryption', form.ListValue, 'vless_encryption_method', _('Encryption method'));
|
||||
o.default = hm.vless_encryption.methods[0][0];
|
||||
hm.vless_encryption.methods.forEach((res) => {
|
||||
o.value.apply(o, res);
|
||||
})
|
||||
initVlessEncryptionOption(o, 'method');
|
||||
o.depends('vless_decryption', '1');
|
||||
o.modalonly = true;
|
||||
|
||||
o = s.taboption('field_vless_encryption', form.RichListValue, 'vless_encryption_xormode', _('XOR mode'));
|
||||
o.default = hm.vless_encryption.xormodes[0][0];
|
||||
@@ -862,8 +863,6 @@ function renderListeners(s, uciconfig, isClient) {
|
||||
o.value.apply(o, res);
|
||||
})
|
||||
initVlessEncryptionOption(o, 'xormode');
|
||||
o.depends('vless_decryption', '1');
|
||||
o.modalonly = true;
|
||||
|
||||
o = s.taboption('field_vless_encryption', hm.RichValue, 'vless_encryption_ticket', _('Server') +' '+ _('RTT'));
|
||||
o.default = hm.vless_encryption.tickets[0][0];
|
||||
@@ -881,8 +880,6 @@ function renderListeners(s, uciconfig, isClient) {
|
||||
return true;
|
||||
}
|
||||
o.rmempty = false;
|
||||
o.depends('vless_decryption', '1');
|
||||
o.modalonly = true;
|
||||
|
||||
o = s.taboption('field_vless_encryption', form.ListValue, 'vless_encryption_rtt', _('Client') +' '+ _('RTT'));
|
||||
o.default = hm.vless_encryption.rtts[0][0];
|
||||
@@ -891,8 +888,6 @@ function renderListeners(s, uciconfig, isClient) {
|
||||
})
|
||||
initVlessEncryptionOption(o, 'rtt');
|
||||
o.rmempty = false;
|
||||
o.depends('vless_decryption', '1');
|
||||
o.modalonly = true;
|
||||
|
||||
o = s.taboption('field_vless_encryption', hm.less_25_12 ? hm.DynamicList : form.DynamicList, 'vless_encryption_paddings', _('Paddings'), // @less_25_12
|
||||
_('The server and client can set different padding parameters.') + '</br>' +
|
||||
@@ -912,8 +907,6 @@ function renderListeners(s, uciconfig, isClient) {
|
||||
return true;
|
||||
}
|
||||
o.allowduplicates = true;
|
||||
o.depends('vless_decryption', '1');
|
||||
o.modalonly = true;
|
||||
|
||||
o = s.taboption('field_vless_encryption', hm.GenText, 'vless_encryption_keypairs', _('Keypairs'));
|
||||
o.placeholder = '[\n {\n "type": "vless-x25519",\n "server": "cP5Oy9MOpTaBKKE17Pfd56mbb1CIfp5EMpyBYqr2EG8",\n "client": "khEcQMT8j41xWmGYKpZtQ4vd8_9VWyFVmmCDIhRJ-Uk"\n },\n {\n "type": "vless-mlkem768",\n "server": "UHPx3nf-FVxF95byAw0YG025aQNw9HxKej-MiG5AhTcdW_WFpHlTVYQU5NHmXP6tmljSnB2iPmSQ29fisGxEog",\n "client": "h4sdZgCc5-ZefvQ8mZmReOWQdxYb0mwngMdl7pKhYEZZpGWHUPKAmxug87Bgj3GqSHs195QeVpxfrMLNB5J..."\n },\n ...\n]';
|
||||
@@ -985,9 +978,11 @@ function renderListeners(s, uciconfig, isClient) {
|
||||
|
||||
return node;
|
||||
}
|
||||
o.load = function(section_id) {
|
||||
return JSON.stringify(new VlessEncryption(uci.get(uciconfig, section_id, 'vless_encryption_hmpayload'))['keypairs'], null, 2);
|
||||
}
|
||||
initVlessEncryptionOption(o, 'keypairs',
|
||||
(keypairs) => JSON.stringify(keypairs, null, 2)
|
||||
);
|
||||
const keypairs_onchange = o.onchange;
|
||||
o.onchange = function() {};
|
||||
o.validate = function(section_id, value) {
|
||||
let result = hm.validateJson.call(this, section_id, value);
|
||||
|
||||
@@ -995,18 +990,7 @@ function renderListeners(s, uciconfig, isClient) {
|
||||
let keypairs = JSON.parse(value.trim());
|
||||
|
||||
if (Array.isArray(keypairs) && keypairs.length >= 1) {
|
||||
let UIEl = this.section.getUIElement(section_id, 'vless_encryption_hmpayload');
|
||||
let newpayload = new VlessEncryption(UIEl.getValue()).setKey('keypairs', keypairs);
|
||||
|
||||
UIEl.setValue(newpayload.toString());
|
||||
|
||||
[
|
||||
['server', '_vless_encryption_decryption'],
|
||||
['client', '_vless_encryption_encryption']
|
||||
].forEach(([side, option]) => {
|
||||
UIEl = this.section.getUIElement(section_id, option);
|
||||
UIEl.setValue(newpayload.toString('mihomo', side));
|
||||
});
|
||||
keypairs_onchange.call(this, null, section_id, keypairs);
|
||||
} else
|
||||
return _('Expecting: %s').format(_('least one keypair required'));
|
||||
|
||||
@@ -1015,8 +999,6 @@ function renderListeners(s, uciconfig, isClient) {
|
||||
return result;
|
||||
}
|
||||
o.rmempty = false;
|
||||
o.depends('vless_decryption', '1');
|
||||
o.modalonly = true;
|
||||
|
||||
// @xhttp-config其他的配置
|
||||
|
||||
|
||||
@@ -1382,6 +1382,19 @@ return view.extend({
|
||||
so.depends('type', 'vless');
|
||||
so.modalonly = true;
|
||||
|
||||
so = ss.taboption('field_vless_encryption', form.Value, 'vless_encryption_encryption', _('encryption'));
|
||||
so.renderWidget = function(/* ... */) {
|
||||
let node = form.Value.prototype.renderWidget.apply(this, arguments);
|
||||
|
||||
node.firstChild.style.width = '30em';
|
||||
|
||||
return node;
|
||||
}
|
||||
so.rmempty = false;
|
||||
so.depends('vless_encryption', '1');
|
||||
so.modalonly = true;
|
||||
|
||||
// common part
|
||||
const initVlessEncryptionClientOption = function(o, key) {
|
||||
o.load = function(section_id) {
|
||||
const value = uci.get(data[0], section_id, 'vless_encryption_encryption');
|
||||
@@ -1398,20 +1411,10 @@ return view.extend({
|
||||
UIEl.setValue(newpayload.toString());
|
||||
}
|
||||
o.write = function() {};
|
||||
o.depends('vless_encryption', '1');
|
||||
o.modalonly = true;
|
||||
}
|
||||
|
||||
so = ss.taboption('field_vless_encryption', form.Value, 'vless_encryption_encryption', _('encryption'));
|
||||
so.renderWidget = function(/* ... */) {
|
||||
let node = form.Value.prototype.renderWidget.apply(this, arguments);
|
||||
|
||||
node.firstChild.style.width = '30em';
|
||||
|
||||
return node;
|
||||
}
|
||||
so.rmempty = false;
|
||||
so.depends('vless_encryption', '1');
|
||||
so.modalonly = true;
|
||||
|
||||
so = ss.taboption('field_vless_encryption', form.ListValue, 'vless_encryption_rtt', _('Client') +' '+ _('RTT'));
|
||||
so.default = hm.vless_encryption.rtts[0][0];
|
||||
hm.vless_encryption.rtts.forEach((res) => {
|
||||
@@ -1419,8 +1422,6 @@ return view.extend({
|
||||
})
|
||||
initVlessEncryptionClientOption(so, 'rtt');
|
||||
so.rmempty = false;
|
||||
so.depends('vless_encryption', '1');
|
||||
so.modalonly = true;
|
||||
|
||||
so = ss.taboption('field_vless_encryption', hm.less_25_12 ? hm.DynamicList : form.DynamicList, 'vless_encryption_paddings', _('Paddings'), // @less_25_12
|
||||
_('The server and client can set different padding parameters.') + '</br>' +
|
||||
@@ -1440,8 +1441,6 @@ return view.extend({
|
||||
return true;
|
||||
}
|
||||
so.allowduplicates = true;
|
||||
so.depends('vless_encryption', '1');
|
||||
so.modalonly = true;
|
||||
|
||||
// @ 下面支持填写针对download-settings的上下行分离配置
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-passwall
|
||||
PKG_VERSION:=26.11.11
|
||||
PKG_RELEASE:=375
|
||||
PKG_RELEASE:=376
|
||||
PKG_PO_VERSION:=$(PKG_VERSION)
|
||||
|
||||
PKG_CONFIG_DEPENDS:= \
|
||||
|
||||
@@ -256,7 +256,7 @@
|
||||
document.head.appendChild(styleNode)
|
||||
// trace back from option -> select -> body for background color
|
||||
const panelRadius = styleSelect.borderRadius;
|
||||
const optionColor = !lv_isTransparent(styleSelect.backgroundColor) ? styleSelect.backgroundColor : !lv_isTransparent(styleOption.backgroundColor) ? styleOption.backgroundColor : styleBody.backgroundColor
|
||||
const optionColor = !lv_isTransparent(styleOption.backgroundColor) ? styleOption.backgroundColor : !lv_isTransparent(styleSelect.backgroundColor) ? styleSelect.backgroundColor : styleBody.backgroundColor
|
||||
const titleColor = lv_getColorSchema(optionColor) === "light" ? lv_darker(optionColor, 30) : lv_lighter(optionColor, 30)
|
||||
// 自带箭头已占据布局空间,右内边距使用主题的左内边距
|
||||
const selectStyleCSS = [`#${CSS.escape(cbid + ".display")} {`, lv_style2Css(styleSelect, styleNames), lv_style2Css(styleSelect, ["backgroundColor"]), `padding-right: ${styleSelect.paddingLeft} !important;`, "}"]
|
||||
|
||||
@@ -23,7 +23,7 @@ if node then
|
||||
end
|
||||
end
|
||||
-%>
|
||||
<script src="<%=resource%>/view/<%=appname%>/Sortable.min.js?v=1.15.7"></script>
|
||||
<script src="<%=resource%>/view/<%=appname%>/Sortable.min.js"></script>
|
||||
<script src="<%=resource%>/view/<%=appname%>/node_list_sort.js"></script>
|
||||
|
||||
<style>
|
||||
@@ -139,7 +139,17 @@ table td, .table .td {
|
||||
}
|
||||
|
||||
._now_use_bg {
|
||||
background: #5e72e445 !important;
|
||||
/* Argon: --primary, Bootstrap: --primary-color-high,
|
||||
Aurora: --brand, Vantage: --v-accent */
|
||||
--pw-accent: var(--primary,
|
||||
var(--primary-color-high,
|
||||
var(--brand,
|
||||
var(--v-accent,
|
||||
var(--accent, currentColor)))));
|
||||
/* Prefer each theme's own soft accent surface. */
|
||||
background-color: var(--brand-subtle,
|
||||
var(--v-accent-soft,
|
||||
color-mix(in srgb, var(--pw-accent) 27%, transparent))) !important;
|
||||
}
|
||||
|
||||
.ping a,
|
||||
@@ -149,12 +159,6 @@ table td, .table .td {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
._now_use_bg {
|
||||
background: #4a90e2 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.td.cbi-section-actions {
|
||||
text-align: right !important;
|
||||
}
|
||||
@@ -411,6 +415,11 @@ table td, .table .td {
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.pw-group-select > .cbi-dropdown > ul:not(.dropdown) {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.pw-group-select > .cbi-dropdown > ul:not(.dropdown) > li,
|
||||
.pw-group-select > .cbi-dropdown > .open {
|
||||
height: 26px;
|
||||
|
||||
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-passwall2
|
||||
PKG_VERSION:=26.11.11
|
||||
PKG_RELEASE:=176
|
||||
PKG_RELEASE:=177
|
||||
PKG_PO_VERSION:=$(PKG_VERSION)
|
||||
|
||||
PKG_CONFIG_DEPENDS:= \
|
||||
|
||||
@@ -137,7 +137,17 @@ table td, .table .td {
|
||||
}
|
||||
|
||||
._now_use_bg {
|
||||
background: #5e72e445 !important;
|
||||
/* Argon: --primary, Bootstrap: --primary-color-high,
|
||||
Aurora: --brand, Vantage: --v-accent */
|
||||
--pw-accent: var(--primary,
|
||||
var(--primary-color-high,
|
||||
var(--brand,
|
||||
var(--v-accent,
|
||||
var(--accent, currentColor)))));
|
||||
/* Prefer each theme's own soft accent surface. */
|
||||
background-color: var(--brand-subtle,
|
||||
var(--v-accent-soft,
|
||||
color-mix(in srgb, var(--pw-accent) 27%, transparent))) !important;
|
||||
}
|
||||
|
||||
.ping a,
|
||||
@@ -147,12 +157,6 @@ table td, .table .td {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
._now_use_bg {
|
||||
background: #4a90e2 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.td.cbi-section-actions {
|
||||
text-align: right !important;
|
||||
}
|
||||
@@ -409,6 +413,11 @@ table td, .table .td {
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.pw-group-select > .cbi-dropdown > ul:not(.dropdown) {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.pw-group-select > .cbi-dropdown > ul:not(.dropdown) > li,
|
||||
.pw-group-select > .cbi-dropdown > .open {
|
||||
height: 26px;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-trafficctl
|
||||
PKG_VERSION:=1.30.1
|
||||
PKG_RELEASE:=28
|
||||
PKG_VERSION:=1.30.2
|
||||
PKG_RELEASE:=29
|
||||
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
PKG_MAINTAINER:=Denis Iusupov <yusdyr@gmail.com>
|
||||
@@ -28,7 +28,7 @@ LUCI_DESCRIPTION:=Per-device traffic monitoring, rate limiting (nft/iptables), \
|
||||
# optional there, for wired-only builds), but it stays here so the upgrade from
|
||||
# 1.28.0 does not drop it and silently turn every WiFi block into a temporary
|
||||
# ban. trafficctl on its own does not need it.
|
||||
LUCI_DEPENDS:=+trafficctl +conntrack +curl +tc +iw +hostapd-utils +luci-base +rpcd
|
||||
LUCI_DEPENDS:=+trafficctl +conntrack +curl +tc +iw +kmod-nft-netdev +hostapd-utils +luci-base +rpcd
|
||||
LUCI_PKGARCH:=all
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
+2
-2
@@ -5,8 +5,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mihomo
|
||||
PKG_VERSION:=1.19.33
|
||||
PKG_RELEASE:=37
|
||||
PKG_VERSION:=1.19.34
|
||||
PKG_RELEASE:=38
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/metacubex/mihomo/tar.gz/v$(PKG_VERSION)?
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=teleproxy
|
||||
PKG_VERSION:=4.16.1
|
||||
PKG_RELEASE:=28
|
||||
PKG_RELEASE:=29
|
||||
|
||||
PKG_MAINTAINER:=Kosntantine Shevlakov <shevlakov@132lan.ru>
|
||||
PKG_LICENSE:=GPLv2
|
||||
|
||||
@@ -6,7 +6,7 @@ Index: teleproxy/src/common/rdtsc_32bit.h
|
||||
+#ifndef RDTSC_EMUL_H
|
||||
+#define RDTSC_EMUL_H
|
||||
+
|
||||
+#if defined(__arm__) || defined(__mips__) || defined(__mipsel__)
|
||||
+#if !defined(__i386__) && !defined(__x86_64__) && !defined(__aarch64__)
|
||||
+#include <time.h>
|
||||
+
|
||||
+static inline unsigned long long rdtsc(void) {
|
||||
|
||||
Reference in new issue
Block a user