83 lines
1.6 KiB
Nix
83 lines
1.6 KiB
Nix
{
|
|
lib,
|
|
buildPythonPackage,
|
|
cairo,
|
|
fetchFromGitHub,
|
|
fetchNpmDeps,
|
|
giflib,
|
|
hatchling,
|
|
nodejs,
|
|
npmHooks,
|
|
pango,
|
|
pixman,
|
|
pkg-config,
|
|
yt-dlp,
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
pname = "bgutil-ytdlp-pot-provider";
|
|
version = "1.3.1";
|
|
pyproject = true;
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "Brainicism";
|
|
repo = "bgutil-ytdlp-pot-provider";
|
|
tag = version;
|
|
hash = "sha256-dhpataQ1HSCRPnm4k3K/NMaQPQdNrx8C4q855l7kbbQ=";
|
|
};
|
|
|
|
npmDeps = fetchNpmDeps {
|
|
name = "${pname}-${version}-npm-deps";
|
|
src = src + "/server";
|
|
npmDepsFetcherVersion = 2;
|
|
hash = "sha256-Qwwi6W+Oeu6ZeLmZP5vEfAKOJyivbULR5mlk7tcVIE8=";
|
|
};
|
|
|
|
npmRoot = "server";
|
|
|
|
nativeBuildInputs = [
|
|
nodejs
|
|
npmHooks.npmConfigHook
|
|
pkg-config
|
|
];
|
|
|
|
buildInputs = [
|
|
cairo
|
|
giflib
|
|
pango
|
|
pixman
|
|
];
|
|
|
|
build-system = [ hatchling ];
|
|
|
|
dependencies = [ yt-dlp ];
|
|
|
|
doCheck = false; # no tests
|
|
|
|
preBuild = ''
|
|
cd server
|
|
npx tsc
|
|
npm prune --omit=dev
|
|
cd ../plugin
|
|
'';
|
|
|
|
postInstall = ''
|
|
cd ..
|
|
|
|
mkdir -p $out/share/bgutil-ytdlp-pot-provider/
|
|
cp -r server/{build,node_modules} $out/share/bgutil-ytdlp-pot-provider/
|
|
makeWrapper ${lib.getExe nodejs} $out/bin/bgutil-ytdlp-pot-provider \
|
|
--add-flags $out/share/bgutil-ytdlp-pot-provider/build/main.js
|
|
|
|
cd plugin
|
|
'';
|
|
|
|
meta = {
|
|
description = "Proof-of-origin token provider plugin for yt-dlp";
|
|
homepage = "https://github.com/Brainicism/bgutil-ytdlp-pot-provider";
|
|
license = lib.licenses.gpl3Only;
|
|
maintainers = with lib.maintainers; [ hexa ];
|
|
mainProgram = "bgutil-ytdlp-pot-provider";
|
|
};
|
|
}
|