From e602d788b06f2964ec9690baa145c5b9760169c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Ole=20H=C3=BCbner?= Date: Sun, 13 Apr 2025 19:02:27 +0200 Subject: [PATCH] fix(insta): add temporary local fix for insta on nas --- .zsh_functions/insta.zsh | 119 +++++++++++++++++++++------------------ 1 file changed, 63 insertions(+), 56 deletions(-) diff --git a/.zsh_functions/insta.zsh b/.zsh_functions/insta.zsh index 779cf25..fca9843 100644 --- a/.zsh_functions/insta.zsh +++ b/.zsh_functions/insta.zsh @@ -1,68 +1,75 @@ -function insta() { - local cwd=$(pwd) +insta () { + local cwd=$(pwd) + check_smb_mount () { + /sbin/mount | grep -q "$insta_mount_point" + } - check_smb_mount() { - /sbin/mount | grep -q "$insta_mount_point" - } + local stories_only=false + local user_list=() + 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 - local stories_only=false - local user_list=() + echo "-----$(date)------" - # 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 - echo "-----$(date)------" - if [ ! -d "$insta_mount_point" ]; then - echo "Creating mount point directory..." - mkdir -p "$insta_mount_point" - fi + local is_local_nas=false + if [[ "$NAS_IP" == "127.0.0.1" || "$NAS_IP" == "localhost" ]]; then + is_local_nas=true + 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 [ ! -d "$insta_mount_point" ]; then + echo "Creating mount point directory..." + mkdir -p "$insta_mount_point" + fi - if ! check_smb_mount; then - echo "Failed to mount SMB share. Exiting." - return 1 - fi + if ! $is_local_nas; then + 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 + fi - cd "$insta_mount_point/$insta_path_on_nas" || return 1 + 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 + 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) + 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 - if $stories_only; then - cmd+=(--stories --no-profile-pic --no-posts) - else - cmd+=(--stories --reels) - fi + "${cmd[@]}" - "${cmd[@]}" + if ! $is_local_nas; then + echo "Unmounting SMB share..." + sleep 3 + /sbin/umount -f "$insta_mount_point" + fi - echo "Unmounting SMB share..." - sleep 3 - /sbin/umount -f "$insta_mount_point" - cd "$cwd" + cd "$cwd" } +