Skip to content

Commit 2865ff8

Browse files
committed
添加[叮咚买菜]签到脚本
1 parent 6167880 commit 2865ff8

6 files changed

Lines changed: 405 additions & 5 deletions

File tree

QuantumultX_AppStore_Local_Cookie.conf

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# 本配置适用于: QuanX 商店版 v1.0.6-build194 及之前版本
22
# 如果你是TF版, 请使用: QuantumultX_Local_Cookie.conf
33

4-
hostname = group.baicizhan.com, api.everphoto.cn, promotion.waimai.meituan.com, wx.10086.cn, www.maomicd.com, act.10010.com, api-takumi.mihoyo.com, gdws.nsenz.com, credits.bz.mgtv.com, *.csdn.net, wapside.189.cn, *.acfun.cn, apk.tw, *.bilibili.com, api.dongqiudi.com, *.feng.com, www.flyertea.com, music.163.com, *.m.163.com, user.qunar.com, *.rr.tv, *.weixinjia.net, *.smzdm.com, tieba.baidu.com, *.v2ex.com, *.video.qq.com, v.qq.com, mobwsa.ximalaya.com, *.you.163.com, *.rrys2019.com, ios.zmzapi.com
4+
hostname = maicai.api.ddxq.mobi, group.baicizhan.com, api.everphoto.cn, promotion.waimai.meituan.com, wx.10086.cn, www.maomicd.com, act.10010.com, api-takumi.mihoyo.com, gdws.nsenz.com, credits.bz.mgtv.com, *.csdn.net, wapside.189.cn, *.acfun.cn, apk.tw, *.bilibili.com, api.dongqiudi.com, *.feng.com, www.flyertea.com, music.163.com, *.m.163.com, user.qunar.com, *.rr.tv, *.weixinjia.net, *.smzdm.com, tieba.baidu.com, *.v2ex.com, *.video.qq.com, v.qq.com, mobwsa.ximalaya.com, *.you.163.com, *.rrys2019.com, ios.zmzapi.com
55

66
# 电信营业厅
77
^https:\/\/wapside.189.cn:9001\/api\/home\/homeInfo url script-request-header chavyleung/10000/10000.cookie.js
@@ -95,4 +95,7 @@ https:\/\/www.maomicd.com\/plugin.php\?id=k_misign:sign&operation=qiandao url sc
9595
^https:\/\/api.everphoto.cn\/users\/self\/checkin\/v2 url script-request-header chavyleung/everphoto/everphoto.cookie.js
9696

9797
# 百词斩
98-
^https://group\.baicizhan\.com/group/rewards? url script-request-header bcz.cookie.js
98+
^https://group\.baicizhan\.com/group/rewards? url script-request-header chavyleung/bcz/bcz.cookie.js
99+
100+
# 叮咚买菜
101+
^https:\/\/maicai.api.ddxq.mobi\/point\/home url script-request-header chavyleung/mcdd/mcdd.cookie.js

QuantumultX_Local_Cookie.conf

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# 本配置适用于: QuanX TestFlight v1.0.6-build195 及以后版本
22
# 如果你是商店版, 请使用: QuantumultX_AppStore_Local_Cookie.conf
33

4-
hostname = group.baicizhan.com, api.everphoto.cn, i.meituan.com, promotion.waimai.meituan.com, wx.10086.cn, www.maomicd.com, act.10010.com, api-takumi.mihoyo.com, m.gdoil.cn, credits.bz.mgtv.com, *.csdn.net, wapside.189.cn, *.acfun.cn, apk.tw, *.bilibili.com, api.dongqiudi.com, *.feng.com, www.flyertea.com, music.163.com, *.m.163.com, user.qunar.com, *.rr.tv, *.weixinjia.net, *.smzdm.com, tieba.baidu.com, *.v2ex.com, *.video.qq.com, v.qq.com, mobwsa.ximalaya.com, *.you.163.com, *.rrys2019.com, ios.zmzapi.com
4+
hostname = maicai.api.ddxq.mobi, group.baicizhan.com, api.everphoto.cn, i.meituan.com, promotion.waimai.meituan.com, wx.10086.cn, www.maomicd.com, act.10010.com, api-takumi.mihoyo.com, m.gdoil.cn, credits.bz.mgtv.com, *.csdn.net, wapside.189.cn, *.acfun.cn, apk.tw, *.bilibili.com, api.dongqiudi.com, *.feng.com, www.flyertea.com, music.163.com, *.m.163.com, user.qunar.com, *.rr.tv, *.weixinjia.net, *.smzdm.com, tieba.baidu.com, *.v2ex.com, *.video.qq.com, v.qq.com, mobwsa.ximalaya.com, *.you.163.com, *.rrys2019.com, ios.zmzapi.com
55

