File size: 1,628 Bytes
af661cf
 
 
 
 
 
 
 
 
 
 
 
 
 
16e2509
af661cf
 
 
68a2a86
5d7c941
68a2a86
 
af661cf
68a2a86
c7b5125
 
af661cf
c7b5125
28603d6
68a2a86
 
 
 
 
 
 
 
 
 
c7b5125
 
68a2a86
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43


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