privateone's picture
Update FileStream/server/API/search.py
28603d6 verified
import os
import json
import logging
import asyncio
import traceback
from aiohttp import web
from pyrogram import raw
from aiohttp.http_exceptions import BadStatusLine
from FileStream.utils.FileProcessors.human_readable import humanbytes
from FileStream.Database import Database
from FileStream.config import Telegram, Server
db = Database(Telegram.DATABASE_URL, Telegram.SESSION_NAME)
async def SearchAll(request: web.Request):
print(Telegram.DATABASE_URL, Telegram.SESSION_NAME)
query = request.rel_url.query.get('query', '') # Extract 'query' from URL params
#print(query, offset) # Debugging print
results = []
offset = int(request.rel_url.query.get('offset') if request.rel_url.query.get('offset') else 0 ) # Convert offset to integer
# Simulating a database function call (replace with actual implementation)
files, next_offset = await db.get_search_results(query, file_type=None, max_results=10, offset=offset)
for file in files:
results.append({
"id":f"{file['_id']}",
"poster":file['poster'],
"title":file['title'],
"release_date":file['release_date'],
"genre":file['genre'],
"imdb_id":file['IMDB_id'],
"type":file['type'],
"file_name": file['file']['file_name'],
"document_file_id": file['file']['file_id'],
"caption": file['file']['file_name'] or "",
"description": f"Size: {humanbytes(file['file']['file_size'])}\nType: {file['file']['mime_type']}",
})
return web.json_response({"count": len(results), "results": results, "next_offset": next_offset}) # Correct JSON response format