文章目录
- 前言
- 效果如下:
- 任务计划程序
- 其他
- 签到代码(更新如下)
前言
【github action+python】完成定时任务并推送(学会自制)(这里的github上这个glados签到不能用了,glados上的部分功能也变了,这里代码也跟着变一下。)
总是忘记给glados签到,试用了一下电脑自带的任务计划程序,给我每天打卡。
效果如下:
在使用这个签到的前提为:
任务计划程序
1、设计如下:win+R :输入:taskschd.msc
用法如下:Windows 系统如何定时运行 Python 程序或脚本
2、遇到的问题:
在这个属性里修改时,出现:一个或多个指定的参数无效
解决:解决任务计划程序出错一个或多个指定的参数无效
注意:这里选择一个人头的。
我修改为如下:
常规下:
条件如下:
设置如下:
其他
点击运行后终端一闪而过,可能程序运行完就结束了。
其他可能报错参考:
windows计划任务所遇到的闪退、触发器没有按时执行的坑
签到代码(更新如下)
此处:
cookie、加签secret、授权码key、为个人隐私,均已修改。(如何得到见:【github action+python】完成定时任务并推送(学会自制))
EMAIL_ADDRESS 在使用时也要修改。
import requests
import json
## qq与钉钉
import time
import hmac
import hashlib
import base64
import urllib.parse
#钉钉机器人
def dingding(mobile,text):
timestamp = str(round(time.time() * 1000))
#加签
secret = 'SECe875a893333f66767cda863bd122e01ca9214b38f7120b2d1dd7d9f'
secret_enc = secret.encode('utf-8')
string_to_sign = '{}\n{}'.format(timestamp, secret)
string_to_sign_enc = string_to_sign.encode('utf-8')
hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
#Webhook
Webhook = "https://oapi.dingtalk.com/robot/send?access_token=5efbd2e95361045ae2ef9c6e637ed6dce1030234c573021eeefe148aac9f68d5"
url = Webhook + "×tamp={}&sign={}".format(timestamp, sign)
headers = {
'Content-Type': 'application/json'
}
json ={
"at": {
"atMobiles":[
mobile
],
"atUserIds":[
""
],
"isAtAll": "false"
},
"text": {
"content": text
},
"msgtype":"text"
}
requests.post(url=url , headers= headers,json=json)
##qq邮箱
def qqemail(subject,email,text):
#无需安装第三方库
key='pqfjmlybbgi' #换成你的QQ邮箱SMTP的授权码(QQ邮箱设置里) 设置-> 账号-> SMPT服务
EMAIL_ADDRESS='885317429@qq.com' #换成你的邮箱地址
EMAIL_PASSWORD=key
import smtplib
smtp=smtplib.SMTP('smtp.qq.com',25)
import ssl
context=ssl.create_default_context()
sender=EMAIL_ADDRESS #发件邮箱
receiver=email#"255576170@qq.com"#EMAIL_ADDRESS
#收件邮箱
from email.message import EmailMessage
subject=subject
body=text
msg=EmailMessage()
msg['subject']=subject #邮件主题
msg['From']=sender
msg['To']=receiver
msg.set_content(body) #邮件内容
with smtplib.SMTP_SSL("smtp.qq.com",465,context=context) as smtp:
smtp.login(EMAIL_ADDRESS,EMAIL_PASSWORD)
smtp.send_message(msg)
#签到
def start(cookie):
# 创建一个session,作用会自动保存cookie
session = requests.session()
#点签到之后的页
url= "https://glados.rocks/api/user/checkin"
url2= "https://glados.rocks/api/user/status"
referer = 'https://glados.rocks/console/checkin'
origin = "https://glados.rocks"
useragent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36"
#请求负载 #"https://glados.rocks/api/user/checkin"的负载
payload={
'token': 'glados.one' ##24年之后的负载
}
#referer 当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器 籍此可以获得一些信息用于处理。
#json.dumps请求序列化
checkin = session.post(url,headers={'cookie': cookie ,'referer': referer,'origin':origin,'user-agent':useragent,'content-type':'application/json;charset=UTF-8'},data=json.dumps(payload))
state = session.get(url2,headers={'cookie': cookie ,'referer': referer,'origin':origin,'user-agent':useragent})
#print(checkin.text)
#print(state.text)
while(1):
try:
if 'message' in checkin.text:
mess = checkin.json()['message']
change = checkin.json()['list'][0]['change'].split('.')[0]
balance = checkin.json()['list'][0]['balance'].split('.')[0]
time = state.json()['data']['leftDays']
time = time.split('.')[0]
text = mess +',you have '+time+' days left,change:'+change+',balance:'+balance
return text
break
except Exception as e:
print(e)
return e
if __name__ == "__main__":
cookie = '__stripe_midACqhIsVz_hNcbmgrhQ8uQ; _ga=GA1.2.901577451078; _ga_CZFVKMNT9J=GS1.1.1709982314.56.0.1709982314.0.0.0'
text =start(cookie)
#print(text)
qqemail("GLaDOS签到", "885317429@qq.com", text) #主题,邮箱,内容
# dingding("18962210199", text) #手机号,内容