/
Rustam116
/
Parser
Обзор
Документация
Войти
/
Rustam116
/
Parser
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
code.py
65 строк
2 KB
Rustam116
update code.py
24 июн 2025, 19:09
24 июн 2025, 19:09
98f9b29
Код
Авторство
О чём код?
import requests from datetime import datetime class TelegramGroupReader: def __init__(self, bot_token: str): self.bot_token = bot_token self.base_url = f"https://api.telegram.org/bot{self.bot_token}/" def get_group_messages(self, chat_id: str, limit: int = 100, offset: int = 0): """ Получает сообщения из группы/чата :param chat_id: ID чата (например, "@group_username" или -100123456789) :param limit: Максимальное количество сообщений (1-100) :param offset: Смещение (для пагинации) :return: Список сообщений или None при ошибке """ params = { 'chat_id': chat_id, 'limit': min(max(limit, 1), 100), 'offset': offset } try: response = requests.get( f"{self.base_url}getUpdates", params=params, timeout=10 ) response.raise_for_status() data = response.json() if not data.get('ok', False): print(f"Ошибка API: {data.get('description')}") return None messages = [] for update in data['result']: if 'message' in update: msg = update['message'] if str(msg['chat']['id']) == chat_id.replace('@', ''): messages.append({ 'id': msg['message_id'], 'date': datetime.fromtimestamp(msg['date']), 'text': msg.get('text', ''), 'sender': msg.get('from', {}).get('first_name', 'Unknown') }) return messages except requests.exceptions.RequestException as e: print(f"Ошибка запроса: {e}") return None if __name__ == '__main__': bot_token = 'token' group_id = 'group' reader = TelegramGroupReader(bot_token) messages = reader.get_group_messages(group_id, limit=100) if messages: for msg in messages: print(f"{msg['date']} | {msg['sender']}: {msg['text']}")