diff --git a/main.py b/main.py index 2aa1df7..f9db25d 100644 --- a/main.py +++ b/main.py @@ -1,40 +1,31 @@ -"""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=["*"]) +app = FastAPI(title='Quran API', 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: +with open(Path(__file__).parent / 'surahs.json', 'r', encoding='utf-8') as f: SURAHS = json.load(f) -@app.get("/") +@app.get('/') def root(): - return {"name": "Quran API", "version": "1.0.0", "endpoints": ["/surahs", "/surahs/{id}", "/search"]} + return {'name':'Quran API','total':len(SURAHS)} -@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') +def surahs(): + return [{'id':s['id'],'name_ar':s['name_ar'],'verses':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('/surahs/{sid}') +def one(sid:int): + if sid<1 or sid>114: return {'error':'1-114'} + return SURAHS[sid-1] -@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} +@app.get('/search') +def search(q:str=Query(...)): + r=[s for s in SURAHS if q in s['name_ar'] or q.lower() in s['name_en'].lower()] + return {'q':q,'n':len(r),'results':r} -if __name__ == "__main__": - import uvicorn - uvicorn.run(app, host="0.0.0.0", port=8000) +if __name__=='__main__': + import uvicorn; uvicorn.run(app,host='0.0.0.0',port=8000)