87 lines
2.1 KiB
Bash
Executable file
87 lines
2.1 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
image_folder="$HOME/pictures/"
|
|
video_folder="$HOME/videos/"
|
|
|
|
# Utils
|
|
notify() {
|
|
notify-send "Media Download" "$1" -i ~/.local/share/icons/Catppuccin-SE/64x64/mimetypes/application-x-partial-download.svg --app-name=gallery-dl
|
|
}
|
|
|
|
notify_error() {
|
|
notify-send "Media Download" "$1" -u critical -i ~/.local/share/icons/Catppuccin-SE/64x64/mimetypes/application-x-partial-download.svg --app-name=gallery-dl
|
|
}
|
|
|
|
download_images() {
|
|
gallery-dl -d "$image_folder" --download-archive "$image_folder/{$1}/archive.sqlite3" "$2" --filter "$3"
|
|
}
|
|
|
|
download_videos() {
|
|
gallery-dl -d "$video_folder" --download-archive "$video_folder/{$1}/archive.sqlite3" "$2" --filter "$3"
|
|
}
|
|
|
|
# Download Sites
|
|
download_pinterest() {
|
|
download_images "pinterest" "$1" "extension not in ('mp4', 'gif')"
|
|
download_videos "pinterest" "$1" "extension in ('mp4', 'gif')"
|
|
notify "Pinterest ($1) Complete"
|
|
}
|
|
|
|
download_pixiv() {
|
|
download_images "pixiv" "$1" "extension not in ('mp4', 'gif')"
|
|
notify "Pixiv ($1) Complete"
|
|
}
|
|
|
|
download_twitter() {
|
|
download_images "twitter" "$1" "extension not in ('mp4', 'gif')"
|
|
download_videos "twitter" "$1" "extension in ('mp4', 'gif')"
|
|
notify "Twitter ($1) Complete"
|
|
}
|
|
|
|
download_reddit() {
|
|
download_images "reddit" "$1" "extension not in ('mp4')"
|
|
download_videos "reddit" "$1" "extension in ('mp4')"
|
|
notify "Reddit ($1) Complete"
|
|
}
|
|
|
|
download_unknown_site() {
|
|
download_images "$1" "extension not in ('mp4', 'gif')"
|
|
download_videos "$1" "extension in ('mp4', 'gif')"
|
|
notify "$1 Complete"
|
|
}
|
|
|
|
if ! command -v gallery-dl &>/dev/null; then
|
|
notify_error "gallery-dl is not installed"
|
|
exit 1
|
|
fi
|
|
|
|
url_file="$HOME/.gallery-dl/urls.txt"
|
|
|
|
if [ ! -f "$url_file" ]; then
|
|
notify_error "URl file does not exist"
|
|
exit 1
|
|
fi
|
|
|
|
notify "Started Download..."
|
|
|
|
while IFS= read -r url; do
|
|
case "$url" in
|
|
*pinterest.com*)
|
|
download_pinterest "$url"
|
|
;;
|
|
*pixiv.net*)
|
|
download_pixiv "$url"
|
|
;;
|
|
*x.com*)
|
|
download_twitter "$url"
|
|
;;
|
|
*reddit.com*)
|
|
download_reddit "$url"
|
|
;;
|
|
*)
|
|
download_unknown_site "$url"
|
|
;;
|
|
esac
|
|
done <"$url_file"
|
|
|
|
notify "Media Download Complete"
|