Skip to content
This repository has been archived by the owner on Jan 20, 2022. It is now read-only.

增加“通用”模块的提醒方式 #25

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion currency/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,14 @@ cpdaily:
- default:
title: 本人承诺以上所填报的全部内容均属实、准确,不存在任何隐瞒与不实的情况,更无遗漏之处。
type: 2
value: 是
value: 是

Info:
ServerChan: # 填写Server酱的SCKEY
Qsmg: # 填写Qsmg酱的SCKEY
Email:
enable: true
server: smtp.exmail.qq.com # 填写邮件的smtp服务器
port: 465 # 填写邮件服务器的端口号
account: '' # 邮件服务器登录用户名
password: '' # 邮件服务器登录密码
76 changes: 67 additions & 9 deletions currency/index.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@

############配置############
Cookies = {
'acw_tc': '',
'MOD_AUTH_CAS': '',
'acw_tc': '需要填写内容!!!',
'MOD_AUTH_CAS': '需要填写内容!!!',
}
sessionToken = ''
CpdailyInfo = ''
sessionToken = '需要填写内容!!!'
CpdailyInfo = '需要填写内容!!!'
############配置############

# 全局
Expand Down Expand Up @@ -68,6 +68,7 @@ def fillForm(form):
default = config['cpdaily']['defaults'][sort - 1]['default']
if formItem['title'] != default['title']:
log('第%d个默认配置不正确,请检查' % sort)
log(formItem['title'] + default['title'])
exit(-1)
# 文本直接赋值
if formItem['fieldType'] == 1:
Expand Down Expand Up @@ -158,19 +159,72 @@ def submitForm(formWid, address, collectWid, schoolTaskWid, form):
return msg


title_text = '今日校园疫结果通知'

# 发送邮件通知
def sendMessage(send, msg):
if send != '':
log('正在发送邮件通知。。。')
res = requests.post(url='http://www.zimo.wiki:8080/mail-sender/sendMail',
data={'title': '今日校园疫情上报自动提交结果通知', 'content': getTimeStr() + str(msg), 'to': send})
data={'title': title_text, 'content': getTimeStr() + str(msg), 'to': send['email']})

code = res.json()['code']
if code == 0:
log('发送邮件通知成功。。。')
else:
log('发送邮件通知失败。。。')
log(res.json())

