diff options
-rw-r--r-- | .SRCINFO | 20 | ||||
-rw-r--r-- | PKGBUILD | 44 | ||||
-rw-r--r-- | freechat.desktop | 11 | ||||
-rw-r--r-- | uos.patch | 47 |
4 files changed, 122 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..825632dbfbcf --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,20 @@ +pkgbase = freechat-uos + pkgdesc = 致力于打造macOS和Linux桌面下最好用的微信客户端。(添加UOS补丁) + pkgver = 1.0.0 + pkgrel = 1 + url = https://github.com/eNkru/freechat + arch = x86_64 + license = MIT + makedepends = yarn + provides = freechat + source = https://github.com/eNkru/freechat/archive/v1.0.0.zip + source = https://github.com/JoveYu/PKGBUILD/releases/download/0.0.1/wechat-uos-token.tar.gz + source = uos.patch + source = freechat.desktop + md5sums = 0213ce4ef07b329b811af3498d851967 + md5sums = 52226b5b73054d2d53fed7e97568aa6f + md5sums = 5e4390b5227c9ecb2706fdcb927a943f + md5sums = 64faa178571d2f8871b3e021024dc009 + +pkgname = freechat-uos + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..12f4fe7802ca --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,44 @@ +# Maintainer: Jove Yu <yushijun110 at 126 dot com> +pkgname=freechat-uos +url="https://github.com/eNkru/freechat" +pkgver=1.0.0 +pkgrel=1 +pkgdesc="致力于打造macOS和Linux桌面下最好用的微信客户端。(添加UOS补丁)" +arch=("x86_64") +license=("MIT") +makedepends=("yarn") +provides=("freechat") +source=( + "https://github.com/eNkru/freechat/archive/v$pkgver.zip" + "https://github.com/JoveYu/PKGBUILD/releases/download/0.0.1/wechat-uos-token.tar.gz" + "uos.patch" + "freechat.desktop" +) +md5sums=('0213ce4ef07b329b811af3498d851967' + '52226b5b73054d2d53fed7e97568aa6f' + '5e4390b5227c9ecb2706fdcb927a943f' + '64faa178571d2f8871b3e021024dc009') + +build() { + cd "${srcdir}"/freechat-$pkgver + patch -p1 < "${srcdir}"/uos.patch + yarn install --registry https://registry.npm.taobao.org/ + yarn electron-builder --linux --x64 --dir +} + +package() { + install -Dm644 "${srcdir}"/freechat.desktop "${pkgdir}"/usr/share/applications/freechat.desktop + install -Dm644 "${srcdir}"/freechat-$pkgver/build/icons/12x12.png "${pkgdir}"/usr/share/icons/hicolor/12x12/apps/freechat.png + install -Dm644 "${srcdir}"/freechat-$pkgver/build/icons/16x16.png "${pkgdir}"/usr/share/icons/hicolor/16x16/apps/freechat.png + install -Dm644 "${srcdir}"/freechat-$pkgver/build/icons/32x32.png "${pkgdir}"/usr/share/icons/hicolor/32x32/apps/freechat.png + install -Dm644 "${srcdir}"/freechat-$pkgver/build/icons/48x48.png "${pkgdir}"/usr/share/icons/hicolor/48x48/apps/freechat.png + install -Dm644 "${srcdir}"/freechat-$pkgver/build/icons/64x64.png "${pkgdir}"/usr/share/icons/hicolor/64x64/apps/freechat.png + install -Dm644 "${srcdir}"/freechat-$pkgver/build/icons/128x128.png "${pkgdir}"/usr/share/icons/hicolor/128x128/apps/freechat.png + install -Dm644 "${srcdir}"/freechat-$pkgver/build/icons/256x256.png "${pkgdir}"/usr/share/icons/hicolor/256x256/apps/freechat.png + install -Dm644 "${srcdir}"/freechat-$pkgver/build/icons/512x512.png "${pkgdir}"/usr/share/icons/hicolor/512x512/apps/freechat.png + + install -dm755 "${pkgdir}"/opt/freechat + cp -R "${srcdir}"/freechat-$pkgver/dist/linux-unpacked/* "${pkgdir}"/opt/freechat + + cp -R "${srcdir}"/wechat-uos-token "${pkgdir}"/opt/ +} diff --git a/freechat.desktop b/freechat.desktop new file mode 100644 index 000000000000..816fbd409111 --- /dev/null +++ b/freechat.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Name=FreeChat +GenericName=FreeChat +Comment=致力于打造macOS和Linux桌面下最好用的微信客户端。 +Exec=/opt/freechat/electron-wechat +Icon=freechat +Terminal=false +StartupNotify=false +Categories=Network;; diff --git a/uos.patch b/uos.patch new file mode 100644 index 000000000000..b3d5c9f114ab --- /dev/null +++ b/uos.patch @@ -0,0 +1,47 @@ +diff --git a/src/controller/main-controller.js b/src/controller/main-controller.js +index 51c6169..b5d2101 100644 +--- a/src/controller/main-controller.js ++++ b/src/controller/main-controller.js +@@ -7,6 +7,7 @@ const { + } = require('electron'); + const path = require('path'); + const CssInjector = require('../js/css-injector'); ++const { execSync } = require('child_process'); + + class MainController { + constructor() { +@@ -28,7 +29,7 @@ class MainController { + } + }) + +- this.window.loadURL('https://wx.qq.com/?lang=zh_CN') ++ this.window.loadURL('https://wx.qq.com/?lang=zh_CN&target=t') + + this.window.webContents.on('dom-ready', () => { + this.window.webContents.insertCSS(CssInjector.login) +@@ -62,6 +63,25 @@ class MainController { + (details) => this.handleRequest(details) + ) + ++ session.defaultSession.webRequest.onBeforeSendHeaders({urls: [ ++ "https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage*", ++ "https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage*", ++ ]}, ++ (details, callback) => { ++ let token = execSync('/opt/wechat-uos-token/wechat-uos-token.sh').toString('ascii'); ++ if (details.url.indexOf("/cgi-bin/mmwebwx-bin/webwxnewloginpage") > -1) { ++ details.requestHeaders["extspam"] = token ++ details.requestHeaders["client-version"] = "2.0.0" ++ callback({ ++ requestHeaders: details.requestHeaders, ++ }) ++ } else { ++ callback({}); ++ } ++ } ++ ) ++ ++ + ipcMain.on('resizeWindow', (event, value) => { + if (value === 'desktop') { + this.window.setSize(1000, this.window.getSize()[1], true) |