Tor-Search-Api / routers /v1 /search_router.py
SoulofSukuna's picture
Upload 44 files
e9d67ff verified
raw
history blame
1.36 kB
from fastapi import APIRouter
from typing import Optional
from helper.is_site_available import check_if_site_available
from fastapi import status
from helper.error_messages import error_handler
router = APIRouter(tags=["Search"])
@router.get("/")
@router.get("")
async def search_for_torrents(
site: str, query: str, limit: Optional[int] = 0, page: Optional[int] = 1
):
site = site.lower()
query = query.lower()
all_sites = check_if_site_available(site)
if all_sites:
limit = (
all_sites[site]["limit"]
if limit == 0 or limit > all_sites[site]["limit"]
else limit
)
resp = await all_sites[site]["website"]().search(query, page, limit)
if resp is None:
return error_handler(
status_code=status.HTTP_403_FORBIDDEN,
json_message={"error": "Website Blocked Change IP or Website Domain."},
)
elif len(resp["data"]) > 0:
return resp
else:
return error_handler(
status_code=status.HTTP_404_NOT_FOUND,
json_message={"error": "Result not found."},
)
return error_handler(
status_code=status.HTTP_404_NOT_FOUND,
json_message={"error": "Selected Site Not Available"},
)