deepsite / management /telebot.py
coerxso's picture
Upload 73 files
3e8a166 verified
raw
history blame
2.67 kB
# management/telebot.py
# -*- coding: utf-8 -*-
import logging
from django.contrib.auth import get_user_model
from django.conf import settings
from .models import TelegramUser
import requests
import json
logger = logging.getLogger(__name__)
CustomUser = get_user_model()
def send_telegram_message(chat_id, message):
"""
ارسال پیام به یک کاربر تلگرام با استفاده از API.
"""
TOKEN = settings.TELEGRAM_BOT_TOKEN
API_URL = f"https://api.telegram.org/bot{TOKEN}/sendMessage"
payload = {
'chat_id': chat_id,
'text': message
}
try:
response = requests.post(API_URL, json=payload)
response.raise_for_status()
logger.info(f"Message sent to chat ID {chat_id}: {message}")
except requests.exceptions.RequestException as e:
logger.error(f"Error sending message to Telegram: {e}")
def process_telegram_message(update):
"""
پردازش پیام‌های ورودی از تلگرام.
"""
message_data = update.get('message')
if not message_data:
return
chat_id = message_data['chat']['id']
text = message_data.get('text', '')
# بررسی اگر متن یک کد امنیتی است
# اینجا یک شرط برای طول توکن میگذاریم تا از بررسی پیام‌های کوتاه جلوگیری شود
if 10 < len(text) < 50:
# ارسال کد به سرور برای تأیید
payload = {
'token': text,
'chat_id': chat_id
}
try:
# URL باید به آدرس واقعی API در سرور شما اشاره کند
response = requests.post('http://127.0.0.1:8000/api/telegram/verify-token/', json=payload)
result = response.json()
send_telegram_message(chat_id, result['message'])
except requests.exceptions.RequestException as e:
logger.error(f"Error communicating with Django server: {e}")
send_telegram_message(chat_id, "متاسفم، در حال حاضر نمی‌توانم درخواست شما را پردازش کنم. لطفاً بعداً امتحان کنید.")
elif text == '/start':
send_telegram_message(chat_id, "سلام، برای همگام‌سازی حساب خود، لطفاً یک کد امنیتی از پنل کاربری خود دریافت کرده و آن را برای من ارسال کنید.")
else:
send_telegram_message(chat_id, "دستور شما نامعتبر است. لطفاً کد امنیتی خود را ارسال کنید یا از دستورات مجاز استفاده کنید.")