Compare commits

..

No commits in common. "1c5a3ba8e8f6787b532e2a73275c6bc6f52aa83b" and "c6cab93f4d21fec01bc32c2700271cf3ce7d32c0" have entirely different histories.

9 changed files with 76 additions and 137 deletions

View file

@ -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"

View file

@ -1,2 +1 @@
TUBE_TOKEN_NAME_IN_STORE="tube.lan" TUBE_TOKEN_NAME_IN_STORE="tube.lan"
TUBE_DEFAULT_USERS=("a" "b")

View file

@ -29,9 +29,8 @@ fi
mdl () { mdl () {
cwd=$(pwd) cwd=$(pwd)
share_on_nas="$NAS_IP/media" share_on_nas="192.168.84.3/media"
path_on_nas="Music/__INBOX" path_on_nas="Music/__INBOX"
jelly_wait=150
check_smb_mount() { check_smb_mount() {
mount | grep -q "$mount_point" mount | grep -q "$mount_point"
} }
@ -67,45 +66,23 @@ fi
echo "Unmounting SMB share..." echo "Unmounting SMB share..."
sleep 1 sleep 1
/sbin/umount -f "$mount_point" umount "$mount_point"
cd $cwd cd $cwd
if declare -f jelly_rescan > /dev/null; then open "http://bliss.lan/"
echo "Waiting $jelly_wait secs before triggering automatic library scan..."
sleep $jelly_wait
jelly_rescan
echo "done"
fi
} }
d () { d () {
local url="${1:-$(pbpaste)}" local url="${1:-$(pbpaste)}"
local used_clipboard=0 if [[ -z "$url" ]]
then
if [[ -z "$url" ]]; then
echo "No URL provided and clipboard is empty." echo "No URL provided and clipboard is empty."
return 1 return 1
fi fi
# Check if URL came from clipboard
if [[ -z "$1" ]]; then
echo "started via clipboard"
used_clipboard=1
fi
case "$url" in case "$url" in
(*youtube*|*youtu.be*) (*youtube*|*youtu.be*) echo "Detected YouTube URL: $url"
echo "Detected YouTube URL: $url" ytr "$url" ;;
ytr "$url" (*qobuz*) echo "Detected Qobuz URL: $url"
;; mdl "$url" ;;
(*qobuz*) (*) echo "Unknown URL: $url" ;;
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"
;;
esac esac
} }

View file

@ -1,75 +1,68 @@
insta () { function insta() {
local cwd=$(pwd) local cwd=$(pwd)
check_smb_mount () {
/sbin/mount | grep -q "$insta_mount_point"
}
local stories_only=false check_smb_mount() {
local user_list=() /sbin/mount | grep -q "$insta_mount_point"
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)------" local stories_only=false
local user_list=()
local is_local_nas=false # Parse arguments
if [[ "$NAS_IP" == "127.0.0.1" || "$NAS_IP" == "localhost" ]]; then while [[ $# -gt 0 ]]; do
is_local_nas=true case "$1" in
fi --cron)
local random_wait=$((RANDOM % 1800))
if [ ! -d "$insta_mount_point" ]; then echo "--------------------------------------------"
echo "Creating mount point directory..." echo "Waiting for $((random_wait / 60)) minutes..."
mkdir -p "$insta_mount_point" sleep $random_wait
fi stories_only=true
;;
if ! $is_local_nas; then --stories)
if ! check_smb_mount; then stories_only=true
echo "Mounting SMB share..." ;;
/sbin/mount_smbfs "smb://janolehuebner:$(pass sudo-lana 2>/dev/null)@$insta_share_on_nas" "$insta_mount_point" *)
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 fi
if ! check_smb_mount; then if ! check_smb_mount; then
echo "Failed to mount SMB share. Exiting." echo "Mounting SMB share..."
return 1 /sbin/mount_smbfs "smb://janolehuebner:$(pass sudo-lana)@$insta_share_on_nas" "$insta_mount_point"
fi 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 cd "$insta_mount_point/$insta_path_on_nas" || return 1
user_list=("${insta_default_users[@]}")
fi
local cmd=(uvx --with browser_cookie3 instaloader -b Safari "${user_list[@]}" --fast-update --abort-on=302,400,401,429) # Use default users if no user was specified
if $stories_only; then if [[ ${#user_list[@]} -eq 0 ]]; then
cmd+=(--stories --no-profile-pic --no-posts) user_list=("${insta_default_users[@]}")
else fi
cmd+=(--stories --reels)
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..." echo "Unmounting SMB share..."
sleep 3 sleep 3
/sbin/umount -f "$insta_mount_point" /sbin/umount -f "$insta_mount_point"
fi cd "$cwd"
cd "$cwd"
} }

View file

@ -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"
}

View file

@ -29,7 +29,7 @@ ytr () {
return 1 return 1
fi 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" '{ local json_data=$(jq -n --arg youtube_id "$youtube_id" '{
data: [ data: [
{ {
@ -58,7 +58,7 @@ yts() {
fi fi
# Set the token and URL # 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 # Initialize an empty array to store video data
local video_data="[]" local video_data="[]"
@ -67,7 +67,7 @@ yts() {
while read -r youtube_id; do while read -r youtube_id; do
# Add each video ID to the array of data (accumulating in $video_data) # 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"}]') 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) # Check if video_data is still an empty array (meaning no videos were found)
if [[ "$video_data" == "[]" ]]; then if [[ "$video_data" == "[]" ]]; then
@ -90,7 +90,13 @@ yts() {
# #
check_shorts() { 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 # Loop through each channel and call yts
for channel in "${channels[@]}"; do for channel in "${channels[@]}"; do
echo "Checking shorts for channel: $channel" echo "Checking shorts for channel: $channel"

4
.zshrc
View file

@ -30,7 +30,7 @@ autosource milan
autosource nas autosource nas
autosource fuck autosource fuck
autosource download autosource download
autosource jellyfin
eval "$(zoxide init --cmd cd zsh)" #test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh"

View file

@ -37,11 +37,6 @@ install_dotfiles () {
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
fi fi
#----uv
command -v uv >/dev/null 2>&1 || curl -LsSf https://astral.sh/uv/install.sh | sh
#
if [[ "$OSTYPE" == "darwin"* ]]; then if [[ "$OSTYPE" == "darwin"* ]]; then
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"