kit-sub: файлы страницы подписки для браузера (assets); ссылки «открыть в приложении» для Hiddify, Clash Verge, FlClash, Mihomo Party, v2rayNG
This commit is contained in:
+3
-1
@@ -38,6 +38,8 @@ CLASH_UA = re.compile(r"clash|mihomo|flclash|stash|nyanpasu|meta", re.I)
|
||||
# тоже могут просить формат Clash (Karing так и делает), но AmneziaWG не умеют.
|
||||
NO_AWG_UA = re.compile(r"karing|hiddify|nekobox|sing-?box|husi|stash|shadowrocket|v2box|streisand|happ|loon|surge|quantumult", re.I)
|
||||
SUB_ID = re.compile(r"^[A-Za-z0-9_.@-]{1,64}$")
|
||||
# Страница подписки для браузера (React от 3X-UI) подгружает скрипты и стили из «<путь>/assets/…»: пропускаем только такие файлы.
|
||||
ASSET = re.compile(r"^assets/[A-Za-z0-9_.-]{1,128}\.(js|css|woff2?|svg|png|ico|map)$")
|
||||
# Заголовки Happ, которые 3X-UI отдаёт в подписке (маршрутизация, баннеры, настройки клиента).
|
||||
HAPP_HEADERS = ("routing", "routing-enable", "announce", "providerid", "new-url", "fallback-url",
|
||||
"hide-settings", "no-limit-enabled", "ping-type", "color-profile", "tun-mode", "tun-type",
|
||||
@@ -249,7 +251,7 @@ class Handler(http.server.BaseHTTPRequestHandler):
|
||||
if not path.startswith(PATH):
|
||||
return self.send_html_error(404)
|
||||
sub_id = path[len(PATH):]
|
||||
if not SUB_ID.match(sub_id):
|
||||
if not SUB_ID.match(sub_id) and not ASSET.match(sub_id):
|
||||
return self.send_html_error(404)
|
||||
ua = self.headers.get("User-Agent", "")
|
||||
host = CONF.get("link_host") or self.headers.get("Host", CONF.get("host", ""))
|
||||
|
||||
+9
-3
@@ -142,13 +142,19 @@ direct_links() { # subId фильтр
|
||||
# Панель «через SSH-туннель»: подписка слушает только 127.0.0.1, с телефона по ней не зайти.
|
||||
local_only_sub() { [[ ${SUB_BASE:-} == http://127.0.0.1* || ${SUB_BASE:-} == http://localhost* ]]; }
|
||||
|
||||
# Ссылки «открыть в приложении»: нажатие добавляет подписку сразу с названием (проверено: Karing и Happ).
|
||||
# Ссылки «открыть в приложении»: нажатие добавляет подписку сразу с названием.
|
||||
# Проверено на устройстве: Karing, Happ. Остальные собраны по документации приложений.
|
||||
app_links() { # адрес подписки
|
||||
local url=$1 enc
|
||||
enc=$(python3 -c 'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=""))' "$url")
|
||||
echo "Открыть в приложении (отправьте ссылку себе или близкому в мессенджер и нажмите):"
|
||||
echo " Karing: karing://install-config?url=$enc&name=3X-UI%20KIT"
|
||||
echo " Happ: happ://add/$url"
|
||||
echo " Karing: karing://install-config?url=$enc&name=3X-UI%20KIT"
|
||||
echo " Happ: happ://add/$url"
|
||||
echo " Hiddify: hiddify://import/$url#3X-UI%20KIT"
|
||||
echo " Clash Verge: clash://install-config?url=$enc&name=3X-UI%20KIT"
|
||||
echo " FlClash: flclash://install-config?url=$enc"
|
||||
echo " Mihomo Party: mihomo://install-config?url=$enc&name=3X-UI%20KIT"
|
||||
echo " v2rayNG: v2rayng://install-sub?url=$enc&name=3X-UI%20KIT"
|
||||
}
|
||||
|
||||
show_link() { # имя subId
|
||||
|
||||
Reference in New Issue
Block a user