首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分送电报bot电报

分送电报bot电报
EN

Stack Overflow用户
提问于 2021-12-21 12:13:42
回答 1查看 1K关注 0票数 0

我编写了一个代码,将消息从源复制到目标聊天,使用焦图python库。代码可以正常工作,但它可以绝对复制源聊天中的消息。

我的代码示例:

代码语言:javascript
复制
#!/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()

是否有可能将消息分割成几个片段,并将源聊天中的大消息打印为目的地聊天中很少的小消息?

例如,如果是来自源聊天的消息:

代码语言:javascript
复制
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 

在目的地聊天时,会出现3条分开的消息:

代码语言:javascript
复制
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
代码语言:javascript
复制
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  
代码语言:javascript
复制
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 

我的蟒蛇水平是绝对不够高,我已经坐了一个星期的问题,无法找到解决办法。(谢谢您的任何帮助:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-21 12:29:45

如果您想在双换行符上拆分,您可以这样做:

代码语言:javascript
复制
@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)

或者,要将消息拆分为300个字符,可以使用字符串切片。在以300递增的范围上循环以获得每个批的起始索引,然后发送切片字符串:

代码语言:javascript
复制
@app.on_message(filters.chat(SOURCE_CHAT_A))
def copy_to_channel(client, message):
    # split message into batches of 300 characters
    for i in range(0, len(message.text), 300):
        client.send_message(
            chat_id=SOURCE_CHAT_B,
            text=message.text[i:i+300]
        )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70435291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档