恢复和暂停 python 脚本telethon

问题描述

我从一开始就为我的英语道歉...

你好,我是一个新人,我在这里所做的就是我最好和最伟大的工作。当然不是我自己做的,我受到了许多其他作品的启发,论坛,论坛和论坛。在下面的程序中,如果它可以称为程序。如果可以的话,我需要做一点“暂停”和“继续”系统。我自己会做这个,但我不知道如何,我花了半天时间,尝试了各种方法。我认为它是否有效,我不知道......例如,当程序停止打印我“暂停”时,当它开始写“继续”时,我把它放......但仅此而已我们添加了这个系统后还在继续......因为程序不起作用......我不知道我错在哪里......如果有人可以帮助我,我将不胜感激...... 如果可以,请告诉我在哪里添加该程序。在中间,在开头或结尾。 就你所见,有不少导入的东西......而且我什至不确定我是否需要其中的大部分......我唯一导入的库是 Regex "re":)。

import re
from telethon import TelegramClient,sync,events
from telethon.tl.types import Channel
from telethon.tl.types import ChatForbidden
from telethon.tl.types import InputPeerChat
from telethon.tl.functions.messages import SendMessageRequest
from telethon.tl.types import PeerUser,PeerChat,PeerChannel


api_id = *******
api_hash = '***************************'

client = TelegramClient('Test',api_id,api_hash).start()

#entity_v2 = client.get_entity('searaseara') #Success

me = client.get_me()   
#print(me.stringify())


@client.on(events.NewMessage(incoming=True,pattern=r'\d*\s*\bне выкуплено\b.*\b1CALL\b|\d*\s*\bотправлено\b.*\b1CALL\b|\d*\s*\bоплачено\b.*\b1CALL\b|\d*\s*\bнекорректный\b.*\b1CALL\b|\d*\s*\bотменено\b.*\b1CALL\b|\d*\s*\bвыкуплено\b.*\b1CALL\b|\d*\s*\bотказ\b.*\b1CALL\b|Пропущеный звонок с номера\b'))
async def handler(event):
    await event.respond(message="+")

client.run_until_disconnected()

解决方法

只要使用python simple if

s = off
if s == "on":
    #Do_sth

并且您可以通过从您的客户(电报)获取消息来控制此(打开或关闭)

@client.on(events.NewMessage(pattern="turn"))
async def handler(event):
    txt = event.raw_text
    global s
    if txt == "turnon":
        s = "on"
    if txt == "turnoff":
        s = "off"
,

与此同时,我找到了一个小解决方案,如何暂停程序并让它继续运行,只是有点小问题。 例如,这个程序对包含模式中单词的消息以“+”响应......但如果在此期间程序暂停,并且有更多消息进入,程序通常应该响应,例如2,3,4,5 等等,当我把它从暂停中取出时,它会为每条消息发送加号......例如,程序用“+”响应消息“123”。下面是程序通常如何工作的一个小例子:

  1. 发件人:123
  2. 我:+
  3. 发件人:123
  4. 我:+
  5. 发件人:123
  6. 我:+
  7. 发件人:123
  8. 我:+
  9. 发件人:123
  10. 我:+

另一个例子,当程序处于暂停状态时,我在收到几条消息后将其从暂停状态中删除:

  1. 发件人:123
  2. 发件人:123
  3. 发件人:123
  4. 发件人:123
  5. 发件人:123
  6. 发件人:123
  7. 发件人:123
  8. 我:+
  9. 我:+
  10. 我:+
  11. 我:+
  12. 我:+
  13. 我:+
  14. 我:+
import re
from telethon import TelegramClient,sync,events
from telethon.tl.types import Channel
from telethon.tl.types import ChatForbidden
from telethon.tl.types import InputPeerChat
from telethon.tl.functions.messages import SendMessageRequest
from telethon.tl.types import PeerUser,PeerChat,PeerChannel


api_id = 5531856
api_hash = '94a4bf4ea16117ddf5dc5ffa61d54dbf'


###################################################
#I added this section
def debug_signal_handler(signal,frame):
    import pdb
    pdb.set_trace()
import signal
signal.signal(signal.SIGINT,debug_signal_handler)
###################################################








client = TelegramClient('Test',api_id,api_hash).start()

#entity_v2 = client.get_entity('searaseara') #Success

me = client.get_me()   
print(me.stringify())



@client.on(events.NewMessage(incoming=True,pattern=r'\d*\s*\bне выкуплено\b.*\b1CALL\b|\d*\s*\bотправлено\b.*\b1CALL\b|\d*\s*\bоплачено\b.*\b1CALL\b|\d*\s*\bнекорректный\b.*\b1CALL\b|\d*\s*\bотменено\b.*\b1CALL\b|\d*\s*\bвыкуплено\b.*\b1CALL\b|\d*\s*\bотказ\b.*\b1CALL\b|Пропущеный звонок с номера\b'))
async def handler(event):
    await event.respond(message="+")


client.run_until_disconnected()