#!/usr/bin/env bash # Download Tafsir Gooya (قطره چکانی) RAR archives, extract with password, delete RARs. # Usage: AUDIO_DIR=/data/audio ./scripts/fetch-audio.sh # or: ./scripts/fetch-audio.sh /path/to/audio set -euo pipefail AUDIO_DIR="${1:-${AUDIO_DIR:-/data/audio}}" PASSWORD="${RAR_PASSWORD:-www.p30download.com}" BASE_URL="https://pdn.sharezilla.ir/d/audio" WORKDIR="${AUDIO_DIR}/.download" mkdir -p "$AUDIO_DIR" "$WORKDIR" need() { command -v "$1" >/dev/null 2>&1 || { echo "missing dependency: $1" >&2; exit 1; }; } need curl if ! command -v unrar >/dev/null 2>&1 && ! command -v 7z >/dev/null 2>&1; then echo "need unrar or 7z" >&2 exit 1 fi # slug list matching sharezilla filenames declare -a SLUGS=( "001.Tafsir.Gooya.Hamd" "002.Tafsir.Gooya.Baqara" "003.Tafsir.Gooya.Ale.imran" "004.Tafsir.Gooya.Nisa" "005.Tafsir.Gooya.Maeda" "006.Tafsir.Gooya.Anaam" "007.Tafsir.Gooya.Araf" "008.Tafsir.Gooya.Anfal" "009.Tafsir.Gooya.Tawba" "010.Tafsir.Gooya.Yunus" "011.Tafsir.Gooya.Hud" "012.Tafsir.Gooya.Yusuf" "013.Tafsir.Gooya.Rad" "014.Tafsir.Gooya.Ibrahim" "015.Tafsir.Gooya.Hijr" "016.Tafsir.Gooya.Nahl" "017.Tafsir.Gooya.Isra" "018.Tafsir.Gooya.Kahf" "019.Tafsir.Gooya.Maryam" "020.Tafsir.Gooya.Taha" "021.Tafsir.Gooya.Anbiya" "022.Tafsir.Gooya.Hajj" "023.Tafsir.Gooya.Mumenoon" "024.Tafsir.Gooya.Noor" "025.Tafsir.Gooya.Furqan" "026.Tafsir.Gooya.Shuara" "027.Tafsir.Gooya.Naml" "028.Tafsir.Gooya.Qasas" "029.Tafsir.Gooya.Ankaboot" "030.Tafsir.Gooya.Room" "031.Tafsir.Gooya.Luqman" "032.Tafsir.Gooya.Sajda" "033.Tafsir.Gooya.Ahzab" "034.Tafsir.Gooya.Saba" "035.Tafsir.Gooya.Fatir" "036.Tafsir.Gooya.Yaseen" "037.Tafsir.Gooya.Saaffat" "038.Tafsir.Gooya.Sad" "039.Tafsir.Gooya.Zumar" "040.Tafsir.Gooya.Ghafir" "041.Tafsir.Gooya.Fussilat" "042.Tafsir.Gooya.Shura" "043.Tafsir.Gooya.Zukhruf" "044.Tafsir.Gooya.Dukhan" "045.Tafsir.Gooya.Jathiya" "046.Tafsir.Gooya.Ahqaf" "047.Tafsir.Gooya.Muhammad" "048.Tafsir.Gooya.Fath" "049.Tafsir.Gooya.Hujaraat" "050.Tafsir.Gooya.Qaf" "051.Tafsir.Gooya.Dhariyat" "052.Tafsir.Gooya.Tur" "053.Tafsir.Gooya.Najm" "054.Tafsir.Gooya.Qamar" "055.Tafsir.Gooya.Ar-Rahman" "056.Tafsir.Gooya.Waqia" "057.Tafsir.Gooya.Hadid" "058.Tafsir.Gooya.Mujadila" "059.Tafsir.Gooya.Hashr" "060.Tafsir.Gooya.Mumtahina" "061.Tafsir.Gooya.Saff" "062.Tafsir.Gooya.Jumua" "063.Tafsir.Gooya.Munafiqoon" "064.Tafsir.Gooya.Taghabun" "065.Tafsir.Gooya.Talaq" "066.Tafsir.Gooya.Tahrim" "067.Tafsir.Gooya.Mulk" "068.Tafsir.Gooya.Qalam" "069.Tafsir.Gooya.Haaqqa" "070.Tafsir.Gooya.Maarij" "071.Tafsir.Gooya.Nooh" "072.Tafsir.Gooya.Jinn" "073.Tafsir.Gooya.Muzzammil" "074.Tafsir.Gooya.muddaththir" "075.Tafsir.Gooya.Qiyama" "076.Tafsir.Gooya.Insan" "077.Tafsir.Gooya.Mursalat" "078.Tafsir.Gooya.Naba" "079.Tafsir.Gooya.Naziat" "080.Tafsir.Gooya.Abasa" "081.Tafsir.Gooya.Takwir" "082.Tafsir.Gooya.Infitar" "083.Tafsir.Gooya.Mutaffifin" "084.Tafsir.Gooya.Inshiqaq" "085.Tafsir.Gooya.Brooj" "086.Tafsir.Gooya.Tariq" "087.Tafsir.Gooya.Ala" "088.Tafsir.Gooya.Ghashiya" "089.Tafsir.Gooya.Fajr" "090.Tafsir.Gooya.Balad" "091.Tafsir.Gooya.Shams" "092.Tafsir.Gooya.Lail" "093.Tafsir.Gooya.Dhuha" "094.Tafsir.Gooya.Inshirah" "095.Tafsir.Gooya.Tin" "096.Tafsir.Gooya.Alaq" "097.Tafsir.Gooya.Qadr" "098.Tafsir.Gooya.Bayyina" "099.Tafsir.Gooya.Zalzala" "100.Tafsir.Gooya.Adiyat" "101.Tafsir.Gooya.Qaria" "102.Tafsir.Gooya.Takathur" "103.Tafsir.Gooya.Asr" "104.Tafsir.Gooya.Humaza" "105.Tafsir.Gooya.Fil" "106.Tafsir.Gooya.Quarish" "107.Tafsir.Gooya.Maun" "108.Tafsir.Gooya.kauther" "109.Tafsir.Gooya.Kafiroon" "110.Tafsir.Gooya.Nasr" "111.Tafsir.Gooya.Masad" "112.Tafsir.Gooya.Ikhlas" "113.Tafsir.Gooya.Falaq" "114.Tafsir.Gooya.Nas" ) extract_one() { local rar="$1" local dest="$2" mkdir -p "$dest" if command -v unrar >/dev/null 2>&1; then unrar x -o+ -p"${PASSWORD}" "$rar" "$dest/" else 7z x -y "-p${PASSWORD}" "-o${dest}" "$rar" fi } for slug in "${SLUGS[@]}"; do num="${slug%%.*}" out_dir="${AUDIO_DIR}/${num}" # skip if already has audio if find "$out_dir" -type f \( -iname '*.mp3' -o -iname '*.m4a' -o -iname '*.ogg' \) 2>/dev/null | grep -q .; then echo "==> skip ${num} (already extracted)" continue fi rar="${WORKDIR}/${slug}.rar" url="${BASE_URL}/${slug}.rar" echo "==> download ${slug}" curl -fL --retry 5 --retry-delay 3 -o "$rar" "$url" echo "==> extract ${slug} -> ${out_dir}" extract_one "$rar" "$out_dir" rm -f "$rar" echo "==> done ${num}" done rmdir "$WORKDIR" 2>/dev/null || true echo "audio import finished under ${AUDIO_DIR}" find "$AUDIO_DIR" -type f \( -iname '*.mp3' -o -iname '*.m4a' \) | wc -l