Для определения того, пишет ли пользователь от имени канала или анонимного администратора группы в Telegram, вы можете использовать атрибут `from_user` объекта сообщения. Если это сообщение было отправлено от имени канала или администратора группы, то у пользователя не будет имени или никнейма, вместо этого будет имя канала или специальный объект User с атрибутом `is_bot`, установленным в True.
Чтобы правильно обработать и добавить в базу данных пользователей, пишущих от имени канала или анонимного администратора группы, вам нужно проверить атрибуты сообщения и сохранить соответствующую информацию в базе данных. Вы можете сохранить ID пользователя (атрибут `id` объекта User) и его никнейм (атрибут `username` объекта User) в базу данных, чтобы в дальнейшем можно было отличить их друг от друга.
Пример кода для обработки сообщений и добавления пользователей в базу данных в Telegram боте с использованием SQLite3 и библиотеки telebot:
```python
import telebot
import sqlite3
# Создаем подключение к базе данных SQLite
conn = sqlite3.connect('users.db')
cursor = conn.cursor()
# Создаем таблицу для пользователей
cursor.execute('''CREATE TABLE IF NOT EXISTS users
(id INTEGER PRIMARY KEY, username TEXT)''')
conn.commit()
# Инициализируем бота
bot = telebot.TeleBot('YOUR_TOKEN')
@bot.message_handler(func=lambda message: message.chat.type in ['supergroup', 'channel'])
def handle_channel_message(message):
if message.from_user.is_bot:
# Сообщение отправлено от имени канала или анонимного администратора группы
user_id = message.from_user.id
username = 'Channel or Admin'
else:
# Сообщение отправлено от обычного пользователя
user_id = message.from_user.id
username = message.from_user.username
# Добавляем пользователя или канал в базу данных
cursor.execute('INSERT INTO users VALUES (?,?)', (user_id, username))
conn.commit()
bot.polling()
```
Это общий пример, который показывает, как можно обрабатывать сообщения от каналов или администраторов групп и добавлять их в базу данных в Telegram боте. Вам может потребоваться дополнить его в соответствии с вашими потребностями и логикой работы бота. Надеюсь, эта информация будет полезной для вас. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать. Удачи!