Spaces:
Running
Running
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 | |