From 3b93444c52ad3eb8e3b6107527877eaacbdf2976 Mon Sep 17 00:00:00 2001 From: "github-action[bot]" Date: Fri, 3 May 2024 20:28:03 +0200 Subject: [PATCH] Update On Fri May 3 20:28:02 CEST 2024 --- .github/update.log | 1 + .../github/kr328/clash/core/model/Proxy.kt | 1 + clash-nyanpasu/frontend/nyanpasu/package.json | 2 +- clash-nyanpasu/package.json | 2 +- clash-nyanpasu/pnpm-lock.yaml | 47 +- clash-verge-rev/src-tauri/src/feat.rs | 2 +- clash-verge-rev/src-tauri/src/main.rs | 3 + filebrowser/files/mime.go | 608 ++ .../src/components/files/ListingItem.vue | 15 +- .../src/components/files/VideoPlayer.vue | 144 +- .../frontend/src/css/listing-icons.css | 234 +- lede/README.md | 4 +- .../mediatek/mt7988a-dsa-10g-spim-nand.dts | 245 +- .../arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 321 +- .../mediatek/mt7988a-dsa-10g-spim-nand.dts | 245 +- .../arch/arm64/boot/dts/mediatek/mt7988a.dtsi | 321 +- mieru/pkg/replay/replay.go | 7 + mieru/pkg/replay/replay_test.go | 8 +- .../resources/view/homeproxy/client.js | 41 +- .../resources/view/homeproxy/node.js | 2 +- .../homeproxy/po/templates/homeproxy.pot | 599 +- .../homeproxy/po/zh_Hans/homeproxy.po | 608 +- .../etc/homeproxy/resources/china_ip4.txt | 415 +- .../etc/homeproxy/resources/china_ip4.ver | 2 +- .../etc/homeproxy/resources/china_ip6.txt | 357 +- .../etc/homeproxy/resources/china_ip6.ver | 2 +- .../etc/homeproxy/resources/china_list.txt | 6369 +++++++++++++---- .../etc/homeproxy/resources/china_list.ver | 2 +- .../root/etc/homeproxy/resources/gfw_list.txt | 16 +- .../root/etc/homeproxy/resources/gfw_list.ver | 2 +- .../homeproxy/root/etc/init.d/homeproxy | 63 +- .../etc/uci-defaults/luci-homeproxy-migration | 16 + .../root/usr/share/rpcd/ucode/luci.homeproxy | 2 + sing-box/.github/workflows/docker.yml | 29 +- sing-box/clients/android/build.gradle | 4 +- sing-box/clients/android/version.properties | 4 +- .../Service/UIProfileUpdateTask.swift | 2 +- .../Views/Setting/ServiceLogView.swift | 2 +- .../Library/Network/ExtensionProfile.swift | 11 + .../apple/sing-box.xcodeproj/project.pbxproj | 24 +- sing-box/docs/changelog.md | 9 + .../docs/installation/build-from-source.md | 12 +- .../docs/installation/build-from-source.zh.md | 26 +- sing-box/docs/installation/package-manager.md | 40 +- .../docs/installation/package-manager.zh.md | 40 +- .../docs/installation/tools/sing-box.repo | 1 - sing-box/go.mod | 6 +- sing-box/go.sum | 12 +- sing-box/log/observable.go | 6 +- small/sing-box/Makefile | 4 +- small/v2ray-core/Makefile | 4 +- v2ray-core/core.go | 2 +- v2ray-core/go.mod | 8 +- v2ray-core/go.sum | 16 +- .../v2rayN/Handler/CoreConfigSingbox.cs | 22 +- v2rayn/v2rayN/v2rayN/Models/SingboxConfig.cs | 10 +- xray-core/go.mod | 4 +- xray-core/go.sum | 8 +- yass/.gitignore | 2 + yass/.ycm_extra_conf.py | 1 - yass/CMakeLists.txt | 1 + yass/CRASHPAD_COMMIT | 2 +- yass/scripts/build-rust.sh | 6 +- yass/scripts/setup-android-rust.sh | 4 +- yass/scripts/setup-ios-rust.sh | 4 +- yass/src/config/config_core.hpp | 18 +- yass/src/config/config_export.hpp | 26 + yass/src/config/config_impl.cpp | 2 +- 68 files changed, 7870 insertions(+), 3208 deletions(-) create mode 100644 filebrowser/files/mime.go create mode 100644 openwrt-packages/homeproxy/root/etc/uci-defaults/luci-homeproxy-migration create mode 100644 yass/src/config/config_export.hpp diff --git a/.github/update.log b/.github/update.log index 92f77d2d04..3322766ed3 100644 --- a/.github/update.log +++ b/.github/update.log @@ -635,3 +635,4 @@ Update On Mon Apr 29 20:27:31 CEST 2024 Update On Tue Apr 30 20:31:38 CEST 2024 Update On Wed May 1 20:30:48 CEST 2024 Update On Thu May 2 20:28:05 CEST 2024 +Update On Fri May 3 20:27:51 CEST 2024 diff --git a/clash-meta-android/core/src/main/java/com/github/kr328/clash/core/model/Proxy.kt b/clash-meta-android/core/src/main/java/com/github/kr328/clash/core/model/Proxy.kt index 9f37b0bd5d..ceff284433 100644 --- a/clash-meta-android/core/src/main/java/com/github/kr328/clash/core/model/Proxy.kt +++ b/clash-meta-android/core/src/main/java/com/github/kr328/clash/core/model/Proxy.kt @@ -17,6 +17,7 @@ data class Proxy( enum class Type(val group: Boolean) { Direct(false), Reject(false), + RejectDrop(false), Compatible(false), Pass(false), diff --git a/clash-nyanpasu/frontend/nyanpasu/package.json b/clash-nyanpasu/frontend/nyanpasu/package.json index efa2091d7c..219c86ba7d 100644 --- a/clash-nyanpasu/frontend/nyanpasu/package.json +++ b/clash-nyanpasu/frontend/nyanpasu/package.json @@ -20,7 +20,7 @@ "@mui/icons-material": "5.15.16", "@mui/lab": "5.0.0-alpha.170", "@mui/material": "5.15.16", - "@mui/x-data-grid": "7.3.1", + "@mui/x-data-grid": "7.3.2", "@nyanpasu/interface": "workspace:^", "@nyanpasu/ui": "workspace:^", "@tauri-apps/api": "1.5.4", diff --git a/clash-nyanpasu/package.json b/clash-nyanpasu/package.json index 9bf7208d79..6f103ba6ba 100644 --- a/clash-nyanpasu/package.json +++ b/clash-nyanpasu/package.json @@ -99,7 +99,7 @@ "stylelint-order": "6.0.4", "stylelint-scss": "6.2.1", "tailwindcss": "3.4.3", - "tsx": "4.8.2", + "tsx": "4.9.0", "typescript": "5.4.5" }, "packageManager": "pnpm@9.0.6", diff --git a/clash-nyanpasu/pnpm-lock.yaml b/clash-nyanpasu/pnpm-lock.yaml index 5fabca7b4a..deb0cf1e5a 100644 --- a/clash-nyanpasu/pnpm-lock.yaml +++ b/clash-nyanpasu/pnpm-lock.yaml @@ -127,8 +127,8 @@ importers: specifier: 3.4.3 version: 3.4.3 tsx: - specifier: 4.8.2 - version: 4.8.2 + specifier: 4.9.0 + version: 4.9.0 typescript: specifier: 5.4.5 version: 5.4.5 @@ -181,8 +181,8 @@ importers: specifier: 5.15.16 version: 5.15.16(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mui/x-data-grid': - specifier: 7.3.1 - version: 7.3.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@mui/material@5.15.16(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 7.3.2 + version: 7.3.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@mui/material@5.15.16(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@nyanpasu/interface': specifier: workspace:^ version: link:../interface @@ -1141,8 +1141,8 @@ packages: '@types/react': optional: true - '@mui/x-data-grid@7.3.1': - resolution: {integrity: sha512-Z+KlDnk2oZ5uthP4q7koRkD7D3vZ0aiqX+51EmnzUXQljjeQ57GbLm/VHcY+XEg7vvtMsGpycLXFdwwjqINk0A==} + '@mui/x-data-grid@7.3.2': + resolution: {integrity: sha512-seuRiZ2yyhzeUa7Thzap0xvvizGPSEwJRNOjY9kffjUr+0iXGF3PZGEsMoJ7jCjZ2peHX7FjfqBdssDvizxIDQ==} engines: {node: '>=14.0.0'} peerDependencies: '@mui/material': ^5.15.14 @@ -1519,9 +1519,6 @@ packages: '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/node@20.12.7': - resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} - '@types/node@20.12.8': resolution: {integrity: sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w==} @@ -1826,8 +1823,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001614: - resolution: {integrity: sha512-jmZQ1VpmlRwHgdP1/uiKzgiAuGOfLEJsYFP4+GBou/QQ4U6IOJCB4NP1c+1p9RGLpwObcT94jA5/uO+F1vBbog==} + caniuse-lite@1.0.30001615: + resolution: {integrity: sha512-1IpazM5G3r38meiae0bHRnPhz+CBQ3ZLqbQMtrg+AsTPKAXgW38JNsXkyZ+v8waCsDmPq87lmfun5Q2AGysNEQ==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -2130,8 +2127,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.4.753: - resolution: {integrity: sha512-Wn1XKa0Lc5kMe5UIwQc4+i5lhhBggF0l82C1bE3oOMASt4JVqdOyRIVc8mh0kiuL5CCptqwQJBmFbaPglLrN0Q==} + electron-to-chromium@1.4.754: + resolution: {integrity: sha512-7Kr5jUdns5rL/M9wFFmMZAgFDuL2YOnanFH4OI4iFzUqyh3XOL7nAGbSlSMZdzKMIyyTpNSbqZsWG9odwLeKvA==} emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} @@ -4133,8 +4130,8 @@ packages: tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - tsx@4.8.2: - resolution: {integrity: sha512-hmmzS4U4mdy1Cnzpl/NQiPUC2k34EcNSTZYVJThYKhdqTwuBeF+4cG9KUK/PFQ7KHaAaYwqlb7QfmsE2nuj+WA==} + tsx@4.9.0: + resolution: {integrity: sha512-UY0UUhDPL6MkqkZU4xTEjEBOLfV+RIt4xeeJ1qwK73xai4/zveG+X6+tieILa7rjtegUW2LE4p7fw7gAoLuytA==} engines: {node: '>=18.0.0'} hasBin: true @@ -5141,7 +5138,7 @@ snapshots: optionalDependencies: '@types/react': 18.3.1 - '@mui/x-data-grid@7.3.1(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@mui/material@5.15.16(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/x-data-grid@7.3.2(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@mui/material@5.15.16(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.24.5 '@mui/material': 5.15.16(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react@18.3.1))(@types/react@18.3.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -5419,7 +5416,7 @@ snapshots: '@types/adm-zip@0.5.5': dependencies: - '@types/node': 20.12.7 + '@types/node': 20.12.8 '@types/babel__core@7.20.5': dependencies: @@ -5487,10 +5484,6 @@ snapshots: '@types/ms@0.7.34': {} - '@types/node@20.12.7': - dependencies: - undici-types: 5.26.5 - '@types/node@20.12.8': dependencies: undici-types: 5.26.5 @@ -5785,7 +5778,7 @@ snapshots: autoprefixer@10.4.19(postcss@8.4.38): dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001614 + caniuse-lite: 1.0.30001615 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 @@ -5835,8 +5828,8 @@ snapshots: browserslist@4.23.0: dependencies: - caniuse-lite: 1.0.30001614 - electron-to-chromium: 1.4.753 + caniuse-lite: 1.0.30001615 + electron-to-chromium: 1.4.754 node-releases: 2.0.14 update-browserslist-db: 1.0.14(browserslist@4.23.0) @@ -5869,7 +5862,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001614: {} + caniuse-lite@1.0.30001615: {} ccount@2.0.1: {} @@ -6157,7 +6150,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.4.753: {} + electron-to-chromium@1.4.754: {} emoji-regex@10.3.0: {} @@ -8482,7 +8475,7 @@ snapshots: tslib@2.6.2: {} - tsx@4.8.2: + tsx@4.9.0: dependencies: esbuild: 0.20.2 get-tsconfig: 4.7.3 diff --git a/clash-verge-rev/src-tauri/src/feat.rs b/clash-verge-rev/src-tauri/src/feat.rs index c212af00a7..25aa5ed142 100644 --- a/clash-verge-rev/src-tauri/src/feat.rs +++ b/clash-verge-rev/src-tauri/src/feat.rs @@ -299,7 +299,7 @@ pub fn copy_clash_env(app_handle: &AppHandle) { let sh = format!("export https_proxy={http_proxy} http_proxy={http_proxy} all_proxy={socks5_proxy}"); - let cmd: String = format!("set http_proxy={http_proxy} \n set https_proxy={http_proxy}"); + let cmd: String = format!("set http_proxy={http_proxy}\r\nset https_proxy={http_proxy}"); let ps: String = format!("$env:HTTP_PROXY=\"{http_proxy}\"; $env:HTTPS_PROXY=\"{http_proxy}\""); let mut cliboard = app_handle.clipboard_manager(); diff --git a/clash-verge-rev/src-tauri/src/main.rs b/clash-verge-rev/src-tauri/src/main.rs index 255bac0718..2eeb52abec 100644 --- a/clash-verge-rev/src-tauri/src/main.rs +++ b/clash-verge-rev/src-tauri/src/main.rs @@ -20,6 +20,9 @@ fn main() -> std::io::Result<()> { return Ok(()); } + #[cfg(target_os = "linux")] + std::env::set_var("WEBKIT_DISABLE_DMABUF_RENDERER", "1"); + crate::log_err!(init::init_config()); #[allow(unused_mut)] diff --git a/filebrowser/files/mime.go b/filebrowser/files/mime.go new file mode 100644 index 0000000000..1f715f5c74 --- /dev/null +++ b/filebrowser/files/mime.go @@ -0,0 +1,608 @@ +package files + +// This file contains code primarily sourced from:: +// github.com/kataras/iris + +import ( + "mime" +) + +const ( + // ContentBinaryHeaderValue header value for binary data. + ContentBinaryHeaderValue = "application/octet-stream" + // ContentWebassemblyHeaderValue header value for web assembly files. + ContentWebassemblyHeaderValue = "application/wasm" + // ContentHTMLHeaderValue is the string of text/html response header's content type value. + ContentHTMLHeaderValue = "text/html" + // ContentJSONHeaderValue header value for JSON data. + ContentJSONHeaderValue = "application/json" + // ContentJSONProblemHeaderValue header value for JSON API problem error. + // Read more at: https://tools.ietf.org/html/rfc7807 + ContentJSONProblemHeaderValue = "application/problem+json" + // ContentXMLProblemHeaderValue header value for XML API problem error. + // Read more at: https://tools.ietf.org/html/rfc7807 + ContentXMLProblemHeaderValue = "application/problem+xml" + // ContentJavascriptHeaderValue header value for JSONP & Javascript data. + ContentJavascriptHeaderValue = "text/javascript" + // ContentTextHeaderValue header value for Text data. + ContentTextHeaderValue = "text/plain" + // ContentXMLHeaderValue header value for XML data. + ContentXMLHeaderValue = "text/xml" + // ContentXMLUnreadableHeaderValue obselete header value for XML. + ContentXMLUnreadableHeaderValue = "application/xml" + // ContentMarkdownHeaderValue custom key/content type, the real is the text/html. + ContentMarkdownHeaderValue = "text/markdown" + // ContentYAMLHeaderValue header value for YAML data. + ContentYAMLHeaderValue = "application/x-yaml" + // ContentYAMLTextHeaderValue header value for YAML plain text. + ContentYAMLTextHeaderValue = "text/yaml" + // ContentProtobufHeaderValue header value for Protobuf messages data. + ContentProtobufHeaderValue = "application/x-protobuf" + // ContentMsgPackHeaderValue header value for MsgPack data. + ContentMsgPackHeaderValue = "application/msgpack" + // ContentMsgPack2HeaderValue alternative header value for MsgPack data. + ContentMsgPack2HeaderValue = "application/x-msgpack" + // ContentFormHeaderValue header value for post form data. + ContentFormHeaderValue = "application/x-www-form-urlencoded" + // ContentFormMultipartHeaderValue header value for post multipart form data. + ContentFormMultipartHeaderValue = "multipart/form-data" + // ContentMultipartRelatedHeaderValue header value for multipart related data. + ContentMultipartRelatedHeaderValue = "multipart/related" + // ContentGRPCHeaderValue Content-Type header value for gRPC. + ContentGRPCHeaderValue = "application/grpc" +) + +var types = map[string]string{ + ".3dm": "x-world/x-3dmf", + ".3dmf": "x-world/x-3dmf", + ".7z": "application/x-7z-compressed", + ".a": "application/octet-stream", + ".aab": "application/x-authorware-bin", + ".aam": "application/x-authorware-map", + ".aas": "application/x-authorware-seg", + ".abc": "text/vndabc", + ".ace": "application/x-ace-compressed", + ".acgi": "text/html", + ".afl": "video/animaflex", + ".ai": "application/postscript", + ".aif": "audio/aiff", + ".aifc": "audio/aiff", + ".aiff": "audio/aiff", + ".aim": "application/x-aim", + ".aip": "text/x-audiosoft-intra", + ".alz": "application/x-alz-compressed", + ".ani": "application/x-navi-animation", + ".aos": "application/x-nokia-9000-communicator-add-on-software", + ".aps": "application/mime", + ".apk": "application/vnd.android.package-archive", + ".arc": "application/x-arc-compressed", + ".arj": "application/arj", + ".art": "image/x-jg", + ".asf": "video/x-ms-asf", + ".asm": "text/x-asm", + ".asp": "text/asp", + ".asx": "application/x-mplayer2", + ".au": "audio/basic", + ".avi": "video/x-msvideo", + ".avs": "video/avs-video", + ".bcpio": "application/x-bcpio", + ".bin": "application/mac-binary", + ".bmp": "image/bmp", + ".boo": "application/book", + ".book": "application/book", + ".boz": "application/x-bzip2", + ".bsh": "application/x-bsh", + ".bz2": "application/x-bzip2", + ".bz": "application/x-bzip", + ".c++": ContentTextHeaderValue, + ".c": "text/x-c", + ".cab": "application/vnd.ms-cab-compressed", + ".cat": "application/vndms-pkiseccat", + ".cc": "text/x-c", + ".ccad": "application/clariscad", + ".cco": "application/x-cocoa", + ".cdf": "application/cdf", + ".cer": "application/pkix-cert", + ".cha": "application/x-chat", + ".chat": "application/x-chat", + ".chrt": "application/vnd.kde.kchart", + ".class": "application/java", + ".com": ContentTextHeaderValue, + ".conf": ContentTextHeaderValue, + ".cpio": "application/x-cpio", + ".cpp": "text/x-c", + ".cpt": "application/mac-compactpro", + ".crl": "application/pkcs-crl", + ".crt": "application/pkix-cert", + ".crx": "application/x-chrome-extension", + ".csh": "text/x-scriptcsh", + ".css": "text/css", + ".csv": "text/csv", + ".cxx": ContentTextHeaderValue, + ".dar": "application/x-dar", + ".dcr": "application/x-director", + ".deb": "application/x-debian-package", + ".deepv": "application/x-deepv", + ".def": ContentTextHeaderValue, + ".der": "application/x-x509-ca-cert", + ".dif": "video/x-dv", + ".dir": "application/x-director", + ".divx": "video/divx", + ".dl": "video/dl", + ".dmg": "application/x-apple-diskimage", + ".doc": "application/msword", + ".dot": "application/msword", + ".dp": "application/commonground", + ".drw": "application/drafting", + ".dump": "application/octet-stream", + ".dv": "video/x-dv", + ".dvi": "application/x-dvi", + ".dwf": "drawing/x-dwf=(old)", + ".dwg": "application/acad", + ".dxf": "application/dxf", + ".dxr": "application/x-director", + ".el": "text/x-scriptelisp", + ".elc": "application/x-bytecodeelisp=(compiled=elisp)", + ".eml": "message/rfc822", + ".env": "application/x-envoy", + ".eps": "application/postscript", + ".es": "application/x-esrehber", + ".etx": "text/x-setext", + ".evy": "application/envoy", + ".exe": "application/octet-stream", + ".f77": "text/x-fortran", + ".f90": "text/x-fortran", + ".f": "text/x-fortran", + ".fdf": "application/vndfdf", + ".fif": "application/fractals", + ".fli": "video/fli", + ".flo": "image/florian", + ".flv": "video/x-flv", + ".flx": "text/vndfmiflexstor", + ".fmf": "video/x-atomic3d-feature", + ".for": "text/x-fortran", + ".fpx": "image/vndfpx", + ".frl": "application/freeloader", + ".funk": "audio/make", + ".g3": "image/g3fax", + ".g": ContentTextHeaderValue, + ".gif": "image/gif", + ".gl": "video/gl", + ".gsd": "audio/x-gsm", + ".gsm": "audio/x-gsm", + ".gsp": "application/x-gsp", + ".gss": "application/x-gss", + ".gtar": "application/x-gtar", + ".gz": "application/x-compressed", + ".gzip": "application/x-gzip", + ".h": "text/x-h", + ".hdf": "application/x-hdf", + ".help": "application/x-helpfile", + ".hgl": "application/vndhp-hpgl", + ".hh": "text/x-h", + ".hlb": "text/x-script", + ".hlp": "application/hlp", + ".hpg": "application/vndhp-hpgl", + ".hpgl": "application/vndhp-hpgl", + ".hqx": "application/binhex", + ".hta": "application/hta", + ".htc": "text/x-component", + ".htm": "text/html", + ".html": "text/html", + ".htmls": "text/html", + ".htt": "text/webviewhtml", + ".htx": "text/html", + ".ice": "x-conference/x-cooltalk", + ".ico": "image/x-icon", + ".ics": "text/calendar", + ".icz": "text/calendar", + ".idc": ContentTextHeaderValue, + ".ief": "image/ief", + ".iefs": "image/ief", + ".iges": "application/iges", + ".igs": "application/iges", + ".ima": "application/x-ima", + ".imap": "application/x-httpd-imap", + ".inf": "application/inf", + ".ins": "application/x-internett-signup", + ".ip": "application/x-ip2", + ".isu": "video/x-isvideo", + ".it": "audio/it", + ".iv": "application/x-inventor", + ".ivr": "i-world/i-vrml", + ".ivy": "application/x-livescreen", + ".jam": "audio/x-jam", + ".jav": "text/x-java-source", + ".java": "text/x-java-source", + ".jcm": "application/x-java-commerce", + ".jfif-tbnl": "image/jpeg", + ".jfif": "image/jpeg", + ".jnlp": "application/x-java-jnlp-file", + ".jpe": "image/jpeg", + ".jpeg": "image/jpeg", + ".jpg": "image/jpeg", + ".jps": "image/x-jps", + ".js": ContentJavascriptHeaderValue, + ".mjs": ContentJavascriptHeaderValue, + ".json": ContentJSONHeaderValue, + ".vue": ContentJavascriptHeaderValue, + ".jut": "image/jutvision", + ".kar": "audio/midi", + ".karbon": "application/vnd.kde.karbon", + ".kfo": "application/vnd.kde.kformula", + ".flw": "application/vnd.kde.kivio", + ".kml": "application/vnd.google-earth.kml+xml", + ".kmz": "application/vnd.google-earth.kmz", + ".kon": "application/vnd.kde.kontour", + ".kpr": "application/vnd.kde.kpresenter", + ".kpt": "application/vnd.kde.kpresenter", + ".ksp": "application/vnd.kde.kspread", + ".kwd": "application/vnd.kde.kword", + ".kwt": "application/vnd.kde.kword", + ".ksh": "text/x-scriptksh", + ".la": "audio/nspaudio", + ".lam": "audio/x-liveaudio", + ".latex": "application/x-latex", + ".lha": "application/lha", + ".lhx": "application/octet-stream", + ".list": ContentTextHeaderValue, + ".lma": "audio/nspaudio", + ".log": ContentTextHeaderValue, + ".lsp": "text/x-scriptlisp", + ".lst": ContentTextHeaderValue, + ".lsx": "text/x-la-asf", + ".ltx": "application/x-latex", + ".lzh": "application/octet-stream", + ".lzx": "application/lzx", + ".m1v": "video/mpeg", + ".m2a": "audio/mpeg", + ".m2v": "video/mpeg", + ".m3u": "audio/x-mpegurl", + ".m": "text/x-m", + ".man": "application/x-troff-man", + ".manifest": "text/cache-manifest", + ".map": "application/x-navimap", + ".mar": ContentTextHeaderValue, + ".mbd": "application/mbedlet", + ".mc$": "application/x-magic-cap-package-10", + ".mcd": "application/mcad", + ".mcf": "text/mcf", + ".mcp": "application/netmc", + ".me": "application/x-troff-me", + ".mht": "message/rfc822", + ".mhtml": "message/rfc822", + ".mid": "application/x-midi", + ".midi": "application/x-midi", + ".mif": "application/x-frame", + ".mime": "message/rfc822", + ".mjf": "audio/x-vndaudioexplosionmjuicemediafile", + ".mjpg": "video/x-motion-jpeg", + ".mm": "application/base64", + ".mme": "application/base64", + ".mod": "audio/mod", + ".moov": "video/quicktime", + ".mov": "video/quicktime", + ".movie": "video/x-sgi-movie", + ".mp2": "audio/mpeg", + ".mp3": "audio/mpeg", + ".mp4": "video/mp4", + ".mpa": "audio/mpeg", + ".mpc": "application/x-project", + ".mpe": "video/mpeg", + ".mpeg": "video/mpeg", + ".mpg": "video/mpeg", + ".mpga": "audio/mpeg", + ".mpp": "application/vndms-project", + ".mpt": "application/x-project", + ".mpv": "application/x-project", + ".mpx": "application/x-project", + ".mrc": "application/marc", + ".ms": "application/x-troff-ms", + ".mv": "video/x-sgi-movie", + ".my": "audio/make", + ".mzz": "application/x-vndaudioexplosionmzz", + ".nap": "image/naplps", + ".naplps": "image/naplps", + ".nc": "application/x-netcdf", + ".ncm": "application/vndnokiaconfiguration-message", + ".nif": "image/x-niff", + ".niff": "image/x-niff", + ".nix": "application/x-mix-transfer", + ".nsc": "application/x-conference", + ".nvd": "application/x-navidoc", + ".o": "application/octet-stream", + ".oda": "application/oda", + ".odb": "application/vnd.oasis.opendocument.database", + ".odc": "application/vnd.oasis.opendocument.chart", + ".odf": "application/vnd.oasis.opendocument.formula", + ".odg": "application/vnd.oasis.opendocument.graphics", + ".odi": "application/vnd.oasis.opendocument.image", + ".odm": "application/vnd.oasis.opendocument.text-master", + ".odp": "application/vnd.oasis.opendocument.presentation", + ".ods": "application/vnd.oasis.opendocument.spreadsheet", + ".odt": "application/vnd.oasis.opendocument.text", + ".oga": "audio/ogg", + ".ogg": "audio/ogg", + ".ogv": "video/ogg", + ".omc": "application/x-omc", + ".omcd": "application/x-omcdatamaker", + ".omcr": "application/x-omcregerator", + ".otc": "application/vnd.oasis.opendocument.chart-template", + ".otf": "application/vnd.oasis.opendocument.formula-template", + ".otg": "application/vnd.oasis.opendocument.graphics-template", + ".oth": "application/vnd.oasis.opendocument.text-web", + ".oti": "application/vnd.oasis.opendocument.image-template", + ".otm": "application/vnd.oasis.opendocument.text-master", + ".otp": "application/vnd.oasis.opendocument.presentation-template", + ".ots": "application/vnd.oasis.opendocument.spreadsheet-template", + ".ott": "application/vnd.oasis.opendocument.text-template", + ".p10": "application/pkcs10", + ".p12": "application/pkcs-12", + ".p7a": "application/x-pkcs7-signature", + ".p7c": "application/pkcs7-mime", + ".p7m": "application/pkcs7-mime", + ".p7r": "application/x-pkcs7-certreqresp", + ".p7s": "application/pkcs7-signature", + ".p": "text/x-pascal", + ".part": "application/pro_eng", + ".pas": "text/pascal", + ".pbm": "image/x-portable-bitmap", + ".pcl": "application/vndhp-pcl", + ".pct": "image/x-pict", + ".pcx": "image/x-pcx", + ".pdb": "chemical/x-pdb", + ".pdf": "application/pdf", + ".pfunk": "audio/make", + ".pgm": "image/x-portable-graymap", + ".pic": "image/pict", + ".pict": "image/pict", + ".pkg": "application/x-newton-compatible-pkg", + ".pko": "application/vndms-pkipko", + ".pl": "text/x-scriptperl", + ".plx": "application/x-pixclscript", + ".pm4": "application/x-pagemaker", + ".pm5": "application/x-pagemaker", + ".pm": "text/x-scriptperl-module", + ".png": "image/png", + ".pnm": "application/x-portable-anymap", + ".pot": "application/mspowerpoint", + ".pov": "model/x-pov", + ".ppa": "application/vndms-powerpoint", + ".ppm": "image/x-portable-pixmap", + ".pps": "application/mspowerpoint", + ".ppt": "application/mspowerpoint", + ".ppz": "application/mspowerpoint", + ".pre": "application/x-freelance", + ".prt": "application/pro_eng", + ".ps": "application/postscript", + ".psd": "application/octet-stream", + ".pvu": "paleovu/x-pv", + ".pwz": "application/vndms-powerpoint", + ".py": "text/x-scriptphyton", + ".pyc": "application/x-bytecodepython", + ".qcp": "audio/vndqcelp", + ".qd3": "x-world/x-3dmf", + ".qd3d": "x-world/x-3dmf", + ".qif": "image/x-quicktime", + ".qt": "video/quicktime", + ".qtc": "video/x-qtc", + ".qti": "image/x-quicktime", + ".qtif": "image/x-quicktime", + ".ra": "audio/x-pn-realaudio", + ".ram": "audio/x-pn-realaudio", + ".rar": "application/x-rar-compressed", + ".ras": "application/x-cmu-raster", + ".rast": "image/cmu-raster", + ".rexx": "text/x-scriptrexx", + ".rf": "image/vndrn-realflash", + ".rgb": "image/x-rgb", + ".rm": "application/vndrn-realmedia", + ".rmi": "audio/mid", + ".rmm": "audio/x-pn-realaudio", + ".rmp": "audio/x-pn-realaudio", + ".rng": "application/ringing-tones", + ".rnx": "application/vndrn-realplayer", + ".roff": "application/x-troff", + ".rp": "image/vndrn-realpix", + ".rpm": "audio/x-pn-realaudio-plugin", + ".rt": "text/vndrn-realtext", + ".rtf": "text/richtext", + ".rtx": "text/richtext", + ".rv": "video/vndrn-realvideo", + ".s": "text/x-asm", + ".s3m": "audio/s3m", + ".s7z": "application/x-7z-compressed", + ".saveme": "application/octet-stream", + ".sbk": "application/x-tbook", + ".scm": "text/x-scriptscheme", + ".sdml": ContentTextHeaderValue, + ".sdp": "application/sdp", + ".sdr": "application/sounder", + ".sea": "application/sea", + ".set": "application/set", + ".sgm": "text/x-sgml", + ".sgml": "text/x-sgml", + ".sh": "text/x-scriptsh", + ".shar": "application/x-bsh", + ".shtml": "text/x-server-parsed-html", + ".sid": "audio/x-psid", + ".skd": "application/x-koan", + ".skm": "application/x-koan", + ".skp": "application/x-koan", + ".skt": "application/x-koan", + ".sit": "application/x-stuffit", + ".sitx": "application/x-stuffitx", + ".sl": "application/x-seelogo", + ".smi": "application/smil", + ".smil": "application/smil", + ".snd": "audio/basic", + ".sol": "application/solids", + ".spc": "text/x-speech", + ".spl": "application/futuresplash", + ".spr": "application/x-sprite", + ".sprite": "application/x-sprite", + ".spx": "audio/ogg", + ".src": "application/x-wais-source", + ".ssi": "text/x-server-parsed-html", + ".ssm": "application/streamingmedia", + ".sst": "application/vndms-pkicertstore", + ".step": "application/step", + ".stl": "application/sla", + ".stp": "application/step", + ".sv4cpio": "application/x-sv4cpio", + ".sv4crc": "application/x-sv4crc", + ".svf": "image/vnddwg", + ".svg": "image/svg+xml", + ".svr": "application/x-world", + ".swf": "application/x-shockwave-flash", + ".t": "application/x-troff", + ".talk": "text/x-speech", + ".tar": "application/x-tar", + ".tbk": "application/toolbook", + ".tcl": "text/x-scripttcl", + ".tcsh": "text/x-scripttcsh", + ".tex": "application/x-tex", + ".texi": "application/x-texinfo", + ".texinfo": "application/x-texinfo", + ".text": ContentTextHeaderValue, + ".tgz": "application/gnutar", + ".tif": "image/tiff", + ".tiff": "image/tiff", + ".tr": "application/x-troff", + ".tsi": "audio/tsp-audio", + ".tsp": "application/dsptype", + ".tsv": "text/tab-separated-values", + ".turbot": "image/florian", + ".txt": ContentTextHeaderValue, + ".uil": "text/x-uil", + ".uni": "text/uri-list", + ".unis": "text/uri-list", + ".unv": "application/i-deas", + ".uri": "text/uri-list", + ".uris": "text/uri-list", + ".ustar": "application/x-ustar", + ".uu": "text/x-uuencode", + ".uue": "text/x-uuencode", + ".vcd": "application/x-cdlink", + ".vcf": "text/x-vcard", + ".vcard": "text/x-vcard", + ".vcs": "text/x-vcalendar", + ".vda": "application/vda", + ".vdo": "video/vdo", + ".vew": "application/groupwise", + ".viv": "video/vivo", + ".vivo": "video/vivo", + ".vmd": "application/vocaltec-media-desc", + ".vmf": "application/vocaltec-media-file", + ".voc": "audio/voc", + ".vos": "video/vosaic", + ".vox": "audio/voxware", + ".vqe": "audio/x-twinvq-plugin", + ".vqf": "audio/x-twinvq", + ".vql": "audio/x-twinvq-plugin", + ".vrml": "application/x-vrml", + ".vrt": "x-world/x-vrt", + ".vsd": "application/x-visio", + ".vst": "application/x-visio", + ".vsw": "application/x-visio", + ".w60": "application/wordperfect60", + ".w61": "application/wordperfect61", + ".w6w": "application/msword", + ".wav": "audio/wav", + ".wb1": "application/x-qpro", + ".wbmp": "image/vnd.wap.wbmp", + ".web": "application/vndxara", + ".wiz": "application/msword", + ".wk1": "application/x-123", + ".wmf": "windows/metafile", + ".wml": "text/vnd.wap.wml", + ".wmlc": "application/vnd.wap.wmlc", + ".wmls": "text/vnd.wap.wmlscript", + ".wmlsc": "application/vnd.wap.wmlscriptc", + ".word": "application/msword", + ".wp5": "application/wordperfect", + ".wp6": "application/wordperfect", + ".wp": "application/wordperfect", + ".wpd": "application/wordperfect", + ".wq1": "application/x-lotus", + ".wri": "application/mswrite", + ".wrl": "application/x-world", + ".wrz": "model/vrml", + ".wsc": "text/scriplet", + ".wsrc": "application/x-wais-source", + ".wtk": "application/x-wintalk", + ".x-png": "image/png", + ".xbm": "image/x-xbitmap", + ".xdr": "video/x-amt-demorun", + ".xgz": "xgl/drawing", + ".xif": "image/vndxiff", + ".xl": "application/excel", + ".xla": "application/excel", + ".xlb": "application/excel", + ".xlc": "application/excel", + ".xld": "application/excel", + ".xlk": "application/excel", + ".xll": "application/excel", + ".xlm": "application/excel", + ".xls": "application/excel", + ".xlt": "application/excel", + ".xlv": "application/excel", + ".xlw": "application/excel", + ".xm": "audio/xm", + ".xml": ContentXMLHeaderValue, + ".xmz": "xgl/movie", + ".xpix": "application/x-vndls-xpix", + ".xpm": "image/x-xpixmap", + ".xsr": "video/x-amt-showrun", + ".xwd": "image/x-xwd", + ".xyz": "chemical/x-pdb", + ".z": "application/x-compress", + ".zip": "application/zip", + ".zoo": "application/octet-stream", + ".zsh": "text/x-scriptzsh", + ".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + ".docm": "application/vnd.ms-word.document.macroEnabled.12", + ".dotx": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", + ".dotm": "application/vnd.ms-word.template.macroEnabled.12", + ".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + ".xlsm": "application/vnd.ms-excel.sheet.macroEnabled.12", + ".xltx": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", + ".xltm": "application/vnd.ms-excel.template.macroEnabled.12", + ".xlsb": "application/vnd.ms-excel.sheet.binary.macroEnabled.12", + ".xlam": "application/vnd.ms-excel.addin.macroEnabled.12", + ".pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation", + ".pptm": "application/vnd.ms-powerpoint.presentation.macroEnabled.12", + ".ppsx": "application/vnd.openxmlformats-officedocument.presentationml.slideshow", + ".ppsm": "application/vnd.ms-powerpoint.slideshow.macroEnabled.12", + ".potx": "application/vnd.openxmlformats-officedocument.presentationml.template", + ".potm": "application/vnd.ms-powerpoint.template.macroEnabled.12", + ".ppam": "application/vnd.ms-powerpoint.addin.macroEnabled.12", + ".sldx": "application/vnd.openxmlformats-officedocument.presentationml.slide", + ".sldm": "application/vnd.ms-powerpoint.slide.macroEnabled.12", + ".thmx": "application/vnd.ms-officetheme", + ".onetoc": "application/onenote", + ".onetoc2": "application/onenote", + ".onetmp": "application/onenote", + ".onepkg": "application/onenote", + ".xpi": "application/x-xpinstall", + ".wasm": "application/wasm", + ".m4a": "audio/mp4", + ".flac": "audio/x-flac", + ".amr": "audio/amr", + ".aac": "audio/aac", + ".opus": "video/ogg", + ".m4v": "video/mp4", + ".mkv": "video/x-matroska", + ".caf": "audio/x-caf", + ".m3u8": "application/x-mpegURL", + ".mpd": "application/dash+xml", + ".webp": "image/webp", +} + +//nolint:gochecknoinits +func init() { + for ext, typ := range types { + // skip errors + _ = mime.AddExtensionType(ext, typ) + } +} diff --git a/filebrowser/frontend/src/components/files/ListingItem.vue b/filebrowser/frontend/src/components/files/ListingItem.vue index 51093ce88e..1798ce5ec0 100644 --- a/filebrowser/frontend/src/components/files/ListingItem.vue +++ b/filebrowser/frontend/src/components/files/ListingItem.vue @@ -12,6 +12,7 @@ :data-type="type" :aria-label="name" :aria-selected="isSelected" + :data-ext="getExtension(name).toLowerCase()" >
{ const itemClick = (event: Event | KeyboardEvent) => { if ( - !((event as KeyboardEvent).ctrlKey || (event as KeyboardEvent).metaKey) && singleClick.value && + !(event as KeyboardEvent).ctrlKey && + !(event as KeyboardEvent).metaKey && + !(event as KeyboardEvent).shiftKey && !fileStore.multiple ) open(); @@ -270,4 +273,14 @@ const click = (event: Event | KeyboardEvent) => { const open = () => { router.push({ path: props.url }); }; + +const getExtension = (fileName: string): string => { + const lastDotIndex = fileName.lastIndexOf('.'); + if (lastDotIndex === -1) { + return fileName; + } + return fileName.substring(lastDotIndex ); +}; + + diff --git a/filebrowser/frontend/src/components/files/VideoPlayer.vue b/filebrowser/frontend/src/components/files/VideoPlayer.vue index e1e14da408..cc9bca84f9 100644 --- a/filebrowser/frontend/src/components/files/VideoPlayer.vue +++ b/filebrowser/frontend/src/components/files/VideoPlayer.vue @@ -1,14 +1,8 @@