Как проверить с помощью telethon открыты ли комментарии к постам в каналах Telegram
Проблема заключается в том, что я хочу пропарсить каналы по ключевым словам и в итоге парсер должен мне выдать информацию в Excel файле включающую данные о том можно ли оставлять комментарии под постом или нет.
# Фильтрация и обработка каналов
for dialog in dialogs:
if isinstance(dialog, Channel) or isinstance(dialog, Chat):
title = dialog.title
participants_count = dialog.participants_count
# Проверка ключевых слов
for keyword in keywords:
if keyword.lower() in title.lower():
# Получение информации о последних постах
messages = client.get_messages(dialog, limit=2)
if len(messages) >= 2:
views_previous = messages[0].views
views_latest = messages[1].views
else:
views_previous = 0
views_latest = 0
# Проверка возможности комментирования
can_comment = dialog.megagroup or (not dialog.broadcast and not dialog.restricted)
# Формирование ссылки на канал или группу
if isinstance(dialog, Channel):
link = f'https://t.me/{dialog.username}'
else:
link = f'https://t.me/c/{dialog.id}/{dialog.access_hash}'
# Добавление данных в Excel
sheet.append([title, 'Канал' if isinstance(dialog, Channel) else 'Группа',
link, participants_count,
views_previous, views_latest, 'Да' if can_comment else 'Нет'])
break
# Сохранение Excel-файла
wb.save('channels.xlsx')
Опять же повторюсь, что проблема заключается в том, что код, получается, реагирует только на чаты и пишет только для чатов, что доступна отправка сообщений, но он не видит возможность отправки сообщений под постами в Telegram каналах
На скриншоте ниже можно заметить, как парсер указывает только Чаты как те каналы, в которых можно отправлять сообщения
Вот библиотеки, которые у меня импортированы:
import openpyxl
from telethon.sync import TelegramClient
from telethon.tl.types import Channel, Chat, InputPeerEmpty
from telethon.tl.functions.messages import GetDialogsRequest
from telethon.errors import SessionPasswordNeededError
Вот создание Exel-файла:
# Создание эксель-файла и заголовков столбцов
wb = openpyxl.Workbook()
sheet = wb.active
sheet.append(['Название канала', 'Тип', 'Ссылка на канал', 'Количество участников',
'Просмотры под предпоследним постом', 'Просмотры под последним постом', 'Можно комментировать'])
Очень сильно нужна помощь ребята, прошу откликнуться на зов!
Источник: Stack Overflow на русском