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): query = request.rel_url.query.get('query', '') # Extract 'query' from URL params offset = request.rel_url.query.get('offset', '0') # Extract 'offset' (default 0) print(query, offset) # Debugging print results = [] offset = int(offset) # 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({ "title": 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({"results": results, "next_offset": next_offset}) # Correct JSON response format