Для получения сообщений по ID в Telethon вы можете использовать метод `get_messages`, передавая ID чата или канала, в котором находится сообщение, и ID сообщения, которое вы хотите получить.
Пример использования:
```python
from telethon.sync import TelegramClient
api_id = 'YOUR_API_ID'
api_hash = 'YOUR_API_HASH'
client = TelegramClient('session_name', api_id, api_hash)
async def get_message_by_id(chat_id, message_id):
try:
message = await client.get_messages(chat_id, ids=message_id)
print(message)
except Exception as e:
print(e)
with client:
client.loop.run_until_complete(get_message_by_id('channel_username', 12345))
```
Чтобы переписать ваш код для сохранения только информации о клиенте Telegram, имени канала и ID поста, вам необходимо изменить часть кода, отвечающую за сохранение сообщений. Вместо сохранения всего сообщения, вы можете сохранить только нужные данные.
Пример кода для сохранения указанных данных в локальном хранилище и базе данных:
```python
# Добавьте импорты нужных модулей, например, для SQLite3
import sqlite3
async def save_message_info(client, chat_id, message_id):
try:
message = await client.get_messages(chat_id, ids=message_id)
client_name = client.get_me().username
channel_name = message.chat.username
# Сохраните информацию в локальном хранилище или базе данных
# Пример для SQLite3
conn = sqlite3.connect('database.db')
cursor = conn.cursor()
cursor.execute("INSERT INTO messages (client_name, channel_name, message_id) VALUES (?, ?, ?)",
(client_name, channel_name, message_id))
conn.commit()
conn.close()
except Exception as e:
print(e)
with client:
client.loop.run_until_complete(save_message_info(client, 'channel_username', 12345))
```
Помимо SQLite3, вы также можете использовать другие базы данных, такие как MySQL или PostgreSQL, и сохранить данные в них. Не забудьте изменить код в соответствии с используемой вами базой данных.