检测开封菜app点单状态
本帖最后由 lineulb 于 2022-4-11 14:23 编辑本人写的,转帖请写明来自吾爱。
上海或是南京kfc手机平台软件外卖是否支持点单的检测脚本,不建议不能自己取餐的小伙伴使用!不建议不能自己取餐的小伙伴使用!不建议不能自己取餐的小伙伴使用!
from time import sleep
import requests
import json
from datetime import datetime
from datetime import timedelta
from datetime import timezone
from corpwechatbot import AppMsgSender
# 访问该地址转经纬度地址
# https://lbs.amap.com/tools/picker
#按关键字搜索栏目下填入你的地址 如 上海黄浦区人名广场
# 默认通知使用的是企业微信接口,如果您有企业微信接口填入您的信息即可使用
# 通知方式可以是邮箱、微信接口或是qq接口,请自行添加,可以搜索todo,在todo之后适合地方添加即可
def appMsgSender(content):
app = AppMsgSender(corpid='',# 你的企业id
corpsecret='',# 你的应用凭证密钥
agentid='')# 你的应用id
app.send_text(content)
def btime():
SHA_TZ = timezone(
timedelta(hours=8),
name='Asia/Shanghai',
)
# 协调世界时
utc_now = datetime.utcnow().replace(tzinfo=timezone.utc)
# print(utc_now, utc_now.tzname())
# 北京时间
beijing_now = utc_now.astimezone(SHA_TZ)
# print(beijing_now, beijing_now.tzname())
# 系统默认时区
local_now = utc_now.astimezone()
# print(local_now, local_now.tzname())
return beijing_now
def checkkfcinit():
url = "https://m.4008823823.com.cn/taroapi/base/v2/initial"
payload = json.dumps({
"body": {},
"portalType": "kfc_delivery_h5",
"portalSource": "KFC_WEB",
"appVerParams": {
"hotUpdateLabel": "updateLabel"
},
})
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'host': 'm.4008823823.com.cn',
}
response = requests.request("POST", url, headers=headers, data=payload.encode(), timeout=10000)
resjson = json.loads(response.text)
# print(resjson['userUniqueId'])
# print(response.text)
if len(resjson['userUniqueId']) == 36:
uuid = str(resjson['userUniqueId'])
else:
print(f"{btime()} :unable get uuid")
# todo Notify you of status changes
appMsgSender(f"{btime()} :unable get uuid")
return uuid
def checkkfcstatus(city,longitude,latitude,uuid):
url = "https://m.4008823823.com.cn/taroapi/misc/v2/getNearestStore"
if city == 'shanghai':
citycode = "00010"
elif city == 'nanjing':
citycode = "00008"
else:
return None
payload = json.dumps({
# "body": {
# "webValidateCustomerAddress": {
# "cityCode": "00008",
# "longitude": "",
# "latitude": "",
# "mainAddress": "1",
# "supplementalAddress": "1"
# }
"body": {
"webValidateCustomerAddress": {
"cityCode": citycode,
"longitude": longitude,
"latitude": latitude,
"mainAddress": "1",
"supplementalAddress": "1"
}
},
"portalType": "kfc_delivery_h5",
"portalSource": "KFC_WEB",
"userUniqueId": uuid,
"appVerParams": {
"hotUpdateLabel": "updateLabel"
},
})
headers = {
'Content-Type': 'application/json',
'Accept': '*/*',
'host': 'm.4008823823.com.cn',
}
responseall = requests.request("POST", url, headers=headers, data=payload.encode(), timeout=10000)
resjson = json.loads(responseall.text)
print(responseall.text)
# print(resjson["data"]["webNearestStore"])
if resjson["data"]["webNearestStore"] != None:
print(f"{btime()},{city},{longitude},{latitude},status : True")
print("快去打开app点餐吧!")
# todo Notify you of status changes
appMsgSender(f"{btime()} :success!!!!!!!!!!")
# Stop after notify you
return True
else:
print(f"{btime()},{city},{longitude},{latitude},status : False")
print("没开门呢!")
return False
if __name__ == '__main__':
# todo Notify you of status changes
appMsgSender(f"{btime()} :task begin")
# 要改的参数就三个值 城市名 上海 = shanghai 南京 = nanjing,其他城市不支持,经纬度自己填,先是精度再是纬度。
# Stop after notify you
# while checkkfcstatus("shanghai",121.627531,31.181985,checkkfcinit()) == False:
# Always check
while 1 == 1:
checkkfcstatus("shanghai",121.627531,31.181985,checkkfcinit())
#300秒一次,自行修改,不要小于60秒
sleep(300)
requirements.txt
certifi==2021.10.8
charset-normalizer==2.0.12
corpwechatbot==0.6.2
cptools==1.4.7
idna==3.3
requests==2.27.1
tqdm==4.64.0
urllib3==1.26.9
查询自己的经纬度
有问题可以跟帖,支持维护到4.15日 哈哈这个我太喜欢了! 建议增加推送功能 小飞虫 发表于 2022-4-11 18:16
建议增加推送功能
todo后面就是自己写推送的地方,最简单就是用yagmail发邮箱嘛,到时候看需要的人多不多,多的话就之后把这个简单功能加上。 xiadongming 发表于 2022-4-11 20:52
开封人必须支持一下,,
KFC跟开封啥关系{:1_924:}
页:
[1]