Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # === CONFIGURATION ===
- USER_NAME=debian
- USER_ID=$(id -u "$USER_NAME")
- export DISPLAY=:0
- export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$USER_ID/bus"
- # Fungsi untuk mengirim notifikasi
- send_notification() {
- local prayer_name=$1
- local prayer_time=$2
- notify-send "Pengingat Sholat" "Waktu ($prayer_name) $prayer_time" || echo "Gagal kirim notifikasi $prayer_name" >> /tmp/prayer_notif_error.log
- }
- # Baca waktu sholat dari script eksternal
- PRAYER_TIMES=$(/home/debian/.script/prayer-source.sh)
- # Fungsi ekstrak waktu dari hasil grep
- extract_time() {
- local prayer_label=$1
- echo "$PRAYER_TIMES" | grep "$prayer_label" | awk '{print $2}' | sed 's/^[ \t]*//;s/[ \t]*$//'
- }
- # Format dan bersihkan waktu
- format_time() {
- local time=$1
- if [[ "$time" =~ ^[0-9]+$ ]]; then
- printf "%02d:00\n" "$time"
- elif [[ "$time" =~ ^[0-9]{1,2}:[0-9]{2}$ ]]; then
- echo "$time"
- else
- echo ""
- fi
- }
- # Ambil dan format semua waktu sholat
- FAJR=$(format_time "$(extract_time "Fajr")")
- DHUHR=$(format_time "$(extract_time "Zuhur")")
- ASR=$(format_time "$(extract_time "Asr")")
- MAGHRIB=$(format_time "$(extract_time "Maghrib")")
- ISHA=$(format_time "$(extract_time "Isha")")
- # Buat array waktu sholat, hanya jika tidak kosong
- PRAYERS=()
- [[ -n "$FAJR" ]] && PRAYERS+=("Fajr|$FAJR")
- [[ -n "$DHUHR" ]] && PRAYERS+=("Zuhur|$DHUHR")
- [[ -n "$ASR" ]] && PRAYERS+=("Asr|$ASR")
- [[ -n "$MAGHRIB" ]] && PRAYERS+=("Maghrib|$MAGHRIB")
- [[ -n "$ISHA" ]] && PRAYERS+=("Isha|$ISHA")
- # Dapatkan waktu saat ini
- CURRENT_TIME=$(date +"%H:%M")
- echo "Waktu saat ini: $CURRENT_TIME"
- # Loop semua waktu sholat
- for prayer in "${PRAYERS[@]}"; do
- PRAYER_NAME=${prayer%%|*}
- PRAYER_TIME=${prayer#*|}
- echo "Waktu sholat $PRAYER_NAME: $PRAYER_TIME"
- if [[ -n "$PRAYER_TIME" ]]; then
- PRAYER_EPOCH=$(date -d "$(date +%Y-%m-%d) $PRAYER_TIME" +%s)
- NOTIF_30_MIN_EPOCH=$((PRAYER_EPOCH - 30 * 60))
- NOTIF_20_MIN_EPOCH=$((PRAYER_EPOCH - 20 * 60))
- NOTIF_10_MIN_EPOCH=$((PRAYER_EPOCH - 10 * 60))
- NOTIFICATION_30_MIN_TIME=$(date -d "@$NOTIF_30_MIN_EPOCH" +"%H:%M")
- NOTIFICATION_20_MIN_TIME=$(date -d "@$NOTIF_20_MIN_EPOCH" +"%H:%M")
- NOTIFICATION_10_MIN_TIME=$(date -d "@$NOTIF_10_MIN_EPOCH" +"%H:%M")
- NOTIFICATION_TIME=$(date -d "@$PRAYER_EPOCH" +"%H:%M")
- echo "Waktu notifikasi ($PRAYER_NAME -30 menit): $NOTIFICATION_30_MIN_TIME"
- echo "Waktu notifikasi ($PRAYER_NAME -20 menit): $NOTIFICATION_20_MIN_TIME"
- echo "Waktu notifikasi ($PRAYER_NAME -10 menit): $NOTIFICATION_10_MIN_TIME"
- echo "Waktu notifikasi ($PRAYER_NAME -0 menit): $NOTIFICATION_TIME"
- if [[ "$CURRENT_TIME" == "$NOTIFICATION_30_MIN_TIME" || "$CURRENT_TIME" == "$NOTIFICATION_20_MIN_TIME" || "$CURRENT_TIME" == "$NOTIFICATION_10_MIN_TIME" || "$CURRENT_TIME" == "$NOTIFICATION_TIME" ]]; then
- echo "Mengirim notifikasi untuk $PRAYER_NAME pukul $PRAYER_TIME"
- send_notification "$PRAYER_NAME" "$PRAYER_TIME"
- fi
- else
- echo "Waktu untuk $PRAYER_NAME tidak valid, dilewati."
- fi
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement