qrcode
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple qrcode
import qrcode
from PIL import Image
# 要包含在二维码中的文本内容
text_to_encode = "远程文字生成二维码内容"
# 创建二维码对象
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
# 将文本内容添加到二维码中
qr.add_data(text_to_encode)
qr.make(fit=True)
# 创建Pillow(PIL)图像对象
img = qr.make_image(fill_color="black", back_color="white")
# 显示二维码图像
img.show()
#encoding:utf-8
import os
import datetime
import time
import subprocess
import datetime
path = r'C:\Users\datagrand.WIN-3MDLLMRCBM4\.datagrand\robot\flowLogs'
robot_path = r"C:\Users\datagrand.WIN-3MDLLMRCBM4\AppData\Local\Programs\Data Grand\Data Grand Robot\Data Grand Robot.exe"
robot_app_name = "Data Grand Robot.exe"
rec_user = '534640040@qq.com'
def get_ip():
import datetime
import socket
# 函数 gethostname() 返回当前正在执行 Python 的系统主机名
res = socket.gethostbyname(socket.gethostname())
return res
# 定义一个函数,用于pillow截取电脑全屏并返回路径
def capture_screen():
# 导入相关模块
from PIL import ImageGrab
import time
"""
返回值: 截图文件的路径
"""
# 使用ImageGrab.grab()方法截取全屏
screenshot = ImageGrab.grab()
# 生成截图文件的路径,以当前时间戳为文件名
path = str(int(time.time())) + ".png"
# 保存截图文件
screenshot.save(path)
# 返回截图文件的路径
return path
# 调用函数,打印返回值
# 定义一个函数,用于发邮件和发图片,用qq邮箱发送,图片在正文显示
def send_email_with_image(receiver, subject, content, image_file):
sender = '534640040@qq.com'
password = 'zkddrplhdfabbjah'
# 导入相关模块
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
"""
sender: 发件人邮箱
password: 发件人邮箱密码或授权码
receiver: 收件人邮箱
subject: 邮件主题
content: 邮件内容
image_file: 图片文件名
"""
# 创建一个带附件的邮件实例
msg = MIMEMultipart()
msg["From"] = sender # 设置发件人
msg["To"] = receiver # 设置收件人
msg["Subject"] = subject # 设置主题
# 创建邮件正文,使用HTML格式,并插入邮件内容和图片
body = f"""
<p>{content}</p>
<p>Here is the image:</p>
<p><img src="cid:image1"></p>
"""
msg.attach(MIMEText(body, "html")) # 将正文添加到邮件实例中
# 指定图片文件的路径,打开并读取为二进制数据
fp = open(image_file, "rb")
img = MIMEImage(fp.read())
fp.close()
# 定义图片的ID,在HTML文本中引用
img.add_header("Content-ID", "<image1>")
msg.attach(img) # 将图片添加到邮件实例中
# 创建一个SMTP对象,连接到QQ邮箱的服务器
smtp = smtplib.SMTP_SSL("smtp.qq.com", 465)
smtp.login(sender, password) # 登录发件人邮箱
smtp.sendmail(sender, receiver, msg.as_string()) # 发送邮件
smtp.quit() # 退出SMTP对象
print("Email sent successfully.") # 打印发送成功的提示信息
def write_log(message):
# 获取当前日期
today = datetime.date.today()
# 格式化日期作为文件名
file_path = r'E:\logs'
if not os.path.exists(file_path):
os.makedirs(file_path)
file_name = os.path.join(file_path, today.strftime("%Y-%m-%d") + ".txt")
# 获取当前时间戳
current_time = datetime.datetime.now().strftime("%H:%M:%S")
# 拼接带时间戳的日志内容
log_message = f"[{current_time}] {message}\n"
# 将日志内容追加写入文件
with open(file_name, "a") as file:
file.write(log_message)
# 示例用法
files = os.listdir(path)
flag = 0
for file in files:
file_path = os.path.join(path, file)
# 获取文件的创建时间
created_time = os.path.getctime(file_path)
# 将创建时间转换为日期对象
created_date = datetime.datetime.fromtimestamp(created_time).date()
# 获取今天的日期
today = datetime.date.today()
# 判断创建日期是否等于今天的日期
if created_date == today:
# print("文件的创建时间是今天!")
flag = 1
break
else:
# print("文件的创建时间不是今天。")
pass
if flag == 1:
print("天机器人正常, 有今天日志%s" % path)
write_log("天机器人正常, 有今天日志%s" % path)
else:
print("需要重启机器人, 没有今天日志%s" % path)
send_email_with_image(rec_user, get_ip() + '需要重启机器人,', "需要重启机器人, 没有今天日志%s" % path, capture_screen())
write_log("需要重启机器人, 没有今天日志%s" % path)
subprocess.Popen('taskkill /f /t /im "%s"' % robot_app_name)
time.sleep(2)
subprocess.Popen('"%s"' % robot_path)
def is_app_running(robot_app_name):
result = subprocess.run("tasklist", capture_output=True, text=True)
return robot_app_name in result.stdout
if is_app_running(robot_app_name):
print(robot_app_name + "应用程序已经在运行中。")
write_log(robot_app_name + "应用程序已经在运行中。")
else:
print(robot_app_name + "应用程序未启动。")
write_log(robot_app_name + "应用程序未启动。")
subprocess.Popen('"%s"' % robot_path)
send_email_with_image(rec_user, get_ip() + '机器人程序未启动', "需要重启机器人", capture_screen())
write_log("结束")
# os.system("'%s'" % r'C:\Users\datagrand.WIN-3MDLLMRCBM4\AppData\Local\Programs\Data Grand\Data Grand Robot\Data Grand Robot.exe')
http://nas.yys.zone:8088/s/54MzPEft2fgkdfr
本文作者: 永生
本文链接: https://yys.zone/detail/?id=305
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
发表评论
评论列表 (0 条评论)
暂无评论,快来抢沙发吧!