From 0119a82552b1236b85ee84ede2f85c6ed68898b6 Mon Sep 17 00:00:00 2001 From: Sizhe Zhao Date: Tue, 17 Jun 2025 18:31:32 +0800 Subject: [PATCH] qq: refactor update script --- pkgs/by-name/qq/qq/package.nix | 20 +++++------------ pkgs/by-name/qq/qq/sources.nix | 20 ++++++++++++----- pkgs/by-name/qq/qq/update.sh | 39 ++++++++++++++++++++++------------ 3 files changed, 46 insertions(+), 33 deletions(-) diff --git a/pkgs/by-name/qq/qq/package.nix b/pkgs/by-name/qq/qq/package.nix index 715aba6b6668..9728db8584d3 100644 --- a/pkgs/by-name/qq/qq/package.nix +++ b/pkgs/by-name/qq/qq/package.nix @@ -29,24 +29,14 @@ }: let - sources = import ./sources.nix; - srcs = { - x86_64-linux = fetchurl { - url = sources.amd64_url; - hash = sources.amd64_hash; - }; - aarch64-linux = fetchurl { - url = sources.arm64_url; - hash = sources.arm64_hash; - }; - }; - src = - srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); + sources = import ./sources.nix { inherit fetchurl; }; + source = + sources.${stdenv.hostPlatform.system} + or (throw "Unsupported system: ${stdenv.hostPlatform.system}"); in stdenv.mkDerivation { pname = "qq"; - version = sources.version; - inherit src; + inherit (source) version src; nativeBuildInputs = [ autoPatchelfHook diff --git a/pkgs/by-name/qq/qq/sources.nix b/pkgs/by-name/qq/qq/sources.nix index 0070dfbc8d4e..c408746b915e 100644 --- a/pkgs/by-name/qq/qq/sources.nix +++ b/pkgs/by-name/qq/qq/sources.nix @@ -1,9 +1,19 @@ # Generated by ./update.sh - do not update manually! # Last updated: 2025-05-30 +{ fetchurl }: { - version = "3.2.17-2025.5.21"; - amd64_url = "https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.17_250521_amd64_01.deb"; - arm64_url = "https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.17_250521_arm64_01.deb"; - arm64_hash = "sha256-PdZ9yHyyx55Y6J59ZsjDsXhXHyNkk1JBS9K0i0vuX/Q="; - amd64_hash = "sha256-BG6Qz+hquexSa5QCwWx6vucb4TS0dUQ6UYKB/zkkI1g="; + aarch64-linux = { + version = "3.2.17-2025.5.21"; + src = fetchurl { + url = "https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.17_250521_arm64_01.deb"; + hash = "sha256-PdZ9yHyyx55Y6J59ZsjDsXhXHyNkk1JBS9K0i0vuX/Q="; + }; + }; + x86_64-linux = { + version = "3.2.17-2025.5.21"; + src = fetchurl { + url = "https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.17_250521_amd64_01.deb"; + hash = "sha256-BG6Qz+hquexSa5QCwWx6vucb4TS0dUQ6UYKB/zkkI1g="; + }; + }; } diff --git a/pkgs/by-name/qq/qq/update.sh b/pkgs/by-name/qq/qq/update.sh index 0784b89dc622..12304716f632 100755 --- a/pkgs/by-name/qq/qq/update.sh +++ b/pkgs/by-name/qq/qq/update.sh @@ -5,27 +5,40 @@ set -euo pipefail cd $(readlink -e $(dirname "${BASH_SOURCE[0]}")) -payload=$(curl https://im.qq.com/rainbow/linuxQQDownload | grep -oP "var params= \K\{.*\}(?=;)") -amd64_url=$(jq -r .x64DownloadUrl.deb <<< "$payload") -arm64_url=$(jq -r .armDownloadUrl.deb <<< "$payload") +# linux -version=$(jq -r .version <<< "$payload")-$(jq -r .updateDate <<< "$payload") +linux_url=$(curl -s https://im.qq.com/linuxqq/index.shtml | grep -oP 'var rainbowConfigUrl = "\K.*(?=";)') +linux_payload=$(curl "$linux_url" | grep -oP "var params= \K\{.*\}(?=;)") +linux_version=$(jq -r .version <<< "$linux_payload")-$(jq -r .updateDate <<< "$linux_payload") -amd64_hash=$(nix-prefetch-url $amd64_url) -arm64_hash=$(nix-prefetch-url $arm64_url) +linux_aarch64_url=$(jq -r .armDownloadUrl.deb <<< "$linux_payload") +linux_x86_64_url=$(jq -r .x64DownloadUrl.deb <<< "$linux_payload") + +linux_aarch64_hash=$(nix-prefetch-url $linux_aarch64_url) +linux_x86_64_hash=$(nix-prefetch-url $linux_x86_64_url) # use friendlier hashes -amd64_hash=$(nix hash convert --to sri --hash-algo sha256 "$amd64_hash") -arm64_hash=$(nix hash convert --to sri --hash-algo sha256 "$arm64_hash") +linux_aarch64_hash=$(nix hash convert --to sri --hash-algo sha256 "$linux_aarch64_hash") +linux_x86_64_hash=$(nix hash convert --to sri --hash-algo sha256 "$linux_x86_64_hash") cat >sources.nix <