Отправка сообщения в канал Telegram с помощью Python

Есть скрипт для отправки контента в мой чат но перед отправкой он отправляет пост в избранное можно сделать чтобы он отправлял сразу на канал.

import asyncio

import telethon.events.newmessage
from telethon import TelegramClient
from telethon import events
import db
import pickle

db = db.SQLither("db.db")
api_id = 156...
api_hash = "590f0...."
session_name = "anon.session"
titles = ['https://t.me/канал']
channel_to = "@fo"


async def main():
    asyncio.set_event_loop(asyncio.new_event_loop())

    client = TelegramClient(session_name, api_id, api_hash)

    async with client:

        ent_channel_to = await client.get_entity(channel_to)
        me = await client.get_me()

        @client.on(events.NewMessage())
        async def handler_ex(event: telethon.events.newmessage.NewMessage.Event):
            try:
                message_text = event.message.message
                msg = event.message
                if event.is_private:
                    if msg.peer_id.user_id == me.id:
                        if message_text.startswith("/accept"):
                            if len(message_text.split(" ")) == 2:
                                post = db.get_post(message_text.split(" ")[1])
                                if post:
                                    if post[3] == 0:
                                        if post[2]:
                                            pck = pickle.loads(post[2])
                                            await client.send_message(ent_channel_to, post[1], file=pck)
                                        else:
                                            await client.send_message(ent_channel_to, post[1])

                                        db.set_accepted(post[0], 1)
                                        await client.send_message(me, "Пост успешно отправлен :)")
                                    else:
                                        await client.send_message(me, "Пост уже обработан!")
                            else:
                                await client.send_message(me, "Вы ввели в неправильном формате!")
                        elif message_text.startswith("/decline"):
                            if len(message_text.split(" ")) == 2:
                                post = db.get_post(message_text.split(" ")[1])
                                if post:
                                    if post[3] == 0:
                                        db.set_accepted(post[0], 1)
                                        await client.send_message(me, "Пост успешно отклонён :)")
                                    else:
                                        await client.send_message(me, "Пост уже обработан!")
                            else:
                                await client.send_message(me, "Вы ввели в неправильном формате!")
            except Exception as e:
                print(f"Ошибка: {e}")

        @client.on(events.NewMessage())
        async def handler(event: telethon.events.newmessage.NewMessage.Event):
            try:
                message_text = event.message.message
                msg = event.message
                if event.is_channel:
                    chat_id = event.message.peer_id.channel_id
                    ent = await client.get_entity(chat_id)
                    if f"https://t.me/{ent.username}" in titles:
                        if msg.media:
                            picklestring = pickle.dumps(msg.media)
                            id_ex = db.create_post(message_text, picklestring)[0]
                            await client.send_message(me, f"Новый пост! Текст: {message_text}\n\nПринять: /accept {id_ex}\nОтклонить: /decline {id_ex}", file=msg.media)
                        else:
                            id_ex = db.create_post(message_text, None)[0]
                            await client.send_message(me, f"Новый пост! Текст: {message_text}\n\nПринять: /accept {id_ex}\nОтклонить: /decline {id_ex}")
            except Exception as e:
                print(f"Ошибка: {e}")

        await client.run_until_disconnected()


ex = asyncio.new_event_loop()
ex.run_until_complete(main())

Ответы (0 шт):