@pelcusaa

Как добавить номера с +8888 если некоторые не читаются?

Привет всем. Не могу понять почему бот не добавляет в контакты зарегестрированные номера с +8888(некоторые номера он может добавить,некоторые привязанные пропускает и пишет "Номер не привязан".(если привязан - ImportedContacts(imported=[ImportedContact(user_id=test, client_id=1977)], popular_invites=[], retry_contacts=[], users=[User(id=test, is_self=False, contact=True, mutual_contact=False, deleted=False, bot=False и т.д ,а когда нет - ImportedContacts(imported=[], popular_invites=[], retry_contacts=[940], users=[]),хотя иногда номер привзяан,но бот не может его добавить и дать информацию)
вот код -
import asyncio
from telethon import TelegramClient
from telethon.tl.functions.contacts import ImportContactsRequest
from telethon.tl.types import InputPhoneContact
import logging
from datatbase import * 
import random

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s')

logger = logging.getLogger(__name__)

client = TelegramClient(session='session', api_id=api_id, api_hash=api_hash, device_model=device_model, system_version=system_version)

async def check_telegram_number_and_notify(phone_number):
    try:
        contact = InputPhoneContact(
            client_id=random.randint(0, 9999),
            phone=phone_number,
            first_name="user",
            last_name="test"
        )
        result = await client(ImportContactsRequest(contacts=[contact]))
        
        print(result)
        if result.users:  
            user = result.users[0]
            user_id = user.id

            if user.username:  
                username = user.username
            elif user.usernames:  
                username = user.usernames[0].username
            else:
                username = "Не указан"
            print(user.username)
            print(user.usernames)

            update_status = await check_and_update_number(phone_number, user_id)

            if update_status == "new":
                message = (
                    f"✅ Номер {phone_number} привязан к Telegram.\n"
                    f" ID: {user_id}\n"
                    f" Username: @{username}"
                )
                #await client.send_message(telegram_chat_id, message)
                logger.info(f"Отправлено уведомление: {message}")
            elif update_status == "updated":
                message = (
                    f"⚠️ Обновление данных для номера {phone_number}.\n"
                    f" Новый ID: {user_id}\n"
                    f" Новый Username: @{username}"
                )
                #await client.send_message(telegram_chat_id, message)
                logger.info(f"Отправлено уведомление: {message}")
        else:
            logger.info(f"❌ Номер {phone_number} не привязан к Telegram.")
    except Exception as e:
        logger.error(f"⚠ Ошибка при проверке номера {phone_number}: {e}")

async def process_phone_numbers(phone_numbers):
    await create_table()  
    try:
        await client.start()
        while True:  
            for phone_number in phone_numbers:
                await check_telegram_number_and_notify(phone_number.strip())
                await asyncio.sleep(10)  
            logger.info("Цикл завершен, повторная проверка через 5 минут.")
            await asyncio.sleep(300)  
    finally:
        await client.disconnect()

async def main():
    try:
        with open("numbers.txt", "r", encoding="utf-8") as file:
            phone_numbers = file.readlines() 
    except FileNotFoundError:
        logger.error("Файл numbers.txt не найден!")
        return
    await process_phone_numbers(phone_numbers)

if __name__ == '__main__':
    asyncio.run(main())
с txt номера формата +8888. Если нужен код бд,то я предоставлю. Буду благодарен за любую помощь и ответ.
  • Вопрос задан
  • 33 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 03:54
1500 руб./за проект
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект