Привет всем. Не могу понять почему бот не добавляет в контакты зарегестрированные номера с +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. Если нужен код бд,то я предоставлю. Буду благодарен за любую помощь и ответ.