import logging
from telegram import Update
from telegram.ext import Application, MessageHandler, filters, ContextTypes
# ------------------- Чтение конфига из config.txt -------------------
def read_config(filename="config.txt"):
config = {}
try:
with open(filename, "r", encoding="utf-8") as f:
for line in f:
line = line.strip()
if not line or line.startswith("#") or "=" not in line:
continue
key, value = line.split("=", 1)
config[key.strip()] = value.strip()
except FileNotFoundError:
print(f"❌ Файл {filename} не найден. Положи его рядом с bot.py")
exit(1)
return config
config = read_config()
BOT_TOKEN = config.get("BOT_TOKEN")
GROUP_ID = int(config.get("GROUP_ID", 0)) # ID группы — число
CHANNEL_ID = config.get("CHANNEL_ID", "") # пока просто сохраняем
if not BOT_TOKEN or not GROUP_ID:
print("❌ Проверь config.txt: нужны BOT_TOKEN и GROUP_ID")
exit(1)
logging.basicConfig(
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
level=logging.INFO
)
# Обработчик: пересылает ТОЛЬКО личные сообщения в твою группу
async def forward_to_group(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.forward(chat_id=GROUP_ID)
# Можешь раскомментировать, если хочешь, чтобы отправитель видел подтверждение:
# await update.message.reply_text("✅ Сообщение доставлено владельцу.")
def main():
app = Application.builder().token(BOT_TOKEN).build()
# Ловим ЛЮБЫЕ личные сообщения (текст, фото, видео и т.д.)
private_filter = filters.ChatType.PRIVATE
app.add_handler(MessageHandler(private_filter, forward_to_group))
# Важно: никаких обработчиков для групп/каналов — бот их молча игнорирует
logging.info("Бот запущен. Жду личные сообщения...")
app.run_polling()
if __name__ == "__main__":
main()