[英]Split message telegram bot pyrogram
I have written an code to copy messages from source to destination chats used pyrogram python library.我已经编写了一个代码来将消息从源复制到目标聊天使用 pyrogram python 库。 Code work fine, but its making absolute copy of messages from source chat.
代码可以正常工作,但它会从源聊天中制作绝对的消息副本。
Example of my code:我的代码示例:
#!/usr/bin/env python3
from pyrogram import Client
from pyrogram import filters
# ~~~~~~ CONFIG ~~~~~~~~ #
ACCOUNT = "@account"
PHONE_NR = 'number'
API_ID = APIID
API_HASH = "APIHASH"
app = Client( ACCOUNT, phone_number=PHONE_NR, api_id=API_ID, api_hash=API_HASH )
### CHAT ID
# Variables
SOURCE_CHAT_A = chat_id
TARGET_CHAT_A = chat_id
# ~~~~~~~~~~~~~~~~~~~~~~ #
# Commands
@app.on_message(filters.chat(SOURCE_CHAT_A))
def copy_to_channel(client, message):
message.copy( chat_id=TARGET_CHAT_A )
app.run()
Is it possible to split message in pieces and print big messages from source chat as few small messages in destination chat?是否可以将消息分成几部分并将源聊天中的大消息打印为目标聊天中的少量小消息?
For example, if it is message from source chat:例如,如果是来自源聊天的消息:
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Than in destination chat will come 3 separated messages:比在目标聊天中会出现 3 条单独的消息:
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage Testmessage
My python level is absolutely not high enough, im sitting already a week with that problem and cant found a solution.我的 python 级别绝对不够高,我已经坐了一周这个问题并且找不到解决方案。 Thanks for any type of help:)
感谢任何类型的帮助:)
Say you want to split on the double newline characters, you could do it like this:假设您想拆分双换行符,您可以这样做:
@app.on_message(filters.chat(SOURCE_CHAT_A))
def copy_to_channel(client, message):
# split message text on double newlines
messages = message.text.split("\n\n")
# send each message to the target chat
for message in messages:
client.send_message(TARGET_CHAT_A, message)
@app.on_message(filters.text & filters.chat(SOURCE_CHAT_TEST))
def copy_to_channel(client, message):
if bool(message.photo) == True:
print(bool(message.photo)),
print(len(message.text)),
print("bool 1")
message.copy( chat_id=TARGET_CHAT_TEST )
if len(message.text) >= 1000:
print(bool(message.photo)),
print(len(message.text)),
print("1000+")
for i in range(0, len(message.text), 1000):
time.sleep(2)
client.send_message(
chat_id=TARGET_CHAT_TEST,
text=message.text[i:i+1000])
else:
print(bool(message.photo)),
print(len(message.text)),
print("1000> and bool false")
message.copy( chat_id=TARGET_CHAT_TEST )
app.run()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.