Как проверить с помощью telethon открыты ли комментарии к постам в каналах Telegram

Рейтинг: 0Ответов: 0Опубликовано: 30.05.2023

Проблема заключается в том, что я хочу пропарсить каналы по ключевым словам и в итоге парсер должен мне выдать информацию в 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(['Название канала', 'Тип', 'Ссылка на канал', 'Количество участников',
              'Просмотры под предпоследним постом', 'Просмотры под последним постом', 'Можно комментировать'])

Очень сильно нужна помощь ребята, прошу откликнуться на зов!

Ответы

Ответов пока нет.