README / main.py
zandem's picture
Update main.py
69d0aee verified
Raw
History Blame Contribute Delete
3.38 kB
import telebot
from telebot import types
import requests
import time
import os
# --- ТВОИ ДАННЫЕ ---
TOKEN = '8559275008:AAGTiuuiGWPykrOEe14Dple_GAlHWssP5Aw'
MY_CHAT_ID = 582934051 # Убедись, что это твой ID
# Настройка бота с увеличенным интервалом ожидания
bot = telebot.TeleBot(TOKEN)
CHECK_OBJECT = "P22lbY0"
def get_current_status():
results = []
# 1. Проверка NASA JPL
try:
url = f"https://ssd-api.jpl.nasa.gov/sbdb.api?sstr={CHECK_OBJECT}"
r = requests.get(url, timeout=15)
if r.status_code == 200:
data = r.json()
name = data.get("object", {}).get("full_name", "Имя не определено")
results.append(f"🛰 NASA JPL: {name}")
else:
results.append("❌ NASA: Объект не найден")
except Exception as e:
results.append(f"⚠️ NASA: Ошибка связи")
# 2. Проверка MPC
try:
url = "https://www.minorplanetcenter.net/iau/NEO/pccp_last.html"
r = requests.get(url, timeout=15)
if CHECK_OBJECT in r.text:
results.append("🔭 MPC PCCP: Объект в списке (ждем)")
else:
results.append("🔔 MPC: ИНДЕКС ИСЧЕЗ! Срочно проверь имя!")
except Exception as e:
results.append("⚠️ MPC: Ошибка связи")
return "\n".join(results)
def main_keyboard():
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton("🔄 Проверить статус", callback_data="check_status"))
markup.add(types.InlineKeyboardButton("🌐 Проверить домены", callback_data="check_domain"))
return markup
@bot.message_handler(commands=['start'])
def start(message):
bot.send_message(
message.chat.id,
f"🤖 Мониторинг {CHECK_OBJECT} запущен.",
reply_markup=main_keyboard()
)
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
if call.data == "check_status":
status = get_current_status()
bot.edit_message_text(
chat_id=call.message.chat.id,
message_id=call.message.message_id,
text=f"📊 **Данные:**\n\n{status}",
reply_markup=main_keyboard(),
parse_mode="Markdown"
)
elif call.data == "check_domain":
bot.send_message(
call.message.chat.id,
f"🔎 Ссылка:\nhttps://www.reg.ru/whois/?dname={CHECK_OBJECT.lower()}.com"
)
# Блок запуска с ожиданием сети
if __name__ == "__main__":
print("⏳ Ожидание стабилизации сети (20 секунд)...")
time.sleep(20)
print("🚀 Попытка подключения к Telegram API...")
try:
# Проверка связи перед запуском бесконечного цикла
me = bot.get_me()
print(f"✅ Успешно! Бот @{me.username} онлайн.")
bot.polling(none_stop=True, timeout=90)
except Exception as e:
print(f"❌ Ошибка подключения: {e}")
print("💡 Если ошибка DNS, попробуй Settings -> Factory Rebuild в Hugging Face.")