Update main.py

This commit is contained in:
2026-08-05 10:29:54 +00:00
parent 786c3d88a8
commit 3a03a9cca2
+18 -27
View File
@@ -1,40 +1,31 @@
"""Quran API - FastAPI Application"""
from fastapi import FastAPI, Query from fastapi import FastAPI, Query
from fastapi.middleware.cors import CORSMiddleware from fastapi.middleware.cors import CORSMiddleware
import json import json
from pathlib import Path from pathlib import Path
app = FastAPI(title="Quran API", description="واجهة برمجية للقرآن الكريم", version="1.0.0") app = FastAPI(title='Quran API', version='1.0.0')
app.add_middleware(CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"]) app.add_middleware(CORSMiddleware, allow_origins=['*'], allow_methods=['*'], allow_headers=['*'])
# Load surahs data with open(Path(__file__).parent / 'surahs.json', 'r', encoding='utf-8') as f:
surahs_path = Path(__file__).parent / "surahs.json"
with open(surahs_path, "r", encoding="utf-8") as f:
SURAHS = json.load(f) SURAHS = json.load(f)
@app.get("/") @app.get('/')
def root(): 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") @app.get('/surahs')
def list_surahs(): def 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] 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}") @app.get('/surahs/{sid}')
def get_surah(surah_id: int): def one(sid:int):
if surah_id < 1 or surah_id > 114: if sid<1 or sid>114: return {'error':'1-114'}
return {"error": "رقم السورة يجب أن يكون بين 1 و 114"} return SURAHS[sid-1]
surah = SURAHS[surah_id - 1]
return surah
@app.get("/search") @app.get('/search')
def search(q: str = Query(..., description="بحث في أسماء السور")): def search(q:str=Query(...)):
results = [] r=[s for s in SURAHS if q in s['name_ar'] or q.lower() in s['name_en'].lower()]
for s in SURAHS: return {'q':q,'n':len(r),'results':r}
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__": if __name__=='__main__':
import uvicorn import uvicorn; uvicorn.run(app,host='0.0.0.0',port=8000)
uvicorn.run(app, host="0.0.0.0", port=8000)