pmrony commited on
Commit
b5a9862
·
verified ·
1 Parent(s): c686bce

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +60 -61
app.py CHANGED
@@ -1,28 +1,40 @@
1
- import telebot
2
- from telebot import apihelper
3
- from telebot.types import InlineKeyboardMarkup, InlineKeyboardButton, WebAppInfo
4
  import os
 
5
  from flask import Flask, jsonify, make_response, request
6
  from supabase import create_client
7
  import threading
8
 
9
- # টোকেন ও ডিটেইলস
10
  BOT_TOKEN = "8628213901:AAFvfHBpZ6tok40ZQuhIDLAVIMrHeiheMNY"
11
  SUPABASE_URL = "https://yctirvnryrzygoxbpvoy.supabase.co"
12
  SUPABASE_KEY = "sb_publishable_aBcD-atruskWwoCiLr0lWw_inT8GLoN"
13
  WEB_APP_URL = "https://rony90790.github.io/Forward-bot/index.html"
14
  HF_SPACE_URL = "https://pmrony-forwardbot.hf.space"
15
 
16
- # কানেকশন টাইমআউট সর্বোচ্চ করা হলো
17
- apihelper.CONNECT_TIMEOUT = 100
18
- apihelper.READ_TIMEOUT = 100
19
-
20
- bot = telebot.TeleBot(BOT_TOKEN, threaded=False)
21
  supabase = create_client(SUPABASE_URL, SUPABASE_KEY)
22
  app = Flask(__name__)
23
 
24
- # --- টাবেজ জ আলদা থ্েডে করার ফাংশন ---
25
- def save_referral_bg(user_id, referrer_id):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  try:
27
  user_check = supabase.table('referrals').select('*').eq('user_id', user_id).execute()
28
  if not user_check.data:
@@ -35,67 +47,50 @@ def save_referral_bg(user_id, referrer_id):
35
  if ref_data.data:
36
  new_count = ref_data.data[0]['referral_count'] + 1
37
  supabase.table('referrals').update({'referral_count': new_count}).eq('user_id', referrer_id).execute()
38
- bot.send_message(referrer_id, "🎉 কেউ আপনার রেফারে জয়েন করেছে!")
39
  except:
40
  pass
41
 
42
  @app.route(f'/{BOT_TOKEN}', methods=['POST'])
43
  def webhook():
44
- if request.headers.get('content-type') == 'application/json':
45
- json_string = request.get_data().decode('utf-8')
46
- update = telebot.types.Update.de_json(json_string)
47
- bot.process_new_updates([update])
48
  return "OK", 200
49
- return "Forbidden", 403
50
-
51
- @app.route('/set_webhook')
52
- def set_webhook():
53
- bot.remove_webhook()
54
- # ওয়েব হুক সেট করার সময় ১০ সেকেন্ড ওয়েট করবে
55
- success = bot.set_webhook(url=f"{HF_SPACE_URL}/{BOT_TOKEN}", timeout=60)
56
- if success:
57
- return "<h1>✅ Webhook Set Success!</h1>"
58
- else:
59
- return "<h1>❌ Webhook Set Failed!</h1>"
60
-
61
- @app.route('/')
62
- def index():
63
- return "Bot is Running Perfectly!"
64
 
65
- # ================= COMMANDS =================
 
 
 
 
 
 
66
 
67
- @bot.message_handler(commands=['start'])
68
- def start(message):
69
- user_id = message.from_user.id
70
- args = message.text.split()
71
- referrer_id = int(args[1]) if len(args) > 1 and args[1].isdigit() else None
72
-
73
- # কাজ হবে ব্যকগ্রাউ্ড, যাতে বট স্লো না হয়
74
- threading.Thread(target=save_referral_bg, args=(user_id, referrer_id)).start()
75
 
76
- # ইউজারকে সাথে ��াথে রিপ্লাই দিবে
77
- markup = InlineKeyboardMarkup()
78
- markup.add(InlineKeyboardButton("Play video 🔞", web_app=WebAppInfo(url=WEB_APP_URL)))
79
- bot.send_message(message.chat.id, "ভাইরাল ভিডিও দেখতে নিচের বানে ্লি করো 👇", reply_markup=markup)
 
 
80
 
81
- @bot.message_handler(commands=['png'])
82
- def add_png(message):
83
- parts = message.text.split(maxsplit=1)
84
- if len(parts) > 1:
85
- img_url = parts[1].strip()
86
- bot.send_message(message.chat.id, f"✅ ছবি সেট হয়েছে। এখন এই ছবির জন্য ভিডিওর **Google Drive লিংক** পাঠান।")
87
- # ভিডিও অ্যাড করার লজিক এখানে সিম্পল রাখা হয়েছে
88
- bot.register_next_step_handler(message, save_video_final, img_url)
89
- else:
90
- bot.send_message(message.chat.id, "সঠিক নিয়ম: `/png https://link.jpg`")
91
 
92
- def save_video_final(message, img_url):
93
- video_url = message.text.strip()
94
- try:
95
- supabase.table('videos').insert({"video_url": video_url, "thumbnail_url": img_url}).execute()
96
- bot.send_message(message.chat.id, "🎉 সফলভাবে ভিডিও অ্যাড হয়েছে!")
97
- except:
98
- bot.send_message(message.chat.id, "❌ ডাটাবেজ এরর!")
99
 
