From 0b80b73f31106128e8cfbbc0463c7de9fd45fd9f Mon Sep 17 00:00:00 2001 From: ahmed_dev Date: Wed, 5 Aug 2026 09:58:05 +0000 Subject: [PATCH] =?UTF-8?q?=D8=A5=D8=B6=D8=A7=D9=81=D8=A9=20main.py=20-=20?= =?UTF-8?q?=D8=A8=D8=B3=D9=85=20=D8=A7=D9=84=D9=84=D9=87=20=D8=A7=D9=84?= =?UTF-8?q?=D8=B1=D8=AD=D9=85=D9=86=20=D8=A7=D9=84=D8=B1=D8=AD=D9=8A=D9=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 main.py diff --git a/main.py b/main.py new file mode 100644 index 0000000..2aa1df7 --- /dev/null +++ b/main.py @@ -0,0 +1,40 @@ +"""Quran API - FastAPI Application""" +from fastapi import FastAPI, Query +from fastapi.middleware.cors import CORSMiddleware +import json +from pathlib import Path + +app = FastAPI(title="Quran API", description="واجهة برمجية للقرآن الكريم", version="1.0.0") +app.add_middleware(CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"]) + +# Load surahs data +surahs_path = Path(__file__).parent / "surahs.json" +with open(surahs_path, "r", encoding="utf-8") as f: + SURAHS = json.load(f) + +@app.get("/") +def root(): + return {"name": "Quran API", "version": "1.0.0", "endpoints": ["/surahs", "/surahs/{id}", "/search"]} + +@app.get("/surahs") +def list_surahs(): + return [{"id": s["id"], "name_ar": s["name_ar"], "name_en": s["name_en"], "verses_count": s["verses_count"], "type": s["type"]} for s in SURAHS] + +@app.get("/surahs/{surah_id}") +def get_surah(surah_id: int): + if surah_id < 1 or surah_id > 114: + return {"error": "رقم السورة يجب أن يكون بين 1 و 114"} + surah = SURAHS[surah_id - 1] + return surah + +@app.get("/search") +def search(q: str = Query(..., description="بحث في أسماء السور")): + results = [] + for s in SURAHS: + if q in s["name_ar"] or q.lower() in s["name_en"].lower(): + results.append(s) + return {"query": q, "count": len(results), "results": results} + +if __name__ == "__main__": + import uvicorn + uvicorn.run(app, host="0.0.0.0", port=8000)