Этот вопрос закрыт для ответов, так как повторяет вопрос Как спарсить юзеров с коментариев к посту Telethon?
@mrdarkness

Как в Telegram (Python) получить id поста в канале, который цитировался в сообщении пользователя?

Мне надо сделать так чтобы бот определял когда на конкретный пост на канале приходит ответ. Напомню что к каждому каналу закрепляется отдельная группа чата.
Обычно сообщения приходят в формате цитируемого сообщения + текст. То есть там должен быть аттрибут с reply.

Что я пробовал:
@bot.message_handler(func=lambda message: message.chat.id == [REDACTED] and "#день_инвестора" in message.reply_to_message.text)
def investor_day(message):
    ...


Возвращается ошибка:
```AttributeError: 'NoneType' object has no attribute 'text'```

Почему? Единственное в ответе из reply что я вижу - это reply_to_message и reply_markup. Оба из них - None. Другими словами нет инфы на какой пост пришло сообщение, либо текста этого поста. Ниже приложил какой ответ приходит в объекте message. На это в документации поясняется, что `reply_to_message` должен передаваться в цитируемых сообщениях, но видимо не в этом случае.

Что я пытаюсь добиться? Нужно мне это для того чтобы бот каждый раз определял что пост, который цитируется пользователем (под которым пользователь отвечает) содержит в себе конкретный хэштег в этом посте. Далее он уже работает с информацией этих пользователей.

Искал ответ на просторах веба, не нашел ни одного подходящего ответа. Наиболее приближенным ответом что я смог найти был этот: https://stackoverflow.com/questions/64414726/how-t...

Там в случае с Telethon предлагается метод get_reply_message() но этот метод относится к действиям с объектами у которых тип контента album в моем же случае это text.

Если сократить мой вопрос до минимума: Пост на канале -> Под постом пользователь оставляет сообщение -> Бот читает текст поста через пользователя который ответил на этот пост. Как это сделать?
P.S: Можно сделать иначе, да. Поскольку мне нужна информация пользователей которые оставили сообщение под постом, можно их просить оставлять хэштег в своих сообщениях. Но заказчик не хочет просить пользователей лишний раз писать хэштеги.

{
	'content_type': 'text',
	'id': 13,
	'message_id': 13,
	'from_user':
	{
		'id': "[REDACTED]",
		'is_bot': True,
		'first_name': 'Group',
		'username': 'GroupAnonymousBot',
		'last_name': None,
		'language_code': None,
		'can_join_groups': None,
		'can_read_all_group_messages': None,
		'supports_inline_queries': None,
		'is_premium': None,
		'added_to_attachment_menu': None
	},
	'date': 1699025660,
	'chat':
	{
		'id': "[REDACTED]",
		'type': 'supergroup',
		'title': "[REDACTED]",
		'username': None,
		'first_name': None,
		'last_name': None,
		'is_forum': None,
		'photo': None,
		'bio': None,
		'join_to_send_messages': None,
		'join_by_request': None,
		'has_private_forwards': None,
		'has_restricted_voice_and_video_messages': None,
		'description': None,
		'invite_link': None,
		'pinned_message': None,
		'permissions': None,
		'slow_mode_delay': None,
		'message_auto_delete_time': None,
		'has_protected_content': None,
		'sticker_set_name': None,
		'can_set_sticker_set': None,
		'linked_chat_id': None,
		'location': None,
		'active_usernames': None,
		'emoji_status_custom_emoji_id': None,
		'has_hidden_members': None,
		'has_aggressive_anti_spam_enabled': None
	},
	'sender_chat':
	{
		'id': "[REDACTED]",
		'type': 'supergroup',
		'title': "[REDACTED]",
		'username': None,
		'first_name': None,
		'last_name': None,
		'is_forum': None,
		'photo': None,
		'bio': None,
		'join_to_send_messages': None,
		'join_by_request': None,
		'has_private_forwards': None,
		'has_restricted_voice_and_video_messages': None,
		'description': None,
		'invite_link': None,
		'pinned_message': None,
		'permissions': None,
		'slow_mode_delay': None,
		'message_auto_delete_time': None,
		'has_protected_content': None,
		'sticker_set_name': None,
		'can_set_sticker_set': None,
		'linked_chat_id': None,
		'location': None,
		'active_usernames': None,
		'emoji_status_custom_emoji_id': None,
		'has_hidden_members': None,
		'has_aggressive_anti_spam_enabled': None
	},
	'forward_from': None,
	'forward_from_chat': None,
	'forward_from_message_id': None,
	'forward_signature': None,
	'forward_sender_name': None,
	'forward_date': None,
	'is_automatic_forward': None,
	'reply_to_message': None,
	'via_bot': None,
	'edit_date': None,
	'has_protected_content': None,
	'media_group_id': None,
	'author_signature': None,
	'text': 'asDasdasdadasdasdasdadasd',
	'entities': None,
	'caption_entities': None,
	'audio': None,
	'document': None,
	'photo': None,
	'sticker': None,
	'video': None,
	'video_note': None,
	'voice': None,
	'caption': None,
	'contact': None,
	'location': None,
	'venue': None,
	'animation': None,
	'dice': None,
	'new_chat_member': None,
	'new_chat_members': None,
	'left_chat_member': None,
	'new_chat_title': None,
	'new_chat_photo': None,
	'delete_chat_photo': None,
	'group_chat_created': None,
	'supergroup_chat_created': None,
	'channel_chat_created': None,
	'migrate_to_chat_id': None,
	'migrate_from_chat_id': None,
	'pinned_message': None,
	'invoice': None,
	'successful_payment': None,
	'connected_website': None,
	'reply_markup': None,
	'message_thread_id': 2,
	'is_topic_message': None,
	'forum_topic_created': None,
	'forum_topic_closed': None,
	'forum_topic_reopened': None,
	'has_media_spoiler': None,
	'forum_topic_edited': None,
	'general_forum_topic_hidden': None,
	'general_forum_topic_unhidden': None,
	'write_access_allowed': None,
	'user_shared': None,
	'chat_shared': None,
	'json':
	{
		'message_id': 13,
		'from':
		{
			'id': "[REDACTED]",
			'is_bot': True,
			'first_name': 'Group',
			'username': 'GroupAnonymousBot'
		},
		'sender_chat':
		{
			'id': "[REDACTED]",
			'title': "[REDACTED]",
			'type': 'supergroup'
		},
		'chat':
		{
			'id': "[REDACTED]",
			'title': "[REDACTED]",
			'type': 'supergroup'
		},
		'date': 1699025660,
		'message_thread_id': 2,
		'text': 'asDasdasdadasdasdasdadasd'
	}
}
  • Вопрос задан
  • 254 просмотра
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы