File size: 4,613 Bytes
119d2aa
b5a9862
f11261f
119d2aa
c686bce
119d2aa
b5a9862
10b6ebf
8c80a61
 
 
db8a350
 
119d2aa
 
 
b5a9862
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c686bce
 
 
 
 
 
 
 
 
 
 
 
b5a9862
c686bce
 
44317b5
db8a350
 
b5a9862
 
db8a350
b5a9862
 
 
 
db8a350
b5a9862
 
 
 
 
 
 
f9b8847
b5a9862
 
 
 
 
 
 
c686bce
b5a9862
 
 
 
 
 
44317b5
b5a9862
44317b5
b5a9862
 
 
 
 
d8344cf
 
 
44317b5
 
e5db5e0
 
 
f1f8e0e
f11261f
d8344cf
b5a9862
 
 
 
119d2aa
f11261f
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
import os
import requests
from flask import Flask, jsonify, make_response, request
from supabase import create_client
import threading

# ডিটেইলস
BOT_TOKEN = "8628213901:AAFvfHBpZ6tok40ZQuhIDLAVIMrHeiheMNY"
SUPABASE_URL = "https://yctirvnryrzygoxbpvoy.supabase.co"
SUPABASE_KEY = "sb_publishable_aBcD-atruskWwoCiLr0lWw_inT8GLoN"
WEB_APP_URL = "https://rony90790.github.io/Forward-bot/index.html" 
HF_SPACE_URL = "https://pmrony-forwardbot.hf.space" 

supabase = create_client(SUPABASE_URL, SUPABASE_KEY)
app = Flask(__name__)

# --- সরাসরি মেসেজ পাঠানোর ফাংশন (SSL সমস্যা এড়াতে) ---
def send_telegram_message(chat_id, text, reply_markup=None):
    url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
    payload = {
        "chat_id": chat_id,
        "text": text,
        "parse_mode": "HTML"
    }
    if reply_markup:
        payload["reply_markup"] = reply_markup
    
    try:
        # ৫ সেকেন্ডের মধ্যে মেসেজ না গেলে হাল ছেড়ে দিবে না, চেষ্টা করবে
        r = requests.post(url, json=payload, timeout=15)
        return r.json()
    except Exception as e:
        print(f"Send Error: {e}")
        return None

# --- ডাটাবেজ কাজ ব্যাকগ্রাউন্ডে ---
def handle_db_stuff(user_id, referrer_id):
    try:
        user_check = supabase.table('referrals').select('*').eq('user_id', user_id).execute()
        if not user_check.data:
            supabase.table('referrals').insert({
                'user_id': user_id, 'referral_count': 0, 
                'referrer_id': referrer_id if referrer_id != user_id else None
            }).execute()
            if referrer_id and referrer_id != user_id:
                ref_data = supabase.table('referrals').select('referral_count').eq('user_id', referrer_id).execute()
                if ref_data.data:
                    new_count = ref_data.data[0]['referral_count'] + 1
                    supabase.table('referrals').update({'referral_count': new_count}).eq('user_id', referrer_id).execute()
                    send_telegram_message(referrer_id, "🎉 কেউ আপনার রেফারে জয়েন করেছে!")
    except:
        pass

@app.route(f'/{BOT_TOKEN}', methods=['POST'])
def webhook():
    data = request.get_json()
    if not data or "message" not in data:
        return "OK", 200
    
    message = data["message"]
    chat_id = message["chat"]["id"]
    text = message.get("text", "")

    if text.startswith("/start"):
        # রেফারেল আইডি বের করা
        args = text.split()
        referrer_id = int(args[1]) if len(args) > 1 and args[1].isdigit() else None
        
        # ব্যাকগ্রাউন্ডে ডাটাবেজ আপডেট
        threading.Thread(target=handle_db_stuff, args=(chat_id, referrer_id)).start()

        # রিপ্লাই কিবোর্ড তৈরি
        reply_markup = {
            "inline_keyboard": [[
                {"text": "Play video 🔞", "web_app": {"url": WEB_APP_URL}}
            ]]
        }
        send_telegram_message(chat_id, "ভাইরাল ভিডিও দেখতে নিচের বাটনে ক্লিক করো 👇", reply_markup)

    elif text.startswith("/png"):
        parts = text.split(maxsplit=1)
        if len(parts) > 1:
            send_telegram_message(chat_id, "✅ ছবি সেট হয়েছে। এখন এই ছবির জন্য ভিডিওর <b>Google Drive লিংক</b> পাঠান। (এটি বর্তমানে ম্যানুয়ালি Supabase-এ অ্যাড করুন)")
        else:
            send_telegram_message(chat_id, "সঠিক নিয়ম: /png [লিংক]")

    return "OK", 200

@app.route('/set_webhook')
def set_webhook():
    webhook_url = f"{HF_SPACE_URL}/{BOT_TOKEN}"
    r = requests.get(f"https://api.telegram.org/bot{BOT_TOKEN}/setWebhook?url={webhook_url}")
    return jsonify(r.json())

@app.route('/api/videos')
def api_videos():
    try:
        res = supabase.table('videos').select('*').order('id', desc=True).execute()
        response = make_response(jsonify(res.data))
        response.headers['Access-Control-Allow-Origin'] = '*'
        return response
    except:
        return jsonify([])

@app.route('/')
def index():
    return "Bot System is Active!"

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