pmrony commited on
Commit
f9b8847
·
verified ·
1 Parent(s): 10b6ebf

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +58 -52
app.py CHANGED
@@ -3,8 +3,9 @@ from telebot.types import InlineKeyboardMarkup, InlineKeyboardButton, WebAppInfo
3
  import os
4
  from flask import Flask, jsonify, make_response, request
5
  from supabase import create_client
 
6
 
7
- # আপার দেওয়া ডিটেইলস
8
  BOT_TOKEN = "8628213901:AAFvfHBpZ6tok40ZQuhIDLAVIMrHeiheMNY"
9
  SUPABASE_URL = "https://yctirvnryrzygoxbpvoy.supabase.co"
10
  SUPABASE_KEY = "sb_publishable_aBcD-atruskWwoCiLr0lWw_inT8GLoN"
@@ -15,7 +16,6 @@ bot = telebot.TeleBot(BOT_TOKEN)
15
  supabase = create_client(SUPABASE_URL, SUPABASE_KEY)
16
  app = Flask(__name__)
17
 
18
- # অ্যাডমিন ডাটা রাখার জন্য
19
  admin_states = {}
20
 
21
  @app.route(f'/{BOT_TOKEN}', methods=['POST'])
@@ -23,6 +23,8 @@ def webhook():
23
  if request.headers.get('content-type') == 'application/json':
24
  json_string = request.get_data().decode('utf-8')
25
  update = telebot.types.Update.de_json(json_string)
 
 
26
  bot.process_new_updates([update])
27
  return "OK", 200
28
  return "Forbidden", 403
@@ -40,76 +42,80 @@ def set_webhook():
40
  def index():
41
  return "Bot is Running smoothly!"
42
 
43
- # ================= ADMIN LOGIC =================
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
 
45
  @bot.message_handler(commands=['png'])
46
  def add_png(message):
47
- parts = message.text.split(maxsplit=1)
48
- if len(parts) > 1:
49
- img_url = parts[1].strip()
50
- # ছবির লিংক সেভ করে রাখলাম এবং ভিডিওর লিংক চাইলাম
51
- admin_states[message.chat.id] = {"step": 1, "thumbnail_url": img_url}
52
- bot.reply_to(message, " ছবি সেট হয়েছে। এখন এই ছবির জন্য **Google Drive ভিডিও লিংক** দিন।")
53
- else:
54
- bot.reply_to(message, "সঠিক নিয়ম: `/png https://i.postimg.cc/image.jpg` (ছবির ডিরেক্ট লিংক দিবেন)")
 
 
 
55
 
56
  @bot.message_handler(func=lambda m: admin_states.get(m.chat.id, {}).get("step") == 1)
57
  def add_video_step(message):
58
- video_url = message.text.strip()
59
- thumbnail_url = admin_states[message.chat.id]["thumbnail_url"]
60
-
61
  try:
62
- # Supabase 'videos' টেবিলে ডাটা সেভ
 
 
63
  supabase.table('videos').insert({
64
  "video_url": video_url,
65
  "thumbnail_url": thumbnail_url
66
  }).execute()
 
67
  bot.reply_to(message, "🎉 অভিনন্দন! ভিডিওটি সফলভাবে অ্যাপে অ্যাড হয়েছে।")
 
68
  except Exception as e:
69
- bot.reply_to(message, f" সেভ করতে সমস্যা হয়েছে: {e}")
70
-
71
- # স্টেট ক্লিয়ার
72
- admin_states[message.chat.id] = {}
73
-
74
- # ================= API FOR MINI APP =================
75
 
76
  @app.route('/api/videos')
77
  def api_videos():
78
  try:
79
- # ডাটাবেজ থেকে সব ভিডিও আনা হচ্ছে
80
  res = supabase.table('videos').select('*').order('id', desc=True).execute()
81
  return jsonify(res.data)
82
- except:
 
83
  return jsonify([])
84
 
85
- # ================= START / REFERRAL =================
86
-
87
- @bot.message_handler(commands=['start'])
88
- def start(message):
89
- user_id = message.from_user.id
90
- args = message.text.split()
91
- referrer_id = int(args[1]) if len(args) > 1 and args[1].isdigit() else None
92
-
93
- try:
94
- user_check = supabase.table('referrals').select('*').eq('user_id', user_id).execute()
95
- if not user_check.data:
96
- supabase.table('referrals').insert({
97
- 'user_id': user_id,
98
- 'referral_count': 0,
99
- 'referrer_id': referrer_id if referrer_id != user_id else None
100
- }).execute()
101
-
102
- if referrer_id and referrer_id != user_id:
103
- ref_data = supabase.table('referrals').select('referral_count').eq('user_id', referrer_id).execute()
104
- if ref_data.data:
105
- new_count = ref_data.data[0]['referral_count'] + 1
106
- supabase.table('referrals').update({'referral_count': new_count}).eq('user_id', referrer_id).execute()
107
- bot.send_message(referrer_id, "🎉 কেউ আপনার রেফারে জয়েন করেছে! আপনার রেফারেল কাউন্ট বেড়েছে।")
108
- except: pass
109
-
110
- markup = InlineKeyboardMarkup()
111
- markup.add(InlineKeyboardButton("Play video 🔞", web_app=WebAppInfo(url=WEB_APP_URL)))
112
- bot.reply_to(message, "ভাইরাল ভিডিও দেখতে নিচের বাটনে ক্লিক করো 👇", reply_markup=markup)
113
-
114
  if __name__ == "__main__":
