因此,我编写了一个脚本来汇总一些新闻通讯并通过 Telegram 发送给我。该脚本本身运行完美。现在我尝试每天早上 7 点通过 Ubun 上的 crontab 运行此脚本...
因此,我编写了一个脚本来汇总一些新闻通讯并通过 Telegram 发送给我。该脚本本身运行完美。现在,我尝试每天早上 7 点通过 Ubunutu 服务器上的 crontab 运行此脚本。日志文件看起来不错,我在脚本中使用的每个 print() 都正常显示而没有错误,但它不会发送消息。
我的 Crontab 命令:
00 12 * * * DISPLAY=:0 /usr/bin/python3 /root/data/App/Briefing/main.py >> /home/main.log &2>1
Python 脚本:
主程序
import ai as AiHandler
import mail as MailHandler
import send as Telegram
import pandas as pd
from datetime import date
def start():
files = MailHandler.scanEmails()
files = AiHandler.summarize(files)
print(files)
data = pd.read_csv('checkpoint.csv', sep=';')
checkpoint = createMsg(data)
s = f"morgentliches Briefing vom {date.today().strftime("%d.%m.%Y")}".replace(".", "\\.")
s += "\n\n\n *Die* *Lage* *am* *Morgen* *\\-* *Spiegel*\n\n\n" + createMsg(pd.read_csv('spiegel.csv', sep=';'))
s += "\n\n\n *Berlin* *\\-* *Tagesspiegel* *Checkpoint*\n\n\n" + checkpoint
s += "\n\n\n *Tech* *Update* *\\-* *ManagerMagazin* \n\n\n" + createMsg(pd.read_csv('manager.csv', sep=';'))
Telegram.sendMessage(s)
def createMsg(data):
s = ""
for i in range(5):
thema = data['Thema'][i].replace('*', '\\*')
zsm = data['Zusammenfassung'][i].replace('*', '\\*')
s += "\t" + "*" + thema + "*" + "\n"
s += zsm + "\n"
s = s.replace("-", "\\-")
s = s.replace(".", "\\.")
s = s.replace("(", "\\(")
s = s.replace(")", "\\)")
#s = s.replace("*", "\\*")
s = s.replace("!", "\\!")
return s
start()
发送.py
import telebot
def sendMessage(msg):
bot = telebot.TeleBot("XXXXXX")
bot.send_message(chat_id="@morgenbriefing", text=msg, parse_mode="MarkdownV2")
我尝试将 DISPLAY:=0 添加到 crontab 命令中,但没有帮助
我有示例日期(必须是 RFC3339 格式)2021-07-23T14:07:21Z接下来有一个端点需要该日期让我们说/setdateNext我想使用另一个端点验证它是否设置正确...
我有示例日期(必须是 RFC3339 格式) 2021-07-23T14:07:21Z
接下来有一个端点需要该日期,比如说/setdateNext,我想使用另一个端点/getdate作为示例来验证它是否设置正确。问题是第二个端点返回这个日期,因为它 2021-07-23T16:07:21+02:00
实际上是相同的日期,但它的字符串不同,所以我不能简单地在机器人框架中比较这两个。是否有任何机器人框架关键字来创建两个日期对象,当我们比较它们的值时它们会相同?
编辑:
这怎么可能?
Documentation:
Fails if the given objects are unequal.
Start / End / Elapsed: 20240513 21:06:22.031 / 20240513 21:06:22.031 / 00:00:00.000
21:06:22.031 DEBUG Argument types are:
<class 'datetime.datetime'>
<class 'datetime.datetime'>
21:06:22.031 FAIL 2021-07-23 14:07:21+02:00 != 2021-07-23 12:07:21
我怎样才能比较两个日期时间对象,因为它们不是字符串???
另一个大问题 xDDD
def main():
d1 ='2021-07-23T14:07:21+00:00'
d2='2021-07-23T14:07:21Z'
res = compare_rfc_dates(d1, d2)
print(res)
印刷:
2021-07-23 14:07:21+00:00 2021-07-23 14:07:21
False
与日期时间对象进行比较。有人可以解释一下这是什么意思吗?