summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorKimiblock Moe2024-04-17 21:16:57 +0800
committerKimiblock Moe2024-04-17 21:16:57 +0800
commit796fdd038145c1ba76fd00eb56092c4929b52844 (patch)
tree80d64c1ffe8d6034c84a673c1f1bfbaa12a4045b
parent2a939d36c5ee995117a8f2f95b100aa883561550 (diff)
downloadaur-796fdd038145c1ba76fd00eb56092c4929b52844.tar.gz
Rewrite some logic
-rw-r--r--.SRCINFO8
-rw-r--r--PKGBUILD9
-rwxr-xr-xopen.sh13
-rw-r--r--wechat-uos-beta.desktop8
-rw-r--r--wechat.sh49
5 files changed, 58 insertions, 29 deletions
diff --git a/.SRCINFO b/.SRCINFO
index ad07c123d170..25d6abbd7f74 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = wechat-uos-bwrap
pkgdesc = WeChat Qt w/ bwrap sandbox
pkgver = 1.0.0.238
- pkgrel = 9
+ pkgrel = 10
url = https://weixin.qq.com/
arch = x86_64
arch = aarch64
@@ -57,10 +57,10 @@ pkgbase = wechat-uos-bwrap
source = open.sh
source = license.tar.gz
source = user-dirs.dirs
- md5sums = d053f0e6c2cf50a5a6dbf34a9bd1fba9
- md5sums = 14b090b2a38396406e7fc8cc09be74bb
+ md5sums = 8552c99740dcb5268af833f7901b07ca
+ md5sums = 8f4a19a88facd8d7d6d49f2fab94d70c
md5sums = 600e74549ce2258c045d5c2f7689ea63
- md5sums = e49130d3e6185335db9a60f31d4b7429
+ md5sums = f26cf8d88185f54531ad5cd64111cc35
md5sums = 6b159c6e9d21a98925489bc37a9aea43
md5sums = 38e98220da64adc1d8f9dc17d04b3a39
source_x86_64 = wechat-x86-1.0.0.238.deb::https://pro-store-packages.uniontech.com/appstore/pool/appstore/c/com.tencent.wechat/com.tencent.wechat_1.0.0.238_amd64.deb
diff --git a/PKGBUILD b/PKGBUILD
index 7ec17ed055ac..61d62d710cc7 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: Kimiblock Moe
pkgname=(wechat-uos-bwrap wechat-uos-qt)
pkgver=1.0.0.238
-pkgrel=9
+pkgrel=10
epoch=
pkgdesc="WeChat Qt w/ bwrap sandbox"
arch=('x86_64' 'aarch64' 'loong64')
@@ -11,6 +11,7 @@ groups=()
options=(!debug)
depends=(
+ "findutils"
"zenity"
"xdg-dbus-proxy"
"nss"
@@ -84,10 +85,10 @@ source_loong64=(
wechat-loong64-${pkgver}.deb::"https://pro-store-packages.uniontech.com/appstore/pool/appstore/c/com.tencent.wechat/com.tencent.wechat_1.0.0.238_arm64.deb"
)
-md5sums=('d053f0e6c2cf50a5a6dbf34a9bd1fba9'
- '14b090b2a38396406e7fc8cc09be74bb'
+md5sums=('8552c99740dcb5268af833f7901b07ca'
+ '8f4a19a88facd8d7d6d49f2fab94d70c'
'600e74549ce2258c045d5c2f7689ea63'
- 'e49130d3e6185335db9a60f31d4b7429'
+ 'f26cf8d88185f54531ad5cd64111cc35'
'6b159c6e9d21a98925489bc37a9aea43'
'38e98220da64adc1d8f9dc17d04b3a39')
md5sums_x86_64=('aa52e39afd9c16eee7f924093ce4c5b6')
diff --git a/open.sh b/open.sh
index b1597c93cb45..e7acff88b88e 100755
--- a/open.sh
+++ b/open.sh
@@ -2,19 +2,24 @@
echo "[Info] received a request: $@"
+fakeDirBase="${XDG_DOCUMENTS_DIR}/xwechat_files"
+realDirBase="${XDG_DATA_HOME}/WeChat_Data/Documents/xwechat_files"
+
+link=$(echo "$2" | sed "s|${fakeDirBase}|${reakDirBase}|g")
+
if [ -f /usr/bin/dbus-send ]; then
echo "[Info] Initiating D-Bus call..."
dbus-send --print-reply --dest=org.freedesktop.FileManager1 \
/org/freedesktop/FileManager1 \
org.freedesktop.FileManager1.ShowItems \
- array:string:"file://${2}" \
+ array:string:"file://${link}" \
string:fake-dde-show-items
else
if [ -f /usr/bin/dolphin ] && [ ${XDG_CURRENT_DESKTOP} = KDE ]; then
- /usr/bin/dolphin --select "$2"
+ /usr/bin/dolphin --select "${link}"
elif [ -f /usr/bin/nautilus ] && [ ${XDG_CURRENT_DESKTOP} = GNOME ]; then
- /usr/bin/nautilus $(dirname "$2")
+ /usr/bin/nautilus $(dirname "${link}")
else
- xdg-open $(dirname "$2")
+ xdg-open $(dirname "${link}")
fi
fi \ No newline at end of file
diff --git a/wechat-uos-beta.desktop b/wechat-uos-beta.desktop
index 7396f3e40c7e..66e2580a5ebe 100644
--- a/wechat-uos-beta.desktop
+++ b/wechat-uos-beta.desktop
@@ -13,11 +13,17 @@ Keywords=wechat;weixin;we;w;
Keywords[zh_CN]=微;微信;wechat;weixin;we;w;
X-GNOME-SingleWindow=true
SingleMainWindow=true
-Actions=nosandbox;
+Actions=nosandbox;opendir;
StartupWMClass=wechat
[Desktop Action nosandbox]
Name=Disable Sandbox (Temporarily)
Name[zh_CN]=禁用沙盒 (暂时)
Exec=/usr/bin/wechat-uos-qt --actions f5aaebc6-0014-4d30-beba-72bce57e0650
+#Icon=application-exit
+
+[Desktop Action opendir]
+Name=Open WeChat Data
+Name[zh_CN]=打开数据目录
+Exec=/usr/bin/wechat-uos-qt --actions opendir
#Icon=application-exit \ No newline at end of file
diff --git a/wechat.sh b/wechat.sh
index 91742433cda4..ee7066c606b9 100644
--- a/wechat.sh
+++ b/wechat.sh
@@ -19,10 +19,12 @@ function sourceXDG() {
else
source "${XDG_CONFIG_HOME}"/user-dirs.dirs
fi
+ if [[ ! ${XDG_DATA_HOME} ]]; then
+ export XDG_DATA_HOME="${HOME}"/.local/share
+ fi
}
function manageDirs() {
- createWrapIfNotExist "${XDG_DOCUMENTS_DIR}"/WeChat_Data
if [ -d "${HOME}/Documents/TrashBox" ]; then
echo "[Warn] Old user data may be present, check ${HOME}/Documents/TrashBox"
fi
@@ -30,6 +32,15 @@ function manageDirs() {
mv "${XDG_DOCUMENTS_DIR}/WeChat_Data/文档" \
"${XDG_DOCUMENTS_DIR}/WeChat_Data/Documents"
fi
+ if [ -d "${XDG_DOCUMENTS_DIR}"/WeChat_Data ]; then
+ echo "[Info] Migrating user data..."
+ mv "${XDG_DOCUMENTS_DIR}"/WeChat_Data "${XDG_DATA_HOME}"/WeChat_Data
+ fi
+ if [ -d "${XDG_DOCUMENTS_DIR}"/xwechat_files ]; then
+ echo "[Info] Removing unused links..."
+ rm "${XDG_DOCUMENTS_DIR}"/xwechat_files
+ fi
+ createWrapIfNotExist "${XDG_DATA_HOME}"/WeChat_Data
}
function detectXauth() {
@@ -62,21 +73,20 @@ function inputMethod() {
}
function lnDir() {
- if [ -d "${XDG_DOCUMENTS_DIR}"/WeChat_Data/xwechat_files ]; then
- ln -s "${XDG_DOCUMENTS_DIR}"/WeChat_Data/xwechat_files \
+ if [ -d "${XDG_DATA_HOME}"/WeChat_Data/xwechat_files ]; then
+ ln -srf "${XDG_DATA_HOME}"/WeChat_Data/xwechat_files \
"${HOME}"/xwechat_files
fi
- cd "${XDG_DOCUMENTS_DIR}"
- ln -sf WeChat_Data/Documents/xwechat_files \
- xwechat_files
+ #cd "${XDG_DOCUMENTS_DIR}"
+ #ln -sfr "${XDG_DATA_HOME}"/WeChat_Data/Documents/xwechat_files \
+ # "${XDG_DOCUMENTS_DIR}"/xwechat_files
}
function importEnv() {
- if [ -e "${XDG_DOCUMENTS_DIR}"/WeChat_Data/wechat.env ]; then
+ if [ -e "${XDG_DATA_HOME}"/WeChat_Data/wechat.env ]; then
echo "[Info] Sourcing env vars..."
- source "${XDG_DOCUMENTS_DIR}"/WeChat_Data/wechat.env
else
- touch "${XDG_DOCUMENTS_DIR}"/WeChat_Data/wechat.env
+ touch "${XDG_DATA_HOME}"/WeChat_Data/wechat.env
fi
}
@@ -91,7 +101,7 @@ function cameraDect() {
}
function execApp() {
- touch "${XDG_DOCUMENTS_DIR}"/WeChat_Data/.flatpak-info
+ touch "${XDG_DATA_HOME}"/WeChat_Data/.flatpak-info
cameraDect
importEnv
bwrap \
@@ -117,7 +127,7 @@ function execApp() {
"${XDG_RUNTIME_DIR}/pulse" \
--ro-bind-try "${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}" \
"${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}" \
- --bind "${XDG_DOCUMENTS_DIR}"/WeChat_Data "${HOME}" \
+ --bind "${XDG_DATA_HOME}"/WeChat_Data "${HOME}" \
--ro-bind-try "${XAUTHORITY}" "${XAUTHORITY}" \
--unshare-all \
--share-net \
@@ -138,9 +148,9 @@ function execApp() {
"${XDG_CONFIG_HOME}"/mimeapps.list \
--ro-bind-try "${XDG_CONFIG_HOME}"/kdeglobals \
"${XDG_CONFIG_HOME}"/kdeglobals \
- --ro-bind-try "${XDG_DOCUMENTS_DIR}"/WeChat_Data/.flatpak-info \
+ --ro-bind-try "${XDG_DATA_HOME}"/WeChat_Data/.flatpak-info \
"${XDG_RUNTIME_DIR}/.flatpak-info" \
- --ro-bind-try "${XDG_DOCUMENTS_DIR}"/WeChat_Data/.flatpak-info \
+ --ro-bind-try "${XDG_DATA_HOME}"/WeChat_Data/.flatpak-info \
/.flatpak-info \
--dir "${XDG_DOCUMENTS_DIR}" \
${bwCamPar} \
@@ -149,7 +159,7 @@ function execApp() {
/opt/wechat-uos-qt/files:/usr/lib/wechat-uos-qt/so \
--setenv QT_AUTO_SCREEN_SCALE_FACTOR 1 \
--setenv PATH /sandbox:"${PATH}" \
- bash -c "export $(grep -v '^#' "${XDG_DOCUMENTS_DIR}"/WeChat_Data/wechat.env | xargs) && ${launchTarget}"
+ bash -c "export $(grep -v '^#' "${XDG_DATA_HOME}"/WeChat_Data/wechat.env | xargs) && ${launchTarget}"
}
function dbusProxy() {
@@ -161,9 +171,9 @@ function dbusProxy() {
--ro-bind /usr/lib64 /usr/lib64 \
--ro-bind /usr/bin /usr/bin \
--bind "${XDG_RUNTIME_DIR}" "${XDG_RUNTIME_DIR}" \
- --ro-bind-try "${XDG_DOCUMENTS_DIR}"/WeChat_Data/.flatpak-info \
+ --ro-bind-try "${XDG_DATA_HOME}"/WeChat_Data/.flatpak-info \
/.flatpak-info \
- --ro-bind-try "${XDG_DOCUMENTS_DIR}"/WeChat_Data/.flatpak-info \
+ --ro-bind-try "${XDG_DATA_HOME}"/WeChat_Data/.flatpak-info \
"${XDG_RUNTIME_DIR}/.flatpak-info" \
--die-with-parent \
-- \
@@ -216,6 +226,12 @@ function disableSandbox() {
fi
}
+function openDataDir() {
+ if [[ $@ =~ "--actions" ]] && [[ $@ =~ "opendir" ]]; then
+ xdg-open "${XDG_DATA_HOME}"/WeChat_Data
+ fi
+}
+
function launch() {
detectXauth
inputMethod
@@ -239,6 +255,7 @@ function launch() {
disableSandbox $@
sourceXDG
+openDataDir $@
manageDirs
launch $@