115
  app.run(host="0.0.0.0", port=7860)
 
3
  import os
4
  from flask import Flask, jsonify, make_response, request
5
  from supabase import create_client
6
+ import traceback
7
 
8
+ # টোকেএবং ডিটেইলস
9
  BOT_TOKEN = "8628213901:AAFvfHBpZ6tok40ZQuhIDLAVIMrHeiheMNY"
10
  SUPABASE_URL = "https://yctirvnryrzygoxbpvoy.supabase.co"
11
  SUPABASE_KEY = "sb_publishable_aBcD-atruskWwoCiLr0lWw_inT8GLoN"
 
16
  supabase = create_client(SUPABASE_URL, SUPABASE_KEY)
17
  app = Flask(__name__)
18
 
 
19
  admin_states = {}
20
 
21
  @app.route(f'/{BOT_TOKEN}', methods=['POST'])
 
23
  if request.headers.get('content-type') == 'application/json':
24
  json_string = request.get_data().decode('utf-8')
25
  update = telebot.types.Update.de_json(json_string)
26
+ # লগ প্রিন্ট হবে যাতে বোঝা যায় মেসেজ এসেছে
27
+ print(f"[LOG] New Update Received: {update.update_id}")
28
  bot.process_new_updates([update])
29
  return "OK", 200
30
  return "Forbidden", 403
 
42
  def index():
43
  return "Bot is Running smoothly!"
44
 
45
+ # ================= HANDLERS =================
46
+
47
+ @bot.message_handler(commands=['start'])
48
+ def start(message):
49
+ print(f"[LOG] /start command received from {message.chat.id}")
50
+ try:
51
+ user_id = message.from_user.id
52
+ args = message.text.split()
53
+ referrer_id = int(args[1]) if len(args) > 1 and args[1].isdigit() else None
54
+
55
+ # ডাটাবেজ চেক
56
+ user_check = supabase.table('referrals').select('*').eq('user_id', user_id).execute()
57
+ if not user_check.data:
58
+ supabase.table('referrals').insert({
59
+ 'user_id': user_id,
60
+ 'referral_count': 0,
61
+ 'referrer_id': referrer_id if referrer_id != user_id else None
62
+ }).execute()
63
+
64
+ if referrer_id and referrer_id != user_id:
65
+ ref_data = supabase.table('referrals').select('referral_count').eq('user_id', referrer_id).execute()
66
+ if ref_data.data:
67
+ new_count = ref_data.data[0]['referral_count'] + 1
68
+ supabase.table('referrals').update({'referral_count': new_count}).eq('user_id', referrer_id).execute()
69
+ bot.send_message(referrer_id, "🎉 কেউ আপনার রেফারে জয়েন করেছে!")
70
+
71
+ markup = InlineKeyboardMarkup()
72
+ markup.add(InlineKeyboardButton("Play video 🔞", web_app=WebAppInfo(url=WEB_APP_URL)))
73
+ bot.reply_to(message, "ভাইরাল ভিডিও দেখতে নিচের বাটনে ক্লিক করো 👇", reply_markup=markup)
74
+ print("[LOG] Reply sent for /start")
75
+ except Exception as e:
76
+ print(f"[ERROR] In /start: {e}")
77
+ traceback.print_exc()
78
 
79
  @bot.message_handler(commands=['png'])
80
  def add_png(message):
81
+ print(f"[LOG] /png command received: {message.text}")
82
+ try:
83
+ parts = message.text.split(maxsplit=1)
84
+ if len(parts) > 1:
85
+ img_url = parts[1].strip()
86
+ admin_states[message.chat.id] = {"step": 1, "thumbnail_url": img_url}
87
+ bot.reply_to(message, "✅ ছবি সেট হয়েছে। এখন এই ছবির জন্য **Google Drive ভিডিও লিংক** দিন।")
88
+ else:
89
+ bot.reply_to(message, "সঠিক নিয়ম: `/png https://i.postimg.cc/image.jpg`")
90
+ except Exception as e:
91
+ print(f"[ERROR] In /png: {e}")
92
 
93
  @bot.message_handler(func=lambda m: admin_states.get(m.chat.id, {}).get("step") == 1)
94
  def add_video_step(message):
95
+ print(f"[LOG] Video link received: {message.text}")
 
 
96
  try:
97
+ video_url = message.text.strip()
98
+ thumbnail_url = admin_states[message.chat.id]["thumbnail_url"]
99
+
100
  supabase.table('videos').insert({
101
  "video_url": video_url,
102
  "thumbnail_url": thumbnail_url
103
  }).execute()
104
+
105
  bot.reply_to(message, "🎉 অভিনন্দন! ভিডিওটি সফলভাবে অ্যাপে অ্যাড হয়েছে।")
106
+ admin_states[message.chat.id] = {}
107
  except Exception as e:
108
+ print(f"[ERROR] In add_video_step: {e}")
109
+ bot.reply_to(message, "❌ সেভ করতে সমস্যা হয়েছে।")
 
 
 
 
110
 
111
  @app.route('/api/videos')
112
  def api_videos():
113
  try:
 
114
  res = supabase.table('videos').select('*').order('id', desc=True).execute()
115
  return jsonify(res.data)
116
+ except Exception as e:
117
+ print(f"[ERROR] API: {e}")
118
  return jsonify([])
119
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
120
  if __name__ == "__main__":
121
  app.run(host="0.0.0.0", port=7860)