@dp.message(F.text.startswith('/connect'))
async def cmd_start(message: Message, state: FSMContext):
# Получаем текст сообщения и разделяем его на части по пробелу
text = message.text.strip()
parts = text.split(' ')
if len(parts) == 1:
# Пользователь отправил только команду /connect, отправляем инструкцию
await message.answer(MESSAGES['first_connection'], parse_mode='Markdown')
elif len(parts) == 2:
phone = parts[1]
await state.update_data(phone = phone)
# Попытка авторизации
try:
await message.reply(MESSAGES['phone_handler'])
# Авторизуемся с использованием сессии, связанной с аккаунтом пользователя
user_client = TelegramClient(str(message.from_user.id), api_id, api_hash)
await message.answer('Please enter the login code sent to telegram app or sms (no spaces).\n\nFor example, your login code is 123456, then enter mycode123456')
await user_client.send_code_request(phone)
await state.set_state(Form.first_connection)
except PhoneNumberInvalidError:
await message.answer("❌ The phone number is invalid.")
# Тут будет состояние обрабатывающие сообщение
@dp.message(Form.first_connection)
async def cmd_phone(message: Message, state: FSMContext):
data = await state.get_data()
phone = data['phone']
code = int(message.text)
await client.sign_in(phone, code)
@dp.message(F.text.startswith('/connect'))
async def cmd_start(message: Message, state: FSMContext):
# Получаем текст сообщения и разделяем его на части по пробелу
text = message.text.strip()
parts = text.split(' ')
if len(parts) == 1:
# Пользователь отправил только команду /connect, отправляем инструкцию
await message.answer(MESSAGES['first_connection'], parse_mode='Markdown')
elif len(parts) == 2:
phone = parts[1]
await state.update_data(phone = phone)
# Попытка авторизации
try:
await message.reply(MESSAGES['phone_handler'])
# Авторизуемся с использованием сессии, связанной с аккаунтом пользователя
user_client = TelegramClient(str(message.from_user.id), api_id, api_hash)
await user_client.start(phone)
await message.answer('Please enter the login code sent to telegram app or sms (no spaces).\n\nFor example, your login code is 123456, then enter mycode123456')
sent = await client.send_code_request(phone)
print(sent)
await state.set_state(Form.first_connection)
await user_client.disconnect()
except PhoneNumberInvalidError:
await message.answer("❌ The phone number is invalid.")
@dp.message(F.text.startswith('/chat'))
async def cmd_start(message: Message):
phone = 'тут мой телефон'
await client.start(phone)
# get group and channel list
dialogs = await client.get_dialogs()
# print group and channel data
for dialog in dialogs:
if dialog.is_group or dialog.is_channel:
print(f"{dialog.name}: {dialog.id}")
# Тут будет состояние обрабатывающие сообщение
@dp.message(Form.first_connection)
async def cmd_phone(message: Message, state: FSMContext):
data = await state.get_data()
phone = data['phone']
code = int(message.text)
await client.sign_in(phone, code)
# Основной цикл бота
async def main():
await dp.start_polling(bot)
# Записываем сообщение пользователя
$message = mb_strtolower(($data['text'] ? $data['text'] : $data['data']), 'utf-8');
if ($message === '/start') {
$method = 'sendMessage';
$send_data = [
'text' => "Привет! Я бот для анализа активности подписчиков в каналах, чатах и группах."
];
} elseif (strpos($message, 'http') === 0) {
$_SESSION['link'] = $message;
$method = 'sendMessage';
$send_data = [
'text' => "Отлично! Отправь мне число:"
];
} elseif (is_numeric($message)) {
$link = $_SESSION['link'];
$method = 'sendMessage';
$send_data = [
'text' => "Отлично! Ссылка: " . $link # вместо ссылки выводится просто пустая строка.
];
}