Forwardbot / app.py
pmrony's picture
Update app.py
e5df29a verified
Raw
History Blame
3.35 kB
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"
# কানেকশন এরর কমানোর জন্য বিশেষ সেটিংস
requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += 'HIGH:!DH:!aNULL'
supabase = create_client(SUPABASE_URL, SUPABASE_KEY)
app = Flask(__name__)
# --- মিরর লিঙ্ক ব্যবহার করা হচ্ছে (SSL সমস্যা সমাধানের জন্য) ---
def send_telegram_message(chat_id, text, reply_markup=None):
# যদি t.me কাজ না করে তবে মিরর URL ট্রাই করে
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=20)
return r.json()
except Exception as e:
print(f"Error: {e}")
return None
@app.route(f'/{BOT_TOKEN}', methods=['POST'])
def webhook():
data = request.get_json()
if not data or "message" not in data:
return "OK", 200
msg = data["message"]
chat_id = msg["chat"]["id"]
text = msg.get("text", "")
if text.startswith("/start"):
# রেফারেল লজিক
args = text.split()
ref_id = int(args[1]) if len(args) > 1 and args[1].isdigit() else None
# কিবোর্ড
markup = {
"inline_keyboard": [[
{"text": "Play video 🔞", "web_app": {"url": WEB_APP_URL}}
]]
}
send_telegram_message(chat_id, "ভাইরাল ভিডিও দেখতে নিচের বাটনে ক্লিক করো 👇", markup)
return "OK", 200
@app.route('/set_webhook')
def set_webhook():
webhook_url = f"{HF_SPACE_URL}/{BOT_TOKEN}"
# সরাসরি ব্রাউজার দিয়ে করার জন্য লিঙ্কটি রিটার্ন করছে
api_url = f"https://api.telegram.org/bot{BOT_TOKEN}/setWebhook?url={webhook_url}"
try:
r = requests.get(api_url, timeout=20)
return jsonify(r.json())
except:
return f"বট থেকে হচ্ছে না, আপনি নিজে এই লিঙ্কে ঢুকুন: {api_url}"
@app.route('/api/videos')
def api_videos():
try:
res = supabase.table('videos').select('*').order('id', desc=True).execute()
resp = make_response(jsonify(res.data))
resp.headers['Access-Control-Allow-Origin'] = '*'
return resp
except:
return jsonify([])
@app.route('/')
def index():
return "Running..."
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860)