misc: uh what happened here

This commit is contained in:
2023-06-11 16:18:20 +07:00
parent bae0d02885
commit d0572325eb
24 changed files with 393 additions and 33 deletions

View File

@ -0,0 +1,103 @@
#!/bin/bash
declare -a deps=("curl" "unzip" "rm" "7z" "python3")
declare -a patchfiles=("chrome_elf.dll" "config.ini")
if (( $EUID == 0 )); then
echo "Do not run this script as root."
exit
fi
adPatchScript=$(cat << EOF
#!/usr/bin/python3
import re
from pathlib import Path
print("Patching xpui.js...")
xpui = Path("./xpui/xpui.js")
xpui_content = xpui.read_text(encoding="utf-8")
replace_ad = re.sub(r"(\.ads\.leaderboard\.isEnabled)(}|\))", r"\1&&false\2", xpui_content)
replace_upgrade = re.sub(r"\.createElement\([^.,{]+,{onClick:[^.,]+,className:[^.]+\.[^.]+\.UpgradeButton}\),[^.(]+\(\)", "", replace_ad)
xpui.write_text(replace_upgrade, encoding="utf-8")
EOF
)
[[ -z "${WINEPREFIX}" ]] && WINEPREFIX="$HOME/.wine" || WINEPREFIX="${WINEPREFIX}"
SPOTIFY="$WINEPREFIX/drive_c/users/$(whoami)/AppData/Roaming/Spotify/"
SPOTIFY_APPS="$SPOTIFY/Apps/"
xpuiBundlePath="$SPOTIFY_APPS/xpui.spa"
xpuiUnpackedPath="$SPOTIFY_APPS/xpui/xpui.js"
echo "BlockTheSpot install script for Spotify (Wine version)"
echo "BlockTheSpot: https://github.com/mrpond/BlockTheSpot/"
echo "Current Wineprefix: $WINEPREFIX"
TMPDIR=$(mktemp -d)
cd $TMPDIR
for v in "${deps[@]}"
do
if ! [ -x /usr/bin/$v ]; then
echo "Dependency '$v' not found"
exit
fi
done
if ! [ -d "$SPOTIFY" ]; then
echo "Spotify not found, make sure you're using correct wineprefix..."
exit
fi
if [ "$1" == "uninstall" ]; then
if [ -f "$SPOTIFY/chrome_elf_bak.dll" ]; then
echo "Uninstalling BlockTheSpot..."
for v in "${patchfiles[@]}"
do
rm "$SPOTIFY/$v"
done
mv "$SPOTIFY/chrome_elf_bak.dll" "$SPOTIFY/chrome_elf.dll"
echo "Uninstalling xpui patch if found..."
mv "$xpuiBundlePath.bak" "$xpuiBundlePath"
fi
echo "Uninstalling BlockTheSpot (IF INSTALLED) completed."
exit
fi
echo "Downloading BlockTheSpot..."
curl -OL "https://github.com/mrpond/BlockTheSpot/releases/latest/download/chrome_elf.zip"
echo "Extracting BlockTheSpot..."
unzip -d chrome_elf chrome_elf.zip
if [ -f "$SPOTIFY/chrome_elf.dll" ] && ! [ -f "$SPOTIFY/chrome_elf_bak.dll" ]; then
echo "Backuping files..."
mv "$SPOTIFY/chrome_elf.dll" "$SPOTIFY/chrome_elf_bak.dll"
fi
WINEPREFIX=$WINEPREFIX wineserver -k
echo "Patching Spotify..."
for v in "${patchfiles[@]}"
do
cp "./chrome_elf/$v" "$SPOTIFY/$v"
done
read -p "Do you want to remove ad placeholder and upgrade button? (y/n) " -n 1 -r
echo # (optional) move to a new line
if [[ $REPLY =~ ^[Yy]$ ]]
then
if [ -f "$xpuiBundlePath" ]; then
echo "Patching xpui.spa..."
if ! [ -f "$xpuiBundlePath.bak" ]; then
mv "$xpuiBundlePath" "$xpuiBundlePath.bak"
fi
unzip -d xpui "$xpuiBundlePath.bak"
fi
echo "$adPatchScript" > "./patch.py"
python3 ./patch.py
7z a xpui.zip "./xpui/*"
mv xpui.zip $xpuiBundlePath
fi
echo "Patching completed, open Spotify and enjoy :D"
echo "Temporary directory used $TMPDIR"

View File

@ -0,0 +1,60 @@
#!/usr/bin/bash
if (( $EUID == 0 )); then
echo "Do not run this script as root."
exit
fi
[[ -z "${WINEPREFIX}" ]]; WINEPREFIX="$HOME/.wine"
[[ -z "${WINE}" ]]; WINE="wine"
pfx_arch=$(grep '#arch' "$WINEPREFIX/system.reg" | cut -d "=" -f2)
echo "Wine binary: $WINE"
echo "Detected wineprefix: $WINEPREFIX ($pfx_arch)"
download_ffmpeg() {
if [[ pfx_arch == "win64" ]]; then
repo_url="https://api.github.com/repos/BtbN/FFmpeg-Builds/releases/latest"
else
repo_url="https://api.github.com/repos/sudo-nautilus/FFmpeg-Builds-Win32/releases/latest"
fi
asset_info=$(curl -s "$repo_url" | jq '.assets | first(.[] | select(.name | match("ffmpeg")))')
asset_name=$(echo $asset_info | jq -r '.name')
echo "Downloading $asset_name..."
curl -OL "$(echo $asset_info | jq -r '.browser_download_url')"
echo "Extracting.."
unzip -j $asset_name "${asset_name%.*}/bin/*" -d "./ffmpeg/"
rm $asset_name
}
download_soggfy() {
repo_url="https://api.github.com/repos/Rafiuth/Soggfy/releases/latest"
asset_info=$(curl -s "$repo_url" | jq '.assets[0]')
asset_name=$(echo $asset_info | jq -r '.name')
echo "Downloading $asset_name..."
curl -OL "$(echo $asset_info | jq -r '.browser_download_url')"
echo "Extracting.."
unzip -j $asset_name "${asset_name%.*}/*" -d "."
rm $asset_name
}
if [ ! -f ./Soggfy.js ]; then
echo "Soggfy not found, downloading..."
download_soggfy
fi
if [ ! -d "./ffmpeg/" ]; then
echo "FFmpeg not found, downloading..."
mkdir ./ffmpeg/
download_ffmpeg
fi
echo "Waiting for Spotify to start..."
until _=$(pidof Spotify.exe)
do
sleep 1
done
echo "Injecting..."
WINEPREFIX=$WINEPREFIX $WINE Injector.exe
echo "Done."