import gradio as gr import requests from datetime import datetime, timedelta import random # ========================= # đ API Keys # ========================= WEATHER_API_KEY = "3a97c8c63350b72e8439c42e8d371b07" # ========================= # đ§đŠ Bangladesh Divisions & Districts # ========================= BANGLADESH_LOCATIONS = { "Dhaka Division": [ "Dhaka", "Faridpur", "Gazipur", "Gopalganj", "Kishoreganj", "Madaripur", "Manikganj", "Munshiganj", "Narayanganj", "Narsingdi", "Rajbari", "Shariatpur", "Tangail" ], "Chattogram Division": [ "Chattogram", "Bandarban", "Brahmanbaria", "Chandpur", "Cumilla", "Cox's Bazar", "Feni", "Khagrachhari", "Lakshmipur", "Noakhali", "Rangamati" ], "Rajshahi Division": [ "Rajshahi", "Bogura", "Joypurhat", "Naogaon", "Natore", "Chapainawabganj", "Pabna", "Sirajganj" ], "Khulna Division": [ "Khulna", "Bagerhat", "Chuadanga", "Jessore", "Jhenaidah", "Kushtia", "Magura", "Meherpur", "Narail", "Satkhira" ], "Barishal Division": [ "Barishal", "Barguna", "Bhola", "Jhalokathi", "Patuakhali", "Pirojpur" ], "Sylhet Division": [ "Sylhet", "Habiganj", "Moulvibazar", "Sunamganj" ], "Rangpur Division": [ "Rangpur", "Dinajpur", "Gaibandha", "Kurigram", "Lalmonirhat", "Nilphamari", "Panchagarh", "Thakurgaon" ], "Mymensingh Division": [ "Mymensingh", "Jamalpur", "Netrokona", "Sherpur" ] } # ========================= # đŋ 50 Moral Hadiths (English + Bengali) # ========================= HADITHS = [ { "english": "The best among you are those who have the best manners and character.", "bengali": "āϤā§āĻŽāĻžāĻĻā§āϰ āĻŽāϧā§āϝ⧠āϏāϰā§āĻŦā§āϤā§āϤāĻŽ āϏā§āĻ āĻŦā§āϝāĻā§āϤāĻŋ āϝāĻžāϰ āĻāϰāĻŋāϤā§āϰ āĻ āĻāĻāϰāĻŖ āϏāĻŦāĻā§āϝāĻŧā§ āϏā§āύā§āĻĻāϰāĨ¤", "reference": "Sahih Bukhari", "happy_message": "Let your beautiful character shine today and spread joy to everyone you meet! đ", "salam": "As-Salamu Alaikum Wa Rahmatullahi Wa Barakatuh! đ" }, { "english": "Kindness is a mark of faith, and whoever is not kind has no faith.", "bengali": "āĻĻāϝāĻŧāĻž āĻāĻŽāĻžāύā§āϰ āύāĻŋāĻĻāϰā§āĻļāύ, āĻāĻŦāĻ āϝ⧠āĻĻāϝāĻŧāĻžāϞ⧠āύāϝāĻŧ āϤāĻžāϰ āĻāĻŽāĻžāύ āύā§āĻāĨ¤", "reference": "Sahih Muslim", "happy_message": "Your kindness can change someone's entire day - be that light! â¨", "salam": "As-Salamu Alaikum! May Allah bless your day! đ¤˛" }, { "english": "None of you truly believes until he loves for his brother what he loves for himself.", "bengali": "āϤā§āĻŽāĻžāĻĻā§āϰ āĻā§āĻ āĻĒā§āϰāĻā§āϤ āĻŽā§āĻŽāĻŋāύ āĻšāϤ⧠āĻĒāĻžāϰāĻŦā§ āύāĻž āϝāϤāĻā§āώāĻŖ āύāĻž āϏ⧠āϤāĻžāϰ āĻāĻžāĻāϝāĻŧā§āϰ āĻāύā§āϝ āϤāĻžāĻ āĻĒāĻāύā§āĻĻ āĻāϰ⧠āϝāĻž āύāĻŋāĻā§āϰ āĻāύā§āϝ āĻĒāĻāύā§āĻĻ āĻāϰā§āĨ¤", "reference": "Sahih Bukhari & Muslim", "happy_message": "Wishing good for others brings blessings to your own life! đ", "salam": "As-Salamu Alaikum Wa Rahmatullah! Peace be upon you! đī¸" }, { "english": "A smile for your brother is charity.", "bengali": "āϤā§āĻŽāĻžāϰ āĻāĻžāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻšāĻžāϏāĻŋ āĻĻā§āĻāĻžāύ⧠āϏāĻĻāĻāĻžāĨ¤", "reference": "Tirmidhi", "happy_message": "Your beautiful smile is a gift - share it generously today! đ", "salam": "As-Salamu Alaikum! Keep smiling and spreading joy! đ" }, { "english": "The most beloved to Allah is he who is most beneficial to people.", "bengali": "āĻāϞā§āϞāĻžāĻšāϰ āĻāĻžāĻā§ āϏāĻŦāĻā§āϝāĻŧā§ āĻĒā§āϰāĻŋāϝāĻŧ āϏā§āĻ āĻŦā§āϝāĻā§āϤāĻŋ āϝ⧠āĻŽāĻžāύā§āώā§āϰ āĻāύā§āϝ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āĻāĻĒāĻāĻžāϰā§āĨ¤", "reference": "Al-Mu'jam Al-Awsat", "happy_message": "Help someone today and feel the joy of making a difference! đĢ", "salam": "As-Salamu Alaikum Wa Rahmatullahi Wa Barakatuh! đâ¨" }, { "english": "Do not belittle any good deed, even meeting your brother with a cheerful face.", "bengali": "āĻā§āύ⧠āĻāĻžāϞ⧠āĻāĻžāĻāĻā§ āĻā§āĻ āĻŽāύ⧠āĻāϰ⧠āύāĻž, āĻāĻŽāύāĻāĻŋ āϤā§āĻŽāĻžāϰ āĻāĻžāĻāϝāĻŧā§āϰ āϏāĻžāĻĨā§ āĻšāĻžāϏāĻŋāĻŽā§āĻā§ āĻĻā§āĻāĻž āĻāϰāĻžāĻāĨ¤", "reference": "Sahih Muslim", "happy_message": "Every small act of goodness counts - start with a smile! đ", "salam": "As-Salamu Alaikum! May your day be filled with goodness! đ¸" }, { "english": "The strong person is not the one who overpowers others, but the one who controls his anger.", "bengali": "āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āĻŦā§āϝāĻā§āϤāĻŋ āϏā§āĻ āύāϝāĻŧ āϝ⧠āĻ āύā§āϝāĻā§ āĻĒāϰāĻžāĻāĻŋāϤ āĻāϰā§, āĻŦāϰāĻ āϏā§āĻ āϝ⧠āύāĻŋāĻā§āϰ āĻā§āϰā§āϧ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻāϰā§āĨ¤", "reference": "Sahih Bukhari & Muslim", "happy_message": "True strength lies in patience and self-control! đĒ", "salam": "As-Salamu Alaikum Wa Rahmatullah! Stay strong and peaceful! đī¸" }, { "english": "Feed the hungry, visit the sick, and free the captive.", "bengali": "āĻā§āώā§āϧāĻžāϰā§āϤāĻā§ āĻāĻžāĻāϝāĻŧāĻžāĻ, āĻ āϏā§āϏā§āĻĨāĻā§ āĻĻā§āĻāϤ⧠āϝāĻžāĻ āĻāĻŦāĻ āĻŦāύā§āĻĻā§āĻā§ āĻŽā§āĻā§āϤ āĻāϰā§āĨ¤", "reference": "Sahih Bukhari", "happy_message": "Reach out to those in need - your care matters! đ¤˛", "salam": "As-Salamu Alaikum! May Allah reward your compassion! đ" }, { "english": "Show mercy to those on earth, and He who is in the heavens will show mercy to you.", "bengali": "āĻĒā§āĻĨāĻŋāĻŦā§āϤ⧠āϝāĻžāϰāĻž āĻāĻā§ āϤāĻžāĻĻā§āϰ āĻĒā§āϰāϤāĻŋ āĻĻāϝāĻŧāĻž āĻāϰā§, āϤāĻžāĻšāϞ⧠āĻāϏāĻŽāĻžāύ⧠āϝāĻŋāύāĻŋ āĻāĻā§āύ āϤāĻŋāύāĻŋ āϤā§āĻŽāĻžāϰ āĻĒā§āϰāϤāĻŋ āĻĻāϝāĻŧāĻž āĻāϰāĻŦā§āύāĨ¤", "reference": "Tirmidhi", "happy_message": "Your mercy today brings divine mercy tomorrow! đ", "salam": "As-Salamu Alaikum Wa Rahmatullahi Wa Barakatuh! đ" }, { "english": "He who does not show mercy to others, will not be shown mercy.", "bengali": "āϝ⧠āĻ āύā§āϝāĻĻā§āϰ āĻĒā§āϰāϤāĻŋ āĻĻāϝāĻŧāĻž āĻāϰ⧠āύāĻž, āϤāĻžāĻā§āĻ āĻĻāϝāĻŧāĻž āĻāϰāĻž āĻšāĻŦā§ āύāĻžāĨ¤", "reference": "Sahih Muslim", "happy_message": "Be kind, be merciful - it comes back to you! đ", "salam": "As-Salamu Alaikum! Spread mercy and love! â¤ī¸" }, { "english": "Make things easy and do not make them difficult.", "bengali": "āĻāĻŋāύāĻŋāϏāĻā§āϞ⧠āϏāĻšāĻ āĻāϰ⧠āĻāĻŦāĻ āĻāĻ āĻŋāύ āĻāϰ⧠āύāĻžāĨ¤", "reference": "Sahih Bukhari", "happy_message": "Life is easier when we help each other! đ¤", "salam": "As-Salamu Alaikum! May Allah make things easy for you! đ" }, { "english": "Speak good or remain silent.", "bengali": "āĻāĻžāϞ⧠āĻāĻĨāĻž āĻŦāϞ⧠āĻ āĻĨāĻŦāĻž āĻā§āĻĒ āĻĨāĻžāĻā§āĨ¤", "reference": "Sahih Bukhari & Muslim", "happy_message": "Your words have power - use them wisely and kindly! đŦ", "salam": "As-Salamu Alaikum Wa Rahmatullah! Speak with wisdom! đŋ" }, { "english": "The believer is not a slanderer, nor obscene, nor harsh.", "bengali": "āĻŽā§āĻŽāĻŋāύ āĻŦā§āϝāĻā§āϤāĻŋ āύāĻŋāύā§āĻĻā§āĻ āύāϝāĻŧ, āĻ āĻļā§āϞā§āϞ āύāϝāĻŧ, āĻāĻ ā§āϰāĻ āύāϝāĻŧāĨ¤", "reference": "Sahih Muslim", "happy_message": "Be gentle in your words and actions - it's beautiful! đē", "salam": "As-Salamu Alaikum! May your character be noble! đ" }, { "english": "Remove harmful things from the path; this is charity.", "bengali": "āĻĒāĻĨ āĻĨā§āĻā§ āĻā§āώāϤāĻŋāĻāϰ āĻāĻŋāύāĻŋāϏ āϏāϰāĻŋāϝāĻŧā§ āĻĻāĻžāĻ; āĻāĻāĻŋ āϏāĻĻāĻāĻžāĨ¤", "reference": "Sahih Bukhari & Muslim", "happy_message": "Small acts of cleanliness bring great rewards! đ§šâ¨", "salam": "As-Salamu Alaikum! Keep your surroundings clean! đŋ" }, { "english": "Do not envy one another, do not hate one another, do not turn away from one another.", "bengali": "āĻāĻā§ āĻ āĻĒāϰāĻā§ āĻšāĻŋāĻāϏāĻž āĻāϰ⧠āύāĻž, āĻā§āĻŖāĻž āĻāϰ⧠āύāĻž, āĻāĻā§ āĻ āĻĒāϰ āĻĨā§āĻā§ āĻŽā§āĻ āĻĢāĻŋāϰāĻŋāϝāĻŧā§ āύāĻŋāĻ āύāĻžāĨ¤", "reference": "Sahih Muslim", "happy_message": "Celebrate others' success - there's enough blessings for everyone! đ", "salam": "As-Salamu Alaikum Wa Rahmatullahi Wa Barakatuh! đ" }, ] # ========================= # đ Get Real Prayer Times from Aladhan API # ========================= def get_prayer_times(city): """Get real-time prayer times using Aladhan API for Bangladesh""" try: # Get current date today = datetime.now() date_str = today.strftime("%d-%m-%Y") # Aladhan API endpoint for city-based timings url = f"http://api.aladhan.com/v1/timingsByCity/{date_str}" params = { "city": city, "country": "Bangladesh", "method": 2 # ISNA (Islamic Society of North America) } response = requests.get(url, params=params, timeout=10) data = response.json() if data.get("code") == 200 and data.get("data"): timings = data["data"]["timings"] # Extract prayer times fajr = timings.get("Fajr", "N/A") dhuhr = timings.get("Dhuhr", "N/A") asr = timings.get("Asr", "N/A") maghrib = timings.get("Maghrib", "N/A") isha = timings.get("Isha", "N/A") sunrise = timings.get("Sunrise", "N/A") sunset = timings.get("Sunset", "N/A") # For Ramadan: Sehri ends at Fajr, Iftar starts at Maghrib return { "fajr": fajr, "sehri_end": fajr, # Sehri ends at Fajr "sunrise": sunrise, "dhuhr": dhuhr, "asr": asr, "maghrib": maghrib, "iftar_start": maghrib, # Iftar starts at Maghrib "sunset": sunset, "isha": isha, "success": True } else: return {"success": False} except Exception as e: print(f"Prayer times API error: {e}") return {"success": False} # ========================= # đĄī¸ Temperature-Based Advice # ========================= def get_temperature_advice(temp, weather_main): """Generate personalized advice based on temperature and weather""" advice = [] if temp > 35: advice.append("đĨ āĻ āϤā§āϝāύā§āϤ āĻāϰāĻŽ āϏāϤāϰā§āĻāϤāĻž!") advice.append("âĸ āĻĻā§āĻĒā§āϰ ⧧⧍āĻāĻž āĻĨā§āĻā§ āĻŦāĻŋāĻā§āϞ ā§ĒāĻāĻž āĻĒāϰā§āϝāύā§āϤ āĻāϰā§āϰ āĻāĻŋāϤāϰ⧠āĻĨāĻžāĻā§āύ") advice.append("âĸ āĻā§āύāĻžāĻāĻžāĻāĻž: āĻā§āϰ ā§Ŧ-⧝āĻāĻž āĻ āĻĨāĻŦāĻž āϏāύā§āϧā§āϝāĻž ā§-ā§§ā§ĻāĻāĻžāϝāĻŧ āϝāĻžāύ") advice.append("âĸ āĻāĻĢāϤāĻžāϰā§āϰ āĻĒāϰ āĻĒā§āϰāϤāĻŋ ā§§ā§Ģ-⧍ā§Ļ āĻŽāĻŋāύāĻŋāĻā§ āĻĒāĻžāύāĻŋ āĻĒāĻžāύ āĻāϰā§āύ") advice.append("âĸ āĻāĻžāϰ⧠āĻļāĻžāϰā§āϰāĻŋāĻ āĻĒāϰāĻŋāĻļā§āϰāĻŽ āĻāĻĄāĻŧāĻŋāϝāĻŧā§ āĻāϞā§āύ - āĻŦāĻŋāĻļā§āϰāĻžāĻŽ āύāĻŋāύ!") advice.append("âĸ āĻāϰ⧠āĻĨā§āĻā§ āĻā§āϰāĻāύ āϤāĻŋāϞāĻžāĻāϝāĻŧāĻžāϤ āĻ āĻĒāϰāĻŋāĻŦāĻžāϰā§āϰ āϏāĻžāĻĨā§ āϏāĻŽāϝāĻŧ āĻāĻžāĻāĻžāύ") elif temp > 30: advice.append("đĄī¸ āĻāϰāĻŽ āĻāĻŦāĻšāĻžāĻāϝāĻŧāĻž") advice.append("âĸ āϏāĻāĻžāϞā§āϰ āĻšāĻžāĻāĻāĻž: āϏāĻāĻžāϞ ⧝āĻāĻžāϰ āĻāĻā§ āϏāĻŦāĻā§āϝāĻŧā§ āĻāĻžāϞā§") advice.append("âĸ āĻā§āύāĻžāĻāĻžāĻāĻž: āϏāύā§āϧā§āϝāĻž ā§ŦāĻāĻžāϰ āĻĒāϰ āĻāϰāĻžāĻŽāĻĻāĻžāϝāĻŧāĻ") advice.append("âĸ āĻšāĻžāĻāĻĄā§āϰā§āĻļāύ: āϏā§āĻšāϰāĻŋ āĻĨā§āĻā§ āĻāĻĢāϤāĻžāϰ āĻĒāϰā§āϝāύā§āϤ ā§Ž-ā§§ā§Ļ āĻā§āϞāĻžāϏ āĻĒāĻžāύāĻŋ") advice.append("âĸ āϏāύā§āϧā§āϝāĻžāϝāĻŧ āĻšāĻžāϞāĻāĻž āĻŦāĻžāĻāϰā§āϰ āĻāĻžāĻāĻāϰā§āĻŽ āĻāϰāĻž āϝāĻžāϝāĻŧ") advice.append("âĸ āĻĻāĻŋāύ⧠āĻŦāĻžāĻāϰ⧠āĻā§āϞ⧠āĻāĻžāϤāĻž āĻ āϏāĻžāύāϏā§āĻā§āϰāĻŋāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ") elif temp > 25: advice.append("âī¸ āĻŽāύā§āϰāĻŽ āĻāώā§āĻŖ āĻāĻŦāĻšāĻžāĻāϝāĻŧāĻž") advice.append("âĸ āĻāĻĢāϤāĻžāϰā§āϰ āĻĒāϰ āϏāύā§āϧā§āϝāĻžāϰ āĻšāĻžāĻāĻāĻžāϰ āĻāύā§āϝ āĻāĻŽā§āĻāĻžāϰ (ā§Šā§Ļ-ā§Ēā§Ģ āĻŽāĻŋāύāĻŋāĻ)") advice.append("âĸ āĻā§āύāĻžāĻāĻžāĻāĻž: āϝā§āĻā§āύ⧠āϏāĻŽāϝāĻŧ āĻāϰāĻžāĻŽāĻĻāĻžāϝāĻŧāĻ, āĻŦāĻŋāĻā§āϞ ā§Ē-ā§ŽāĻāĻž āϏāĻŦāĻā§āϝāĻŧā§ āĻāĻžāϞā§") advice.append("âĸ āĻŽāĻžāĻāĻžāϰāĻŋ āĻŦāĻžāĻāϰā§āϰ āĻāĻžāĻāĻāϰā§āĻŽ āĻ āĻŋāĻ āĻāĻā§") advice.append("âĸ āĻĒāĻžāϰā§āĻ/āĻŽāϏāĻāĻŋāĻĻā§ āĻĒāϰāĻŋāĻŦāĻžāϰā§āϰ āϏāĻžāĻĨā§ āĻŦā§āĻĄāĻŧāĻžāύā§āϰ āĻāύā§āϝ āĻĻāĻžāϰā§āĻŖ āĻāĻŦāĻšāĻžāĻāϝāĻŧāĻž") advice.append("âĸ āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āĻĒāĻžāύāĻŋ āĻĒāĻžāύ āĻā§āϞāĻŦā§āύ āύāĻž!") elif temp > 20: advice.append("đ¤ī¸ āĻāϰāĻžāĻŽāĻĻāĻžāϝāĻŧāĻ āĻāĻŦāĻšāĻžāĻāϝāĻŧāĻž") advice.append("âĸ āϏāĻžāϰāĻžāĻĻāĻŋāύ āĻŦāĻžāĻāϰā§āϰ āĻāĻžāĻā§āϰ āĻāύā§āϝ āĻāĻĻāϰā§āĻļ") advice.append("âĸ āĻā§āύāĻžāĻāĻžāĻāĻž, āĻšāĻžāĻāĻāĻž, āĻšāĻžāϞāĻāĻž āĻŦā§āϝāĻžāϝāĻŧāĻžāĻŽā§āϰ āĻāύā§āϝ āĻāĻĒāϝā§āĻā§āϤ") advice.append("âĸ āĻāϰāĻžāĻŽāĻĻāĻžāϝāĻŧāĻ āĻĒā§āĻļāĻžāĻ āĻĒāϰāĻŋāϧāĻžāύ āĻāϰā§āύ") advice.append("âĸ āĻāĻŽāĻŋāĻāύāĻŋāĻāĻŋ āĻāĻĢāϤāĻžāϰ āĻ āϏāĻŽāĻžāĻŦā§āĻļā§āϰ āĻāύā§āϝ āĻĻāĻžāϰā§āĻŖ") advice.append("âĸ āϏā§āύā§āĻĻāϰ āĻāĻŦāĻšāĻžāĻāϝāĻŧāĻž āĻāĻĒāĻā§āĻ āĻāϰā§āύ - āĻāϞā§āϞāĻžāĻšāϰ āϰāĻšāĻŽāϤ!") elif temp > 15: advice.append("đ āĻļā§āϤāϞ āĻāĻŦāĻšāĻžāĻāϝāĻŧāĻž") advice.append("âĸ āϏāύā§āϧā§āϝāĻžāϰ āύāĻžāĻŽāĻžāĻā§āϰ āĻāύā§āϝ āĻšāĻžāϞāĻāĻž āĻā§āϝāĻžāĻā§āĻ āĻĒāϰā§āύ") advice.append("âĸ āϤāĻžāϰāĻžāĻŦā§āĻš'āϰ āĻĒāϰ āĻšāĻžāĻāĻāĻžāϰ āĻāύā§āϝ āĻāĻŽā§āĻāĻžāϰ āĻāĻŦāĻšāĻžāĻāϝāĻŧāĻž") advice.append("âĸ āĻāϤā§āĻŽā§āϝāĻŧ-āϏā§āĻŦāĻāύ āĻĻā§āĻāϤ⧠āϝāĻžāĻāϝāĻŧāĻžāϰ āĻāύā§āϝ āĻāĻžāϞā§") advice.append("âĸ āĻļā§āϤāϞ, āϏāϤā§āĻ āĻŦāĻžāϤāĻžāϏ āĻāĻĒāĻā§āĻ āĻāϰā§āύ!") advice.append("âĸ āĻāĻĢāϤāĻžāϰ⧠āĻāϰāĻŽ āĻā§āĻā§āϰ āĻ āĻāĻž āĻāĻĒāϝā§āĻā§āϤ") else: advice.append("âī¸ āĻ āĻžāύā§āĻĄāĻž āĻāĻŦāĻšāĻžāĻāϝāĻŧāĻž") advice.append("âĸ āĻŽāϏāĻāĻŋāĻĻā§ āϝāĻžāĻāϝāĻŧāĻžāϰ āϏāĻŽāϝāĻŧ āĻāϰāĻŽ āĻāĻžāĻĒāĻĄāĻŧ āĻĒāϰā§āύ") advice.append("âĸ āĻāϰā§āϰ āĻāĻŋāϤāϰā§āϰ āĻāĻžāĻāĻāϰā§āĻŽ āĻāϰā§āύ") advice.append("âĸ āϏā§āĻšāϰāĻŋ āĻ āĻāĻĢāϤāĻžāϰ⧠āĻāϰāĻŽ āϏā§āϝā§āĻĒ āĻ āĻĒāĻžāύā§āϝāĻŧ") advice.append("âĸ āĻŦāϝāĻŧāϏā§āĻ āĻ āĻļāĻŋāĻļā§āĻĻā§āϰ āĻŦāĻŋāĻļā§āώ āϝāϤā§āύ āύāĻŋāύ") advice.append("âĸ āϤāĻžāĻšāĻžāĻā§āĻā§āĻĻ āύāĻžāĻŽāĻžāĻā§āϰ āĻāύā§āϝ āĻāώā§āĻŖ āĻāĻŽā§āĻŦāϞ đ¤˛") # Weather-specific advice if weather_main == "rain": advice.append("\nâ āĻŦā§āώā§āĻāĻŋāϰ āĻĻāĻŋāύā§āϰ āĻŦāĻŋāĻļā§āώ:") advice.append("âĸ āϤāĻžāϰāĻžāĻŦā§āĻš āύāĻžāĻŽāĻžāĻā§āϰ āĻāύā§āϝ āĻāĻžāϤāĻž āύāĻŋāύ") advice.append("âĸ āĻāϰ⧠āĻĨā§āĻā§ āĻāĻŦāĻžāĻĻāϤ āĻ āĻāĻŋāĻāĻŋāϰā§āϰ āĻāύā§āϝ āĻāĻĒāϝā§āĻā§āϤ") advice.append("âĸ āĻĒā§āϰāĻā§āϰ āĻĻā§āϝāĻŧāĻž āĻāϰā§āύ - āĻŦā§āώā§āĻāĻŋ āĻŦāϰāĻāϤāĻŽāϝāĻŧ āϏāĻŽāϝāĻŧ! đ¤˛") advice.append("âĸ āϏāĻŽā§āĻāĻŦ āĻšāϞ⧠āĻāϰ⧠āĻĨāĻžāĻā§āύ, āĻĒāϰāĻŋāĻŦāĻžāϰā§āϰ āϏāĻžāĻĨā§ āĻā§āϰāĻāύ āĻĒāĻĄāĻŧā§āύ") elif weather_main == "thunderstorm": advice.append("\nâī¸ āĻāĻĄāĻŧā§āϰ āϏāϤāϰā§āĻāϤāĻž:") advice.append("âĸ āĻāĻāĻžāύā§āϤ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻāĻžāĻĄāĻŧāĻž āĻŦāĻžāĻāϰ⧠āϝāĻžāĻŦā§āύ āύāĻž") advice.append("âĸ āĻĒāĻĄāĻŧā§āύ: āϏā§āĻŦāĻšāĻžāύāĻžāϞā§āϞāĻžāĻšāĻŋ āĻāϝāĻŧāĻž āĻŦāĻŋāĻšāĻžāĻŽāĻĻāĻŋāĻšāĻŋ") advice.append("âĸ āĻĒāϰāĻŋāĻŦāĻžāϰā§āϰ āϏāĻžāĻĨā§ āύāĻŋāϰāĻžāĻĒāĻĻā§ āĻāϰ⧠āĻĨāĻžāĻā§āύ") advice.append("âĸ āĻāϞā§āϞāĻžāĻšāϰ āĻāĻļā§āϰāϝāĻŧ āĻĒā§āϰāĻžāϰā§āĻĨāύāĻžāϰ āĻāύā§āϝ āĻāĻĒāϝā§āĻā§āϤ āϏāĻŽāϝāĻŧ") elif weather_main == "clouds": advice.append("\nâī¸ āĻŽā§āĻāϞāĻž āĻ āĻŽāύā§āϰāĻŽ:") advice.append("âĸ āĻāĻĄāĻŧāĻž āϰā§āĻĻ āύā§āĻ - āĻā§āύāĻžāĻāĻžāĻāĻžāϰ āĻāύā§āϝ āĻāĻŽā§āĻāĻžāϰ!") advice.append("âĸ āĻŦāĻžāĻāϰā§āϰ āĻāĻžāĻā§āϰ āĻāύā§āϝ āĻāϰāĻžāĻŽāĻĻāĻžāϝāĻŧāĻ") advice.append("âĸ āĻāϤā§āĻŽā§āϝāĻŧāϏā§āĻŦāĻāύ āĻĻā§āĻāϤ⧠āϝāĻžāĻāϝāĻŧāĻžāϰ āĻāύā§āϝ āĻĻāĻžāϰā§āĻŖ āĻĻāĻŋāύ") return "\n".join(advice) # ========================= # đ Main Ramadan Dashboard # ========================= def get_ramadan_dashboard(division, district): if not division or not district: return """
Please select Division and District
Error connecting to weather service
District not found! Please check selection
āϰāĻŋāϝāĻŧā§āϞ-āĻāĻžāĻāĻŽ āϏāĻŽāϝāĻŧ âĸ Real-time for {district}, Bangladesh
{prayer_times['sehri_end']}
āĻāĻ āϏāĻŽāϝāĻŧā§āϰ āĻāĻā§ āĻāĻžāĻāϝāĻŧāĻž āĻŦāύā§āϧ āĻāϰā§āύ
Stop eating before this time
{prayer_times['iftar_start']}
āĻāĻ āϏāĻŽāϝāĻŧā§ āϰā§āĻāĻž āĻāĻžāĻā§āĻā§āύ
Break your fast at this time
āϏā§āϰā§āϝā§āĻĻāϝāĻŧ (Sunrise)
{prayer_times['sunrise']}
āϝā§āĻšāϰ (Dhuhr)
{prayer_times['dhuhr']}
āĻāϏāϰ (Asr)
{prayer_times['asr']}
āϏā§āϰā§āϝāĻžāϏā§āϤ (Sunset)
{prayer_times['sunset']}
āĻāĻļāĻž (Isha)
{prayer_times['isha']}
â ī¸ āύāĻžāĻŽāĻžāĻā§āϰ āϏāĻŽāϝāĻŧ āĻĒāĻžāĻāϝāĻŧāĻž āϝāĻžāϝāĻŧāύāĻŋ
Could not fetch prayer times
āĻĻāϝāĻŧāĻž āĻāϰ⧠āĻāĻĒāύāĻžāϰ āĻā§āϞāĻžāϰ āύāĻžāĻŽ āĻā§āĻ āĻāϰā§āύ
{description}
āĻ āύā§āĻā§āϤāĻŋ (Feels like) {feels_like:.1f}°C
đ āĻŽāύ⧠āϰāĻžāĻāĻŦā§āύ: āϰā§āĻāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻĒāύāĻžāϰ āϏā§āĻŦāĻžāϏā§āĻĨā§āϝ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖāĨ¤ āĻāĻĒāύāĻžāϰ āĻļāϰā§āϰā§āϰ āĻāĻĨāĻž āĻļā§āύā§āύ!
Remember: Your health is important during fasting. Listen to your body!
"{daily_hadith['english']}"
"{daily_hadith['bengali']}"
â {daily_hadith['reference']}
{daily_hadith['happy_message']}
{daily_hadith['salam']}
đ¸ āϰāĻŋāϝāĻŧā§āϞ-āĻāĻžāĻāĻŽ āύāĻžāĻŽāĻžāĻā§āϰ āϏāĻŽāϝāĻŧ âĸ āϞāĻžāĻāĻ āĻāĻŦāĻšāĻžāĻāϝāĻŧāĻž âĸ āĻĻā§āύāĻŋāĻ āĻšāĻžāĻĻāĻŋāϏ âĸ āϏā§āĻŽāĻžāϰā§āĻ āĻĒāϰāĻžāĻŽāϰā§āĻļ đ¸
Real Prayer Times âĸ Live Weather âĸ Daily Hadith âĸ Smart Advice
đ§đŠ āϏāĻŽāϏā§āϤ āĻŦāĻžāĻāϞāĻžāĻĻā§āĻļ āĻŦāĻŋāĻāĻžāĻ āĻ āĻā§āϞāĻž āϏāĻŽāϰā§āĻĨāĻŋāϤ âĸ All Bangladesh Divisions & Districts Supported