Python - 添加将触发POST请求的触发词

时间:2018-01-22 05:46:50

标签: python post discord

我试图制作一张Discord webhook海报,只要文件更新(添加一行)并附带一组特定字词,就会发出邮件请求。

让我们说新行有" TRIGGER WORD"然后它会触发发布请求。我已经开始使服务读取文件,但不知道如何创建触发器部分

import requests
import schedule
import time

link = 'webhook link'


def job():
    file = open('/root/rak/b7/client.log','r').read()

    payload={'content': '@everyone '}
    r = requests.post(link, data=payload)

schedule.every(1).seconds.do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

此处有效负载将包含行中的所有内容以及@everyone内容。我无法弄清楚如何做到这一点。

关于文件;它每秒更新一次(增加1-2行)。特定的触发词可能位于任何一个新行中。

1 个答案:

答案 0 :(得分:0)

执行此操作的一种简单方法是跟踪上次运行job()时文件的大小。删除那么多将给你新的部分。随着文件变大,这会变慢,但根据你的情况可能没问题。

oldSize = 0


def job():
    global oldSize

    fileContents = open('/root/rak/b7/client.log','r').read()
    newSize = len(fileContents)

    newFileContents = fileContents[oldSize : ] #delete the old stuff

    addedLines = newFileContents.split('\n') #split by lines

    for line in addedLines:
        if line.find('TRIGGER WORDS') != -1:
            payload={'content': '@everyone ' + line}
            r = requests.post(link, data=payload)

    oldSize = newSize #make oldSize have correct value next time