def sendEmail(send,msg):
my_sender= config['Info']['Email']['account'] # 发件人邮箱账号
my_pass = config['Info']['Email']['password'] # 发件人邮箱密码
my_user = send['email'] # 收件人邮箱账号,我这边发送给自己
try:
msg=MIMEText(getTimeStr() + str(msg),'plain','utf-8')
msg['From']=formataddr(["结果通知",my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg['To']=formataddr(["你",my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg['Subject']=title_text # 邮件的主题,也可以说是标题

server=smtplib.SMTP_SSL(config['Info']['Email']['server'], config['Info']['Email']['port']) # 发件人邮箱中的SMTP服务器,端口是25
server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码
server.sendmail(my_sender,[my_user,],msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
server.quit() # 关闭连接
except Exception: # 如果 try 中的语句没有执行,则会执行下面的 ret=False
log("邮件发送失败")
else: print("邮件发送成功")

# server酱通知
def sendServerChan(msg):
log('正在发送Server酱。。。')
res = requests.post(url='https://sc.ftqq.com/{0}.send'.format(config['Info']['ServerChan']),
data={'text': title_text, 'desp': getTimeStr() + "\n" + str(msg)})
code = res.json()['errmsg']
if code == 'success':
log('发送Server酱通知成功。。。')
else:
log('发送Server酱通知失败。。。')
log('Server酱返回结果'+code)

# Qmsg酱通知
def sendQmsgChan(msg):
log('正在发送Qmsg酱。。。')
res = requests.post(url='https://qmsg.zendee.cn:443/send/{0}'.format(config['Info']['Qsmg']),
data={'msg': title_text + '\n时间:' + getTimeStr() + "\n 返回结果:" + str(msg)})
code = res.json()['success']
if code:
log('发送Qmsg酱通知成功。。。')
else:
log('发送Qmsg酱通知失败。。。')
log('Qmsg酱返回结果'+code)

# 综合提交
def InfoSubmit(msg, send=None):
if(None != send):
if(config['Info']['Email']['enable']): sendEmail(send,msg)
else: sendMessage(send, msg)
if(config['Info']['ServerChan']): sendServerChan(msg)
if(config['Info']['Qsmg']): sendQmsgChan(msg)


# 腾讯云函数启动函数
def main_handler(event, context):
Expand All @@ -182,6 +236,7 @@ def main_handler(event, context):
params = queryForm()
if str(params) == 'None':
log('获取最新待填写问卷失败,可能是辅导员还没有发布。。。')
InfoSubmit('没有新问卷')
exit(-1)
log('查询最新待填写问卷成功。。。')
log('正在自动填写问卷。。。')
Expand All @@ -192,16 +247,18 @@ def main_handler(event, context):
params['schoolTaskWid'], form)
if msg == 'SUCCESS':
log('自动提交成功!')
sendMessage(user['email'], '自动提交成功!')
InfoSubmit('自动提交成功!', user)
elif msg == '该收集已填写无需再次填写':
log('今日已提交!')
InfoSubmit('今日已提交!')
else:
log('自动提交失败。。。')
log('错误是' + msg)
sendMessage(user['email'], '自动提交失败!错误是' + msg)
InfoSubmit('自动提交失败!错误是' + msg, user)
exit(-1)
except:
return 'auto submit fail.'
except Exception as e:
InfoSubmit("出现问题了!"+str(e))
return e
else:
return 'auto submit success.'

Expand All @@ -211,3 +268,4 @@ def main_handler(event, context):
print(main_handler({}, {}))
# for user in config['users']:
# log(getCpdailyApis(user))

12 changes: 6 additions & 6 deletions index.py
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ def sendMessage(send, msg):
if send != '':
log('正在发送邮件通知。。。')
res = requests.post(url='http://www.zimo.wiki:8080/mail-sender/sendMail',
data={'title': title_text, 'content': getTimeStr() + str(msg), 'to': send})
data={'title': title_text, 'content': getTimeStr() + str(msg), 'to': send['email']})

code = res.json()['code']
if code == 0:
Expand All @@ -289,11 +289,11 @@ def sendMessage(send, msg):
def sendEmail(send,msg):
my_sender= config['Info']['Email']['account'] # 发件人邮箱账号
my_pass = config['Info']['Email']['password'] # 发件人邮箱密码
my_user = send # 收件人邮箱账号,我这边发送给自己
my_user = send['email'] # 收件人邮箱账号,我这边发送给自己
try:
msg=MIMEText(getTimeStr() + str(msg),'plain','utf-8')
msg['From']=formataddr(["FromRunoob",my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg['To']=formataddr(["FK",my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg['From']=formataddr(["结果通知",my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg['To']=formataddr(["",my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg['Subject']=title_text # 邮件的主题,也可以说是标题

server=smtplib.SMTP_SSL(config['Info']['Email']['server'], config['Info']['Email']['port']) # 发件人邮箱中的SMTP服务器,端口是25
Expand Down Expand Up @@ -362,15 +362,15 @@ def main_handler(event, context):
params['schoolTaskWid'], form, session, apis['host'])
if msg == 'SUCCESS':
log('自动提交成功!')
InfoSubmit('自动提交成功!', user['user']['email'])
InfoSubmit('自动提交成功!', user['user'])
elif msg == '该收集已填写无需再次填写':
log('今日已提交!')
# InfoSubmit('今日已提交!', user['user']['email'])
InfoSubmit('今日已提交!')
else:
log('自动提交失败。。。')
log('错误是' + msg)
InfoSubmit('自动提交失败!错误是' + msg, user['user']['email'])
InfoSubmit('自动提交失败!错误是' + msg, user['user'])
exit(-1)
else:
log('模拟登陆失败。。。')
Expand Down