diff --git a/.Brewfile b/.Brewfile deleted file mode 100644 index d9f0c5b..0000000 --- a/.Brewfile +++ /dev/null @@ -1,23 +0,0 @@ -brew "cmake" -brew "exiv2" -brew "ffmpeg" -brew "git-filter-repo" -brew "go" -brew "jpeg" -brew "leveldb" -brew "neovim" -brew "nmap" -brew "node" -brew "pass" -brew "podman" -brew "python@3.12" -brew "restic" -brew "samba" -brew "subfinder" -brew "yarn" -brew "yt-dlp" -brew "zoxide" -cask "amethyst" -cask "amorphousdiskmark" -cask "android-platform-tools" -cask "iterm2" diff --git a/.environment.d/01_nas.env b/.environment.d/nas.env similarity index 100% rename from .environment.d/01_nas.env rename to .environment.d/nas.env diff --git a/.environment.d/youtube.env.skel b/.environment.d/youtube.env similarity index 55% rename from .environment.d/youtube.env.skel rename to .environment.d/youtube.env index 4deb20e..cf2c388 100644 --- a/.environment.d/youtube.env.skel +++ b/.environment.d/youtube.env @@ -1,2 +1 @@ TUBE_TOKEN_NAME_IN_STORE="tube.lan" -TUBE_DEFAULT_USERS=("a" "b") diff --git a/.zsh_functions/download.zsh b/.zsh_functions/download.zsh index 0d289f8..8baa34e 100644 --- a/.zsh_functions/download.zsh +++ b/.zsh_functions/download.zsh @@ -29,9 +29,8 @@ fi mdl () { cwd=$(pwd) -share_on_nas="$NAS_IP/media" +share_on_nas="192.168.84.3/media" path_on_nas="Music/__INBOX" -jelly_wait=150 check_smb_mount() { mount | grep -q "$mount_point" } @@ -67,45 +66,23 @@ fi echo "Unmounting SMB share..." sleep 1 -/sbin/umount -f "$mount_point" +umount "$mount_point" cd $cwd -if declare -f jelly_rescan > /dev/null; then - echo "Waiting $jelly_wait secs before triggering automatic library scan..." - sleep $jelly_wait - jelly_rescan - echo "done" -fi +open "http://bliss.lan/" } + d () { local url="${1:-$(pbpaste)}" - local used_clipboard=0 - - if [[ -z "$url" ]]; then + if [[ -z "$url" ]] + then echo "No URL provided and clipboard is empty." return 1 fi - - # Check if URL came from clipboard - if [[ -z "$1" ]]; then - echo "started via clipboard" - used_clipboard=1 - fi - case "$url" in - (*youtube*|*youtu.be*) - echo "Detected YouTube URL: $url" - ytr "$url" - ;; - (*qobuz*) - echo "Detected Qobuz URL: $url" - mdl "$url" - if [[ $used_clipboard -eq 1 ]]; then - osascript -e "display dialog \"Done with Qobuz: $url\" buttons {\"OK\"}" - fi - ;; - (*) - echo "Unknown URL: $url" - ;; + (*youtube*|*youtu.be*) echo "Detected YouTube URL: $url" + ytr "$url" ;; + (*qobuz*) echo "Detected Qobuz URL: $url" + mdl "$url" ;; + (*) echo "Unknown URL: $url" ;; esac } - diff --git a/.zsh_functions/insta.zsh b/.zsh_functions/insta.zsh index a899cbd..779cf25 100644 --- a/.zsh_functions/insta.zsh +++ b/.zsh_functions/insta.zsh @@ -1,75 +1,68 @@ -insta () { - local cwd=$(pwd) - check_smb_mount () { - /sbin/mount | grep -q "$insta_mount_point" - } +function insta() { + local cwd=$(pwd) - 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 + check_smb_mount() { + /sbin/mount | grep -q "$insta_mount_point" + } - echo "-----$(date)------" + local stories_only=false + local user_list=() - local is_local_nas=false - if [[ "$NAS_IP" == "127.0.0.1" || "$NAS_IP" == "localhost" ]]; then - is_local_nas=true - fi - - if [ ! -d "$insta_mount_point" ]; then - echo "Creating mount point directory..." - mkdir -p "$insta_mount_point" - fi - - if ! $is_local_nas; then - if ! check_smb_mount; then - echo "Mounting SMB share..." - /sbin/mount_smbfs "smb://janolehuebner:$(pass sudo-lana 2>/dev/null)@$insta_share_on_nas" "$insta_mount_point" + # 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 + if ! check_smb_mount; then - echo "Failed to mount SMB share. Exiting." - return 1 + echo "Mounting SMB share..." + /sbin/mount_smbfs "smb://janolehuebner:$(pass sudo-lana)@$insta_share_on_nas" "$insta_mount_point" fi - fi - cd "$insta_mount_point/$insta_path_on_nas" || return 1 + if ! check_smb_mount; then + echo "Failed to mount SMB share. Exiting." + return 1 + fi - if [[ ${#user_list[@]} -eq 0 ]]; then - user_list=("${insta_default_users[@]}") - fi + cd "$insta_mount_point/$insta_path_on_nas" || return 1 - local cmd=(uvx --with browser_cookie3 instaloader -b Safari "${user_list[@]}" --fast-update --abort-on=302,400,401,429) - if $stories_only; then - cmd+=(--stories --no-profile-pic --no-posts) - else - cmd+=(--stories --reels) - fi + # Use default users if no user was specified + if [[ ${#user_list[@]} -eq 0 ]]; then + user_list=("${insta_default_users[@]}") + fi - "${cmd[@]}" + # 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[@]}" - if ! $is_local_nas; then echo "Unmounting SMB share..." sleep 3 /sbin/umount -f "$insta_mount_point" - fi - - cd "$cwd" + cd "$cwd" } - diff --git a/.zsh_functions/jellyfin.zsh b/.zsh_functions/jellyfin.zsh deleted file mode 100644 index 79b15db..0000000 --- a/.zsh_functions/jellyfin.zsh +++ /dev/null @@ -1,8 +0,0 @@ -jelly_rescan(){ -JELLYFIN_URL="http://$NAS_IP:8096" -API_KEY="$(pass jelly)" -LIBRARY_ID="8a05b0252259a1dbd62df97522638439" - -curl -X POST -H "X-Emby-Token: $API_KEY" \ - "$JELLYFIN_URL/Library/VirtualFolders/$LIBRARY_ID/Refresh" -} diff --git a/.zsh_functions/youtube.zsh b/.zsh_functions/youtube.zsh index 4651f39..007bf5e 100644 --- a/.zsh_functions/youtube.zsh +++ b/.zsh_functions/youtube.zsh @@ -29,7 +29,7 @@ ytr () { return 1 fi - local token="$(pass $TUBE_TOKEN_NAME_IN_STORE 2>/dev/null)" + local token="$(pass $TUBE_TOKEN_NAME_IN_STORE)" local json_data=$(jq -n --arg youtube_id "$youtube_id" '{ data: [ { @@ -58,7 +58,7 @@ yts() { fi # Set the token and URL - local token="$(pass $TUBE_TOKEN_NAME_IN_STORE 2>/dev/null)" + local token="$(pass $TUBE_TOKEN_NAME_IN_STORE)" # Initialize an empty array to store video data local video_data="[]" @@ -67,7 +67,7 @@ yts() { while read -r youtube_id; do # Add each video ID to the array of data (accumulating in $video_data) video_data=$(echo "$video_data" | jq --arg youtube_id "$youtube_id" '. + [{youtube_id: $youtube_id, status: "pending"}]') - done < <(uvx yt-dlp "https://www.youtube.com/@$1/shorts" --flat-playlist --print "%(id)s") + done < <(yt-dlp "https://www.youtube.com/@$1/shorts" --flat-playlist --print "%(id)s") # Check if video_data is still an empty array (meaning no videos were found) if [[ "$video_data" == "[]" ]]; then @@ -90,7 +90,13 @@ yts() { # check_shorts() { - channels=("${TUBE_DEFAULT_USERS[@]}") + # List of channels to check (you can hardcode them or pass them as arguments) + channels=( + "DarkBlondii" + "littlesiha" + "lenaindica" + ) + # Loop through each channel and call yts for channel in "${channels[@]}"; do echo "Checking shorts for channel: $channel" diff --git a/.zshrc b/.zshrc index eb977ad..b541348 100755 --- a/.zshrc +++ b/.zshrc @@ -30,7 +30,7 @@ autosource milan autosource nas autosource fuck autosource download -autosource jellyfin -eval "$(zoxide init --cmd cd zsh)" +#test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh" + diff --git a/.zshrc.d/install_dotfiles.zsh b/.zshrc.d/install_dotfiles.zsh index 419dd9b..ec5a27f 100644 --- a/.zshrc.d/install_dotfiles.zsh +++ b/.zshrc.d/install_dotfiles.zsh @@ -37,11 +37,6 @@ install_dotfiles () { /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" fi - #----uv - command -v uv >/dev/null 2>&1 || curl -LsSf https://astral.sh/uv/install.sh | sh - # - - if [[ "$OSTYPE" == "darwin"* ]]; then /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"