Spaces:
Build error
Build error
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) |