summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO20
-rw-r--r--PKGBUILD44
-rw-r--r--freechat.desktop11
-rw-r--r--uos.patch47
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)