Bot-Telegram / app.py
TienPhat's picture
Update app.py
738bdd9 verified
Raw History Blame Contribute Delete
3.29 kB
import threading
import time
import telebot
import requests
from http.server import HTTPServer, BaseHTTPRequestHandler
# --- Bot Setup ---
TOKEN = '8354363462:AAGR1MyBo6mX69DPUdCaemR8-XcOcOoKEmg'
bot = telebot.TeleBot(TOKEN)
print("✅ Bot initialized")
# --- Bot Handlers ---
@bot.message_handler(commands=['start'])
def send_welcome(message):
print(f"📩 /start từ {message.from_user.first_name}")
bot.reply_to(message, "🎬 Chào bạn! Nhập tên phim muốn xem, mình sẽ lấy link trực tiếp cho nhé.")
@bot.message_handler(func=lambda message: True)
def search_and_get_link(message):
query = message.text
print(f"🔍 Tìm: {query}")
search_url = f"https://ophim1.com/v1/api/tim-kiem?keyword={query}"
try:
search_res = requests.get(search_url, timeout=10).json()
items = search_res.get('data', {}).get('items', [])
if not items:
bot.reply_to(message, "❌ Không tìm thấy phim này rồi!")
return
movie_slug = items[0]['slug']
detail_url = f"https://ophim1.com/phim/{movie_slug}"
detail_res = requests.get(detail_url, timeout=10).json()
movie_info = detail_res.get('movie', {})
episodes = detail_res.get('episodes', [])
if episodes:
server_data = episodes[0].get('server_data', [])
if server_data:
latest_ep = server_data[-1]
watch_link = latest_ep.get('link_embed', '')
response_msg = (
f"✅ **Đã tìm thấy: {movie_info.get('name')}**\n"
f"🎭 Tên gốc: {movie_info.get('origin_name')}\n"
f"📅 Năm: {movie_info.get('year')}\n"
f"🚩 Trạng thái: {movie_info.get('episode_current')}\n\n"
f"📺 **[NHẤN VÀO ĐÂY ĐỂ XEM PHIM NGAY]({watch_link})**"
)
bot.send_message(message.chat.id, response_msg, parse_mode="Markdown")
else:
bot.reply_to(message, "Hic, phim này hiện chưa có link xem.")
else:
bot.reply_to(message, "Phim này hiện chưa cập nhật tập nào.")
except Exception as e:
print(f"❌ Lỗi: {e}")
bot.reply_to(message, "⚠️ Có lỗi khi lấy dữ liệu từ máy chủ phim!")
# --- Bot polling thread ---
def run_bot():
while True:
try:
print("🤖 Bot polling started...")
bot.remove_webhook()
time.sleep(1)
bot.infinity_polling(timeout=30, long_polling_timeout=30)
except Exception as e:
print(f"❌ Bot error: {e}")
time.sleep(5)
bot_thread = threading.Thread(target=run_bot, daemon=True)
bot_thread.start()
# --- Health check server (port 7860, required by HF Spaces) ---
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type', 'text/html; charset=utf-8')
self.end_headers()
self.wfile.write('🎬 Bot Telegram Xem Phim đang hoạt động!'.encode('utf-8'))
def log_message(self, format, *args):
pass
print("🌐 Health check server on port 7860")
HTTPServer(('0.0.0.0', 7860), Handler).serve_forever()