100
  @app.route('/api/videos')
101
  def api_videos():
@@ -107,5 +102,9 @@ def api_videos():
107
  except:
108
  return jsonify([])
109
 
 
 
 
 
110
  if __name__ == "__main__":
111
  app.run(host="0.0.0.0", port=7860)
 
 
 
 
1
  import os
2
+ import requests
3
  from flask import Flask, jsonify, make_response, request
4
  from supabase import create_client
5
  import threading
6
 
7
+ # ডিটেইলস
8
  BOT_TOKEN = "8628213901:AAFvfHBpZ6tok40ZQuhIDLAVIMrHeiheMNY"
9
  SUPABASE_URL = "https://yctirvnryrzygoxbpvoy.supabase.co"
10
  SUPABASE_KEY = "sb_publishable_aBcD-atruskWwoCiLr0lWw_inT8GLoN"
11
  WEB_APP_URL = "https://rony90790.github.io/Forward-bot/index.html"
12
  HF_SPACE_URL = "https://pmrony-forwardbot.hf.space"
13
 
 
 
 
 
 
14
  supabase = create_client(SUPABASE_URL, SUPABASE_KEY)
15
  app = Flask(__name__)
16
 
17
+ # --- সরসরি মসেনোর ফাংশন (SSL সমস্যা এড়াতে) ---
18
+ def send_telegram_message(chat_id, text, reply_markup=None):
19
+ url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
20
+ payload = {
21
+ "chat_id": chat_id,
22
+ "text": text,
23
+ "parse_mode": "HTML"
24
+ }
25
+ if reply_markup:
26
+ payload["reply_markup"] = reply_markup
27
+
28
+ try:
29
+ # ৫ সেকেন্ডের মধ্যে মেসেজ না গেলে হাল ছেড়ে দিবে না, চেষ্টা করবে
30
+ r = requests.post(url, json=payload, timeout=15)
31
+ return r.json()
32
+ except Exception as e:
33
+ print(f"Send Error: {e}")
34
+ return None
35
+
36
+ # --- ডাটাবেজ কাজ ব্যাকগ্রাউন্ডে ---
37
+ def handle_db_stuff(user_id, referrer_id):
38
  try:
39
  user_check = supabase.table('referrals').select('*').eq('user_id', user_id).execute()
40
  if not user_check.data:
 
47
  if ref_data.data:
48
  new_count = ref_data.data[0]['referral_count'] + 1
49
  supabase.table('referrals').update({'referral_count': new_count}).eq('user_id', referrer_id).execute()
50
+ send_telegram_message(referrer_id, "🎉 কেউ আপনার রেফারে জয়েন করেছে!")
51
  except:
52
  pass
53
 
54
  @app.route(f'/{BOT_TOKEN}', methods=['POST'])
55
  def webhook():
56
+ data = request.get_json()
57
+ if not data or "message" not in data:
 
 
58
  return "OK", 200
59
+
60
+ message = data["message"]
61
+ chat_id = message["chat"]["id"]
62
+ text = message.get("text", "")
 
 
 
 
 
 
 
 
 
 
 
63
 
64
+ if text.startswith("/start"):
65
+ # রেফারেল আইডি বের করা
66
+ args = text.split()
67
+ referrer_id = int(args[1]) if len(args) > 1 and args[1].isdigit() else None
68
+
69
+ # ব্যাকগ্রাউন্ডে ডাটাবেজ আপডেট
70
+ threading.Thread(target=handle_db_stuff, args=(chat_id, referrer_id)).start()
71
 
72
+ # রিপ্লাই কিবোর্ড তৈরি
73
+ reply_markup = {
74
+ "inline_keyboard": [[
75
+ {"text": "Play video 🔞", "web_app": {"url": WEB_APP_URL}}
76
+ ]]
77
+ }
78
+ send_telegram_message(chat_id, "ভইরল ভিডিও দখতনিচ বানে ্লিক কর👇", reply_markup)
 
79
 
80
+ elif text.startswith("/png"):
81
+ parts = text.split(maxsplit=1)
82
+ if len(parts) > 1:
83
+ send_telegram_message(chat_id, "✅ ছবি সেট হয়েছে। এখন এ ছবিজন্য ভিডিও <b>Google Drive লিংক</b> পাঠা। (এটি বর্তমানে যানুয়ালি Supabase-এ অ্যাড করুন)")
84
+ else:
85
+ send_telegram_message(chat_id, "সঠিক নিয়ম: /png [লিংক]")
86
 
87
+ return "OK", 200
 
 
 
 
 
 
 
 
 
88
 
89
+ @app.route('/set_webhook')
90
+ def set_webhook():
91
+ webhook_url = f"{HF_SPACE_URL}/{BOT_TOKEN}"
92
+ r = requests.get(f"https://api.telegram.org/bot{BOT_TOKEN}/setWebhook?url={webhook_url}")
93
+ return jsonify(r.json())
 
 
94
 
95
  @app.route('/api/videos')
96
  def api_videos():
 
102
  except:
103
  return jsonify([])
104
 
105
+ @app.route('/')
106
+ def index():
107
+ return "Bot System is Active!"
108
+
109
  if __name__ == "__main__":
110
  app.run(host="0.0.0.0", port=7860)