jbwfu / scoop-bucket

The Unlicense
0 stars 1 forks source link

[Bug]: LiteLoaderQQNT.json需要更新, 新版qqnt的目录结构有变动 #4

Open letterk opened 1 week ago

letterk commented 1 week ago

Prerequisites

Package Name

LiteLoaderQQNT

Expected/Current Behaviour

注入目录地址有变化 新版,则路径为 QQNT\versions\版本号\resources\app 旧版,则路径为 QQNT\resources\app

Steps to Reproduce

scoop install liteLoaderQQNT
Installing 'liteLoaderQQNT' (1.2.2) [64bit] from 'jbwfu_scoop-bucket' bucket
Loading LiteLoaderQQNT.zip from cache.
Checking hash of LiteLoaderQQNT.zip ... ok.
Extracting LiteLoaderQQNT.zip ... done.
Linking D:\scoop\apps\liteLoaderQQNT\current => D:\scoop\apps\liteLoaderQQNT\1.2.2
Running post_install script...INFO  文件 $envfilePath 不存在
done.
'liteLoaderQQNT' (1.2.2) was installed successfully!

Possible Solution

需要修改post_install和post_uninstall

Scoop and Buckets Version

scoop --version
Current Scoop version:
859d1db5 (HEAD -> master, tag: v0.5.2, origin/master, origin/HEAD) chore(release): Bump to version 0.5.2 (#6080)

'main' bucket:
2174f9cb7 (HEAD -> master, origin/master, origin/HEAD) vals: Update to version 0.37.6

'extras' bucket:
13d57dd39 (HEAD -> master, origin/master, origin/HEAD) sourcegit: Update to version 8.34

'versions' bucket:
fdf484096 (HEAD -> master, origin/master, origin/HEAD) zig-dev: Update to version 0.14.0-dev.1862

'sysinternals' bucket:
6b2b695 (HEAD -> main, origin/main, origin/HEAD) sysmon: Update to version 15.15

'nerd-fonts' bucket:
c6d9e8d2 (HEAD -> master, origin/master, origin/HEAD) SarasaGothic: Update to version 1.0.22

'nonportable' bucket:
f29b800 (HEAD -> master, origin/master, origin/HEAD) qttabbar-indiff-np: Update to version 1.5.6.-beta.1

'java' bucket:
f391914b (HEAD -> master, origin/master, origin/HEAD) temurin8-nightly-jre: Update to version 8.0.432-5.0.202410081519

'games' bucket:
76a52279a (HEAD -> master, origin/master, origin/HEAD) duckstation-preview: Update to version 20241014-gafd3656

'dorado' bucket:
ef409383 (HEAD -> master, origin/master, origin/HEAD) wox-nightly: Update to version 2.0.0.20241013-nightly.f0db9b

'echoiron_echo-scoop' bucket:
268eefc (HEAD -> main, origin/main, origin/HEAD) gost:2.12.0

'hoilc_scoop-lemon' bucket:
cc97d50dd (HEAD -> master, origin/master, origin/HEAD) sequin-cli: Update to version 0.4.15

'hu3rror_scoop-muggle' bucket:
b3ac582 (HEAD -> master, origin/master, origin/HEAD) imewlconverter: Update to version 3.1.1

'jbwfu_scoop-bucket' bucket:
cc1709d (HEAD -> master, origin/master, origin/HEAD) hmcl: Update to version 3.5.9.257

'letterk-bucket' bucket:
a5bf712 (HEAD -> master, origin/master, origin/HEAD) mihomo-alpha: Update to version alpha-ca3f1eb

'scoopet' bucket:
7781c9c (HEAD -> master, origin/master, origin/HEAD) feeluown: add 4.1.7

'starise_Scoop-Confetti' bucket:
21fa753 (HEAD -> master, origin/master, origin/HEAD) vscodium-it: Update to version 1.94.2.24286

'Velgus_Scoop-Velgus' bucket:
2192048 (HEAD -> master, origin/master, origin/HEAD) ferdium: Update to version 6.7.7

'Weidows-projects_scoop-3rd' bucket:
2103bc8 (HEAD -> main, origin/main, origin/HEAD) widgets: Update to version 24.10.6

'ygguorun_scoop-bucket' bucket:
8c20452 (HEAD -> master, origin/master, origin/HEAD) apifox: Update to version 2.6.23

Scoop Config

scoop config

last_update                     : 2024/10/14 12:33:50
aria2-warning-enabled           : False
aria2-enabled                   : True
root_path                       : D:\scoop
aria2-retry-wait                : 4
aria2-split                     : 16
aria2-max-connection-per-server : 16
aria2-min-split-size            : 1M
scoop_repo                      : https://github.com/ScoopInstaller/Scoop
scoop_branch                    : master
alias                           : @{st=scoop-st; updateqq=scoop-updateqq}

PowerShell Version

$PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.4.5
PSEdition                      Core
GitCommitId                    7.4.5
OS                             Microsoft Windows 10.0.22631
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Additional Softwares

No response

letterk commented 1 week ago
先找到 app 文件夹的路径,修改里面的两个文件

查看 QQNT 根目录,是否存在 versions 文件夹
是,则路径为 QQNT\versions\版本号\resources\app
否,则路径为 QQNT\resources\app
在 app 目录中,创建一个文件,修改一个文件

创建 app/app_launcher/*.js 文件,其中 * 为文件名可随意设置,写入 require(String.raw`*`) 其中 * 为 LiteLoaderQQNT 的路径
修改 app/package.json 文件,将 main 后面的路径改为 ./app_launcher/*.js 其中 * 为你刚才创建的文件名

注入位置也有了变化, 不再是注入到index.js里

letterk commented 1 week ago
"post_install": [
        "if (!(Test-Path \"$persist_dir\")) { New-Item -Path $persist_dir -Type Directory | Out-Null}",
        "$currentVersion = (parse_json \"$(appdir qq-nt $global)\\current\\Files\\versions\\config.json\").curVersion",
        "$appLauncherDir = \"$(appdir qq-nt $global)\\current\\Files\\versions\\$currentVersion\\resources\\app\\app_launcher\"",
        "$packageJsonPath = \"$(appdir qq-nt $global)\\current\\Files\\versions\\$currentVersion\\resources\\app\\package.json\"",

        "if (Test-Path \"$packageJsonPath\") {",
        "    $jsFileName = \"liteLoaderQQNT.js\"; ",
        "    $envfilePath = \"$appLauncherDir\\$jsFileName\"",
        "    New-Item -Path $envfilePath -ItemType File -Force | Out-Null",
        "    Set-Content -Path $envfilePath -Value \"require(String.raw``$dir``);\"",
        "    $packageJson = Get-Content \"$packageJsonPath\" -Raw | ConvertFrom-Json;",
        "    $packageJson.main = \"./app_launcher/$jsFileName\";",
        "    $packageJson | ConvertTo-Json | Set-Content \"$packageJsonPath\";",
        "} else {",
        "    info '文件 $packageJsonPath 不存在,无法继续操作'",
        "}"
    ],

写的比较丑陋, scoop实在不知道怎么调试, 就不提pr了