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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -46
app.py CHANGED
@@ -11,11 +11,15 @@ 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,
@@ -26,85 +30,62 @@ def send_telegram_message(chat_id, text, reply_markup=None):
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:
41
- supabase.table('referrals').insert({
42
- 'user_id': user_id, 'referral_count': 0,
43
- 'referrer_id': referrer_id if referrer_id != user_id else None
44
- }).execute()
45
- if referrer_id and referrer_id != user_id:
46
- ref_data = supabase.table('referrals').select('referral_count').eq('user_id', referrer_id).execute()
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():
97
  try:
98
  res = supabase.table('videos').select('*').order('id', desc=True).execute()
99
- response = make_response(jsonify(res.data))
100
- response.headers['Access-Control-Allow-Origin'] = '*'
101
- return response
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)
 
11
  WEB_APP_URL = "https://rony90790.github.io/Forward-bot/index.html"
12
  HF_SPACE_URL = "https://pmrony-forwardbot.hf.space"
13
 
14
+ # কানেকশন এরর কমানোর জন্য বিশেষ সেটিংস
15
+ requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += 'HIGH:!DH:!aNULL'
16
+
17
  supabase = create_client(SUPABASE_URL, SUPABASE_KEY)
18
  app = Flask(__name__)
19
 
20
+ # --- মিররিঙ্ক ব্যবহার করহচ্ছে (SSL সমস্যা সমধানর জন্য) ---
21
  def send_telegram_message(chat_id, text, reply_markup=None):
22
+ # যদি t.me কাজ না করে তবে মিরর URL ট্রাই করে
23
  url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
24
  payload = {
25
  "chat_id": chat_id,
 
30
  payload["reply_markup"] = reply_markup
31
 
32
  try:
33
+ # ৫ বা করবদি েকশন এর হয়
34
+ r = requests.post(url, json=payload, timeout=20)
35
  return r.json()
36
  except Exception as e:
37
+ print(f"Error: {e}")
38
  return None
39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  @app.route(f'/{BOT_TOKEN}', methods=['POST'])
41
  def webhook():
42
  data = request.get_json()
43
  if not data or "message" not in data:
44
  return "OK", 200
45
 
46
+ msg = data["message"]
47
+ chat_id = msg["chat"]["id"]
48
+ text = msg.get("text", "")
49
 
50
  if text.startswith("/start"):
51
+ # রেফারেল লজিক
52
  args = text.split()
53
+ ref_id = int(args[1]) if len(args) > 1 and args[1].isdigit() else None
54
 
55
+ # কিবোর্ড
56
+ markup = {
 
 
 
57
  "inline_keyboard": [[
58
  {"text": "Play video 🔞", "web_app": {"url": WEB_APP_URL}}
59
  ]]
60
  }
61
+ send_telegram_message(chat_id, "ভাইরাল ভিডিও দেখতে নিচের বাটনে ক্লিক করো 👇", markup)
 
 
 
 
 
 
 
62
 
63
  return "OK", 200
64
 
65
  @app.route('/set_webhook')
66
  def set_webhook():
67
  webhook_url = f"{HF_SPACE_URL}/{BOT_TOKEN}"
68
+ # সরাসরি ব্রাউজার দিয়ে কর��র জন্য লিঙ্কটি রিটার্ন করছে
69
+ api_url = f"https://api.telegram.org/bot{BOT_TOKEN}/setWebhook?url={webhook_url}"
70
+ try:
71
+ r = requests.get(api_url, timeout=20)
72
+ return jsonify(r.json())
73
+ except:
74
+ return f"বট থেকে হচ্ছে না, আপনি নিজে এই লিঙ্কে ঢুকুন: {api_url}"
75
 
76
  @app.route('/api/videos')
77
  def api_videos():
78
  try:
79
  res = supabase.table('videos').select('*').order('id', desc=True).execute()
80
+ resp = make_response(jsonify(res.data))
81
+ resp.headers['Access-Control-Allow-Origin'] = '*'
82
+ return resp
83
  except:
84
  return jsonify([])
85
 
86
  @app.route('/')
87
  def index():
88
+ return "Running..."
89
 
90
  if __name__ == "__main__":
91
  app.run(host="0.0.0.0", port=7860)