pmrony commited on
Commit
ce6c60a
·
verified ·
1 Parent(s): ce98d00

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -34
app.py CHANGED
@@ -4,8 +4,7 @@ import os
4
  from flask import Flask, jsonify, make_response, request as flask_request
5
  from supabase import create_client
6
  import re
7
- import traceback
8
- import requests # নতুন লাইব্রেরি যুক্ত করা হলো
9
 
10
  BOT_TOKEN = os.environ.get('BOT_TOKEN')
11
  SUPABASE_URL = "https://yctirvnryrzygoxbpvoy.supabase.co"
@@ -47,58 +46,49 @@ def index():
47
  return "Bot is Running smoothly!"
48
 
49
  # ==========================================
50
- # VIDEO THUMBNAIL LOGIC
51
  # ==========================================
52
 
53
  def get_telegram_thumbnail(channel, msg_id):
54
  cache_key = f"{channel}_{msg_id}"
55
 
 
56
  if cache_key in thumbnail_cache:
57
  return thumbnail_cache[cache_key]
58
 
59
  try:
60
- url = f"https://t.me/{channel}/{msg_id}?embed=1"
61
- print(f"[LOG] Fetching URL: {url}")
 
62
 
63
- # Requests ইবরি দিয়ে রিকোয়েস্ট পাঠানো হচ্ছে
64
- headers = {
65
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
66
- }
67
 
68
- # টাইমআউট ১০ সেকেন্ড দেওয়া হলো
69
- response = requests.get(url, headers=headers, timeout=10)
70
- response.raise_for_status() # কোনো HTTP Error থাকলে ধরবে
71
-
72
- html = response.text
73
- match = re.search(r'<meta property="og:image" content="([^"]+)">', html)
74
-
75
- if match:
76
- img_url = match.group(1)
77
- if "telegram_logo" not in img_url:
78
- print(f"[SUCCESS] Image found for msg {msg_id}: {img_url}")
79
- thumbnail_cache[cache_key] = img_url
80
- return img_url
81
- else:
82
- print(f"[WARNING] msg {msg_id} তে শুধু টেলিগ্রামের লোগো পাওয়া গেছে।")
83
- else:
84
- print(f"[WARNING] msg {msg_id} এর HTML এ কোনো ছবি পাওয়া যায়নি।")
85
 
86
- except requests.exceptions.Timeout:
87
- print(f"[TIMEOUT ERROR] msg {msg_id} লোড হতে ১০ সেকেন্ডের বেশি সময় নিয়েছে!")
88
- except requests.exceptions.RequestException as e:
89
- print(f"[NETWORK ERROR] msg {msg_id} লোড করতে সমস্যা: {e}")
 
 
 
 
 
90
  except Exception as e:
91
- print(f"[UNKNOWN ERROR] msg {msg_id} স্্র্য করা সময় সমস্য: {e}")
92
 
93
- # ছবি না পেলে ডামি ছবি
94
  fallback = f"https://placehold.co/300x200/222222/FF9900/png?text=Video+{msg_id}"
95
  thumbnail_cache[cache_key] = fallback
96
- print(f"[FALLBACK] msg {msg_id} এর জন্য ডামি ছবি দেওয়া হলো।")
97
  return fallback
98
 
99
  @app.route('/api/videos')
100
  def api_videos():
101
  videos_data = []
 
102
  for msg_id in range(START_MESSAGE_ID, START_MESSAGE_ID + TOTAL_VIDEOS):
103
  thumb = get_telegram_thumbnail(CHANNEL_USERNAME, msg_id)
104
  videos_data.append({
@@ -139,7 +129,7 @@ def start(message):
139
 
140
  try:
141
  bot.send_message(referrer_id, "🎉 একজন আপনার লিংকে জয়েন করেছে! আপনার রেফারেল কাউন্ট বাড়লো।")
142
- except Exception as e:
143
  pass
144
  except Exception as e:
145
  print("[DATABASE ERROR]", e)
 
4
  from flask import Flask, jsonify, make_response, request as flask_request
5
  from supabase import create_client
6
  import re
7
+ import requests
 
8
 
9
  BOT_TOKEN = os.environ.get('BOT_TOKEN')
10
  SUPABASE_URL = "https://yctirvnryrzygoxbpvoy.supabase.co"
 
46
  return "Bot is Running smoothly!"
47
 
48
  # ==========================================
49
+ # VIDEO THUMBNAIL LOGIC (PROXY)
50
  # ==========================================
51
 
52
  def get_telegram_thumbnail(channel, msg_id):
53
  cache_key = f"{channel}_{msg_id}"
54
 
55
+ # ক্যাশে থাকলে দ্রুত রিটার্ন করবে
56
  if cache_key in thumbnail_cache:
57
  return thumbnail_cache[cache_key]
58
 
59
  try:
60
+ telegram_url = f"https://t.me/{channel}/{msg_id}?embed=1"
61
+ # Hugging Face ব্লক থাকায় AllOrigins Proxy API ব্যবহার করা হলো
62
+ proxy_url = f"https://api.allorigins.win/get?url={telegram_url}"
63
 
64
+ print(f"[LOG] Proxy এর মযমে রিকোয়েস্ট পাঠানো হচ্ছে: msg {msg_id}")
65
+ response = requests.get(proxy_url, timeout=10)
 
 
66
 
67
+ if response.status_code == 200:
68
+ data = response.json()
69
+ html = data.get('contents', '')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
 
71
+ match = re.search(r'<meta property="og:image" content="([^"]+)">', html)
72
+ if match:
73
+ img_url = match.group(1)
74
+ if "telegram_logo" not in img_url:
75
+ print(f"[SUCCESS] ছবি পাওয়া গেছে: {img_url}")
76
+ thumbnail_cache[cache_key] = img_url
77
+ return img_url
78
+ else:
79
+ print(f"[WARNING] msg {msg_id} তে আসল ছবি নেই।")
80
  except Exception as e:
81
+ print(f"[ERROR] Proxy কা করছে নmsg {msg_id} এর জন্য: {e}")
82
 
83
+ # কোনো কারণে ছবি না পেলে ডামি ছবি
84
  fallback = f"https://placehold.co/300x200/222222/FF9900/png?text=Video+{msg_id}"
85
  thumbnail_cache[cache_key] = fallback
 
86
  return fallback
87
 
88
  @app.route('/api/videos')
89
  def api_videos():
90
  videos_data = []
91
+ # একসাথে ১০টি ভিডিওর ডাটা তৈরি
92
  for msg_id in range(START_MESSAGE_ID, START_MESSAGE_ID + TOTAL_VIDEOS):
93
  thumb = get_telegram_thumbnail(CHANNEL_USERNAME, msg_id)
94
  videos_data.append({
 
129
 
130
  try:
131
  bot.send_message(referrer_id, "🎉 একজন আপনার লিংকে জয়েন করেছে! আপনার রেফারেল কাউন্ট বাড়লো।")
132
+ except Exception:
133
  pass
134
  except Exception as e:
135
  print("[DATABASE ERROR]", e)