XiaoBai1221 commited on
Commit
847c86a
·
verified ·
1 Parent(s): ca745ac

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +58 -0
app.py CHANGED
@@ -1227,6 +1227,64 @@ def process_messenger_video(video_url, sender_id):
1227
  print(f"處理 Messenger 影片時發生錯誤:{e}")
1228
  send_message(sender_id, "處理影片時發生錯誤,請稍後再試。")
1229
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1230
  #--------------------
1231
  # WebSocket 路由 (即時手語辨識)
1232
  #--------------------
 
1227
  print(f"處理 Messenger 影片時發生錯誤:{e}")
1228
  send_message(sender_id, "處理影片時發生錯誤,請稍後再試。")
1229
 
1230
+ def _fix_facebook_cdn_url(url):
1231
+ """修復包含佔位符 'xx' 的 Facebook CDN URL"""
1232
+ if 'xx.fbcdn.net' not in url:
1233
+ return url
1234
+
1235
+ # 首先測試原始 URL 是否真的無法訪問
1236
+ print(f"🔍 先測試原始 URL 是否可訪問:{url}")
1237
+ try:
1238
+ response = requests.head(url, timeout=10, verify=False, allow_redirects=True)
1239
+ if response.status_code == 200:
1240
+ print(f"✅ 原始 URL 實際上是可以訪問的!狀態碼:{response.status_code}")
1241
+ return url # 如果原始 URL 可以訪問,直接返回
1242
+ except requests.exceptions.RequestException as e:
1243
+ print(f"⚠️ 原始 URL 測試失敗:{e},開始嘗試修復...")
1244
+
1245
+ # 擴展的 Facebook CDN 子域名列表(包含更多可能性)
1246
+ common_subdomains = [
1247
+ # 主要數據中心
1248
+ 'fsin2-1', 'fsin2-2', 'fsin6-1', 'fsin6-2', # 新加坡
1249
+ 'fsjc1-1', 'fsjc1-2', 'fsjc2-1', 'fsjc2-2', # 加州
1250
+ 'fmaa1-1', 'fmaa1-2', 'fmaa2-1', 'fmaa2-2', # 馬來西亞
1251
+ 'fatl1-1', 'fatl1-2', # 亞特蘭大
1252
+ 'fsea1-1', 'fsea1-2', # 西雅圖
1253
+ 'fiad1-1', 'fiad1-2', # 愛爾蘭都柏林
1254
+ 'flin1-1', 'flin1-2', # 倫敦
1255
+ 'ffor1-1', 'ffor1-2', # 法蘭克福
1256
+ 'ftpe1-1', 'ftpe1-2', # 台灣
1257
+ 'fhkg1-1', 'fhkg1-2', # 香港
1258
+ 'fbom1-1', 'fbom1-2', # 孟買
1259
+ 'fsyd1-1', 'fsyd1-2', # 悉尼
1260
+ 'fssa1-1', 'fssa1-2', # 南非
1261
+ 'fgig1-1', 'fgig1-2', # 巴西
1262
+ # 備用和測試子域名
1263
+ 'video', # 有時直接用 video
1264
+ 'scontent', # 靜態內容
1265
+ 'external', # 外部內容
1266
+ ]
1267
+
1268
+ print(f"🔧 開始測試 {len(common_subdomains)} 個可能的子域名...")
1269
+
1270
+ # 替換 'xx' 為每個可能的子域名並測試
1271
+ for subdomain in common_subdomains:
1272
+ fixed_url = url.replace('xx.fbcdn.net', f'{subdomain}.fbcdn.net')
1273
+ print(f"🔍 測試:{fixed_url}")
1274
+
1275
+ try:
1276
+ # 快速測試 URL 是否可訪問
1277
+ response = requests.head(fixed_url, timeout=5, verify=False, allow_redirects=True)
1278
+ if response.status_code == 200:
1279
+ print(f"✅ 找到有效的 URL:{fixed_url}")
1280
+ return fixed_url
1281
+ except requests.exceptions.RequestException:
1282
+ continue
1283
+
1284
+ # 如果都失敗,返回原始 URL(因為用戶說可以訪問)
1285
+ print(f"❌ 無法找到更好的 URL,但原始 URL 可能仍然有效:{url}")
1286
+ return url
1287
+
1288
  #--------------------
1289
  # WebSocket 路由 (即時手語辨識)
1290
  #--------------------