Форум программистов, компьютерный форум, киберфорум
Python: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 06.03.2023
Сообщений: 2
Telegram Bot

Бот не копирует сообщения с канала в группы

06.03.2023, 14:33. Показов 1027. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Код запущен интерпретатором. Ошибок в консоль не выдает. Собщения не копирует. Я убирал временную задержку и лимит на к-во сообщений. Ничего.
Добавил бота администратором в канал и группы со всеми правами. Они тестовые.
В @BotFather получил токен. Он тестовый. Зашел в настройки бота в @BotFather->nameBot->setting
allow grup
enabled bot can be added to groups.

Python 3.11.2 (tags/v3.11.2:878ead1, Feb 7 2023, 16:38:35) [MSC v.1934 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.

Windows 10 x64

C:\Users\User>pip list
Package Version
--------------------- -----------
anyio 3.6.2
APScheduler 3.6.3
certifi 2022.12.7
charset-normalizer 3.0.1
h11 0.14.0
h2 4.1.0
hpack 4.0.0
httpcore 0.16.3
httpx 0.23.3
hyperframe 6.0.1
idna 3.4
keyboard 0.13.5
pip 23.0.1
pyaes 1.6.1
pyasn1 0.4.8
pycodestyle 2.10.0
pyTelegramBotAPI 4.10.0
python-dotenv 1.0.0
python-telegram-bot 13.5
pytz 2022.7.1
pytz-deprecation-shim 0.1.0.post0
requests 2.28.2
rfc3986 1.5.0
rsa 4.9
setuptools 65.5.0
six 1.16.0
sniffio 1.3.0
Telethon 1.27.0
tornado 6.2
tzdata 2022.7
tzlocal 4.2
urllib3 1.26.14
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Updater, CommandHandler, CallbackQueryHandler, MessageHandler, Filters
 
TOKEN = "***"
delay = 60*60 # 1 час в секундах
num_messages = 5
 
channel_name = '@daqwuy'
chat_names = ['@fbfrr', '@dahjjkj', '@awrghj']
 
import time
from telegram import ParseMode
from telegram.error import TelegramError
 
def send_channel_messages_to_groups(channel_name, chat_names, num_messages=5, delay=60):
    bot = telegram.Bot(TOKEN)
    # Get the channel ID from the channel name
    channel_id = bot.get_chat(channel_name).id
 
    # Loop through each chat and send messages from the channel
    for chat_name in chat_names:
        try:
            # Get the chat ID from the chat name
            chat_id = bot.get_chat(chat_name).id
 
            # Initialize a message counter and delayed message counter
            message_counter = 0
            delayed_message_counter = 0
 
            # Loop through the messages in the channel
            for message in bot.get_chat_messages(chat_id=channel_id):
                # If the message is not a media message, send it to the chat
                if not message.media:
                    bot.send_message(chat_id=chat_id, text=message.text, parse_mode=ParseMode.HTML)
 
                    # Increment the message counter and delayed message counter
                    message_counter += 1
                    delayed_message_counter += 1
 
                    # If we have reached the message limit or the delayed message limit, pause for the delay time
                    if message_counter == num_messages or delayed_message_counter == 5:
                        time.sleep(delay)
                        delayed_message_counter = 0
 
            # Send a final message indicating that all messages have been sent
            bot.send_message(chat_id=chat_id, text="All messages from the channel have been sent to this group.")
 
        # Catch any errors and print them to the console
        except TelegramError as e:
            print(f"Error sending messages to chat {chat_name}: {e}")
 
 
###################################################################################
def start(update, context):
    keyboard = [
        [InlineKeyboardButton("Количество сообщений", callback_data='num_messages')],
        [InlineKeyboardButton("Задержка между сообщениями", callback_data='delay')]
    ]
    reply_markup = InlineKeyboardMarkup(keyboard)
    update.message.reply_text('Привет! Выбери, что ты хочешь изменить:', reply_markup=reply_markup)
 
def button(update, context):
    query = update.callback_query
    if query.data == 'num_messages':
        query.answer()
        query.message.reply_text(f"Текущее количество сообщений: {num_messages}")
        query.message.reply_text("Введите новое количество сообщений (от 1 до 100):")
    elif query.data == 'delay':
        query.answer()
        query.message.reply_text(f"Текущая задержка между сообщениями: {delay/60} минут.")
        query.message.reply_text("Введите новую задержку между сообщениями (в формате чч:мм):")
 
def set_num_messages(update, context):
    new_num_messages = int(update.message.text)
    global num_messages
    num_messages = new_num_messages
    update.message.reply_text(f"Количество сообщений сохранено: {num_messages}")
 
def set_delay(update, context):
    new_delay = update.message.text
    try:
        hours, minutes = map(int, new_delay.split(':'))
        if hours not in range(24) or minutes not in range(60):
            raise ValueError
        global delay
        delay = (hours*60 + minutes)*60
        update.message.reply_text(f"Задержка между сообщениями сохранена: {hours} часов {minutes} минут.")
    except ValueError:
        update.message.reply_text("Неправильный формат времени. Введите время в формате чч:мм (от 00:00 до 23:59).")
 
updater = Updater(TOKEN, use_context=True)
dispatcher = updater.dispatcher
 
dispatcher.add_handler(CommandHandler('start', start))
dispatcher.add_handler(CallbackQueryHandler(button))
dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command & Filters.regex('^\d+$'), set_num_messages))
dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command & Filters.regex('^\d{2}:\d{2}$'), set_delay))
 
updater.start_polling()
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.03.2023, 14:33
Ответы с готовыми решениями:

Бот который записывает все сообщения с канала в группе дискорда, изменяет их, и отправляет обратно
Как сделать запись всех сообщений в файл, изменение только определенной части сообщений (к примеру все числа разделить на 2, не затронув...

Как переслать сообщения из группы в мой чат бот в телеграмме?
Всем привет, у меня не работает код при пересылки смс с группы в мой тг бот, группа моя, я добавила чат бота администратором, что я пишу не...

Смена типа канала бот Telegram
Добрый день. Такой вопрос. Возможно ли с помощью бота в телеграм (библиотек telebot, telethon, pyrogram и т.д.) сменить тип канала с...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.03.2023, 14:33
Помогаю со студенческими работами здесь

Проверить является ли бот администратором Telegram канала
Как узнать является ли бот администратором какого либо Telegram канала. грубо говоря (checksubchannel - проверка на кем является юзер в...

Автоматический переход с канала на бот, deep link, перехват
Всем коллегам по цеху двс! Столкнулся со следующей проблемой в написании бота - не могу разобраться как сделать автоматический переход с...

Telebot. Как скопировать пост из канала, где бот является админом?
Всем привет! Создал 2 канала: test1 и test2. В обоих добавил бота в качестве администратора. Задача: когда на канале test1...

Бот для отправки сообщений с одного канала на другой по ключевым словам
Мне нужно написать телеграм бота на питоне для отправки сообщений с одного канала на другой по ключевым словам. Для написания бота и...

Отправка сообщения из одного канала в другой
Приветствую. Может кто знает, как допустим используя команду '!ad ', чтобы введённый текст в виде аргумента к команде '!ad' выводился во...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru