From 3b29c906ea103d367869cbe682edbed97af7291d Mon Sep 17 00:00:00 2001 From: xrgzs Date: Sat, 2 Nov 2024 00:38:58 +0800 Subject: [PATCH] feat(bucket): add new package manifests - Add Beyond Compare 5 Chinese version - Add QQNTFileVerifyPatch - DLLHijackMethod - Add Lightweight QQNT plugin loader - Add Oopz game voice platform - Add QQNT instant messaging tool --- bucket/bcompare-cn.json | 72 ++++++++++++++++++++++++++++++++++++++ bucket/dllhijack-qqnt.json | 50 ++++++++++++++++++++++++++ bucket/liteloaderqqnt.json | 69 ++++++++++++++++++++++++++++++++++++ bucket/oopz.json | 26 ++++++++++++++ bucket/qqnt.json | 69 ++++++++++++++++++++++++++++++++++++ 5 files changed, 286 insertions(+) create mode 100644 bucket/bcompare-cn.json create mode 100644 bucket/dllhijack-qqnt.json create mode 100644 bucket/liteloaderqqnt.json create mode 100644 bucket/oopz.json create mode 100644 bucket/qqnt.json diff --git a/bucket/bcompare-cn.json b/bucket/bcompare-cn.json new file mode 100644 index 0000000..21b69e2 --- /dev/null +++ b/bucket/bcompare-cn.json @@ -0,0 +1,72 @@ +{ + "version": "5.0.3.30258", + "description": "Beyond Compare 5 (zh-cn)", + "homepage": "https://www.scootersoftware.com", + "license": "Proprietary", + "url": "https://www.scootersoftware.com/files/BCompare-zh-5.0.3.30258.exe", + "hash": "ec7d257ff30856dd3a47de152ae6892af98732940d44341153203f383d01fc78", + "depends": "innounp", + "pre_install": [ + "function New-PersistFile([String] $path) {", + " if (!(Test-Path $path) -or !(Get-Item $path).Length) {", + " New-Item $path -ItemType File -Force | Out-Null", + " }", + "}", + "New-PersistFile \"$persist_dir\\BCFileFormats.xml\"", + "New-PersistFile \"$persist_dir\\BCFileFormats.xml.bak\"", + "New-PersistFile \"$persist_dir\\BCPreferences.xml\"", + "New-PersistFile \"$persist_dir\\BCPreferences.xml.bak\"", + "New-PersistFile \"$persist_dir\\BCProfiles.xml\"", + "New-PersistFile \"$persist_dir\\BCProfiles.xml.bak\"", + "New-PersistFile \"$persist_dir\\BCSessions.xml\"", + "New-PersistFile \"$persist_dir\\BCSessions.xml.bak\"", + "New-PersistFile \"$persist_dir\\BCState.xml\"", + "New-PersistFile \"$persist_dir\\BCState.xml.bak\"", + "Expand-InnoArchive -Path \"$dir\\$fname\" -Switches \"-a\" -Removal" + ], + "architecture": { + "64bit": { + "installer": { + "script": [ + "@('7z,1.dll', 'BCompare,1.exe', 'BCompare,1.tr', 'BCUnRAR,1.dll', 'mscoree,1.dll', 'PdfToText,1.exe') | ForEach-Object {", + " Remove-Item \"$dir\\$_\" -Force", + "}", + "@('7z,2.dll', 'BCompare,2.exe', 'BCompare,2.tr', 'BCUnRAR,2.dll', 'mscoree,2.dll', 'PdfToText,2.exe') | ForEach-Object {", + " $newName = $_.Replace(',2','')", + " Rename-Item \"$dir\\$_\" \"$dir\\$newName\"", + "}" + ] + } + } + }, + "bin": "BCompare.exe", + "shortcuts": [ + [ + "BCompare.exe", + "Beyond Compare 4" + ], + [ + "BCClipboard.exe", + "Clipboard Compare" + ] + ], + "persist": [ + "BCFileFormats.xml", + "BCFileFormats.xml.bak", + "BCPreferences.xml", + "BCPreferences.xml.bak", + "BCProfiles.xml", + "BCProfiles.xml.bak", + "BCSessions.xml", + "BCSessions.xml.bak", + "BCState.xml", + "BCState.xml.bak" + ], + "checkver": { + "url": "https://www.scootersoftware.com/download", + "regex": "/files/BCompare-(?[\\d.]+).exe" + }, + "autoupdate": { + "url": "https://www.scootersoftware.com/files/BCompare-zh-$version.exe" + } +} diff --git a/bucket/dllhijack-qqnt.json b/bucket/dllhijack-qqnt.json new file mode 100644 index 0000000..3696f4f --- /dev/null +++ b/bucket/dllhijack-qqnt.json @@ -0,0 +1,50 @@ +{ + "version": "1.1.2", + "description": "QQNTFileVerifyPatch - DLLHijackMethod", + "homepage": "https://github.com/LiteLoaderQQNT/QQNTFileVerifyPatch", + "license": "MIT", + "depends": [ + "sdoog/qqnt" + ], + "suggest": { + "liteLoaderqqnt": "sdoog/liteLoaderqqnt" + }, + "architecture": { + "64bit": { + "url": "https://github.com/LiteLoaderQQNT/QQNTFileVerifyPatch/releases/download/DllHijack_1.1.2/dbghelp_x64.dll", + "hash": "4bb8cd08d7e96bd085fa2afa46d7b36e3f312a6c4d633363411ef763449d700f" + }, + "32bit": { + "url": "https://github.com/LiteLoaderQQNT/QQNTFileVerifyPatch/releases/download/DllHijack_1.1.2/dbghelp_x86.dll", + "hash": "dfd0fbf2b0a985eccfead1278227f62dde3f2c4eaa2c34277cd50b6d2f1f767a" + } + }, + "post_install": [ + "$arch = ($architecture -eq \"64bit\") ? \"x64\" : \"x86\"", + "foreach ($_ in Get-ChildItem \"$dir\" -File) {", + " $name = $_.Name", + " if ($name -Like \"dbghelp_$arch.dll\") {", + " info \"Creating hardlink for $name\"", + " New-Item -ItemType HardLink -Path \"$(appdir qqnt $global)\\current\\Files\" -Name dbghelp.dll -Target \"$dir\\$name\" | Out-Null", + " }", + "}" + ], + "pre_uninstall": [ + "$envfilePath = \"$(appdir qqnt $global)\\current\\Files\\dbghelp.dll\"", + "info \"Removing hardlink for $envfilePath\"", + "if ((Get-Item $envfilePath).LinkType -eq \"HardLink\") {", + " Remove-Item -Path $envfilePath", + "}" + ], + "checkver": "github", + "autoupdate": { + "architecture": { + "64bit": { + "url": "https://github.com/LiteLoaderQQNT/QQNTFileVerifyPatch/releases/download/DllHijack_$version/dbghelp_x64.dll" + }, + "32bit": { + "url": "https://github.com/LiteLoaderQQNT/QQNTFileVerifyPatch/releases/download/DllHijack_$version/dbghelp_x86.dll" + } + } + } +} diff --git a/bucket/liteloaderqqnt.json b/bucket/liteloaderqqnt.json new file mode 100644 index 0000000..0264501 --- /dev/null +++ b/bucket/liteloaderqqnt.json @@ -0,0 +1,69 @@ +{ + "version": "1.2.2", + "description": "Lightweight, simple and open source QQNT plugin loader.", + "homepage": "https://github.com/LiteLoaderQQNT/LiteLoaderQQNT", + "license": "MIT", + "url": "https://github.com/LiteLoaderQQNT/LiteLoaderQQNT/releases/download/1.2.2/LiteLoaderQQNT.zip", + "hash": "a325c592ec53b7469c44f7eea5d27a0984e14d54ccd8d596446d0938bc91d561", + "depends": [ + "sdoog/qqnt" + ], + "suggest": { + "qqntfileverifypatch": "sdoog/dllhijack-qqnt" + }, + "notes": "Every time you update qqnt, run llqqnt_install.ps1 to reinstall it.\nWe recommend that you first install a plugin such as LL-plugin-list-viewer from https://github.com/ltxhhz/LL-plugin-list-viewer.", + "pre_install": [ + "$content = '$qqnt_dir = \"path/to/qqnt\\Files\"", + "$llqqnt_dir = \"path/to/llqqnt\"", + "$path = \"$qqnt_dir\\resources\\app\"", + "", + "$text = \"require(String.raw``$llqqnt_dir``)\"", + "$text = $text.replace(\"\\\\\",\"/\")", + "", + "if((Test-Path $qqnt_dir\\versions)) {", + " $qq_version = Get-ChildItem -Path \"$qqnt_dir\\versions\" -Name -Directory", + " $path = \"$qqnt_dir\\versions\\$qq_version\\resources\\app\"", + "}", + "", + "Out-File -FilePath \"$path\\app_launcher\\liteLoader.js\" -InputObject $text -Encoding utf8 -Force", + "", + "$package = Get-Content -Path $path\\package.json | ConvertFrom-Json", + "$package.main = \"./app_launcher/liteloader.js\"", + "$package = $package | ConvertTo-Json", + "$package = $package -replace \"`r`n\",\"`n\"", + "$package.TrimEnd(\"`r\",\"`n\") | Set-Content -Path $path\\package.json -NoNewlin", + "'", + "$content.replace(\"path/to/qqnt\", \"$(appdir qqnt $global)\\current\").replace(\"path/to/llqqnt\", \"$dir\") | Set-Content -Path \"$dir\\llqqnt_install.ps1\"", + "powershell -NoLogo -NoProfile -File \"$dir\\llqqnt_install.ps1\"" + ], + "bin": [ + [ + "llqqnt_install.ps1", + "llqqnt_install" + ] + ], + "post_uninstall": [ + "$qqnt_dir = \"$(appdir qqnt $global)\\current\\Files\"", + "$path = \"$qqnt_dir\\resources\\app\"", + "if((Test-Path $qqnt_dir\\versions)) {", + " $qq_version = Get-ChildItem -Path \"$qqnt_dir\\versions\" -Name -Exclude *.json", + " $path = \"$qqnt_dir\\versions\\$qq_version\\resources\\app\"", + "}", + "if((Test-Path \"$path\\app_launcher\\liteLoader.js\")) {", + " Remove-Item -Path \"$path\\app_launcher\\liteLoader.js\" -Force", + "}", + "$package = Get-Content -Path $path/package.json | ConvertFrom-Json", + "$package.main = \"./application/app_launcher/index.js\"", + "$package = $package | ConvertTo-Json", + "$package = $package -replace \"`r`n\",\"`n\"", + "$package.TrimEnd(\"`r\",\"`n\") | Set-Content -Path $path/package.json -NoNewline" + ], + "persist": [ + "data", + "plugins" + ], + "checkver": "github", + "autoupdate": { + "url": "https://github.com/LiteLoaderQQNT/LiteLoaderQQNT/releases/download/$version/LiteLoaderQQNT.zip" + } +} diff --git a/bucket/oopz.json b/bucket/oopz.json new file mode 100644 index 0000000..5a439e7 --- /dev/null +++ b/bucket/oopz.json @@ -0,0 +1,26 @@ +{ + "version": "1.1.9", + "description": "Game voice platform", + "homepage": "https://oopz.cn/", + "license": { + "identifier": "Proprietary", + "url": "https://help.oopz.cn/agreement/service" + }, + "notes": "\"https://www.oopz.cn/download/xx?v=\".concat(Date.now() / 1e3 | 0)", + "url": "https://downloadcdn.oopz.cn/release/119/oopz_setup_v1.1.9.exe#/dl.7z", + "hash": "219c6233cd02180c37bcc26b38c4a4dd557fe9d0a6bbe2d2891fdd662c1522a2", + "installer": { + "script": [ + "Move-Item \"$dir\\`$TEMP\\oopz_nsis\\app.7z\" \"$dir\\app.7z\"", + "Remove-Item \"$dir\\`$PLUGINSDIR\", \"$dir\\`$TEMP\" -Force -Recurse", + "Expand-7zipArchive \"$dir\\app.7z\" \"$dir\\app\"", + "Remove-Item \"$dir\\app.7z\" -Force" + ] + }, + "shortcuts": [ + [ + "app/oopz.exe", + "Oopz" + ] + ] +} diff --git a/bucket/qqnt.json b/bucket/qqnt.json new file mode 100644 index 0000000..451fabd --- /dev/null +++ b/bucket/qqnt.json @@ -0,0 +1,69 @@ +{ + "version": "9.9.16.241023", + "description": "An instant messaging tool that gives you the best way to keep in touch with your friends and family, Build with Electron", + "homepage": "https://im.qq.com", + "license": { + "identifier": "Proprietary", + "url": "https://ti.qq.com/agreement/index.html" + }, + "architecture": { + "64bit": { + "url": "https://dldir1.qq.com/qqfile/qq/QQNT/Windows/QQ_9.9.16_241023_x64_01.exe#/dl.7z", + "hash": "10cd203d0aacc295f5afbddf463accdddccbce89165306be21449a3b9ca9423f" + }, + "32bit": { + "url": "https://dldir1.qq.com/qqfile/qq/QQNT/Windows/QQ_9.9.16_241023_x86_01.exe#/dl.7z", + "hash": "1fedb8b88bb1f52d78a930d5188ea42a40b752e2cdf305be3bc01222cf43a7fa" + }, + "arm64": { + "url": "https://dldir1.qq.com/qqfile/qq/QQNT/Windows/QQ_9.9.16_241023_arm64_01.exe#/dl.7z", + "hash": "a217bbe2103ac109b1a2df7b0a33fa6e79909fcd1c9cbafe36e18bb0bf7ee8a0" + } + }, + "installer": { + "script": [ + "$configpath = \"$env:PUBLIC\\Documents\\Tencent\\QQ\"", + "if (!(Test-Path -Path \"$configpath\")) {", + " New-Item -Path \"$configpath\" -Type Directory -Force | Out-Null", + "}", + "if (!(Test-Path -Path \"$configpath\\UserDataInfo.ini\" -PathType leaf)) {", + " Set-Content -NoNewline -Path \"$configpath\\UserDataInfo.ini\" -Value \"[UserDataSet]`nUserDataSavePathType=2`nUserDataSavePath=`\"$persist_dir\\Tencent Files`\"\"", + "}" + ] + }, + "shortcuts": [ + [ + "Files\\QQ.exe", + "QQ" + ] + ], + "persist": "Tencent Files", + "uninstaller": { + "script": "Remove-Item -Path \"$env:PUBLIC\\Documents\\Tencent\" -Recurse -Force | Out-Null" + }, + "checkver": { + "script": [ + "$url = 'https://im.qq.com/pcqq/index.shtml'", + "$resp = Invoke-WebRequest -Uri $url", + "$cont = $resp.Content", + "$pattern = 'https://qq-web.cdn-go.cn.*windowsDownloadUrl.js'", + "$jsUrl = [regex]::Match($cont, $pattern).Value", + "Invoke-WebRequest -Uri $jsUrl" + ], + "regex": "QQNT/Windows/QQ_([\\d\\.]+)_([\\d]+)_x86_01.exe", + "replace": "${1}.${2}" + }, + "autoupdate": { + "architecture": { + "64bit": { + "url": "https://dldir1.qq.com/qqfile/qq/QQNT/Windows/QQ_$match1_$match2_x64_01.exe#/dl.7z" + }, + "32bit": { + "url": "https://dldir1.qq.com/qqfile/qq/QQNT/Windows/QQ_$match1_$match2_x86_01.exe#/dl.7z" + }, + "arm64": { + "url": "https://dldir1.qq.com/qqfile/qq/QQNT/Windows/QQ_$match1_$match2_arm64_01.exe#/dl.7z" + } + } + } +}