From b895dc175d6261e6bacc5de3969ad67e076534fc Mon Sep 17 00:00:00 2001 From: blackmatrix7 <27717518+blackmatrix7@users.noreply.github.com> Date: Tue, 30 Aug 2022 21:21:56 +0800 Subject: [PATCH] =?UTF-8?q?[=E9=A5=BF=E4=BA=86=E4=B9=88]=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E4=B8=8D=E8=83=BD=E8=8E=B7=E5=8F=96Cookie=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E5=8F=8A=E5=A2=9E=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- script/boxjs.json | 261 ++++++++++++++---- script/eleme/README.md | 126 +++++---- script/eleme/eleme_daily.js | 138 +++++---- script/eleme/eleme_daily.lnplugin | 17 ++ script/eleme/eleme_daily.lnscript | 7 - script/eleme/eleme_daily.qxrewrite | 5 +- script/eleme/eleme_daily.sgmodule | 11 +- script/eleme/eleme_mission.js | 14 +- script/eleme/images/bark_conf.jpg | Bin 0 -> 99903 bytes script/gallery.json | 8 - .../jiazhangbang/jiazhangbang_checkin.js | 0 .../jiazhangbang_checkin.sgmodule | 0 script/{ => obsolete}/wanda/README.md | 0 script/{ => obsolete}/wanda/wanda.png | Bin script/{ => obsolete}/wanda/wanda_checkin.js | 0 .../wanda/wanda_checkin.lnscript | 0 .../wanda/wanda_checkin.qxrewrite | 0 .../wanda/wanda_checkin.sgmodule | 0 18 files changed, 382 insertions(+), 205 deletions(-) create mode 100644 script/eleme/eleme_daily.lnplugin delete mode 100644 script/eleme/eleme_daily.lnscript create mode 100644 script/eleme/images/bark_conf.jpg rename script/{ => obsolete}/jiazhangbang/jiazhangbang_checkin.js (100%) rename script/{ => obsolete}/jiazhangbang/jiazhangbang_checkin.sgmodule (100%) rename script/{ => obsolete}/wanda/README.md (100%) rename script/{ => obsolete}/wanda/wanda.png (100%) rename script/{ => obsolete}/wanda/wanda_checkin.js (100%) rename script/{ => obsolete}/wanda/wanda_checkin.lnscript (100%) rename script/{ => obsolete}/wanda/wanda_checkin.qxrewrite (100%) rename script/{ => obsolete}/wanda/wanda_checkin.sgmodule (100%) diff --git a/script/boxjs.json b/script/boxjs.json index fe71ef19d66..95662f1891b 100644 --- a/script/boxjs.json +++ b/script/boxjs.json @@ -6,18 +6,38 @@ "repo": "https://github.com/blackmatrix7/ios_rule_script", "apps": [ { - "id": "blackmatrix7.10010", - "name": "联通每日签到与抽奖", - "keys": ["unicom_user_cookie", "unicom_mobile", "unicom_encrypt_mobile", "city_code"], + "id": "blackmatrix7.bark", + "name": "Bark推送", + "keys": [ + "bark_url" + ], + "settings": [ + { + "id": "bark_url", + "name": "Bark推送URL", + "val": "", + "type": "input", + "placeholder": "https://api.day.app/xxxxxxxxxxxxxxxxxx/", + "autoGrow": true, + "desc": "填写Bark推送的链接,脚本通知将通过Bark推送" + } + ], "author": "@blackmatrix7", - "repo": "https://github.com/blackmatrix7/ios_rule_script/tree/master/script/10010", - "icons": ["https://raw.githubusercontent.com/Orz-3/mini/master/Alpha/10010.png", "https://raw.githubusercontent.com/Orz-3/mini/master/Color/10010.png"], - "script": "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/10010/unicom_signin.js" + "repo": "https://git.codecolor.cool/matrix/script/bilibili", + "icons": [ + "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/icon/matrix/dark/bark.jpg", + "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/icon/matrix/color/bark.jpg" + ] }, { "id": "blackmatrix7.bilibili", "name": "哔哩哔哩去广告", - "keys": ["bilibili_story_aid", "bilibili_feed_black", "bilibili_disable_index_story", "bilibili_enable_mall"], + "keys": [ + "bilibili_story_aid", + "bilibili_feed_black", + "bilibili_disable_index_story", + "bilibili_enable_mall" + ], "settings": [ { "id": "bilibili_feed_black", @@ -46,42 +66,41 @@ ], "author": "@blackmatrix7", "repo": "https://github.com/blackmatrix7/ios_rule_script/tree/master/script/bilibili", - "icons": ["https://raw.githubusercontent.com/Orz-3/mini/master/Alpha/bilibili.png", "https://raw.githubusercontent.com/Orz-3/mini/master/Color/bilibili.png"] - }, - { - "id": "blackmatrix7.didachuxing", - "name": "嘀嗒出行", - "keys": ["dida_cid", "dida_cookie", "dida_useragent", "dida_access_token"], - "author": "@blackmatrix7", - "repo": "https://github.com/blackmatrix7/ios_rule_script/tree/master/script/didachuxing", - "icons": ["https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/didachuxing/didachuxing.png", "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/didachuxing/didachuxing.png"], - "script": "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/didachuxing/didachuxing_plus.js" - }, - { - "id": "blackmatrix7.didichuxing", - "name": "滴滴出行", - "keys": ["didi_token", "didi_city_id", "didi_lottery_id", "didi_my_source_id", "didi_group_id", "didi_finance_channel_id", "didi_finance_activity_id"], - "author": "@blackmatrix7", - "repo": "https://github.com/blackmatrix7/ios_rule_script/tree/master/script/didichuxing", - "icons": ["https://raw.githubusercontent.com/Orz-3/mini/master/Alpha/didi.png", "https://raw.githubusercontent.com/Orz-3/mini/master/Color/didi.png"], - "script": "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/didichuxing/didi_checkin.js" + "icons": [ + "https://raw.githubusercontent.com/Orz-3/mini/master/Alpha/bilibili.png", + "https://raw.githubusercontent.com/Orz-3/mini/master/Color/bilibili.png" + ] }, { "id": "blackmatrix7.dingdong", "name": "叮咚买菜", - "keys": ["dingdongmaicai_checkin_cookie", "dingdongmaicai_checkin_body"], + "keys": [ + "dingdongmaicai_checkin_cookie", + "dingdongmaicai_checkin_body" + ], "author": "@blackmatrix7", "repo": "https://github.com/blackmatrix7/ios_rule_script/tree/master/script/dingdong", - "icons": ["https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/dingdong/dingdong.png", "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/dingdong/dingdong.png"], + "icons": [ + "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/dingdong/dingdong.png", + "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/dingdong/dingdong.png" + ], "script": "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/dingdong/dingdong_checkin.js" }, { "id": "blackmatrix7.eleme", "name": "饿了么", - "keys": ["eleme_app_cookie", "eleme_app_longitude", "eleme_app_latitude"], + "keys": [ + "eleme_app_cookie", + "eleme_app_longitude", + "eleme_app_latitude", + "eleme_task_keywords" + ], "author": "@blackmatrix7", - "repo": "https://github.com/blackmatrix7/ios_rule_script/tree/master/script/eleme", - "icons": ["https://raw.githubusercontent.com/Orz-3/mini/master/Alpha/elem.png", "https://raw.githubusercontent.com/Orz-3/mini/master/Color/elem.png"], + "repo": "https://git.codecolor.cool/matrix/script/eleme", + "icons": [ + "https://raw.githubusercontent.com/Orz-3/mini/master/Alpha/elem.png", + "https://raw.githubusercontent.com/Orz-3/mini/master/Color/elem.png" + ], "scripts": [ { "name": "领取吃货豆", @@ -91,51 +110,155 @@ "name": "领取会员任务", "script": "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_mission.js" } + ], + "settings": [ + { + "id": "eleme_app_cookie", + "name": "Cookie", + "val": "", + "type": "input", + "placeholder": "", + "autoGrow": true, + "desc": "填写获取的饿了么Cookie" + }, + { + "id": "eleme_app_longitude", + "name": "经度", + "val": "", + "type": "input", + "placeholder": "", + "autoGrow": true, + "desc": "填写抓包获取的饿了么经度" + }, + { + "id": "eleme_app_latitude", + "name": "纬度", + "val": "", + "type": "input", + "placeholder": "", + "autoGrow": true, + "desc": "填写抓包获取的饿了么纬度" + }, + { + "id": "eleme_task_keywords", + "name": "任务关键字", + "val": "美食外卖;", + "type": "input", + "placeholder": "多个关键词以;分隔,越靠前的关键词优先级越高", + "autoGrow": true, + "desc": "只领取含有关键字的任务" + }, + { + "id": "magicjs_loglevel", + "name": "日志等级", + "val": "INFO", + "type": "radios", + "items": [ + { + "key": "INFO", + "label": "INFO" + }, + { + "key": "WARNING", + "label": "WARNING" + }, + { + "key": "ERROR", + "label": "ERROR" + }, + { + "key": "CRITICAL", + "label": "CRITICAL" + }, + { + "key": "DEBUG", + "label": "DEBUG" + } + ], + "desc": "出现异常时请选择DEBUG提交日志" + } ] }, { "id": "blackmatrix7.famijia", "name": "Fa米家", - "keys": ["famijia_checkin_cookie", "famijia_device_id", "famijia_black_box"], + "keys": [ + "famijia_checkin_cookie", + "famijia_device_id", + "famijia_black_box" + ], "author": "@blackmatrix7", "repo": "https://github.com/blackmatrix7/ios_rule_script/tree/master/script/famijia", - "icons": ["https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/famijia/famijia.png", "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/famijia/famijia.png"], + "icons": [ + "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/famijia/famijia.png", + "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/famijia/famijia.png" + ], "script": "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/famijia/famijia_checkin.js" }, { "id": "blackmatrix7.luka", "name": "Luka阅读养成", - "keys": ["luka_checkin_cookie", "luka_signin_auth"], + "keys": [ + "luka_checkin_cookie", + "luka_signin_auth" + ], "author": "@blackmatrix7", "repo": "https://github.com/blackmatrix7/ios_rule_script/tree/master/script/luka", - "icons": ["https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/luka/luka.png", "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/luka/luka.png"], + "icons": [ + "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/luka/luka.png", + "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/luka/luka.png" + ], "script": "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/luka/luka_signin.js" }, { "id": "blackmatrix7.manmanbuy", "name": "慢慢买", - "keys": ["manmanbuy_checkin_cookie", "manmanbuy_login_body", "manmanbuy_username", "manmanbuy_deviceid"], + "keys": [ + "manmanbuy_checkin_cookie", + "manmanbuy_login_body", + "manmanbuy_username", + "manmanbuy_deviceid" + ], "author": "@blackmatrix7", "repo": "https://github.com/blackmatrix7/ios_rule_script/tree/master/script/manmanbuy", - "icons": ["https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/manmanbuy/manmanmai.png", "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/manmanbuy/manmanmai.png"], + "icons": [ + "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/manmanbuy/manmanmai.png", + "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/manmanbuy/manmanmai.png" + ], "script": "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/manmanbuy/manmanbuy_checkin.js" }, { "id": "blackmatrix7.meituan", "name": "美团买菜", - "keys": ["meituan_mall_cookie", "meituan_mall_t", "meituan_mall_querystring", "meituan_mall_uuid", "meituan_mall_userid", "meituan_mall_body"], + "keys": [ + "meituan_mall_cookie", + "meituan_mall_t", + "meituan_mall_querystring", + "meituan_mall_uuid", + "meituan_mall_userid", + "meituan_mall_body" + ], "author": "@blackmatrix7", "repo": "https://github.com/blackmatrix7/ios_rule_script/tree/master/script/meituan", - "icons": ["https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/meituan/maicai.png", "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/meituan/maicai.png"], + "icons": [ + "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/meituan/maicai.png", + "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/meituan/maicai.png" + ], "script": "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/meituan/maicai_checkin.js" }, { "id": "blackmatrix7.smzdm", "name": "什么值得买", - "keys": ["smzdm_cookie", "smzdm_session"], + "keys": [ + "smzdm_cookie", + "smzdm_session" + ], "author": "@blackmatrix7", "repo": "https://github.com/blackmatrix7/ios_rule_script/tree/master/script/smzdm", - "icons": ["https://raw.githubusercontent.com/Orz-3/mini/master/Alpha/smzdm.png", "https://raw.githubusercontent.com/Orz-3/mini/master/Color/smzdm.png"], + "icons": [ + "https://raw.githubusercontent.com/Orz-3/mini/master/Alpha/smzdm.png", + "https://raw.githubusercontent.com/Orz-3/mini/master/Color/smzdm.png" + ], "scripts": [ { "name": "每日自动任务", @@ -150,28 +273,31 @@ { "id": "blackmatrix7.tieba", "name": "百度贴吧", - "keys": ["tieba_checkin_cookie"], + "keys": [ + "tieba_checkin_cookie" + ], "author": "@blackmatrix7", "repo": "https://github.com/blackmatrix7/ios_rule_script/tree/master/script/tieba", - "icons": ["https://raw.githubusercontent.com/Orz-3/mini/master/Alpha/tieba.png", "https://raw.githubusercontent.com/Orz-3/mini/master/Color/tieba.png"], + "icons": [ + "https://raw.githubusercontent.com/Orz-3/mini/master/Alpha/tieba.png", + "https://raw.githubusercontent.com/Orz-3/mini/master/Color/tieba.png" + ], "script": "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/tieba/tieba_checkin.js" }, - { - "id": "blackmatrix7.wanda", - "name": "万达电影", - "keys": ["wanda_checkin_cookie", "wanda_activitycode"], - "author": "@blackmatrix7", - "repo": "https://github.com/blackmatrix7/ios_rule_script/tree/master/script/wanda", - "icons": ["https://raw.githubusercontent.com/Orz-3/mini/master/Alpha/wanda.png", "https://raw.githubusercontent.com/Orz-3/mini/master/Color/wanda.png"], - "script": "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/wanda/wanda_checkin.js" - }, { "id": "blackmatrix7.zhihu", "name": "知乎助手", - "keys": ["zhihu_blocked_users", "zhihu_current_userinfo", "zhihu_keyword_block"], + "keys": [ + "zhihu_blocked_users", + "zhihu_current_userinfo", + "zhihu_keyword_block" + ], "author": "@blackmatrix7", "repo": "https://github.com/blackmatrix7/ios_rule_script/tree/master/script/zhihu", - "icons": ["https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/zhihu/zhihu.png", "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/zhihu/zhihu.png"], + "icons": [ + "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/zhihu/zhihu.png", + "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/zhihu/zhihu.png" + ], "descs_html": [ "

具体功能说明查看README.md

", "

✨为Plus版本专属功能,❓为已过时或即将淘汰功能

", @@ -309,7 +435,12 @@ { "id": "blackmatrix7.synology", "name": "Synology", - "keys": ["syno_https_url", "syno_account", "syno_passwd", "syno_sid"], + "keys": [ + "syno_https_url", + "syno_account", + "syno_passwd", + "syno_sid" + ], "settings": [ { "id": "syno_https_url", @@ -379,7 +510,10 @@ ], "author": "@blackmatrix7", "repo": "https://github.com/blackmatrix7/ios_rule_script/tree/master/script/synology", - "icons": ["https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/synology/icon/synology_dark.jpg", "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/synology/icon/synology.jpg"], + "icons": [ + "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/synology/icon/synology_dark.jpg", + "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/synology/icon/synology.jpg" + ], "scripts": [ { "name": "登录Synology", @@ -390,7 +524,13 @@ { "id": "blackmatrix7.applestore", "name": "AppleStore", - "keys": ["goods_model", "applestore_region", "applestore_bark_url", "applestore_stock", "onlinestore_stock"], + "keys": [ + "goods_model", + "applestore_region", + "applestore_bark_url", + "applestore_stock", + "onlinestore_stock" + ], "author": "@blackmatrix7", "repo": "https://github.com/blackmatrix7/ios_rule_script/tree/master/script/applestore", "settings": [ @@ -483,7 +623,10 @@ "desc": "出现异常时请选择DEBUG提交日志" } ], - "icons": ["https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/applestore/icon/applestore_dark.png", "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/applestore/icon/applestore.png"] + "icons": [ + "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/applestore/icon/applestore_dark.png", + "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/applestore/icon/applestore.png" + ] } ] -} +} \ No newline at end of file diff --git a/script/eleme/README.md b/script/eleme/README.md index 7f05f43d511..633420a3305 100644 --- a/script/eleme/README.md +++ b/script/eleme/README.md @@ -6,26 +6,15 @@ 自动领取吃货豆,非会员可能能用,我没有非会员账号,无法验证,有兴趣可以自己试试。 -## 最近更新 - -1. 拆分领取吃货豆和领取会员任务的脚本 -2. 支持最新多选一任务 -3. 适配饿了么最新的吃货豆活动 -4. 增加自动领取吃货豆功能 - ## 特别说明 -目前已将领取吃货豆和领取会员任务的脚本拆分,请按需部署脚本。 +### 获取数据 -如果使用现成的Surge模块或Loon插件,则会在0点10分领取吃货豆,在早上10点领取任务列表中第一个可以领取的任务。 - -### 领取吃货豆 - -脚本自动领取APP中未领取的吃货豆。 +需要同时获取到Cookie与坐标,脚本才能正常执行,获取方法见后。 ### 多选一任务 -对于最新更新的多选一任务,脚本会依次尝试领取所有任务。但因为多选一的关系,通常只会有第一个任务能成功领取。 +脚本会依次尝试领取所有任务。但因为多选一的关系,通常只会有第一个任务能成功领取。 ## 配置说明 @@ -33,15 +22,16 @@ 使用模块 +```ini https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.sgmodule +``` ### Loon -使用远程脚本配置 +使用插件 ```ini -[Remote Script] -https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.lnscript, tag=饿了么_领取吃货豆及任务, enabled=true +https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.lnplugin ``` ### Quantumult X @@ -53,67 +43,75 @@ https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/ele https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.qxrewrite, tag=饿了么_获取Cookie, enabled=true [task_local] -10 00 * * * https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js, tag=饿了么_领取吃货豆, enabled=true -00 10 * * * https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_mission.js, tag=饿了么_领取会员任务, enabled=true +05 10 * * * https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js, tag=饿了么_领取吃货豆, enabled=true +05 10 * * * https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_mission.js, tag=饿了么_领取会员任务, enabled=true ``` -## 获取Cookie +## 获取数据 -饿了么APP - 我的 - 超级吃货卡 +### 获取Cookie -## 统一推送 +打开饿了么APP即可。 -MagicJS利用Bark,实现了跨设备的统一推送能力,将多个iOS设备的脚本执行结果,统一推送到一个设备上。 +### 获取坐标 -执行效果图,以饿了么为例: +打开饿了么APP - 我的 - 赚吃货豆。 + +由于获取坐标的请求不是每次都触发的,如果没有正确获取到坐标,建议移除饿了么APP后台,间隔10分钟后,再尝试上述操作。 + +或者通过其他途径获取自身坐标,通过BoxJS填入。 + +## Bark推送 + +通过BoxJS,配置Bark推送链接,可以将脚本通知,通过Bark推送到其他设备上。 + +以饿了么为例: ![](https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/images/bark.jpg) -### 开启统一推送 +在BoxJS中填写Bark推送链接即可。 -你需要安装Bark这个APP,打开后可以得到类似这样的链接: + -```http -https://api.day.app/VXTWvaQ18N29bsQAg7DgkT +## 青龙面板 + +MagicJS所有的变量,都存储在脚本同级目录下的`magic.json`文件中,不支持通过环境变量读取变量。 + +在青龙面板中,在左侧菜单选择脚本管理,新建 `magic.json` 文件(文件名不可修改)。 + +写入如下json: + +```json +{ + "eleme_app_cookie": "xxxxxxxxxxxxxxxxx", + "eleme_app_longitude": "111.1111111111", + "eleme_app_latitude": "111.1111111111", + "eleme_task_keywords": "美食外卖", + "bark_url": "https://api.day.app/xxxxxxxxxxxxxxxxxx/" +} ``` -在Surge、Loon、QuantumultX中执行以下代码,将链接写入(如何执行代码请自己动手解决)。 +变量说明 -**Surge、Loon** +| 变量名 | 说明 | +| ------------------- | ---------------------------------------------- | +| eleme_app_cookie | 饿了么Cookie | +| eleme_app_longitude | 饿了么经度 | +| eleme_app_latitude | 饿了么纬度 | +| eleme_task_keywords | 饿了么任务关键词,含有此关键词的任务才会被领取 | +| bark_url | Bark推送地址 | -```javascript -# 开启所有脚本统一推送 -$persistentStore.write("https://api.day.app/VXTWvaQ18N29bsQAg7DgkT", "magicjs_unified_push_url"); +如果你正在使用多个由MagicJS支持的脚本,可以将变量写在同一个`magic.json`文件中,例如: + +```json +{ + "smzdm_cookie": "xxxxxxxxxxxxxxxxxxxxx", + "smzdm_session": "xxxxxxxxxxxxxxxxxxxxx", + "eleme_app_cookie": "xxxxxxxxxxxxxxxxx", + "eleme_app_longitude": "111.1111111111", + "eleme_app_latitude": "111.1111111111", + "eleme_task_keywords": "美食外卖", + "bark_url": "https://api.day.app/xxxxxxxxxxxxxxxxxx/" +} ``` -**Quantumult X** - -```javascript -# 开启所有脚本统一推送 -$prefs.setValueForKey("https://api.day.app/VXTWvaQ18N29bsQAg7DgkT", "magicjs_unified_push_url"); -``` - -### 关闭统一推送 - -**Surge、Loon** - -```javascript -# 关闭所有脚本统一推送 -$persistentStore.write("", "magicjs_unified_push_url"); -``` - -**Quantumult X** - -```javascript -# 关闭所有脚本统一推送 -$prefs.setValueForKey("", "magicjs_unified_push_url"); -``` - -### 其他 - -1. 统一推送能力仅对支持的脚本有效。 -2. 开启统一推送后,所有支持统一推送的脚本,都会把通知推送到目标设备上。 -3. 限于Bark的功能,统一推送中的多媒体和链接不可用。 -4. 统一推送需要使用Bark的服务器,推送成功与否,与Bark服务器的可用性有关。 -5. 统一推送不会关闭APP的本地推送,即两个iOS设备都会有推送。 -6. 如有隐私考虑,可以参考Bark的服务端文档,自建服务端。 \ No newline at end of file diff --git a/script/eleme/eleme_daily.js b/script/eleme/eleme_daily.js index bd9f8eae6a3..f0d0c78daeb 100644 --- a/script/eleme/eleme_daily.js +++ b/script/eleme/eleme_daily.js @@ -1,41 +1,60 @@ const scriptName = '饿了么'; -const getCookieRegex = /^https?:\/\/h5\.ele\.me\/restapi\/biz\.svip_scene\/svip\/engine\/queryTrafficSupply\?.*longitude=([^&]*).*latitude=([^&]*)/; +const getCoordinateRegex1 = /^https?:\/\/air\.tb\.ele\.me\/app\/conch-page\/svip-home-tasklist-new\/home\?.*longitude=([^&]*).*latitude=([^&]*)/; +const getCoordinateRegex2 = /^https?:\/\/tb\.ele\.me\/wow\/alsc\/mod\/.*longitude=([^&]*).*latitude=([^&]*)/; +const getCoordinateRegex3 = /^https?:\/\/h5\.ele\.me\/restapi\/biz\.svip_scene\/svip\/engine\/queryTrafficSupply\?.*longitude=([^&]*).*latitude=([^&]*)/; +const getCookies = /^https?:\/\/air\.tb\.ele\.me\/app\/conch-page\/svip-foodie-card\/home/; const elemeCookieKey = 'eleme_app_cookie'; const elemeLongitudeKey = 'eleme_app_longitude'; const elemeLatitudeKey = 'eleme_app_latitude'; let magicJS = MagicJS(scriptName, "INFO"); -magicJS.unifiedPushUrl = magicJS.read('eleme_app_unified_push_url') || magicJS.read('magicjs_unified_push_url'); +magicJS.unifiedPushUrl = magicJS.read("bark_url"); -function GetCookie(){ - try{ - let cookie = magicJS.request.headers.Cookie; - let arr = magicJS.request.url.match(getCookieRegex); - let longitude = arr[1]; - let latitude = arr[2]; - let hisCookie = magicJS.read(elemeCookieKey); +function GetCoordinate() { + try { + let arr = []; + const hisLongitude = magicJS.read(elemeLongitudeKey); + const hisLatitude = magicJS.read(elemeLatitudeKey); + arr = magicJS.request.url.match(getCoordinateRegex1); + if (arr && arr.length < 2) { + arr = magicJS.request.url.match(getCoordinateRegex2); + } + if (arr && arr.length < 2) { + arr = magicJS.request.url.match(getCoordinateRegex3); + } + const longitude = arr[1]; + const latitude = arr[2]; magicJS.write(elemeLongitudeKey, longitude); magicJS.write(elemeLatitudeKey, latitude); - let compareCookie2 = !!cookie? /cookie2=([a-zA-Z0-9]*)/.exec(cookie)[1]: null; - let compareHisCookie2 = !!hisCookie? /cookie2=([a-zA-Z0-9]*)/.exec(hisCookie)[1]: null; - if (!!!hisCookie || compareCookie2 !== compareHisCookie2){ - magicJS.write(elemeCookieKey, cookie); - magicJS.logInfo(`旧的Cookie:${hisCookie}\n新的Cookie:${cookie}\nCookie不同,写入新的Cookie成功!`); - magicJS.notify('Cookie写入成功!!'); - } - else{ - magicJS.logInfo('Cookie没有变化,无需更新'); + if (longitude !== hisLongitude || latitude !== hisLatitude){ + magicJS.notify(`更新坐标成功!`) } } - catch(err){ - magicJS.notify('获取Cookie出现异常,请查阅日志。'); - magicJS.logError(`获取Cookie出现执行异常,异常信息:${err}`); + catch (err) { + magicJS.notify('获取坐标出现异常,请查阅日志。'); + magicJS.logError(`获取坐标出现执行异常,异常信息:${err}`); + } +} + + +function GetCookies(){ + let cookie = magicJS.request.headers.Cookie; + let hisCookie = magicJS.read(elemeCookieKey); + let compareCookie2 = !!cookie ? /cookie2=([a-zA-Z0-9]*)/.exec(cookie)[1] : null; + let compareHisCookie2 = !!hisCookie ? /cookie2=([a-zA-Z0-9]*)/.exec(hisCookie)[1] : null; + if (!!!hisCookie || compareCookie2 !== compareHisCookie2) { + magicJS.write(elemeCookieKey, cookie); + magicJS.logInfo(`旧的Cookie:${hisCookie}\n新的Cookie:${cookie}\nCookie不同,写入新的Cookie成功!`); + magicJS.notify('Cookie写入成功!!'); + } + else { + magicJS.logInfo('Cookie没有变化,无需更新'); } } // 获取待领取的吃货豆列表 -function GetPeaList(cookie, longitude, latitude){ - return new Promise((resolve, reject)=>{ +function GetPeaList(cookie, longitude, latitude) { + return new Promise((resolve, reject) => { let options = { url: `https://h5.ele.me/restapi/biz.svip_core/v1/foodie/homepage?longitude=${longitude}&latitude=${latitude}`, headers: { @@ -52,29 +71,29 @@ function GetPeaList(cookie, longitude, latitude){ "x-shard": `loc=${longitude},${latitude}` } } - magicJS.get(options, (err, resp, data)=>{ - if (err){ + magicJS.get(options, (err, resp, data) => { + if (err) { magicJS.logError(`获取待领取的吃货豆失败,请求异常:${err}`); reject('获取待领取的吃货豆失败,请求异常,请查阅日志!'); } - else{ - try{ + else { + try { magicJS.logDebug(`获取待领取吃货豆列表响应结果:${data}`); - let obj = typeof data === 'string'? JSON.parse(data) : data; - if (obj.success === true){ + let obj = typeof data === 'string' ? JSON.parse(data) : data; + if (obj.success === true) { let peaList = []; obj.foodiePeaBlock.peaList.forEach(element => { - peaList.push({'id': element.id, 'count': element.count, 'description': element.description}); + peaList.push({ 'id': element.id, 'count': element.count, 'description': element.description }); }); magicJS.logInfo(`获取待领取的吃货豆成功:${JSON.stringify(peaList)}`); resolve(peaList); } - else{ + else { magicJS.logError(`获取待领取的吃货豆失败,响应异常:${data}`); reject('获取待领取的吃货豆失败,响应异常,请查阅日志!'); } } - catch(err){ + catch (err) { magicJS.logError(`获取待领取的吃货豆失败,执行异常:${err},接口响应:${data}`); reject('获取待领取的吃货豆失败,执行异常,请查阅日志!'); } @@ -84,8 +103,8 @@ function GetPeaList(cookie, longitude, latitude){ } // 领取吃货豆 -function DrawPea(cookie, peaId, longitude, latitude){ - return new Promise((resolve, reject)=>{ +function DrawPea(cookie, peaId, longitude, latitude) { + return new Promise((resolve, reject) => { let options = { url: `https://h5.ele.me/restapi/biz.svip_bonus/v1/users/supervip/pea/draw?peaId=${peaId}`, headers: { @@ -108,25 +127,25 @@ function DrawPea(cookie, peaId, longitude, latitude){ "latitude": latitude }) } - magicJS.post(options, (err, resp, data)=>{ - if (err){ + magicJS.post(options, (err, resp, data) => { + if (err) { magicJS.logError(`领取吃货豆失败,请求异常:${err}`); reject('领取吃货豆失败,请求异常,请查阅日志!'); } - else{ - try{ + else { + try { magicJS.logDebug(`领取吃货豆响应结果:${data}`); - let obj = typeof data === 'string'? JSON.parse(data) : data; - if (obj.success === true){ + let obj = typeof data === 'string' ? JSON.parse(data) : data; + if (obj.success === true) { magicJS.logInfo(`领取吃货豆成功:${data}`); resolve(true); } - else{ + else { magicJS.logError(`领取吃货豆失败,响应异常:${data}`); reject('领取吃货豆失败,响应异常,请查阅日志!'); } } - catch(err){ + catch (err) { magicJS.logError(`领取吃货豆失败,执行异常:${err},接口响应:${data}`); reject('领取吃货豆失败,执行异常,请查阅日志!'); } @@ -135,41 +154,48 @@ function DrawPea(cookie, peaId, longitude, latitude){ }) } -;(async()=>{ - if (magicJS.isRequest){ - if (getCookieRegex.test(magicJS.request.url) && magicJS.request.method == "GET"){ - GetCookie(); +; (async () => { + if (magicJS.isRequest) { + if (( + getCoordinateRegex1.test(magicJS.request.url) || + getCoordinateRegex2.test(magicJS.request.url) || + getCoordinateRegex3.test(magicJS.request.url) + ) && magicJS.request.method == "GET") { + GetCoordinate(); + } + else if (getCookies.test(magicJS.request.url)){ + GetCookies(); } } - else{ + else { let subTitle = ""; let content = ""; let cookie = magicJS.read(elemeCookieKey); let longitude = magicJS.read(elemeLongitudeKey); let latitude = magicJS.read(elemeLatitudeKey); - if (!!!cookie){ + if (!!!cookie) { magicJS.logWarning('没有读取到Cookie,请先从App中获取一次Cookie!'); content = '❓没有读取到有效Cookie,请先从App中获取Cookie!!'; } - else{ + else { // 获取待领取的吃货豆 let [getPeaListErr, peaList] = await magicJS.attempt(GetPeaList(cookie, longitude, latitude), []); content = '吃货豆领取结果:'; - if (getPeaListErr){ + if (getPeaListErr) { content += '\n获取待领取的吃货豆异常,请查阅日志'; } - else if (peaList.length == 0){ + else if (peaList.length == 0) { content += '\n没有发现待领取的吃货豆'; } - else{ + else { let peaCount = 0; let drawPeaContent = ''; - for (let j=0;j{let t={};if(this.isSurge||this.isQuanX||this.isLoon){if(typeof e==="string"){if(this.isLoon)t={openUrl:e};else if(this.isQuanX)t={"open-url":e};else if(this.isSurge)t={url:e}}else if(typeof e==="object"){let s={Surge:{openUrl:"url","open-url":"url"},Loon:{url:"openUrl","open-url":"openUrl","media-url":"mediaUrl"},QuantumultX:{url:"open-url",openUrl:"open-url",mediaUrl:"media-url"}};let i=Object.keys(e);for(let o=0;o{})}if(this.isSurge||this.isLoon){$notification.post(e,t,s,i)}else if(this.isQuanX){$notify(e,t,s,i)}else if(this.isJSBox){let i={title:e,body:!!t?`${t}\n${s}`:s};$push.schedule(i)}}log(e,t="INFO"){if(!(this.logLevels[this._logLevel]{if(typeof i.body==="undefined")return"";return`${encodeURIComponent(e)}=${encodeURIComponent(i.body[e])}`}).join("&");if(i.url.indexOf("?")<0)i.url+="?";if(i.url.lastIndexOf("&")+1!=i.url.length&&i.url.lastIndexOf("?")+1!=i.url.length)i.url+="&";i.url+=e;delete i.body}if(this.isQuanX){if(i.hasOwnProperty("body")&&typeof i["body"]!=="string")i["body"]=JSON.stringify(i["body"]);i["method"]=t}else if(this.isNode){delete i.headers["Accept-Encoding"];if(typeof i.body==="object"){if(t==="GET"){i.qs=i.body;delete i.body}else if(t==="POST"){i["json"]=true;i.body=i.body}}}else if(this.isJSBox){i["header"]=i["headers"];delete i["headers"]}return i}get(e,t){let s=this.adapterHttpOptions(e,"GET");this.logDebug(`HTTP GET: ${JSON.stringify(s)}`);if(this.isSurge||this.isLoon){$httpClient.get(s,t)}else if(this.isQuanX){$task.fetch(s).then(e=>{e["status"]=e.statusCode;t(null,e,e.body)},e=>t(e.error,null,null))}else if(this.isNode){return this.node.request.get(s,t)}else if(this.isJSBox){s["handler"]=(e=>{let s=e.error?JSON.stringify(e.error):undefined;let i=typeof e.data==="object"?JSON.stringify(e.data):e.data;t(s,e.response,i)});$http.get(s)}}post(e,t){let s=this.adapterHttpOptions(e,"POST");this.logDebug(`HTTP POST: ${JSON.stringify(s)}`);if(this.isSurge||this.isLoon){$httpClient.post(s,t)}else if(this.isQuanX){$task.fetch(s).then(e=>{e["status"]=e.statusCode;t(null,e,e.body)},e=>{t(e.error,null,null)})}else if(this.isNode){return this.node.request.post(s,t)}else if(this.isJSBox){s["handler"]=(e=>{let s=e.error?JSON.stringify(e.error):undefined;let i=typeof e.data==="object"?JSON.stringify(e.data):e.data;t(s,e.response,i)});$http.post(s)}}done(e={}){if(typeof $done!=="undefined"){$done(e)}}isToday(e){if(e==null){return false}else{let t=new Date;if(typeof e=="string"){e=new Date(e)}if(t.getFullYear()==e.getFullYear()&&t.getMonth()==e.getMonth()&&t.getDay()==e.getDay()){return true}else{return false}}}isNumber(e){return parseFloat(e).toString()==="NaN"?false:true}attempt(e,t=null){return e.then(e=>{return[null,e]}).catch(e=>{this.logError(e);return[e,t]})}retry(e,t=5,s=0,i=null){return(...o)=>{return new Promise((r,n)=>{function a(...o){Promise.resolve().then(()=>e.apply(this,o)).then(e=>{if(typeof i==="function"){Promise.resolve().then(()=>i(e)).then(()=>{r(e)}).catch(e=>{this.logError(e);if(t>=1&&s>0){setTimeout(()=>a.apply(this,o),s)}else if(t>=1){a.apply(this,o)}else{n(e)}t--})}else{r(e)}}).catch(e=>{this.logError(e);if(t>=1&&s>0){setTimeout(()=>a.apply(this,o),s)}else if(t>=1){a.apply(this,o)}else{n(e)}t--})}a.apply(this,o)})}}formatTime(e,t="yyyy-MM-dd hh:mm:ss"){var s={"M+":e.getMonth()+1,"d+":e.getDate(),"h+":e.getHours(),"m+":e.getMinutes(),"s+":e.getSeconds(),"q+":Math.floor((e.getMonth()+3)/3),S:e.getMilliseconds()};if(/(y+)/.test(t))t=t.replace(RegExp.$1,(e.getFullYear()+"").substr(4-RegExp.$1.length));for(let e in s)if(new RegExp("("+e+")").test(t))t=t.replace(RegExp.$1,RegExp.$1.length==1?s[e]:("00"+s[e]).substr((""+s[e]).length));return t}now(){return this.formatTime(new Date,"yyyy-MM-dd hh:mm:ss")}today(){return this.formatTime(new Date,"yyyy-MM-dd")}sleep(e){return new Promise(t=>setTimeout(t,e))}}(e)} +function MagicJS(e = "MagicJS", t = "INFO") { const s = { accept: "Accept", "accept-ch": "Accept-CH", "accept-charset": "Accept-Charset", "accept-features": "Accept-Features", "accept-encoding": "Accept-Encoding", "accept-language": "Accept-Language", "accept-ranges": "Accept-Ranges", "access-control-allow-credentials": "Access-Control-Allow-Credentials", "access-control-allow-origin": "Access-Control-Allow-Origin", "access-control-allow-methods": "Access-Control-Allow-Methods", "access-control-allow-headers": "Access-Control-Allow-Headers", "access-control-max-age": "Access-Control-Max-Age", "access-control-expose-headers": "Access-Control-Expose-Headers", "access-control-request-method": "Access-Control-Request-Method", "access-control-request-headers": "Access-Control-Request-Headers", age: "Age", allow: "Allow", alternates: "Alternates", authorization: "Authorization", "cache-control": "Cache-Control", connection: "Connection", "content-encoding": "Content-Encoding", "content-language": "Content-Language", "content-length": "Content-Length", "content-location": "Content-Location", "content-md5": "Content-MD5", "content-range": "Content-Range", "content-security-policy": "Content-Security-Policy", "content-type": "Content-Type", cookie: "Cookie", dnt: "DNT", date: "Date", etag: "ETag", expect: "Expect", expires: "Expires", from: "From", host: "Host", "if-match": "If-Match", "if-modified-since": "If-Modified-Since", "if-none-match": "If-None-Match", "if-range": "If-Range", "if-unmodified-since": "If-Unmodified-Since", "last-event-id": "Last-Event-ID", "last-modified": "Last-Modified", link: "Link", location: "Location", "max-forwards": "Max-Forwards", negotiate: "Negotiate", origin: "Origin", pragma: "Pragma", "proxy-authenticate": "Proxy-Authenticate", "proxy-authorization": "Proxy-Authorization", range: "Range", referer: "Referer", "retry-after": "Retry-After", "sec-websocket-extensions": "Sec-Websocket-Extensions", "sec-websocket-key": "Sec-Websocket-Key", "sec-websocket-origin": "Sec-Websocket-Origin", "sec-websocket-protocol": "Sec-Websocket-Protocol", "sec-websocket-version": "Sec-Websocket-Version", server: "Server", "set-cookie": "Set-Cookie", "set-cookie2": "Set-Cookie2", "strict-transport-security": "Strict-Transport-Security", tcn: "TCN", te: "TE", trailer: "Trailer", "transfer-encoding": "Transfer-Encoding", upgrade: "Upgrade", "user-agent": "User-Agent", "variant-vary": "Variant-Vary", vary: "Vary", via: "Via", warning: "Warning", "www-authenticate": "WWW-Authenticate", "x-content-duration": "X-Content-Duration", "x-content-security-policy": "X-Content-Security-Policy", "x-dnsprefetch-control": "X-DNSPrefetch-Control", "x-frame-options": "X-Frame-Options", "x-requested-with": "X-Requested-With", "x-surge-skip-scripting": "X-Surge-Skip-Scripting" }; return new class { constructor() { this.version = "2.2.3.3"; this.scriptName = e; this.logLevels = { DEBUG: 5, INFO: 4, NOTIFY: 3, WARNING: 2, ERROR: 1, CRITICAL: 0, NONE: -1 }; this.isLoon = typeof $loon !== "undefined"; this.isQuanX = typeof $task !== "undefined"; this.isJSBox = typeof $drive !== "undefined"; this.isNode = typeof module !== "undefined" && !this.isJSBox; this.isSurge = typeof $httpClient !== "undefined" && !this.isLoon; this.platform = this.getPlatform(); this.node = { request: undefined, fs: undefined, data: {} }; this.iOSUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Mobile/15E148 Safari/604.1"; this.pcUserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36 Edg/84.0.522.59"; this.logLevel = t; this._unifiedPushUrl = ""; if (this.isNode) { this.node.fs = require("fs"); this.node.request = require("request"); try { this.node.fs.accessSync("./magic.json", this.node.fs.constants.R_OK | this.node.fs.constants.W_OK) } catch (e) { this.node.fs.writeFileSync("./magic.json", "{}", { encoding: "utf8" }) } this.node.data = require("./magic.json") } else if (this.isJSBox) { if (!$file.exists("drive://MagicJS")) { $file.mkdir("drive://MagicJS") } if (!$file.exists("drive://MagicJS/magic.json")) { $file.write({ data: $data({ string: "{}" }), path: "drive://MagicJS/magic.json" }) } } } set unifiedPushUrl(e) { this._unifiedPushUrl = !!e ? e.replace(/\/+$/g, "") : "" } set logLevel(e) { this._logLevel = typeof e === "string" ? e.toUpperCase() : "DEBUG" } get logLevel() { return this._logLevel } get isRequest() { return typeof $request !== "undefined" && typeof $response === "undefined" } get isResponse() { return typeof $response !== "undefined" } get request() { return typeof $request !== "undefined" ? $request : undefined } get response() { if (typeof $response !== "undefined") { if ($response.hasOwnProperty("status")) $response["statusCode"] = $response["status"]; if ($response.hasOwnProperty("statusCode")) $response["status"] = $response["statusCode"]; return $response } else { return undefined } } getPlatform() { if (this.isSurge) return "Surge"; else if (this.isQuanX) return "QuantumultX"; else if (this.isLoon) return "Loon"; else if (this.isJSBox) return "JSBox"; else if (this.isNode) return "Node.js"; else return "unknown" } read(e, t = "") { let s = ""; if (this.isSurge || this.isLoon) { s = $persistentStore.read(e) } else if (this.isQuanX) { s = $prefs.valueForKey(e) } else if (this.isNode) { s = this.node.data } else if (this.isJSBox) { s = $file.read("drive://MagicJS/magic.json").string } try { if (this.isNode) s = s[e]; if (this.isJSBox) s = JSON.parse(s)[e]; if (!!t) { if (typeof s === "string") s = JSON.parse(s); s = !!s && typeof s === "object" ? s[t] : null } } catch (i) { this.logError(i); s = !!t ? {} : null; this.del(e) } if (typeof s === "undefined") s = null; try { if (!!s && typeof s === "string") s = JSON.parse(s) } catch (e) { } this.logDebug(`READ DATA [${e}]${!!t ? `[${t}]` : ""}(${typeof s})\n${JSON.stringify(s)}`); return s } write(e, t, s = "") { let i = !!s ? {} : ""; if (!!s && (this.isSurge || this.isLoon)) { i = $persistentStore.read(e) } else if (!!s && this.isQuanX) { i = $prefs.valueForKey(e) } else if (this.isNode) { i = this.node.data } else if (this.isJSBox) { i = JSON.parse($file.read("drive://MagicJS/magic.json").string) } if (!!s) { try { if (typeof i === "string") i = JSON.parse(i); i = typeof i === "object" && !!i ? i : {} } catch (t) { this.logError(t); this.del(e); i = {} } if (this.isJSBox || this.isNode) { if (!i.hasOwnProperty(e) || typeof i[e] !== "object" || i[e] === null) { i[e] = {} } if (!i[e].hasOwnProperty(s)) { i[e][s] = null } if (typeof t === "undefined") { delete i[e][s] } else { i[e][s] = t } } else { if (typeof t === "undefined") { delete i[s] } else { i[s] = t } } } else { if (this.isNode || this.isJSBox) { if (typeof t === "undefined") { delete i[e] } else { i[e] = t } } else { if (typeof t === "undefined") { i = null } else { i = t } } } if (typeof i === "object") i = JSON.stringify(i); if (this.isSurge || this.isLoon) { $persistentStore.write(i, e) } else if (this.isQuanX) { $prefs.setValueForKey(i, e) } else if (this.isNode) { this.node.fs.writeFileSync("./magic.json", i) } else if (this.isJSBox) { $file.write({ data: $data({ string: i }), path: "drive://MagicJS/magic.json" }) } this.logDebug(`WRITE DATA [${e}]${!!s ? `[${s}]` : ""}(${typeof t})\n${JSON.stringify(t)}`) } del(e, t = "") { this.logDebug(`DELETE KEY [${e}]${!!t ? `[${t}]` : ""}`); this.write(e, null, t) } notify(e = this.scriptName, t = "", s = "", i = "") { let o = e => { let t = {}; if (this.isSurge || this.isQuanX || this.isLoon) { if (typeof e === "string") { if (this.isLoon) t = { openUrl: e }; else if (this.isQuanX) t = { "open-url": e }; else if (this.isSurge) t = { url: e } } else if (typeof e === "object") { let s = { Surge: { openUrl: "url", "open-url": "url" }, Loon: { url: "openUrl", "open-url": "openUrl", "media-url": "mediaUrl" }, QuantumultX: { url: "open-url", openUrl: "open-url", mediaUrl: "media-url" } }; let i = Object.keys(e); for (let o = 0; o < i.length; o++) { if (!!s[this.platform][i[o]]) { t[s[this.platform][i[o]]] = e[i[o]] } else { t[i[o]] = e[i[o]] } } } } return t }; i = o(i); this.logNotify(`title:${e}\nsubTitle:${t}\nbody:${s}\noptions:${typeof i === "object" ? JSON.stringify(i) : i}`); if (arguments.length == 1) { e = this.scriptName; t = "", s = arguments[0] } if (!!this._unifiedPushUrl) { let i = encodeURI(`${e}/${t}${!!t ? "\n" : ""}${s}`); this.get(`${this._unifiedPushUrl}/${i}`, () => { }) } if (this.isSurge || this.isLoon) { $notification.post(e, t, s, i) } else if (this.isQuanX) { $notify(e, t, s, i) } else if (this.isJSBox) { let i = { title: e, body: !!t ? `${t}\n${s}` : s }; $push.schedule(i) } } log(e, t = "INFO") { if (!(this.logLevels[this._logLevel] < this.logLevels[t.toUpperCase()])) console.log(`[${t}] [${this.scriptName}]\n${e}\n`) } logDebug(e) { this.log(e, "DEBUG") } logInfo(e) { this.log(e, "INFO") } logNotify(e) { this.log(e, "NOTIFY") } logWarning(e) { this.log(e, "WARNING") } logError(e) { this.log(e, "ERROR") } adapterHttpOptions(e, t) { let i = typeof e === "object" ? Object.assign({}, e) : { url: e, headers: {} }; if (i.hasOwnProperty("header") && !i.hasOwnProperty("headers")) { i["headers"] = i["header"]; delete i["header"] } if (typeof i.headers === "object" && !!s) { for (let e in i.headers) { if (s[e]) { i.headers[s[e]] = i.headers[e]; delete i.headers[e] } } } if (!!!i.headers || typeof i.headers !== "object" || !!!i.headers["User-Agent"]) { if (!!!i.headers || typeof i.headers !== "object") i.headers = {}; if (this.isNode) i.headers["User-Agent"] = this.pcUserAgent; else i.headers["User-Agent"] = this.iOSUserAgent } let o = false; if (typeof i["opts"] === "object" && (i["opts"]["hints"] === true || i["opts"]["Skip-Scripting"] === true) || typeof i["headers"] === "object" && i["headers"]["X-Surge-Skip-Scripting"] === true) { o = true } if (!o) { if (this.isSurge) i.headers["X-Surge-Skip-Scripting"] = false; else if (this.isLoon) i.headers["X-Requested-With"] = "XMLHttpRequest"; else if (this.isQuanX) { if (typeof i["opts"] !== "object") i.opts = {}; i.opts["hints"] = false } } if (!this.isSurge || o) delete i.headers["X-Surge-Skip-Scripting"]; if (!this.isQuanX && i.hasOwnProperty("opts")) delete i["opts"]; if (this.isQuanX && i.hasOwnProperty("opts")) delete i["opts"]["Skip-Scripting"]; if (t === "GET" && !this.isNode && !!i.body) { let e = Object.keys(i.body).map(e => { if (typeof i.body === "undefined") return ""; return `${encodeURIComponent(e)}=${encodeURIComponent(i.body[e])}` }).join("&"); if (i.url.indexOf("?") < 0) i.url += "?"; if (i.url.lastIndexOf("&") + 1 != i.url.length && i.url.lastIndexOf("?") + 1 != i.url.length) i.url += "&"; i.url += e; delete i.body } if (this.isQuanX) { if (i.hasOwnProperty("body") && typeof i["body"] !== "string") i["body"] = JSON.stringify(i["body"]); i["method"] = t } else if (this.isNode) { delete i.headers["Accept-Encoding"]; if (typeof i.body === "object") { if (t === "GET") { i.qs = i.body; delete i.body } else if (t === "POST") { i["json"] = true; i.body = i.body } } } else if (this.isJSBox) { i["header"] = i["headers"]; delete i["headers"] } return i } get(e, t) { let s = this.adapterHttpOptions(e, "GET"); this.logDebug(`HTTP GET: ${JSON.stringify(s)}`); if (this.isSurge || this.isLoon) { $httpClient.get(s, t) } else if (this.isQuanX) { $task.fetch(s).then(e => { e["status"] = e.statusCode; t(null, e, e.body) }, e => t(e.error, null, null)) } else if (this.isNode) { return this.node.request.get(s, t) } else if (this.isJSBox) { s["handler"] = (e => { let s = e.error ? JSON.stringify(e.error) : undefined; let i = typeof e.data === "object" ? JSON.stringify(e.data) : e.data; t(s, e.response, i) }); $http.get(s) } } post(e, t) { let s = this.adapterHttpOptions(e, "POST"); this.logDebug(`HTTP POST: ${JSON.stringify(s)}`); if (this.isSurge || this.isLoon) { $httpClient.post(s, t) } else if (this.isQuanX) { $task.fetch(s).then(e => { e["status"] = e.statusCode; t(null, e, e.body) }, e => { t(e.error, null, null) }) } else if (this.isNode) { return this.node.request.post(s, t) } else if (this.isJSBox) { s["handler"] = (e => { let s = e.error ? JSON.stringify(e.error) : undefined; let i = typeof e.data === "object" ? JSON.stringify(e.data) : e.data; t(s, e.response, i) }); $http.post(s) } } done(e = {}) { if (typeof $done !== "undefined") { $done(e) } } isToday(e) { if (e == null) { return false } else { let t = new Date; if (typeof e == "string") { e = new Date(e) } if (t.getFullYear() == e.getFullYear() && t.getMonth() == e.getMonth() && t.getDay() == e.getDay()) { return true } else { return false } } } isNumber(e) { return parseFloat(e).toString() === "NaN" ? false : true } attempt(e, t = null) { return e.then(e => { return [null, e] }).catch(e => { this.logError(e); return [e, t] }) } retry(e, t = 5, s = 0, i = null) { return (...o) => { return new Promise((r, n) => { function a(...o) { Promise.resolve().then(() => e.apply(this, o)).then(e => { if (typeof i === "function") { Promise.resolve().then(() => i(e)).then(() => { r(e) }).catch(e => { this.logError(e); if (t >= 1 && s > 0) { setTimeout(() => a.apply(this, o), s) } else if (t >= 1) { a.apply(this, o) } else { n(e) } t-- }) } else { r(e) } }).catch(e => { this.logError(e); if (t >= 1 && s > 0) { setTimeout(() => a.apply(this, o), s) } else if (t >= 1) { a.apply(this, o) } else { n(e) } t-- }) } a.apply(this, o) }) } } formatTime(e, t = "yyyy-MM-dd hh:mm:ss") { var s = { "M+": e.getMonth() + 1, "d+": e.getDate(), "h+": e.getHours(), "m+": e.getMinutes(), "s+": e.getSeconds(), "q+": Math.floor((e.getMonth() + 3) / 3), S: e.getMilliseconds() }; if (/(y+)/.test(t)) t = t.replace(RegExp.$1, (e.getFullYear() + "").substr(4 - RegExp.$1.length)); for (let e in s) if (new RegExp("(" + e + ")").test(t)) t = t.replace(RegExp.$1, RegExp.$1.length == 1 ? s[e] : ("00" + s[e]).substr(("" + s[e]).length)); return t } now() { return this.formatTime(new Date, "yyyy-MM-dd hh:mm:ss") } today() { return this.formatTime(new Date, "yyyy-MM-dd") } sleep(e) { return new Promise(t => setTimeout(t, e)) } }(e) } diff --git a/script/eleme/eleme_daily.lnplugin b/script/eleme/eleme_daily.lnplugin new file mode 100644 index 00000000000..02094ca763a --- /dev/null +++ b/script/eleme/eleme_daily.lnplugin @@ -0,0 +1,17 @@ +#!name= 饿了么 +#!desc= 饿了么每日自动领取任务及吃货豆 +#!openUrl=https://github.com/blackmatrix7/ios_rule_script/tree/master/script/eleme +#!author= blackmatrix7 +#!homepage= https://github.com/blackmatrix7/ios_rule_script +#!icon= https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/elem.png + +[Script] +http-request ^https?:\/\/air\.tb\.ele\.me\/app\/conch-page\/svip-foodie-card\/home requires-body=1,script-path=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js,tag=饿了么_获取Cookie +http-request ^https?:\/\/air\.tb\.ele\.me\/app\/conch-page\/svip-home-tasklist-new\/home requires-body=1,script-path=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js,tag=饿了么_获取坐标1 +http-request ^https?:\/\/tb\.ele\.me\/wow\/alsc\/mod requires-body=1,script-path=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js,tag=饿了么_获取坐标2 +http-request ^https?:\/\/h5\.ele\.me\/restapi\/biz\.svip_scene\/svip\/engine\/queryTrafficSupply requires-body=1,script-path=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js,tag=饿了么_获取坐标3 +cron "10 09 * * *" script-path=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js,timeout=60,tag=饿了么_领取吃货豆 +cron "15 09 * * *" script-path=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_mission.js,timeout=60,tag=饿了么_领取会员任务 + +[MITM] +hostname = air.tb.ele.me,tb.ele.me,h5.ele.me \ No newline at end of file diff --git a/script/eleme/eleme_daily.lnscript b/script/eleme/eleme_daily.lnscript deleted file mode 100644 index fbeb8975688..00000000000 --- a/script/eleme/eleme_daily.lnscript +++ /dev/null @@ -1,7 +0,0 @@ -# 饿了么每日自动领取任务及吃货豆 - -http-request ^https?:\/\/h5\.ele\.me\/restapi\/biz\.svip_scene\/svip\/engine\/queryTrafficSupply requires-body=1,script-path=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js,tag=饿了么_获取cookie -cron "10 00 * * *" script-path=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js,timeout=60,tag=饿了么_领取吃货豆 -cron "00 10 * * *" script-path=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_mission.js,timeout=60,tag=饿了么_领取会员任务 - -hostname = h5.ele.me \ No newline at end of file diff --git a/script/eleme/eleme_daily.qxrewrite b/script/eleme/eleme_daily.qxrewrite index a061e6fe0f6..ea747cc16c5 100644 --- a/script/eleme/eleme_daily.qxrewrite +++ b/script/eleme/eleme_daily.qxrewrite @@ -1,5 +1,8 @@ # 饿了么每日自动领取任务及吃货豆 +^https?:\/\/air\.tb\.ele\.me\/app\/conch-page\/svip-foodie-card\/home url script-request-header https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js +^https?:\/\/air\.tb\.ele\.me\/app\/conch-page\/svip-home-tasklist-new\/home url script-request-header https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js +^https?:\/\/tb\.ele\.me\/wow\/alsc\/mod url script-request-header https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js ^https?:\/\/h5\.ele\.me\/restapi\/biz\.svip_scene\/svip\/engine\/queryTrafficSupply url script-request-header https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js -hostname = h5.ele.me \ No newline at end of file +hostname = air.tb.ele.me,tb.ele.me,h5.ele.me \ No newline at end of file diff --git a/script/eleme/eleme_daily.sgmodule b/script/eleme/eleme_daily.sgmodule index 89b70454bdf..733df797e5f 100644 --- a/script/eleme/eleme_daily.sgmodule +++ b/script/eleme/eleme_daily.sgmodule @@ -3,9 +3,12 @@ #!system=ios [Script] -饿了么_领取吃货豆 = type=cron,cronexp=10 00 * * *,timeout=60,script-path=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js -饿了么_领取任务 = type=cron,cronexp=00 10 * * *,timeout=60,script-path=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_mission.js -饿了么_获取cookie = type=http-request,pattern=^https?:\/\/h5\.ele\.me\/restapi\/biz\.svip_scene\/svip\/engine\/queryTrafficSupply,script-path=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js +饿了么_领取吃货豆 = type=cron,cronexp=10 09 * * *,timeout=60,script-path=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js +饿了么_领取任务 = type=cron,cronexp=15 09 * * *,timeout=60,script-path=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_mission.js +饿了么_获取坐标1 = type=http-request,pattern=^https?:\/\/air\.tb\.ele\.me\/app\/conch-page\/svip-home-tasklist-new\/home,script-path=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js +饿了么_获取坐标2 = type=http-request,pattern=^https?:\/\/tb\.ele\.me\/wow\/alsc\/mod,script-path=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js +饿了么_获取坐标3 = type=http-request,pattern=^https?:\/\/h5\.ele\.me\/restapi\/biz\.svip_scene\/svip\/engine\/queryTrafficSupply,script-path=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js +饿了么_Cookies = type=http-request,pattern=^https?:\/\/air\.tb\.ele\.me\/app\/conch-page\/svip-foodie-card\/home,script-path=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/eleme/eleme_daily.js [MITM] -hostname = %APPEND% h5.ele.me \ No newline at end of file +hostname = %APPEND% air.tb.ele.me,tb.ele.me,h5.ele.me \ No newline at end of file diff --git a/script/eleme/eleme_mission.js b/script/eleme/eleme_mission.js index 77bdd96ec3a..b18db7b35e4 100644 --- a/script/eleme/eleme_mission.js +++ b/script/eleme/eleme_mission.js @@ -2,16 +2,18 @@ const scriptName = "饿了么"; const elemeCookieKey = "eleme_app_cookie"; const elemeLongitudeKey = "eleme_app_longitude"; const elemeLatitudeKey = "eleme_app_latitude"; -// 以下条件是AND的关系 -const taskKeywords = ["美食外卖"]; // 任务JSON中含有此关键字的任务才会领取 -const requiredOrderAmount = 4; // 需要完成订单数量小于等于此数的任务才会领取 +const elemeTaskKey = "eleme_task_keywords"; let magicJS = MagicJS(scriptName, "INFO"); -magicJS.unifiedPushUrl = magicJS.read("eleme_app_unified_push_url") || magicJS.read("magicjs_unified_push_url"); +magicJS.barkUrl = magicJS.read("bark_url"); // 获取超级会员任务列表 function GetSuperVipMissions(cookie, longitude, latitude) { return new Promise((resolve, reject) => { + // 获取配置的任务关键词 + const taskKeywords = magicJS.read(elemeTaskKey).split(';'); + magicJS.logInfo(`只获取含有以下关键词的任务:${magicJS.read(elemeTaskKey)}`); + let options = { url: `https://h5.ele.me/restapi/svip_biz/v1/supervip/query_mission_list?longitude=${longitude}&latitude=${latitude}`, headers: { @@ -42,7 +44,7 @@ function GetSuperVipMissions(cookie, longitude, latitude) { let missionInfo = JSON.stringify(element); let flag = false; for (keyword of taskKeywords) { - if (missionInfo.indexOf(keyword) >= 0 && element.required_order_amount <= requiredOrderAmount) { + if (missionInfo.indexOf(keyword) >= 0) { flag = true; break; } @@ -154,4 +156,4 @@ function AcceptMission(cookie, longitude, latitude, mission_id) { })(); // prettier-ignore -function MagicJS(e="MagicJS",t="INFO"){const s={accept:"Accept","accept-ch":"Accept-CH","accept-charset":"Accept-Charset","accept-features":"Accept-Features","accept-encoding":"Accept-Encoding","accept-language":"Accept-Language","accept-ranges":"Accept-Ranges","access-control-allow-credentials":"Access-Control-Allow-Credentials","access-control-allow-origin":"Access-Control-Allow-Origin","access-control-allow-methods":"Access-Control-Allow-Methods","access-control-allow-headers":"Access-Control-Allow-Headers","access-control-max-age":"Access-Control-Max-Age","access-control-expose-headers":"Access-Control-Expose-Headers","access-control-request-method":"Access-Control-Request-Method","access-control-request-headers":"Access-Control-Request-Headers",age:"Age",allow:"Allow",alternates:"Alternates",authorization:"Authorization","cache-control":"Cache-Control",connection:"Connection","content-encoding":"Content-Encoding","content-language":"Content-Language","content-length":"Content-Length","content-location":"Content-Location","content-md5":"Content-MD5","content-range":"Content-Range","content-security-policy":"Content-Security-Policy","content-type":"Content-Type",cookie:"Cookie",dnt:"DNT",date:"Date",etag:"ETag",expect:"Expect",expires:"Expires",from:"From",host:"Host","if-match":"If-Match","if-modified-since":"If-Modified-Since","if-none-match":"If-None-Match","if-range":"If-Range","if-unmodified-since":"If-Unmodified-Since","last-event-id":"Last-Event-ID","last-modified":"Last-Modified",link:"Link",location:"Location","max-forwards":"Max-Forwards",negotiate:"Negotiate",origin:"Origin",pragma:"Pragma","proxy-authenticate":"Proxy-Authenticate","proxy-authorization":"Proxy-Authorization",range:"Range",referer:"Referer","retry-after":"Retry-After","sec-websocket-extensions":"Sec-Websocket-Extensions","sec-websocket-key":"Sec-Websocket-Key","sec-websocket-origin":"Sec-Websocket-Origin","sec-websocket-protocol":"Sec-Websocket-Protocol","sec-websocket-version":"Sec-Websocket-Version",server:"Server","set-cookie":"Set-Cookie","set-cookie2":"Set-Cookie2","strict-transport-security":"Strict-Transport-Security",tcn:"TCN",te:"TE",trailer:"Trailer","transfer-encoding":"Transfer-Encoding",upgrade:"Upgrade","user-agent":"User-Agent","variant-vary":"Variant-Vary",vary:"Vary",via:"Via",warning:"Warning","www-authenticate":"WWW-Authenticate","x-content-duration":"X-Content-Duration","x-content-security-policy":"X-Content-Security-Policy","x-dnsprefetch-control":"X-DNSPrefetch-Control","x-frame-options":"X-Frame-Options","x-requested-with":"X-Requested-With","x-surge-skip-scripting":"X-Surge-Skip-Scripting"};return new class{constructor(){this.version="2.2.3.3";this.scriptName=e;this.logLevels={DEBUG:5,INFO:4,NOTIFY:3,WARNING:2,ERROR:1,CRITICAL:0,NONE:-1};this.isLoon=typeof $loon!=="undefined";this.isQuanX=typeof $task!=="undefined";this.isJSBox=typeof $drive!=="undefined";this.isNode=typeof module!=="undefined"&&!this.isJSBox;this.isSurge=typeof $httpClient!=="undefined"&&!this.isLoon;this.platform=this.getPlatform();this.node={request:undefined,fs:undefined,data:{}};this.iOSUserAgent="Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Mobile/15E148 Safari/604.1";this.pcUserAgent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36 Edg/84.0.522.59";this.logLevel=t;this._unifiedPushUrl="";if(this.isNode){this.node.fs=require("fs");this.node.request=require("request");try{this.node.fs.accessSync("./magic.json",this.node.fs.constants.R_OK|this.node.fs.constants.W_OK)}catch(e){this.node.fs.writeFileSync("./magic.json","{}",{encoding:"utf8"})}this.node.data=require("./magic.json")}else if(this.isJSBox){if(!$file.exists("drive://MagicJS")){$file.mkdir("drive://MagicJS")}if(!$file.exists("drive://MagicJS/magic.json")){$file.write({data:$data({string:"{}"}),path:"drive://MagicJS/magic.json"})}}}set unifiedPushUrl(e){this._unifiedPushUrl=!!e?e.replace(/\/+$/g,""):""}set logLevel(e){this._logLevel=typeof e==="string"?e.toUpperCase():"DEBUG"}get logLevel(){return this._logLevel}get isRequest(){return typeof $request!=="undefined"&&typeof $response==="undefined"}get isResponse(){return typeof $response!=="undefined"}get request(){return typeof $request!=="undefined"?$request:undefined}get response(){if(typeof $response!=="undefined"){if($response.hasOwnProperty("status"))$response["statusCode"]=$response["status"];if($response.hasOwnProperty("statusCode"))$response["status"]=$response["statusCode"];return $response}else{return undefined}}getPlatform(){if(this.isSurge)return"Surge";else if(this.isQuanX)return"QuantumultX";else if(this.isLoon)return"Loon";else if(this.isJSBox)return"JSBox";else if(this.isNode)return"Node.js";else return"unknown"}read(e,t=""){let s="";if(this.isSurge||this.isLoon){s=$persistentStore.read(e)}else if(this.isQuanX){s=$prefs.valueForKey(e)}else if(this.isNode){s=this.node.data}else if(this.isJSBox){s=$file.read("drive://MagicJS/magic.json").string}try{if(this.isNode)s=s[e];if(this.isJSBox)s=JSON.parse(s)[e];if(!!t){if(typeof s==="string")s=JSON.parse(s);s=!!s&&typeof s==="object"?s[t]:null}}catch(i){this.logError(i);s=!!t?{}:null;this.del(e)}if(typeof s==="undefined")s=null;try{if(!!s&&typeof s==="string")s=JSON.parse(s)}catch(e){}this.logDebug(`READ DATA [${e}]${!!t?`[${t}]`:""}(${typeof s})\n${JSON.stringify(s)}`);return s}write(e,t,s=""){let i=!!s?{}:"";if(!!s&&(this.isSurge||this.isLoon)){i=$persistentStore.read(e)}else if(!!s&&this.isQuanX){i=$prefs.valueForKey(e)}else if(this.isNode){i=this.node.data}else if(this.isJSBox){i=JSON.parse($file.read("drive://MagicJS/magic.json").string)}if(!!s){try{if(typeof i==="string")i=JSON.parse(i);i=typeof i==="object"&&!!i?i:{}}catch(t){this.logError(t);this.del(e);i={}}if(this.isJSBox||this.isNode){if(!i.hasOwnProperty(e)||typeof i[e]!=="object"||i[e]===null){i[e]={}}if(!i[e].hasOwnProperty(s)){i[e][s]=null}if(typeof t==="undefined"){delete i[e][s]}else{i[e][s]=t}}else{if(typeof t==="undefined"){delete i[s]}else{i[s]=t}}}else{if(this.isNode||this.isJSBox){if(typeof t==="undefined"){delete i[e]}else{i[e]=t}}else{if(typeof t==="undefined"){i=null}else{i=t}}}if(typeof i==="object")i=JSON.stringify(i);if(this.isSurge||this.isLoon){$persistentStore.write(i,e)}else if(this.isQuanX){$prefs.setValueForKey(i,e)}else if(this.isNode){this.node.fs.writeFileSync("./magic.json",i)}else if(this.isJSBox){$file.write({data:$data({string:i}),path:"drive://MagicJS/magic.json"})}this.logDebug(`WRITE DATA [${e}]${!!s?`[${s}]`:""}(${typeof t})\n${JSON.stringify(t)}`)}del(e,t=""){this.logDebug(`DELETE KEY [${e}]${!!t?`[${t}]`:""}`);this.write(e,null,t)}notify(e=this.scriptName,t="",s="",i=""){let o=e=>{let t={};if(this.isSurge||this.isQuanX||this.isLoon){if(typeof e==="string"){if(this.isLoon)t={openUrl:e};else if(this.isQuanX)t={"open-url":e};else if(this.isSurge)t={url:e}}else if(typeof e==="object"){let s={Surge:{openUrl:"url","open-url":"url"},Loon:{url:"openUrl","open-url":"openUrl","media-url":"mediaUrl"},QuantumultX:{url:"open-url",openUrl:"open-url",mediaUrl:"media-url"}};let i=Object.keys(e);for(let o=0;o{})}if(this.isSurge||this.isLoon){$notification.post(e,t,s,i)}else if(this.isQuanX){$notify(e,t,s,i)}else if(this.isJSBox){let i={title:e,body:!!t?`${t}\n${s}`:s};$push.schedule(i)}}log(e,t="INFO"){if(!(this.logLevels[this._logLevel]{if(typeof i.body==="undefined")return"";return`${encodeURIComponent(e)}=${encodeURIComponent(i.body[e])}`}).join("&");if(i.url.indexOf("?")<0)i.url+="?";if(i.url.lastIndexOf("&")+1!=i.url.length&&i.url.lastIndexOf("?")+1!=i.url.length)i.url+="&";i.url+=e;delete i.body}if(this.isQuanX){if(i.hasOwnProperty("body")&&typeof i["body"]!=="string")i["body"]=JSON.stringify(i["body"]);i["method"]=t}else if(this.isNode){delete i.headers["Accept-Encoding"];if(typeof i.body==="object"){if(t==="GET"){i.qs=i.body;delete i.body}else if(t==="POST"){i["json"]=true;i.body=i.body}}}else if(this.isJSBox){i["header"]=i["headers"];delete i["headers"]}return i}get(e,t){let s=this.adapterHttpOptions(e,"GET");this.logDebug(`HTTP GET: ${JSON.stringify(s)}`);if(this.isSurge||this.isLoon){$httpClient.get(s,t)}else if(this.isQuanX){$task.fetch(s).then(e=>{e["status"]=e.statusCode;t(null,e,e.body)},e=>t(e.error,null,null))}else if(this.isNode){return this.node.request.get(s,t)}else if(this.isJSBox){s["handler"]=(e=>{let s=e.error?JSON.stringify(e.error):undefined;let i=typeof e.data==="object"?JSON.stringify(e.data):e.data;t(s,e.response,i)});$http.get(s)}}post(e,t){let s=this.adapterHttpOptions(e,"POST");this.logDebug(`HTTP POST: ${JSON.stringify(s)}`);if(this.isSurge||this.isLoon){$httpClient.post(s,t)}else if(this.isQuanX){$task.fetch(s).then(e=>{e["status"]=e.statusCode;t(null,e,e.body)},e=>{t(e.error,null,null)})}else if(this.isNode){return this.node.request.post(s,t)}else if(this.isJSBox){s["handler"]=(e=>{let s=e.error?JSON.stringify(e.error):undefined;let i=typeof e.data==="object"?JSON.stringify(e.data):e.data;t(s,e.response,i)});$http.post(s)}}done(e={}){if(typeof $done!=="undefined"){$done(e)}}isToday(e){if(e==null){return false}else{let t=new Date;if(typeof e=="string"){e=new Date(e)}if(t.getFullYear()==e.getFullYear()&&t.getMonth()==e.getMonth()&&t.getDay()==e.getDay()){return true}else{return false}}}isNumber(e){return parseFloat(e).toString()==="NaN"?false:true}attempt(e,t=null){return e.then(e=>{return[null,e]}).catch(e=>{this.logError(e);return[e,t]})}retry(e,t=5,s=0,i=null){return(...o)=>{return new Promise((r,n)=>{function a(...o){Promise.resolve().then(()=>e.apply(this,o)).then(e=>{if(typeof i==="function"){Promise.resolve().then(()=>i(e)).then(()=>{r(e)}).catch(e=>{this.logError(e);if(t>=1&&s>0){setTimeout(()=>a.apply(this,o),s)}else if(t>=1){a.apply(this,o)}else{n(e)}t--})}else{r(e)}}).catch(e=>{this.logError(e);if(t>=1&&s>0){setTimeout(()=>a.apply(this,o),s)}else if(t>=1){a.apply(this,o)}else{n(e)}t--})}a.apply(this,o)})}}formatTime(e,t="yyyy-MM-dd hh:mm:ss"){var s={"M+":e.getMonth()+1,"d+":e.getDate(),"h+":e.getHours(),"m+":e.getMinutes(),"s+":e.getSeconds(),"q+":Math.floor((e.getMonth()+3)/3),S:e.getMilliseconds()};if(/(y+)/.test(t))t=t.replace(RegExp.$1,(e.getFullYear()+"").substr(4-RegExp.$1.length));for(let e in s)if(new RegExp("("+e+")").test(t))t=t.replace(RegExp.$1,RegExp.$1.length==1?s[e]:("00"+s[e]).substr((""+s[e]).length));return t}now(){return this.formatTime(new Date,"yyyy-MM-dd hh:mm:ss")}today(){return this.formatTime(new Date,"yyyy-MM-dd")}sleep(e){return new Promise(t=>setTimeout(t,e))}}(e)} +function MagicJS(e="MagicJS",t="INFO"){const s={accept:"Accept","accept-ch":"Accept-CH","accept-charset":"Accept-Charset","accept-features":"Accept-Features","accept-encoding":"Accept-Encoding","accept-language":"Accept-Language","accept-ranges":"Accept-Ranges","access-control-allow-credentials":"Access-Control-Allow-Credentials","access-control-allow-origin":"Access-Control-Allow-Origin","access-control-allow-methods":"Access-Control-Allow-Methods","access-control-allow-headers":"Access-Control-Allow-Headers","access-control-max-age":"Access-Control-Max-Age","access-control-expose-headers":"Access-Control-Expose-Headers","access-control-request-method":"Access-Control-Request-Method","access-control-request-headers":"Access-Control-Request-Headers",age:"Age",allow:"Allow",alternates:"Alternates",authorization:"Authorization","cache-control":"Cache-Control",connection:"Connection","content-encoding":"Content-Encoding","content-language":"Content-Language","content-length":"Content-Length","content-location":"Content-Location","content-md5":"Content-MD5","content-range":"Content-Range","content-security-policy":"Content-Security-Policy","content-type":"Content-Type",cookie:"Cookie",dnt:"DNT",date:"Date",etag:"ETag",expect:"Expect",expires:"Expires",from:"From",host:"Host","if-match":"If-Match","if-modified-since":"If-Modified-Since","if-none-match":"If-None-Match","if-range":"If-Range","if-unmodified-since":"If-Unmodified-Since","last-event-id":"Last-Event-ID","last-modified":"Last-Modified",link:"Link",location:"Location","max-forwards":"Max-Forwards",negotiate:"Negotiate",origin:"Origin",pragma:"Pragma","proxy-authenticate":"Proxy-Authenticate","proxy-authorization":"Proxy-Authorization",range:"Range",referer:"Referer","retry-after":"Retry-After","sec-websocket-extensions":"Sec-Websocket-Extensions","sec-websocket-key":"Sec-Websocket-Key","sec-websocket-origin":"Sec-Websocket-Origin","sec-websocket-protocol":"Sec-Websocket-Protocol","sec-websocket-version":"Sec-Websocket-Version",server:"Server","set-cookie":"Set-Cookie","set-cookie2":"Set-Cookie2","strict-transport-security":"Strict-Transport-Security",tcn:"TCN",te:"TE",trailer:"Trailer","transfer-encoding":"Transfer-Encoding",upgrade:"Upgrade","user-agent":"User-Agent","variant-vary":"Variant-Vary",vary:"Vary",via:"Via",warning:"Warning","www-authenticate":"WWW-Authenticate","x-content-duration":"X-Content-Duration","x-content-security-policy":"X-Content-Security-Policy","x-dnsprefetch-control":"X-DNSPrefetch-Control","x-frame-options":"X-Frame-Options","x-requested-with":"X-Requested-With","x-surge-skip-scripting":"X-Surge-Skip-Scripting"};return new class{constructor(){this.version="2.2.3.3";this.scriptName=e;this.logLevels={DEBUG:5,INFO:4,NOTIFY:3,WARNING:2,ERROR:1,CRITICAL:0,NONE:-1};this.isLoon=typeof $loon!=="undefined";this.isQuanX=typeof $task!=="undefined";this.isJSBox=typeof $drive!=="undefined";this.isNode=typeof module!=="undefined"&&!this.isJSBox;this.isSurge=typeof $httpClient!=="undefined"&&!this.isLoon;this.platform=this.getPlatform();this.node={request:undefined,fs:undefined,data:{}};this.iOSUserAgent="Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Mobile/15E148 Safari/604.1";this.pcUserAgent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36 Edg/84.0.522.59";this.logLevel=t;this._unifiedPushUrl="";if(this.isNode){this.node.fs=require("fs");this.node.request=require("request");try{this.node.fs.accessSync("./magic.json",this.node.fs.constants.R_OK|this.node.fs.constants.W_OK)}catch(e){this.node.fs.writeFileSync("./magic.json","{}",{encoding:"utf8"})}this.node.data=require("./magic.json")}else if(this.isJSBox){if(!$file.exists("drive://MagicJS")){$file.mkdir("drive://MagicJS")}if(!$file.exists("drive://MagicJS/magic.json")){$file.write({data:$data({string:"{}"}),path:"drive://MagicJS/magic.json"})}}}set barkUrl(e){this._unifiedPushUrl=!!e?e.replace(/\/+$/g,""):""}set logLevel(e){this._logLevel=typeof e==="string"?e.toUpperCase():"DEBUG"}get logLevel(){return this._logLevel}get isRequest(){return typeof $request!=="undefined"&&typeof $response==="undefined"}get isResponse(){return typeof $response!=="undefined"}get request(){return typeof $request!=="undefined"?$request:undefined}get response(){if(typeof $response!=="undefined"){if($response.hasOwnProperty("status"))$response["statusCode"]=$response["status"];if($response.hasOwnProperty("statusCode"))$response["status"]=$response["statusCode"];return $response}else{return undefined}}getPlatform(){if(this.isSurge)return"Surge";else if(this.isQuanX)return"QuantumultX";else if(this.isLoon)return"Loon";else if(this.isJSBox)return"JSBox";else if(this.isNode)return"Node.js";else return"unknown"}read(e,t=""){let s="";if(this.isSurge||this.isLoon){s=$persistentStore.read(e)}else if(this.isQuanX){s=$prefs.valueForKey(e)}else if(this.isNode){s=this.node.data}else if(this.isJSBox){s=$file.read("drive://MagicJS/magic.json").string}try{if(this.isNode)s=s[e];if(this.isJSBox)s=JSON.parse(s)[e];if(!!t){if(typeof s==="string")s=JSON.parse(s);s=!!s&&typeof s==="object"?s[t]:null}}catch(i){this.logError(i);s=!!t?{}:null;this.del(e)}if(typeof s==="undefined")s=null;try{if(!!s&&typeof s==="string")s=JSON.parse(s)}catch(e){}this.logDebug(`READ DATA [${e}]${!!t?`[${t}]`:""}(${typeof s})\n${JSON.stringify(s)}`);return s}write(e,t,s=""){let i=!!s?{}:"";if(!!s&&(this.isSurge||this.isLoon)){i=$persistentStore.read(e)}else if(!!s&&this.isQuanX){i=$prefs.valueForKey(e)}else if(this.isNode){i=this.node.data}else if(this.isJSBox){i=JSON.parse($file.read("drive://MagicJS/magic.json").string)}if(!!s){try{if(typeof i==="string")i=JSON.parse(i);i=typeof i==="object"&&!!i?i:{}}catch(t){this.logError(t);this.del(e);i={}}if(this.isJSBox||this.isNode){if(!i.hasOwnProperty(e)||typeof i[e]!=="object"||i[e]===null){i[e]={}}if(!i[e].hasOwnProperty(s)){i[e][s]=null}if(typeof t==="undefined"){delete i[e][s]}else{i[e][s]=t}}else{if(typeof t==="undefined"){delete i[s]}else{i[s]=t}}}else{if(this.isNode||this.isJSBox){if(typeof t==="undefined"){delete i[e]}else{i[e]=t}}else{if(typeof t==="undefined"){i=null}else{i=t}}}if(typeof i==="object")i=JSON.stringify(i);if(this.isSurge||this.isLoon){$persistentStore.write(i,e)}else if(this.isQuanX){$prefs.setValueForKey(i,e)}else if(this.isNode){this.node.fs.writeFileSync("./magic.json",i)}else if(this.isJSBox){$file.write({data:$data({string:i}),path:"drive://MagicJS/magic.json"})}this.logDebug(`WRITE DATA [${e}]${!!s?`[${s}]`:""}(${typeof t})\n${JSON.stringify(t)}`)}del(e,t=""){this.logDebug(`DELETE KEY [${e}]${!!t?`[${t}]`:""}`);this.write(e,null,t)}notify(e=this.scriptName,t="",s="",i=""){let o=e=>{let t={};if(this.isSurge||this.isQuanX||this.isLoon){if(typeof e==="string"){if(this.isLoon)t={openUrl:e};else if(this.isQuanX)t={"open-url":e};else if(this.isSurge)t={url:e}}else if(typeof e==="object"){let s={Surge:{openUrl:"url","open-url":"url"},Loon:{url:"openUrl","open-url":"openUrl","media-url":"mediaUrl"},QuantumultX:{url:"open-url",openUrl:"open-url",mediaUrl:"media-url"}};let i=Object.keys(e);for(let o=0;o{})}if(this.isSurge||this.isLoon){$notification.post(e,t,s,i)}else if(this.isQuanX){$notify(e,t,s,i)}else if(this.isJSBox){let i={title:e,body:!!t?`${t}\n${s}`:s};$push.schedule(i)}}log(e,t="INFO"){if(!(this.logLevels[this._logLevel]{if(typeof i.body==="undefined")return"";return`${encodeURIComponent(e)}=${encodeURIComponent(i.body[e])}`}).join("&");if(i.url.indexOf("?")<0)i.url+="?";if(i.url.lastIndexOf("&")+1!=i.url.length&&i.url.lastIndexOf("?")+1!=i.url.length)i.url+="&";i.url+=e;delete i.body}if(this.isQuanX){if(i.hasOwnProperty("body")&&typeof i["body"]!=="string")i["body"]=JSON.stringify(i["body"]);i["method"]=t}else if(this.isNode){delete i.headers["Accept-Encoding"];if(typeof i.body==="object"){if(t==="GET"){i.qs=i.body;delete i.body}else if(t==="POST"){i["json"]=true;i.body=i.body}}}else if(this.isJSBox){i["header"]=i["headers"];delete i["headers"]}return i}get(e,t){let s=this.adapterHttpOptions(e,"GET");this.logDebug(`HTTP GET: ${JSON.stringify(s)}`);if(this.isSurge||this.isLoon){$httpClient.get(s,t)}else if(this.isQuanX){$task.fetch(s).then(e=>{e["status"]=e.statusCode;t(null,e,e.body)},e=>t(e.error,null,null))}else if(this.isNode){return this.node.request.get(s,t)}else if(this.isJSBox){s["handler"]=(e=>{let s=e.error?JSON.stringify(e.error):undefined;let i=typeof e.data==="object"?JSON.stringify(e.data):e.data;t(s,e.response,i)});$http.get(s)}}post(e,t){let s=this.adapterHttpOptions(e,"POST");this.logDebug(`HTTP POST: ${JSON.stringify(s)}`);if(this.isSurge||this.isLoon){$httpClient.post(s,t)}else if(this.isQuanX){$task.fetch(s).then(e=>{e["status"]=e.statusCode;t(null,e,e.body)},e=>{t(e.error,null,null)})}else if(this.isNode){return this.node.request.post(s,t)}else if(this.isJSBox){s["handler"]=(e=>{let s=e.error?JSON.stringify(e.error):undefined;let i=typeof e.data==="object"?JSON.stringify(e.data):e.data;t(s,e.response,i)});$http.post(s)}}done(e={}){if(typeof $done!=="undefined"){$done(e)}}isToday(e){if(e==null){return false}else{let t=new Date;if(typeof e=="string"){e=new Date(e)}if(t.getFullYear()==e.getFullYear()&&t.getMonth()==e.getMonth()&&t.getDay()==e.getDay()){return true}else{return false}}}isNumber(e){return parseFloat(e).toString()==="NaN"?false:true}attempt(e,t=null){return e.then(e=>{return[null,e]}).catch(e=>{this.logError(e);return[e,t]})}retry(e,t=5,s=0,i=null){return(...o)=>{return new Promise((r,n)=>{function a(...o){Promise.resolve().then(()=>e.apply(this,o)).then(e=>{if(typeof i==="function"){Promise.resolve().then(()=>i(e)).then(()=>{r(e)}).catch(e=>{this.logError(e);if(t>=1&&s>0){setTimeout(()=>a.apply(this,o),s)}else if(t>=1){a.apply(this,o)}else{n(e)}t--})}else{r(e)}}).catch(e=>{this.logError(e);if(t>=1&&s>0){setTimeout(()=>a.apply(this,o),s)}else if(t>=1){a.apply(this,o)}else{n(e)}t--})}a.apply(this,o)})}}formatTime(e,t="yyyy-MM-dd hh:mm:ss"){var s={"M+":e.getMonth()+1,"d+":e.getDate(),"h+":e.getHours(),"m+":e.getMinutes(),"s+":e.getSeconds(),"q+":Math.floor((e.getMonth()+3)/3),S:e.getMilliseconds()};if(/(y+)/.test(t))t=t.replace(RegExp.$1,(e.getFullYear()+"").substr(4-RegExp.$1.length));for(let e in s)if(new RegExp("("+e+")").test(t))t=t.replace(RegExp.$1,RegExp.$1.length==1?s[e]:("00"+s[e]).substr((""+s[e]).length));return t}now(){return this.formatTime(new Date,"yyyy-MM-dd hh:mm:ss")}today(){return this.formatTime(new Date,"yyyy-MM-dd")}sleep(e){return new Promise(t=>setTimeout(t,e))}}(e)} diff --git a/script/eleme/images/bark_conf.jpg b/script/eleme/images/bark_conf.jpg new file mode 100644 index 0000000000000000000000000000000000000000..319ccc11fe116fbd6656ac16acfa2ccd5faaaa67 GIT binary patch literal 99903 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

I3_If^i&d)RjxuqhIl1`{*)xuU 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

Wt4eB1HPw(z2(jg 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 literal 0 HcmV?d00001 diff --git a/script/gallery.json b/script/gallery.json index e882d303f70..94528aed161 100644 --- a/script/gallery.json +++ b/script/gallery.json @@ -1,9 +1,5 @@ {"name":"blackmatrix7", "task":[ - { - "config":"15 0 * * * https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/10010/unicom_signin.js, tag=中国联通, img-url=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/10010/10010.png, enabled=true", - "addons":"https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/10010/unicom_signin.qxrewrite,tag=联通_获取Cookie" - }, { "config":"20 0 * * * https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/dingdong/dingdong_checkin.js, tag=叮咚买菜, img-url=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/dingdong/dingdong.png, enabled=true", "addons":"https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/dingdong/dingdong_checkin.qxrewrite,tag=叮咚买菜_获取Cookie" @@ -40,10 +36,6 @@ "config":"20 0 * * * https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/smzdm/smzdm_mission.js, tag=每日任务, img-url=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/smzdm/smzdm.png, enabled=true", "addons":"https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/smzdm/smzdm_signin.qxrewrite,tag=什么值得买_获取Cookie" }, - { - "config":"20 0 * * * https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/wanda/wanda_checkin.js, tag=万达电影, img-url=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/wanda/wanda.png, enabled=true", - "addons":"https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/wanda/wanda_checkin.qxrewrite,tag=万达_获取Cookie" - }, { "config":"30 0 * * * https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/meituan/maicai_checkin.js, tag=美团买菜, img-url=https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/meituan/maicai.png, enabled=true", "addons":"https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/script/meituan/maicai_checkin.qxrewrite,tag=美团买菜_获取Cookie" diff --git a/script/jiazhangbang/jiazhangbang_checkin.js b/script/obsolete/jiazhangbang/jiazhangbang_checkin.js similarity index 100% rename from script/jiazhangbang/jiazhangbang_checkin.js rename to script/obsolete/jiazhangbang/jiazhangbang_checkin.js diff --git a/script/jiazhangbang/jiazhangbang_checkin.sgmodule b/script/obsolete/jiazhangbang/jiazhangbang_checkin.sgmodule similarity index 100% rename from script/jiazhangbang/jiazhangbang_checkin.sgmodule rename to script/obsolete/jiazhangbang/jiazhangbang_checkin.sgmodule diff --git a/script/wanda/README.md b/script/obsolete/wanda/README.md similarity index 100% rename from script/wanda/README.md rename to script/obsolete/wanda/README.md diff --git a/script/wanda/wanda.png b/script/obsolete/wanda/wanda.png similarity index 100% rename from script/wanda/wanda.png rename to script/obsolete/wanda/wanda.png diff --git a/script/wanda/wanda_checkin.js b/script/obsolete/wanda/wanda_checkin.js similarity index 100% rename from script/wanda/wanda_checkin.js rename to script/obsolete/wanda/wanda_checkin.js diff --git a/script/wanda/wanda_checkin.lnscript b/script/obsolete/wanda/wanda_checkin.lnscript similarity index 100% rename from script/wanda/wanda_checkin.lnscript rename to script/obsolete/wanda/wanda_checkin.lnscript diff --git a/script/wanda/wanda_checkin.qxrewrite b/script/obsolete/wanda/wanda_checkin.qxrewrite similarity index 100% rename from script/wanda/wanda_checkin.qxrewrite rename to script/obsolete/wanda/wanda_checkin.qxrewrite diff --git a/script/wanda/wanda_checkin.sgmodule b/script/obsolete/wanda/wanda_checkin.sgmodule similarity index 100% rename from script/wanda/wanda_checkin.sgmodule rename to script/obsolete/wanda/wanda_checkin.sgmodule