66
# 电信营业厅
77
^https:\/\/wapside.189.cn:9001\/api\/home\/homeInfo url script-request-header chavyleung/10000/10000.cookie.js
@@ -98,4 +98,7 @@ https:\/\/www.maomicd.com\/plugin.php\?id=k_misign:sign&operation=qiandao url sc
9898
^https:\/\/api.everphoto.cn\/users\/self\/checkin\/v2 url script-request-header chavyleung/everphoto/everphoto.cookie.js
9999

100100
# 百词斩
101-
^https://group\.baicizhan\.com/group/rewards? url script-request-header bcz.cookie.js
101+
^https://group\.baicizhan\.com/group/rewards? url script-request-header chavyleung/bcz/bcz.cookie.js
102+
103+
# 叮咚买菜
104+
^https:\/\/maicai.api.ddxq.mobi\/point\/home url script-request-header chavyleung/mcdd/mcdd.cookie.js

QuantumultX_Local_Task.conf

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,4 +59,6 @@
5959
# 时光相册
6060
7 0 * * * chavyleung/everphoto/everphoto.js
6161
# 百词斩
62-
0 8-24/4 * * * chavyleung/bcz/bcz.js
62+
0 8-24/4 * * * chavyleung/bcz/bcz.js
63+
# 叮咚买菜
64+
7 0 * * * chavyleung/mcdd/mcdd.js

