diff --git a/scripts/ArchLinux/PKGBUILD b/scripts/ArchLinux/PKGBUILD new file mode 100644 index 0000000..24e3074 --- /dev/null +++ b/scripts/ArchLinux/PKGBUILD @@ -0,0 +1,18 @@ +# Maintainer: Medvidek77 + +pkgname=tidler +pkgver=0.1 +pkgrel=1 +pkgdesc="Tidal music downloader based on the hifi-tui API" +arch=('any') +url="https://medvidek77.tech/Medvidek77/tidler" +license=('BSD3-Clause') +depends=('bash' 'curl' 'jq') +source=("git+$url.git#branch=stable") +sha256sums=('SKIP') + +package() { + cd "$srcdir/$pkgname" + install -Dm755 src/tidler "$pkgdir/usr/bin/tidler" + install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} diff --git a/scripts/universal/install.sh b/scripts/universal/install.sh new file mode 100755 index 0000000..8d799b6 --- /dev/null +++ b/scripts/universal/install.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +if [ "$EUID" -ne 0 ]; then + echo "Please run script as root" + exit 1 +else + if [ ! -f /bin/tidler ]; then + install -m 755 ../../src/tidler /bin/tidler + else + echo "TiDLer is already installed" + fi +fi + diff --git a/scripts/universal/update.sh b/scripts/universal/update.sh new file mode 100755 index 0000000..a923221 --- /dev/null +++ b/scripts/universal/update.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +if [ "$EUID" -ne 0 ]; then + echo "Please run script as root" + exit 1 +else + if [ -f /bin/tidler ]; then + cd ../../ + git pull + install -m 755 src/tidler /bin/tidler + fi +fi diff --git a/src/tidler b/src/tidler old mode 100644 new mode 100755 index 66d5d4a..dceb5e3 --- a/src/tidler +++ b/src/tidler @@ -1,8 +1,13 @@ #!/bin/bash downloadTrack() { - echo "Downloading track with ID: $1" - id="$1" + if [ "$#" -ge 1 ]; then + echo "Downloading track with ID: $1" + id="$1" + else + echo "Enter track ID:" + read -r id + fi json_data=$(curl -s "https://tidal.401658.xyz/track/?id=$id&quality=LOSSLESS") track_name=$(echo "$json_data" | jq -r '.[0].title') artist_name=$(echo "$json_data" | jq -r '.[0].artist.name') @@ -14,8 +19,12 @@ downloadTrack() { } searchTrack() { - echo "Enter track name:" - read -r track_name + if [ "$#" -ge 1 ]; then + track_name="$1" + else + echo "Enter track name:" + read -r track_name + fi track_name=$(echo "$track_name" | sed 's/ /%20/g') tracks=$(curl -s "https://tidal.401658.xyz/search/?s=$track_name" | jq -r '.items[] | "\(.id) - \(.title) by \(.artist.name)"') @@ -24,6 +33,11 @@ searchTrack() { tracks_list+=("$list") done <<< "$tracks" + if [ "${#tracks_list[@]}" -eq 1 ]; then + echo "No tracks found :(" + exit 1 + fi + PS3="Please select a track: " select t in "${tracks_list[@]}"; do if [ -n "$t" ]; then @@ -37,14 +51,29 @@ searchTrack() { done } -echo "Welcome to Tidal music downloader" -echo "" -echo "Choose: 1 = download ; 2 = search" -read option -if [ "$option" -eq 1 ]; then - downloadTrack -elif [ "$option" -eq 2 ]; then - searchTrack +echo "Welcome to TiDLer -> Tidal music downloader" && echo "" + +if [ "$1" = "search" ]; then + if [ "$#" -ge 2 ]; then + shift + jsw="$*" + searchTrack "$jsw" + else + searchTrack + fi +elif [ "$1" = "download" ]; then + if [ "$#" -ge 2 ]; then + downloadTrack "$2" + else + downloadTrack + fi +else + echo "Choose 1 for download track or 2 for search track and download" + read option + if [ "$option" -eq 1 ]; then + downloadTrack + elif [ "$option" -eq 2 ]; then + searchTrack + fi fi -