Added 'url' and 'download' functions
This commit is contained in:
parent
6904cfdd84
commit
9a270533a3
8
APKBUILD
8
APKBUILD
|
@ -1,10 +1,10 @@
|
||||||
# Contributor: Marty Sluijtman <marty.wanderer@disroot.org>
|
# Contributor: Marty Sluijtman <marty.wanderer@disroot.org>
|
||||||
# Maintainer: Marty Sluijtman <marty.wanderer@disroot.org>
|
# Maintainer: Marty Sluijtman <marty.wanderer@disroot.org>
|
||||||
pkgname=arbit
|
pkgname=arbit
|
||||||
pkgver=1.0
|
pkgver=1.2
|
||||||
pkgrel=2
|
pkgrel=0
|
||||||
pkgdesc="A wrapper around yt-dlp, mpv and pipe-viewer to watch aribtrary videos without a browser"
|
pkgdesc="A wrapper around yt-dlp, mpv and pipe-viewer to watch aribtrary videos without a browser"
|
||||||
url="https://alpine.voidcruiser.nl"
|
url="https://gitlab.com/EternalWanderer/arbit"
|
||||||
arch="noarch"
|
arch="noarch"
|
||||||
license="GPL-3.0"
|
license="GPL-3.0"
|
||||||
depends="mpv yt-dlp pipe-viewer"
|
depends="mpv yt-dlp pipe-viewer"
|
||||||
|
@ -23,5 +23,5 @@ package() {
|
||||||
install -Dm 644 zsh.completion "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
|
install -Dm 644 zsh.completion "$pkgdir"/usr/share/zsh/site-functions/_$pkgname
|
||||||
}
|
}
|
||||||
sha512sums="
|
sha512sums="
|
||||||
8f59c38d32d6f7ab1b1eece9e8e83eb09ec047ea2435fcce362d1b9528f6b5f54df7d13167f7004259494a35f48c14a934afde1eca7b973bb0b0d77831a57a7e arbit-1.0.tar.gz
|
3bfb46e8ec224d8a8b05a9efa74852a027dd2b89af2f31fab15109f073eaf87c2aca37038f523969a6ea8913c731b7f3574c4dd01e2419863254a6fd2253d33d arbit-1.2.tar.gz
|
||||||
"
|
"
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -1,6 +1,6 @@
|
||||||
NAME = arbit
|
NAME = arbit
|
||||||
PREFIX = /usr/local
|
PREFIX = /usr/local
|
||||||
VERSION = 1.0
|
VERSION = 1.2
|
||||||
DIRNAME= $(NAME)-$(VERSION)
|
DIRNAME= $(NAME)-$(VERSION)
|
||||||
MANPAGE = $(NAME).1
|
MANPAGE = $(NAME).1
|
||||||
MANPREFIX = $(PREFIX)/share/man
|
MANPREFIX = $(PREFIX)/share/man
|
||||||
|
|
41
arbit
41
arbit
|
@ -4,7 +4,6 @@
|
||||||
|
|
||||||
videoDir="${XDG_VIDEOS_DIR:-$HOME/Videos}"
|
videoDir="${XDG_VIDEOS_DIR:-$HOME/Videos}"
|
||||||
downloadDir="${ARBITDIR:-$videoDir/YouTube}"
|
downloadDir="${ARBITDIR:-$videoDir/YouTube}"
|
||||||
clipboardContent="$(xclip -o)"
|
|
||||||
|
|
||||||
[ -d $downloadDir ] || mkdir -p downloadDir
|
[ -d $downloadDir ] || mkdir -p downloadDir
|
||||||
|
|
||||||
|
@ -16,7 +15,12 @@ die(){
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getClip(){
|
||||||
|
clipboardContent="$(xclip -o)"
|
||||||
|
}
|
||||||
|
|
||||||
mpvClip(){
|
mpvClip(){
|
||||||
|
getClip
|
||||||
if $(echo "${clipboardContent}" | grep -qE 'youtube|youtu.be'); then
|
if $(echo "${clipboardContent}" | grep -qE 'youtube|youtu.be'); then
|
||||||
notify-send "Arbit" "Opening clipboard content with 'pipe-viewer'..."
|
notify-send "Arbit" "Opening clipboard content with 'pipe-viewer'..."
|
||||||
pipe-viewer --player=mpv "${clipboardContent}" || die "Failed to parse URL"
|
pipe-viewer --player=mpv "${clipboardContent}" || die "Failed to parse URL"
|
||||||
|
@ -27,24 +31,54 @@ mpvClip(){
|
||||||
}
|
}
|
||||||
|
|
||||||
clipboardQuery(){
|
clipboardQuery(){
|
||||||
|
getClip
|
||||||
notify-send "Arbit" "Searching YouTube with:\n\n${clipboardContent}"
|
notify-send "Arbit" "Searching YouTube with:\n\n${clipboardContent}"
|
||||||
pipe-viewer --player=mpv "${clipboardContent}"
|
pipe-viewer --player=mpv "${clipboardContent}"
|
||||||
}
|
}
|
||||||
|
|
||||||
downloadClipUrl(){
|
downloadClipUrl(){
|
||||||
|
getClip
|
||||||
notify-send "Arbit" "Downloading video to ${downloadDir}"
|
notify-send "Arbit" "Downloading video to ${downloadDir}"
|
||||||
yt-dlp -o "${downloadDir}/%(title)s - %(uploader)s.%(ext)s" ${clipboardContent} \
|
yt-dlp -o "${downloadDir}/%(title)s - %(uploader)s.%(ext)s" ${clipboardContent} \
|
||||||
&& notify-send "Arbit" "Finished downloading video." \
|
&& notify-send "Arbit" "Finished downloading video." \
|
||||||
|| die "Failed to download file"
|
|| die "Failed to download file"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
search(){
|
||||||
|
pipe-viewer --player=mpv "$(echo "$*" | sed 's/search //')"
|
||||||
|
}
|
||||||
|
|
||||||
|
viewUrl(){
|
||||||
|
url="$(echo $*|sed 's/url //')"
|
||||||
|
if $(echo "${url}" | grep -qE 'youtube|youtu.be'); then
|
||||||
|
notify-send "Arbit" "Opening clipboard content with 'pipe-viewer'..."
|
||||||
|
pipe-viewer --player=mpv "${url}" || die "Failed to parse URL"
|
||||||
|
else
|
||||||
|
notify-send "Arbit" "Opening clipboard content with 'mpv'..."
|
||||||
|
mpv --force-window "${url}" || die "Failed to parse URL"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
download(){
|
||||||
|
url="$(echo $*|sed 's/url //')"
|
||||||
|
notify-send "Arbit" "Downloading video to ${downloadDir}"
|
||||||
|
yt-dlp -o "${downloadDir}/%(title)s - %(uploader)s.%(ext)s" ${url} \
|
||||||
|
&& notify-send "Arbit" "Finished downloading video." \
|
||||||
|
|| die "Failed to download file"
|
||||||
|
}
|
||||||
|
|
||||||
usage(){
|
usage(){
|
||||||
cat >&2 <<EOF
|
cat >&2 <<EOF
|
||||||
Usage: $(basename $0) <clipboard-url|clipboard-content|download-url>
|
Usage: $(basename $0) <clipboard-url|clipboard-content|download-url|url|download>
|
||||||
clipboard-url: open the contents of clipboard in either 'pipe-viewer' or 'mpv'
|
clipboard-url: open the contents of clipboard in either 'pipe-viewer' or 'mpv'
|
||||||
clipboard-content: open pipe-viewer with clipboard content as search query
|
clipboard-content: open pipe-viewer with clipboard content as search query
|
||||||
download-url: open 'yt-dlp' with clipboard content and save the result to
|
download-url: open 'yt-dlp' with clipboard content and save the result to
|
||||||
${downloadDir}
|
${downloadDir}
|
||||||
|
search: use any other given arguments as search query
|
||||||
|
url: open a given URL in pipe-viewer or mpv
|
||||||
|
download: open a given URL using 'yt-dlp' and save the result to
|
||||||
|
${downloadDir}
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,5 +86,8 @@ case $1 in
|
||||||
clipboard-url) mpvClip;;
|
clipboard-url) mpvClip;;
|
||||||
clipboard-content) clipboardQuery;;
|
clipboard-content) clipboardQuery;;
|
||||||
download-url) downloadClipUrl;;
|
download-url) downloadClipUrl;;
|
||||||
|
search) search "$*";;
|
||||||
|
url)viewUrl $*;;
|
||||||
|
download)download $*;;
|
||||||
*) usage;;
|
*) usage;;
|
||||||
esac
|
esac
|
||||||
|
|
13
arbit.1.scd
13
arbit.1.scd
|
@ -30,7 +30,18 @@ This can be changed by setting the *$ARBITDIR* environment variable.
|
||||||
Open *pipe-viewer(1)* with the contents of the clipboard as search query.
|
Open *pipe-viewer(1)* with the contents of the clipboard as search query.
|
||||||
|
|
||||||
*download-url*
|
*download-url*
|
||||||
open *yt-dlp(1)* with the contents of the clipboard to download the
|
Open *yt-dlp(1)* with the contents of the clipboard to download the
|
||||||
|
resulting file.
|
||||||
|
|
||||||
|
*search* _<search-query>_
|
||||||
|
Query YouTube using *pipe-viewer(1)*
|
||||||
|
|
||||||
|
*url*
|
||||||
|
Open a given URL either in *pipe-viewer(1)* or directly in
|
||||||
|
*mpv(1)*.
|
||||||
|
|
||||||
|
*download* _<url>_
|
||||||
|
Open *yt-dlp(1)* with the contents of the given URL to download the
|
||||||
resulting file.
|
resulting file.
|
||||||
|
|
||||||
# SEE ALSO
|
# SEE ALSO
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#compdef arbit _arbit
|
#compdef arbit _arbit
|
||||||
|
|
||||||
_arguments -C \
|
_arguments -C \
|
||||||
"1: :(clipboard-url clipboard-content download-url)" \
|
"1: :(clipboard-url clipboard-content download-url search url download)" \
|
||||||
"*::args:->args"
|
"*::args:->args"
|
||||||
_arguments : $arguments
|
_arguments : $arguments
|
||||||
|
|
Loading…
Reference in a new issue