From 4ab5b3a2f1e2620bfde358073f408915276b4c3a Mon Sep 17 00:00:00 2001 From: valere Date: Wed, 22 Oct 2025 09:45:47 +0200 Subject: [PATCH] bashrc new helpers fn --- bashrc/.bashrc | 107 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 101 insertions(+), 6 deletions(-) diff --git a/bashrc/.bashrc b/bashrc/.bashrc index bf168b8..772f023 100644 --- a/bashrc/.bashrc +++ b/bashrc/.bashrc @@ -1,8 +1,103 @@ # .linux-env -alias dlmusic='MUSIC_PATH="/mnt/media/music/evilspins/$(date +"%Y")" && mkdir -p $MUSIC_PATH && NOW=$(date +"%Y%m%d%H") && pip install -U yt-dlp && yt-dlp -f bestaudio -x --audio-format mp3 --audio-quality 0 -o $MUSIC_PATH"/"$NOW"__%(title)s__%(artist)s__%(id)s.%(ext)s" $1' -alias dlvideo='VIDEO_PATH="/mnt/media/video/autre" && cd "$VIDEO_PATH" && pip install -U yt-dlp && yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4" --merge-output-format mp4 "$@"' -alias dlfilm='VIDEO_PATH="/mnt/media/video/film" && yt-dlp -o $VIDEO_PATH $1' -alias dlimage='IMAGE_PATH="/mnt/media/image/screenshit" && wget -P $IMAGE_PATH $1' -alias search='find ./ -iname "*$1*"' -alias searchinside='grep -rwl "*$1*" ./' +dlvideo() { + VIDEO_PATH="/mnt/media/video/autre" + cd "$VIDEO_PATH" || return + pip install -U yt-dlp + yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4" --merge-output-format mp4 "$@" +} + +dlfilm() { + VIDEO_PATH="/mnt/media/video/film" + yt-dlp -o "$VIDEO_PATH/%(title)s.%(ext)s" "$1" +} + +dlimage() { + IMAGE_PATH="/mnt/media/image/screenshit" + wget -P "$IMAGE_PATH" "$1" +} + +dlcover() { + query_or_file="$1" + manual_url="$2" + MUSIC_DIR="$HOME/media/files/music" + + if [ -f "$query_or_file" ]; then + file="$query_or_file" + elif echo "$query_or_file" | grep -q '%(ext)'; then + file="$query_or_file" + else + file=$(find "$MUSIC_DIR" -type f \ + \( -iname "*${query_or_file}*.mp3" -o -iname "*${query_or_file}*.m4a" -o -iname "*${query_or_file}*.flac" -o -iname "*${query_or_file}*.wav" -o -iname "*${query_or_file}*.ogg" \) \ + | head -n 1) + fi + + if [ -z "$file" ]; then + echo "❌ Aucun fichier trouvé pour: $query_or_file" + return 1 + fi + + base="${file%.*}" + + if [ -n "$manual_url" ]; then + curl -s "$manual_url" -o "${base}.jpg" + echo "✅ ${base}.jpg saved from manual URL (fichier: $file)" + return + fi + + artist_raw=$(echo "$base" | awk -F'__' '{print $2}') + title_raw=$(echo "$base" | awk -F'__' '{for(i=3;i<=NF;i++){printf (i>3?" ":""); printf $i}}') + artist=$(echo "$artist_raw" | tr '_' ' ') + title=$(echo "$title_raw" | tr '_' ' ') + query_enc=$(jq -rn --arg s "$artist $title" '$s|@uri') + + it_url="https://itunes.apple.com/search?term=${query_enc}&entity=song&limit=1" + art=$(curl -s "$it_url" | jq -r '.results[0].artworkUrl100') + if [ -n "$art" ] && [ "$art" != "null" ]; then + art_hi=$(echo "$art" | sed 's/100x100bb/1000x1000bb/') + curl -s "$art_hi" -o "${base}.jpg" + echo "✅ ${base}.jpg saved from iTunes (fichier: $file)" + return + fi + + api_key="5ae5d1212599f96ffa799e21da1b2a7a38274c94bb5ae8ad26ce8d5b08528aaa" + url=$(curl -s "https://serpapi.com/search.json?engine=google&q=${query_enc}&tbm=isch&api_key=${api_key}" \ + | jq -r '.images_results[0].original') + + if [ -n "$url" ] && [ "$url" != "null" ]; then + curl -s "$url" -o "${base}.jpg" + echo "✅ ${base}.jpg saved from Google Images (fichier: $file)" + else + echo "❌ No cover found for $artist - $title (fichier: $file)" + fi +} + +dlmusic() { + MUSIC_PATH="/home/root/media/files/music" + mkdir -p "$MUSIC_PATH" + + NOW=$(date +"%Y%m%d%H") + URL="$1" + + # Récupère le titre + TITLE=$(yt-dlp --get-title "$URL") + + # Transforme le titre pour le nom de fichier + SAFE_TITLE="${TITLE// - /__}" + SAFE_TITLE="${SAFE_TITLE// /_}" + + TRACK_NAME="$MUSIC_PATH/${NOW}__${SAFE_TITLE}.%(ext)s" + + # Téléchargement + yt-dlp -x --audio-format mp3 -o $TRACK_NAME "$URL" + dlcover $TRACK_NAME +} + +search() { + find ./ -iname "*$1*" +} + +searchinside() { + grep -rwl "$1" ./ +} + # .linux-env