feature(zsh_functions): instagram downloader
This commit is contained in:
parent
ebe4ef9526
commit
e2bce96d76
2 changed files with 69 additions and 0 deletions
68
.zsh_functions/insta.zsh
Normal file
68
.zsh_functions/insta.zsh
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
function insta() {
|
||||||
|
local cwd=$(pwd)
|
||||||
|
|
||||||
|
check_smb_mount() {
|
||||||
|
/sbin/mount | grep -q "$insta_mount_point"
|
||||||
|
}
|
||||||
|
|
||||||
|
local stories_only=false
|
||||||
|
local user_list=()
|
||||||
|
|
||||||
|
# Parse arguments
|
||||||
|
while [[ $# -gt 0 ]]; do
|
||||||
|
case "$1" in
|
||||||
|
--cron)
|
||||||
|
local random_wait=$((RANDOM % 1800))
|
||||||
|
echo "--------------------------------------------"
|
||||||
|
echo "Waiting for $((random_wait / 60)) minutes..."
|
||||||
|
sleep $random_wait
|
||||||
|
stories_only=true
|
||||||
|
;;
|
||||||
|
--stories)
|
||||||
|
stories_only=true
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
user_list+=("$1")
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ ! -d "$insta_mount_point" ]; then
|
||||||
|
echo "Creating mount point directory..."
|
||||||
|
mkdir -p "$insta_mount_point"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! check_smb_mount; then
|
||||||
|
echo "Mounting SMB share..."
|
||||||
|
/sbin/mount_smbfs "smb://janolehuebner:$(pass sudo-lana)@$insta_share_on_nas" "$insta_mount_point"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! check_smb_mount; then
|
||||||
|
echo "Failed to mount SMB share. Exiting."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$insta_mount_point/$insta_path_on_nas" || return 1
|
||||||
|
|
||||||
|
# Use default users if no user was specified
|
||||||
|
if [[ ${#user_list[@]} -eq 0 ]]; then
|
||||||
|
user_list=("${insta_default_users[@]}")
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Build the instaloader command
|
||||||
|
local cmd=(uvx --with browser_cookie3 instaloader -b Safari -B "$insta_cookiefile" "${user_list[@]}" --fast-update)
|
||||||
|
|
||||||
|
if $stories_only; then
|
||||||
|
cmd+=(--stories --no-profile-pic --no-posts)
|
||||||
|
else
|
||||||
|
cmd+=(--stories --reels)
|
||||||
|
fi
|
||||||
|
|
||||||
|
"${cmd[@]}"
|
||||||
|
|
||||||
|
echo "Unmounting SMB share..."
|
||||||
|
sleep 3
|
||||||
|
/sbin/umount -f "$insta_mount_point"
|
||||||
|
cd "$cwd"
|
||||||
|
}
|
1
.zshrc
1
.zshrc
|
@ -25,6 +25,7 @@ done
|
||||||
unset file
|
unset file
|
||||||
unsetopt allexport
|
unsetopt allexport
|
||||||
|
|
||||||
|
autosource insta
|
||||||
autosource youtube
|
autosource youtube
|
||||||
autosource milan
|
autosource milan
|
||||||
autosource nas
|
autosource nas
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue