pmrony commited on
Commit
44317b5
·
verified ·
1 Parent(s): 7609425

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +54 -24
app.py CHANGED
@@ -14,6 +14,9 @@ bot = telebot.TeleBot(BOT_TOKEN)
14
  supabase = create_client(SUPABASE_URL, SUPABASE_KEY)
15
  app = Flask(__name__)
16
 
 
 
 
17
  @app.route(f'/{BOT_TOKEN}', methods=['POST'])
18
  def webhook():
19
  if 'application/json' in flask_request.headers.get('content-type', ''):
@@ -37,37 +40,64 @@ def index():
37
  return "Bot is Running smoothly!"
38
 
39
  # ==========================================
40
- # MANUAL VIDEO LIST (SUPER FAST)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  # ==========================================
42
- # এখানে আপনি আপনার ইচ্ছামতো ভিডিও লিংক এবং ছবির লিংক বসাতে পারবেন।
43
- # আপনি চাইলে postimages.org এ ছবি আপলোড করে সেই লিংক thumbnail_url এ দিতে পারেন।
44
-
45
- MY_VIDEOS = [
46
- {
47
- "video_url": "https://drive.google.com/file/d/1d_BRKZadepX27LPg0n12DoAj1cm2tLDO/view",
48
- "thumbnail_url": "https://placehold.co/300x200/222222/FF9900/png?text=Video+1"
49
- },
50
- {
51
- "video_url": "https://drive.google.com/file/d/1d_BRKZadepX27LPg0n12DoAj1cm2tLDO/view", # আপাতত টেস্ট করার জন্য একই লিংক দিলাম
52
- "thumbnail_url": "https://placehold.co/300x200/222222/FF9900/png?text=Video+2"
53
- },
54
- {
55
- "video_url": "https://drive.google.com/file/d/1d_BRKZadepX27LPg0n12DoAj1cm2tLDO/view",
56
- "thumbnail_url": "https://placehold.co/300x200/222222/FF9900/png?text=Video+3"
57
- },
58
- {
59
- "video_url": "https://drive.google.com/file/d/1d_BRKZadepX27LPg0n12DoAj1cm2tLDO/view",
60
- "thumbnail_url": "https://placehold.co/300x200/222222/FF9900/png?text=Video+4"
61
- }
62
- # আপনি কমা (,) দিয়ে নিচে নিচে আরও ভিডিও বাড়াতে পারবেন...
63
- ]
64
 
65
  @app.route('/api/videos')
66
  def api_videos():
67
- response = make_response(jsonify(MY_VIDEOS))
 
 
 
 
 
 
 
 
68
  response.headers['Access-Control-Allow-Origin'] = '*'
69
  return response
70
 
 
 
 
 
71
  @bot.message_handler(commands=['start'])
72
  def start(message):
73
  user_id = message.from_user.id
 
14
  supabase = create_client(SUPABASE_URL, SUPABASE_KEY)
15
  app = Flask(__name__)
16
 
17
+ # অ্যাডমিন কোন ধাপে আছে তা মনে রাখার জন্য ডিকশনারি
18
+ admin_states = {}
19
+
20
  @app.route(f'/{BOT_TOKEN}', methods=['POST'])
21
  def webhook():
22
  if 'application/json' in flask_request.headers.get('content-type', ''):
 
40
  return "Bot is Running smoothly!"
41
 
42
  # ==========================================
43
+ # ADMIN COMMAND TO ADD VIDEO
44
+ # ==========================================
45
+
46
+ @bot.message_handler(commands=['png'])
47
+ def add_png(message):
48
+ try:
49
+ parts = message.text.split(maxsplit=1)
50
+ if len(parts) > 1:
51
+ img_url = parts[1].strip()
52
+ # ইউজারের স্টেট সেভ করে রাখলাম
53
+ admin_states[message.chat.id] = {"step": 1, "thumbnail_url": img_url}
54
+ bot.reply_to(message, "ঠিক আছে, এখন Google Drive এর ভিডিও লিংক দেন।")
55
+ else:
56
+ bot.reply_to(message, "⚠️ সঠিক নিয়ম: `/png <ছবির লিংক>` এভাবে দিন।", parse_mode="Markdown")
57
+ except Exception as e:
58
+ bot.reply_to(message, f"Error: {e}")
59
+
60
+ # যখন ইউজারের স্টেট 1 থাকবে (অর্থাৎ সে ছবির লিংক দিয়েছে, এখন ভিডিওর লিংক দিবে)
61
+ @bot.message_handler(func=lambda message: message.chat.id in admin_states and admin_states[message.chat.id]["step"] == 1)
62
+ def add_video_link(message):
63
+ video_url = message.text.strip()
64
+ thumbnail_url = admin_states[message.chat.id]["thumbnail_url"]
65
+
66
+ try:
67
+ # Supabase ডাটাবেজে সেভ করা
68
+ supabase.table('videos').insert({
69
+ "video_url": video_url,
70
+ "thumbnail_url": thumbnail_url
71
+ }).execute()
72
+ bot.reply_to(message, "✅ সফলভাবে ভিডিও এবং ছবি ডাটাবেজে সেভ হয়েছে! অ্যাপে গিয়ে চেক করুন।")
73
+ except Exception as e:
74
+ bot.reply_to(message, f"❌ সেভ করতে সমস্যা হয়েছে! নিশ্চিত করুন আপনি Supabase এ 'videos' টেবিল বানিয়েছেন কিনা।")
75
+
76
+ # কাজ শেষ, তাই স্টেট মুছে দিলাম
77
+ del admin_states[message.chat.id]
78
+
79
+ # ==========================================
80
+ # API FOR MINI APP
81
  # ==========================================
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
 
83
  @app.route('/api/videos')
84
  def api_videos():
85
+ try:
86
+ # ডাটাবেজ থেকে সর্বশেষ অ্যাড করা ভিডিওগুলো আনবে
87
+ res = supabase.table('videos').select('*').order('id', desc=True).execute()
88
+ videos_data = res.data
89
+ except Exception as e:
90
+ print(f"Error fetching videos: {e}")
91
+ videos_data = []
92
+
93
+ response = make_response(jsonify(videos_data))
94
  response.headers['Access-Control-Allow-Origin'] = '*'
95
  return response
96
 
97
+ # ==========================================
98
+ # BOT START / REFERRAL LOGIC
99
+ # ==========================================
100
+
101
  @bot.message_handler(commands=['start'])
102
  def start(message):
103
  user_id = message.from_user.id