|
import gradio as gr |
|
import requests |
|
|
|
|
|
def get_surah_ayah(surah_number, ayah_number): |
|
try: |
|
url = f"https://api.alquran.cloud/v1/surah/{surah_number}/editions/quran-simple,en.asad,ur.jalandhry" |
|
response = requests.get(url) |
|
response.raise_for_status() |
|
data = response.json() |
|
|
|
if 'data' in data and len(data['data']) == 3: |
|
if ayah_number: |
|
ayah_index = int(ayah_number) - 1 |
|
arabic = f"{ayah_number}. {data['data'][0]['ayahs'][ayah_index]['text']}" |
|
english = f"{ayah_number}. {data['data'][1]['ayahs'][ayah_index]['text']}" |
|
urdu = f"{ayah_number}. {data['data'][2]['ayahs'][ayah_index]['text']}" |
|
else: |
|
arabic = "\n\n".join( |
|
[f"{i+1}. {a['text']}" for i, a in enumerate(data['data'][0]['ayahs'])] |
|
) |
|
english = "\n\n".join( |
|
[f"{i+1}. {t['text']}" for i, t in enumerate(data['data'][1]['ayahs'])] |
|
) |
|
urdu = "\n\n".join( |
|
[f"{i+1}. {u['text']}" for i, u in enumerate(data['data'][2]['ayahs'])] |
|
) |
|
return arabic, english, urdu |
|
return "β Surah not found.", "β English not found.", "β Urdu not found." |
|
except Exception as e: |
|
return f"β API Error: {e}", "", "" |
|
|
|
|
|
surah_names = [ |
|
"1 - Al-Fatiha", "2 - Al-Baqarah", "3 - Aal-E-Imran", "4 - An-Nisa", "5 - Al-Ma'idah", |
|
"6 - Al-An'am", "7 - Al-A'raf", "8 - Al-Anfal", "9 - At-Tawbah", "10 - Yunus", |
|
"11 - Hud", "12 - Yusuf", "13 - Ar-Ra'd", "14 - Ibrahim", "15 - Al-Hijr", |
|
"16 - An-Nahl", "17 - Al-Isra", "18 - Al-Kahf", "19 - Maryam", "20 - Ta-Ha", |
|
"21 - Al-Anbiya", "22 - Al-Hajj", "23 - Al-Mu'minun", "24 - An-Nur", "25 - Al-Furqan", |
|
"26 - Ash-Shu'ara", "27 - An-Naml", "28 - Al-Qasas", "29 - Al-Ankabut", "30 - Ar-Rum", |
|
"31 - Luqman", "32 - As-Sajda", "33 - Al-Ahzab", "34 - Saba", "35 - Fatir", |
|
"36 - Ya-Sin", "37 - As-Saffat", "38 - Sad", "39 - Az-Zumar", "40 - Ghafir", |
|
"41 - Fussilat", "42 - Ash-Shura", "43 - Az-Zukhruf", "44 - Ad-Dukhan", "45 - Al-Jathiya", |
|
"46 - Al-Ahqaf", "47 - Muhammad", "48 - Al-Fath", "49 - Al-Hujurat", "50 - Qaf", |
|
"51 - Adh-Dhariyat", "52 - At-Tur", "53 - An-Najm", "54 - Al-Qamar", "55 - Ar-Rahman", |
|
"56 - Al-Waqi'a", "57 - Al-Hadid", "58 - Al-Mujadila", "59 - Al-Hashr", "60 - Al-Mumtahina", |
|
"61 - As-Saff", "62 - Al-Jumua", "63 - Al-Munafiqun", "64 - At-Taghabun", "65 - At-Talaq", |
|
"66 - At-Tahrim", "67 - Al-Mulk", "68 - Al-Qalam", "69 - Al-Haqqah", "70 - Al-Ma'arij", |
|
"71 - Nuh", "72 - Al-Jinn", "73 - Al-Muzzammil", "74 - Al-Muddaththir", "75 - Al-Qiyama", |
|
"76 - Al-Insan", "77 - Al-Mursalat", "78 - An-Naba", "79 - An-Nazi'at", "80 - Abasa", |
|
"81 - At-Takwir", "82 - Al-Infitar", "83 - Al-Mutaffifin", "84 - Al-Inshiqaq", "85 - Al-Buruj", |
|
"86 - At-Tariq", "87 - Al-Ala", "88 - Al-Ghashiyah", "89 - Al-Fajr", "90 - Al-Balad", |
|
"91 - Ash-Shams", "92 - Al-Lail", "93 - Ad-Duhaa", "94 - Ash-Sharh", "95 - At-Tin", |
|
"96 - Al-Alaq", "97 - Al-Qadr", "98 - Al-Bayyina", "99 - Az-Zalzala", "100 - Al-Adiyat", |
|
"101 - Al-Qari'a", "102 - At-Takathur", "103 - Al-Asr", "104 - Al-Humaza", "105 - Al-Fil", |
|
"106 - Quraish", "107 - Al-Ma'un", "108 - Al-Kawthar", "109 - Al-Kafiroon", "110 - An-Nasr", |
|
"111 - Al-Masad", "112 - Al-Ikhlas", "113 - Al-Falaq", "114 - An-Nas" |
|
] |
|
|
|
|
|
def extract_number(surah_name): |
|
return int(surah_name.split(" - ")[0]) |
|
|
|
|
|
gr.Interface( |
|
fn=lambda surah, ayah: get_surah_ayah(extract_number(surah), ayah), |
|
inputs=[ |
|
gr.Dropdown(choices=surah_names, label="π Select Surah"), |
|
gr.Textbox(label="π’ Optional Ayah Number (e.g., 1, 5, 7)") |
|
], |
|
outputs=[ |
|
gr.Textbox(label="π Arabic", lines=10), |
|
gr.Textbox(label="π English", lines=10), |
|
gr.Textbox(label="π Urdu", lines=10) |
|
], |
|
title="π Quran Surah & Ayah Viewer (Arabic + English + Urdu)", |
|
description="Select a Surah, optionally enter an Ayah number to view that verse only. Leave blank for full Surah." |
|
).launch() |
|
|
|
|
|
|
|
|