mcdd/README.md

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# 叮咚买菜
2+
3+
> 代码已同时兼容 Surge & QuanX, 使用同一份签到脚本即可
4+
5+
## 配置 (Surge)
6+
7+
```properties
8+
[MITM]
9+
maicai.api.ddxq.mobi
10+
11+
[Script]
12+
http-request ^https:\/\/maicai.api.ddxq.mobi\/point\/home script-path=https://raw.githubusercontent.com/chavyleung/scripts/master/mcdd/mcdd.cookie.js
13+
cron "10 0 0 * * *" script-path=https://raw.githubusercontent.com/chavyleung/scripts/master/mcdd/mcdd.js
14+
```
15+
16+
## 配置 (QuanX)
17+
18+
```properties
19+
[MITM]
20+
maicai.api.ddxq.mobi
21+
22+
[rewrite_local]
23+
^https:\/\/maicai.api.ddxq.mobi\/point\/home url script-request-header mcdd.cookie.js
24+
25+
[task_local]
26+
1 0 * * * mcdd.js
27+
```
28+
29+
## 说明
30+
31+
1. 先把`maicai.api.ddxq.mobi`加到`[MITM]`
32+
2. 再配置重写规则:
33+
- Surge: 把两条远程脚本放到`[Script]`
34+
- QuanX: 把`mcdd.cookie.js``mcdd.js`传到`On My iPhone - Quantumult X - Scripts` (传到 iCloud 相同目录也可, 注意要打开 quanx 的 iCloud 开关)
35+
3. 打开 APP, 访问下`我的`>`积分`
36+
4. 系统提示: `获取Cookie: 成功` (如果不提示获取成功, 尝试杀进程再进个人中心)
37+
5. 最后就可以把第 1 条脚本注释掉了
38+
39+
> 第 1 条脚本是用来获取 cookie 的, 用浏览器访问一次获取 cookie 成功后就可以删掉或注释掉了, 但请确保在`登录成功`后再获取 cookie.
40+
41+
> 第 2 条脚本是签到脚本, 每天`00:00:10`执行一次.
42+
43+
## 常见问题
44+
45+
1. 无法写入 Cookie
46+
47+
- 检查 Surge 系统通知权限放开了没
48+
- 如果你用的是 Safari, 请尝试在浏览地址栏`手动输入网址`(不要用复制粘贴)
49+
50+
2. 写入 Cookie 成功, 但签到不成功
51+
52+
- 看看是不是在登录前就写入 Cookie 了
53+
- 如果是,请确保在登录成功后,再尝试写入 Cookie
54+
55+
3. 为什么有时成功有时失败
56+
57+
- 很正常,网络问题,哪怕你是手工签到也可能失败(凌晨签到容易拥堵就容易失败)
58+
- 暂时不考虑代码级的重试机制,但咱有配置级的(暴力美学):
59+
60+
- `Surge`配置:
61+
62+
```properties
63+
# 没有什么是一顿饭解决不了的:
64+
cron "10 0 0 * * *" script-path=xxx.js # 每天00:00:10执行一次
65+
# 如果有,那就两顿:
66+
cron "20 0 0 * * *" script-path=xxx.js # 每天00:00:20执行一次
67+
# 实在不行,三顿也能接受:
68+
cron "30 0 0 * * *" script-path=xxx.js # 每天00:00:30执行一次
69+
70+
# 再粗暴点,直接:
71+
cron "* */60 * * * *" script-path=xxx.js # 每60分执行一次
72+
```
73+
74+
- `QuanX`配置:
75+
76+
```properties
77+
[task_local]
78+
1 0 * * * xxx.js # 每天00:01执行一次
79+
2 0 * * * xxx.js # 每天00:02执行一次
80+
3 0 * * * xxx.js # 每天00:03执行一次
81+
82+
*/60 * * * * xxx.js # 每60分执行一次
83+
```
84+
85+
## 感谢
86+
87+
[@NobyDa](https://github.com/NobyDa)
88+
89+
[@lhie1](https://github.com/lhie1)
90+
91+
[@ConnersHua](https://github.com/ConnersHua)

mcdd/mcdd.cookie.js

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
const chavy = init()
2+
const cookieName = '叮咚买菜'
3+
const KEY_homeurl = 'chavy_home_url_mcdd'
4+
const KEY_homeheader = 'chavy_home_header_mcdd'
5+
6+
if ($request && $request.method != 'OPTIONS') {
7+
try {
8+
chavy.log(`🔔 ${cookieName} 开始获取: Cookies`)
9+
const VAL_homeurl = $request.url
10+
const VAL_homeheader = JSON.stringify($request.headers)
11+
if (VAL_homeurl) {
12+
chavy.setdata(VAL_homeurl, KEY_homeurl)
13+
chavy.log(`❕ ${cookieName} VAL_homeurl: ${VAL_homeurl}`)
14+
}
15+
if (VAL_homeheader) {
16+
chavy.setdata(VAL_homeheader, KEY_homeheader)
17+
chavy.log(`❕ ${cookieName} VAL_homeheader: ${VAL_homeheader}`)
18+
}
19+
chavy.msg(cookieName, `获取Cookie: 成功`, ``)
20+
} catch (e) {
21+
chavy.msg(cookieName, `获取Cookie: 失败`, e)
22+
chavy.log(`❌ ${cookieName} 获取Cookie: 失败: ${e}`)
23+
}
24+
}
25+
26+
function init() {
27+
isSurge = () => {
28+
return undefined === this.$httpClient ? false : true
29+
}
30+
isQuanX = () => {
31+
return undefined === this.$task ? false : true
32+
}
33+
getdata = (key) => {
34+
if (isSurge()) return $persistentStore.read(key)
35+
if (isQuanX()) return $prefs.valueForKey(key)
36+
}
37+
setdata = (key, val) => {
38+
if (isSurge()) return $persistentStore.write(key, val)
39+
if (isQuanX()) return $prefs.setValueForKey(key, val)
40+
}
41+
msg = (title, subtitle, body) => {
42+
if (isSurge()) $notification.post(title, subtitle, body)
43+
if (isQuanX()) $notify(title, subtitle, body)
44+
}
45+
log = (message) => console.log(message)
46+
get = (url, cb) => {
47+
if (isSurge()) {
48+
$httpClient.get(url, cb)
49+
}
50+
if (isQuanX()) {
51+
url.method = 'GET'
52+
$task.fetch(url).then((resp) => cb(null, {}, resp.body))
53+
}
54+
}
55+
post = (url, cb) => {
56+
if (isSurge()) {
57+
$httpClient.post(url, cb)
58+
}
59+
if (isQuanX()) {
60+
url.method = 'POST'
61+
$task.fetch(url).then((resp) => cb(null, {}, resp.body))
62+
}
63+
}
64+
done = (value = {}) => {
65+
$done(value)
66+
}
67+
return { isSurge, isQuanX, msg, log, getdata, setdata, get, post, done }
68+
}
69+
chavy.done()

0 commit comments

Comments
 (0)