File size: 1,270 Bytes
3227087
28311a1
 
3227087
 
 
 
 
28311a1
3227087
 
28311a1
3227087
28311a1
 
 
 
 
 
 
3227087
28311a1
3227087
 
 
 
 
 
28311a1
3227087
 
 
28311a1
 
3227087
28311a1
3227087
28311a1
3227087
28311a1
 
3227087
28311a1
 
 
 
 
 
 
3227087
28311a1
 
 
 
 
3227087
28311a1
 
 
 
 
3227087
28311a1
 
3227087
 
28311a1
 
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import os
import duckdb
import uvicorn
from fastapi import FastAPI
from huggingface_hub import hf_hub_download

app = FastAPI(title="Telegram API")

DB_PATH = None

def get_db():
    global DB_PATH

    if DB_PATH is None:
        DB_PATH = hf_hub_download(
            repo_id="fdsgfuisfydgiuef/Telegram",
            repo_type="dataset",
            filename="Midnight_Master_v2.db",
            token=os.getenv("HF_TOKEN")
        )

    return DB_PATH


@app.get("/")
def home():
    return {
        "status": True,
        "message": "Telegram API Running"
    }


@app.get("/search")
def search(q: str):

    db = get_db()

    con = duckdb.connect()

    con.execute("INSTALL sqlite;")
    con.execute("LOAD sqlite;")

    try:
        result = con.execute(f"""
            SELECT *
            FROM sqlite_scan('{db}','telegram_users')
            WHERE user_id LIKE '{q}%'
            LIMIT 20
        """).fetchall()

        return {
            "status": True,
            "count": len(result),
            "results": result
        }

    except Exception as e:
        return {
            "status": False,
            "error": str(e)
        }

    finally:
        con.close()


if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=7860)