diff --git a/luci-app-fchomo/.prepare.sh b/luci-app-fchomo/.prepare.sh
index 0ed2a0e15..70069e621 100755
--- a/luci-app-fchomo/.prepare.sh
+++ b/luci-app-fchomo/.prepare.sh
@@ -9,7 +9,8 @@ OS=linux
ARCH=amd64
JQVERSION=1.7.1
DOCNAME=Ruleset-URI-Scheme
-SHARKNAME=shark-taiko.gif
+SHARKIMG='img/shark-taiko.gif'
+SHARKAUDIO='audio/A!.mp3'
mkdir -p "$PKG_BUILD_BIN"
curl -L "https://github.com/jqlang/jq/releases/download/jq-${JQVERSION}/jq-${OS}-${ARCH}" -o "$PKG_BUILD_BIN"/jq
@@ -34,9 +35,13 @@ tail -n +$(( $p +1 )) $DOCNAME.html
popd
minify "$PKG_BUILD_DIR"/buildin.html | base64 | tr -d '\n' > "$PKG_BUILD_DIR"/base64
sed -i "s|'cmxzdHBsYWNlaG9sZGVy'|'$(cat "$PKG_BUILD_DIR"/base64)'|" "$PKG_BUILD_DIR"/htdocs/luci-static/resources/fchomo.js
-# shaka
+# shaka audio
+sed -i "s|audio/x-wav|audio/mpeg|;
+ s|'UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA='|'$(base64 "$CURDIR/docs/$SHARKAUDIO" | tr -d '\n')'|" \
+"$PKG_BUILD_DIR"/htdocs/luci-static/resources/fchomo.js
+# shaka gif
echo -n "'" > "$PKG_BUILD_DIR"/base64
-base64 "$CURDIR"/docs/img/$SHARKNAME | tr -d '\n' >> "$PKG_BUILD_DIR"/base64
+base64 "$CURDIR/docs/$SHARKIMG" | tr -d '\n' >> "$PKG_BUILD_DIR"/base64
echo "'" >> "$PKG_BUILD_DIR"/base64
p=$(sed -n "/'c2hhcmstdGFpa28uZ2lm'/=" "$PKG_BUILD_DIR"/htdocs/luci-static/resources/fchomo.js)
{
diff --git a/luci-app-fchomo/Makefile b/luci-app-fchomo/Makefile
index ce00c01a9..50c7339d5 100644
--- a/luci-app-fchomo/Makefile
+++ b/luci-app-fchomo/Makefile
@@ -4,7 +4,7 @@
include $(TOPDIR)/rules.mk
-LUCI_TITLE:=FullCombo Mihomo supplies maximum customization on OpenWrt.
+LUCI_TITLE:=FullCombo Shark! supplies maximum customization on OpenWrt.
LUCI_PKGARCH:=all
LUCI_DEPENDS:= \
+mihomo \
diff --git a/luci-app-fchomo/docs/audio/A!.mp3 b/luci-app-fchomo/docs/audio/A!.mp3
new file mode 100644
index 000000000..d4b23a521
Binary files /dev/null and b/luci-app-fchomo/docs/audio/A!.mp3 differ
diff --git a/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js b/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js
index 849d17192..f5e9f3904 100644
--- a/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js
+++ b/luci-app-fchomo/htdocs/luci-static/resources/fchomo.js
@@ -10,6 +10,11 @@
/* Member */
const rulesetdoc = 'data:text/html;base64,' + 'cmxzdHBsYWNlaG9sZGVy';
+const sharkaudio = function() {
+ return 'data:audio/x-wav;base64,' +
+'UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA='
+}()
+
const sharktaikogif = function() {
return 'data:image/gif;base64,' +
'c2hhcmstdGFpa28uZ2lm'
@@ -328,7 +333,7 @@ const UIDynamicList = ui.DynamicList.extend({
'type': 'hidden',
'name': this.options.name,
'value': value })]);
-
+
const ai = dl.querySelector('.add-item');
ai.parentNode.insertBefore(new_item, ai);
}
@@ -1126,6 +1131,7 @@ function uploadInitialPack(ev, section_id) {
return baseclass.extend({
/* Member */
rulesetdoc,
+ sharkaudio,
sharktaikogif,
less_24_10,
pr7558_merged,
diff --git a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js
index 38c5be3d5..abb3a17af 100644
--- a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js
+++ b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/global.js
@@ -7,6 +7,7 @@
'require uci';
'require ui';
'require view';
+'require dom';
'require fchomo as hm';
'require tools.firewall as fwtool';
@@ -135,8 +136,24 @@ return view.extend({
let m, s, o, ss, so;
- m = new form.Map('fchomo', _('FullCombo Mihomo'),
- '
');
+ m = new form.Map('fchomo', _('FullCombo Shark!'),
+ '
' +
+ '');
+ m.renderContents = function(/* ... */) {
+ let node = form.Map.prototype.renderContents.apply(this, arguments);
+
+ return node.then((mapEl) => {
+ const playButton = mapEl.querySelector('.cbi-map-descr > img');
+ const audio = mapEl.querySelector('.cbi-map-descr > audio');
+
+ playButton.addEventListener('click', function() {
+ if (audio.paused)
+ audio.play();
+ });
+
+ return mapEl;
+ });
+ }
s = m.section(form.NamedSection, 'config', 'fchomo');
diff --git a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/log.js b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/log.js
index b6a31cf69..6398c9523 100644
--- a/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/log.js
+++ b/luci-app-fchomo/htdocs/luci-static/resources/view/fchomo/log.js
@@ -93,14 +93,14 @@ return view.extend({
s = m.section(form.NamedSection, 'config', 'fchomo');
- /* FullCombo Mihomo START */
- s.tab('fchomo', _('FullCombo Mihomo'));
+ /* FullCombo Shark! START */
+ s.tab('fchomo', _('FullCombo Shark!'));
o = s.taboption('fchomo', form.SectionValue, '_fchomo', form.NamedSection, 'config', null);
ss = o.subsection;
so = ss.option(form.DummyValue, '_fchomo_logview');
- so.render = L.bind(getRuntimeLog, so, _('FullCombo Mihomo'), 'fchomo');
- /* FullCombo Mihomo END */
+ so.render = L.bind(getRuntimeLog, so, _('FullCombo Shark!'), 'fchomo');
+ /* FullCombo Shark! END */
/* Mihomo client START */
s.tab('mihomo_c', _('Mihomo client'));
diff --git a/luci-app-fchomo/po/templates/fchomo.pot b/luci-app-fchomo/po/templates/fchomo.pot
index 6e9b85e75..8b89001ed 100644
--- a/luci-app-fchomo/po/templates/fchomo.pot
+++ b/luci-app-fchomo/po/templates/fchomo.pot
@@ -830,7 +830,7 @@ msgstr ""
#: htdocs/luci-static/resources/view/fchomo/log.js:97
#: htdocs/luci-static/resources/view/fchomo/log.js:102
#: root/usr/share/luci/menu.d/luci-app-fchomo.json:3
-msgid "FullCombo Mihomo"
+msgid "FullCombo Shark!"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:620
diff --git a/luci-app-fchomo/po/zh_Hans/fchomo.po b/luci-app-fchomo/po/zh_Hans/fchomo.po
index 6b01c289b..6cd4e929e 100644
--- a/luci-app-fchomo/po/zh_Hans/fchomo.po
+++ b/luci-app-fchomo/po/zh_Hans/fchomo.po
@@ -848,7 +848,7 @@ msgstr "格式"
#: htdocs/luci-static/resources/view/fchomo/log.js:97
#: htdocs/luci-static/resources/view/fchomo/log.js:102
#: root/usr/share/luci/menu.d/luci-app-fchomo.json:3
-msgid "FullCombo Mihomo"
+msgid "FullCombo Shark!"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:620
diff --git a/luci-app-fchomo/po/zh_Hant/fchomo.po b/luci-app-fchomo/po/zh_Hant/fchomo.po
index 53b33e058..f71832ec3 100644
--- a/luci-app-fchomo/po/zh_Hant/fchomo.po
+++ b/luci-app-fchomo/po/zh_Hant/fchomo.po
@@ -848,7 +848,7 @@ msgstr "格式"
#: htdocs/luci-static/resources/view/fchomo/log.js:97
#: htdocs/luci-static/resources/view/fchomo/log.js:102
#: root/usr/share/luci/menu.d/luci-app-fchomo.json:3
-msgid "FullCombo Mihomo"
+msgid "FullCombo Shark!"
msgstr ""
#: htdocs/luci-static/resources/view/fchomo/node.js:620
diff --git a/luci-app-fchomo/root/usr/share/luci/menu.d/luci-app-fchomo.json b/luci-app-fchomo/root/usr/share/luci/menu.d/luci-app-fchomo.json
index 487ce1a4e..34e5b33bb 100644
--- a/luci-app-fchomo/root/usr/share/luci/menu.d/luci-app-fchomo.json
+++ b/luci-app-fchomo/root/usr/share/luci/menu.d/luci-app-fchomo.json
@@ -1,6 +1,6 @@
{
"admin/services/fchomo": {
- "title": "FullCombo Mihomo",
+ "title": "FullCombo Shark!",
"order": 12,
"action": {
"type": "firstchild"
diff --git a/luci-app-fchomo/root/usr/share/rpcd/ucode/luci.fchomo b/luci-app-fchomo/root/usr/share/rpcd/ucode/luci.fchomo
index 139df850a..8efb6c651 100644
--- a/luci-app-fchomo/root/usr/share/rpcd/ucode/luci.fchomo
+++ b/luci-app-fchomo/root/usr/share/rpcd/ucode/luci.fchomo
@@ -24,7 +24,7 @@ function wGET(url, header, filepath) {
if (!url || type(url) !== 'string')
return null;
- let ua = 'Wget/1.21 (FullCombo Mihomo)';
+ let ua = 'Wget/1.21 (FullCombo Shark!)';
if (header) {
header = json(trim(header) || {});
diff --git a/luci-theme-kucat/Makefile b/luci-theme-kucat/Makefile
index a6398fc11..18d4a5134 100644
--- a/luci-theme-kucat/Makefile
+++ b/luci-theme-kucat/Makefile
@@ -11,7 +11,7 @@ PKG_NAME:=luci-theme-$(THEME_NAME)
LUCI_TITLE:=Kucat Theme by sirpdboy
LUCI_DEPENDS:=
PKG_VERSION:=2.4.9
-PKG_RELEASE:=20250114
+PKG_RELEASE:=20250209
define Package/luci-theme-$(THEME_NAME)/postinst
#!/bin/sh
diff --git a/luci-theme-kucat/htdocs/luci-static/kucat/css/style.css b/luci-theme-kucat/htdocs/luci-static/kucat/css/style.css
index 3ed9782e1..308edc44b 100644
--- a/luci-theme-kucat/htdocs/luci-static/kucat/css/style.css
+++ b/luci-theme-kucat/htdocs/luci-static/kucat/css/style.css
@@ -352,7 +352,7 @@ input[type='radio']:checked {
}
select:not([multiple="multiple"]):focus, input:not(.cbi-button):focus, .cbi-dropdown:focus {
- background-color: var(--input-hover-bgcolor);
+ background-color: rgba(var(--primary-rgbm),1);
box-shadow: 0 0 6px rgba(0, 0, 0, 0.22);
-webkit-box-shadow: 0 0 6px rgba(0, 0, 0, 0.22);
-moz-box-shadow: 0 0 6px rgba(0, 0, 0, 0.22)
@@ -993,7 +993,7 @@ text-decoration: none!important;
padding: 1rem 1.25rem 3rem 1.25rem;
}
ul {
- line-height: inherit;
+ line-height: normal;
}
li {
list-style-type: none;
@@ -1710,8 +1710,11 @@ button:hover, .btn:hover, .cbi-button:hover ,.item:hover{
background-color: rgba(var(--primary-rgbm), 0.9);
border: 1px solid rgba(var(--primary-rgbm), 1);
}
-
+.cbi-dropdown {
+ padding: .2rem .2rem;
+}
.cbi-dynlist, .cbi-dropdown {
+
position: relative;
display: inline-flex;
min-height: 2.1875rem;
@@ -1742,9 +1745,19 @@ button:hover, .btn:hover, .cbi-button:hover ,.item:hover{
.cbi-dropdown > .open, .cbi-dropdown > .more {
font-weight: bolder;
background-color: rgba(255,255,255,0)!important;
- display: flex;
- flex-direction: column;
- justify-content: center;
+
+ font-size: 1rem;
+ font-weight: 900;
+ line-height: 2;
+ display: flex;
+ flex-direction: column;
+ flex-grow: 0;
+ flex-shrink: 0;
+ justify-content: center;
+ padding: 0 .25em;
+ cursor: default;
+ text-align: center;
+ outline: 0;
}
.cbi-dropdown > .more {
font-size: var(--font-z);
@@ -1756,23 +1769,7 @@ button:hover, .btn:hover, .cbi-button:hover ,.item:hover{
.cbi-dropdown.btn > div {
margin: 0px;
}
-.cbi-dropdown > .more, .cbi-dropdown > ul > li[placeholder] {
- font-weight: bold;
- display: none;
- color: #777;
-}
-.cbi-dropdown > ul > li {
- display: none;
- overflow: hidden;
- align-items: center;
- align-self: center;
- flex-grow: 1;
- flex-shrink: 1;
- min-height: 30px;
- /* padding: 0.125rem 0.25em; */
- white-space: nowrap;
- text-overflow: ellipsis;
-}
+
.cbi-dropdown > ul > li .hide-open {
display: initial;
}
@@ -1805,18 +1802,28 @@ button:hover, .btn:hover, .cbi-button:hover ,.item:hover{
background: rgba(var(--primary-rgbbody), 1);
color: var(--inputtext-color);
}
+
.cbi-dropdown[open] > ul.dropdown {
- /* position: revert; */
z-index: 1100;
- display: table;
- width: auto;
+
min-width: 100%;
max-height: 200px !important;
border: 1px solid var(--inputborder-color);
background: rgba(var(--primary-rgbbody), 1);
- /* box-shadow: 0 0 4px #918e8c; */
color: var(--inputtext-color);
- margin-left: 0 !important;
+ position: absolute;
+ z-index: 1100;
+ display: block;
+ width: auto;
+ min-width: 100%;
+ max-width: none;
+ max-height: 200px;
+ border-bottom-left-radius: .35rem;
+ border-bottom-right-radius: .35rem;
+ color: var(--main-menu-color);
+ margin-left: -0.2rem !important;
+ left: initial !important;
+ right: initial !important;
}
.cbi-dropdown > ul > li[display], .cbi-dropdown[open] > ul.preview, .cbi-dropdown[open] > ul.dropdown > li, .cbi-dropdown[multiple] > ul > li > label, .cbi-dropdown[multiple][open] > ul.dropdown > li, .cbi-dropdown[multiple][more] > .more, .cbi-dropdown[multiple][empty] > .more {
@@ -1825,9 +1832,7 @@ button:hover, .btn:hover, .cbi-button:hover ,.item:hover{
padding: 0 10px 0 10px;
flex-grow: 1;
}
-.cbi-dropdown[open]>ul.dropdown>li {
- border-bottom: thin solid #ccc;
-}
+
.btn:not(button) ul:not(.dropdown) li {
padding: 0;
}
@@ -1844,12 +1849,12 @@ button:hover, .btn:hover, .cbi-button:hover ,.item:hover{
.cbi-dropdown[open] > ul.dropdown > li .hide-close {
display: initial;
}
-.cbi-dropdown[open] > ul.dropdown > li[selected] {
+.cbi-dropdown[open]>ul.dropdown>li[selected] {
background: rgba(var(--primary-rgbm), 1);
color:#f8f8f8;
padding-left: 10px;
}
-.cbi-dropdown[open] > ul.dropdown > li.focus {
+.cbi-dropdown[open]>ul.dropdown>li.focus {
background: rgba(var(--primary-rgbm), 1);
color:#f8f8f8;
}
@@ -1865,6 +1870,32 @@ button:hover, .btn:hover, .cbi-button:hover ,.item:hover{
.cbi-dropdown:not(.btn):not(.cbi-button) {
padding: 0;
}
+
+.cbi-dropdown > ul > li {
+ display: none;
+ overflow: hidden;
+ align-items: center;
+ align-self: center;
+ flex-grow: 1;
+ flex-shrink: 1;
+ min-height: 30px;
+ padding: 0.25em;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+.cbi-dropdown > .more, .cbi-dropdown > ul > li[placeholder] {
+ font-weight: bold;
+ display: none;
+ color: #777;
+}
+.cbi-dropdown[empty]>ul>li, .cbi-dropdown[optional][open]>ul.dropdown>li[placeholder], .cbi-dropdown[multiple][open]>ul.dropdown>li>form {
+ display: block;
+}
+.cbi-dropdown[open]>ul.dropdown>li {
+ border-bottom: thin solid #ccc;
+ padding: .5rem .8rem;
+ color: #222;
+}
.cbi-dropdown[open] > ul.dropdown > li > input.create-item-input:first-child:last-child {
width: 100%;
}
diff --git a/mihomo/Makefile b/mihomo/Makefile
index db51471f2..6027a000e 100644
--- a/mihomo/Makefile
+++ b/mihomo/Makefile
@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=mihomo
-PKG_VERSION:=1.19.1
+PKG_VERSION:=1.19.2
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/metacubex/mihomo/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=cf32a96bea6caeb2769e86e3001da67d332a673fc6db703b5bc1a5d14754daa1
+PKG_HASH:=8afa33b5eb9fc20e521a986be5e21908b53858e4b2350b56e0bf3495b740c4dc
PKG_MAINTAINER:=Anya Lin
PKG_LICENSE:=GPL-2.0
diff --git a/tailscale/Makefile b/tailscale/Makefile
index 7c536a8b4..a4c467944 100644
--- a/tailscale/Makefile
+++ b/tailscale/Makefile
@@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=tailscale
-PKG_VERSION:=1.78.1
+PKG_VERSION:=1.80.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/tailscale/tailscale/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=dbc25cc241bb233f183475f003d5508af7b45add1ca548b35a6a6fea91fb91af
+PKG_HASH:=3dc0e5f903912ba5ada04c807501550b2d434111d1080b11099672d3dfd5c3f3
PKG_MAINTAINER:=Zephyr Lykos , \
Sandro Jäckel
diff --git a/v2raya/Makefile b/v2raya/Makefile
index 180e01167..3e8e92840 100644
--- a/v2raya/Makefile
+++ b/v2raya/Makefile
@@ -5,12 +5,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=v2rayA
-PKG_VERSION:=2.2.6.4
+PKG_VERSION:=2.2.6.6
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/v2rayA/v2rayA/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=801873bb5d8f3fe3d27b26b8b9b4876d7dbd4ffee433344169cc5ebf8070499d
+PKG_HASH:=9ca40d9a19ffc46e6c27ad4214e958f3430d03e87352dbcaf4f15a8f65bdaac0
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/service
PKG_LICENSE:=AGPL-3.0-only
@@ -60,7 +60,7 @@ define Download/v2raya-web
URL:=https://github.com/v2rayA/v2rayA/releases/download/v$(PKG_VERSION)/
URL_FILE:=web.tar.gz
FILE:=$(WEB_FILE)
- HASH:=7625e71d9592855dc283b28eabd740d2c2851c7755e893005fc57aca03f9760f
+ HASH:=a30bd587b607e168cd6b34f71630418a09d88491349300e69bfcd39dc46f68f3
endef
define Build/Prepare