Здравствуйте! Пытаюсь переделать телеграмм бота с github, под собственные нужды, подскажите, что нужно изменить/ убрать, что бы:
1. Из канала донора парсились все посты, а не только новые ?
2. Что нужно поменять, что бы все сообщения полученные из чата делились на 5 частей и публиковались ( сейчас сделана логика в которой, каждый пост попадает на модерацию, если постов много, то это становится не удобно для постинга)
Логика бота: Бот парсит данные с канала донора и пересылает их в канал модерации, затем после подтверждения публикует на мой канал пост.
Ссылка на репозиторий
from pyrogram import Client, filters
from datetime import datetime
import os
import sys
base_dir = os.path.abspath(os.path.join(os.path.dirname('bot_grabber.py'), '..'))
sys.path.append(base_dir)
from sql.sql import SQL
# api_id = os.getenv(ID )
# api_hash = os.getenv("Hash api")
api_id = os.getenv('API_ID')
api_hash = os.getenv('API_HASH')
app = Client('bot_python', api_id, api_hash)
bd = SQL('../bd.db')
@app.on_message(filters.chat(bd.get_donor()))
def get_post(client, message):
username = message.chat.username
message_id = message.message_id
if not bd.message_id_exists(username, message_id):
bd.add_message_id(username, message_id)
# получение последнего ROWID
for a in bd.get_last_rowid():
last_id = a[0]
# перессылка поста на модерку
message.forward(bd.get_moder())
client.send_message(bd.get_moder(), last_id)
@app.on_message(filters.chat(bd.get_moder()))
def send_post(client, message):
# получаем запись в таблице
for item in bd.get_data_in_table(message):
username = item[1]
msg_id = item[1]
send = app.get_messages(username, msg_id)
# send.forward(bd.get_channel(), as_copy=True)
send.copy(bd.get_channel())
if __name__ == '__main__':
print(datetime.today().strftime(f'%H:%M:%S | Bot Telegram-Grabber launched.'))
app.run()