移动云盘
Node.js 依赖名
不通过 npm 分发
WPS 表名
caiyun
移动云盘
当前支持功能
- 云盘每日签到
- 公共号每日签到
- 公众号抽奖
- 每日任务-上传
-
每日任务-云笔记(官方下线) - APP 抽奖(摇一摇)
- 浇水种树-云盘 APP(不完全支持,最后需要验证码领取云朵,所以不会升 10 级)
- 浇水种树-邮箱 APP(不完全支持,最后需要验证码领取云朵,所以不会升 10 级)
- 果园每日助力(强制性运行)
- 为好友浇水(可配置)
- 每月任务-邮箱 APP-可直接完成的
- 热门任务-分享文件每月 7 次
- 邮箱 APP 开盲盒
- 每月任务-PC 端登录
- 云朵大作战(仅提供部分功能)
- 每月分享 20 次
- 每月上传 1 G
- AI 猜字谜(新版测试中),需要注意的是会消耗每日 AI 使用次数
- 自动领取每月备份奖励(APP)
- 自动领取每月通知奖励(APP)
- 自动领取每月通知奖励(邮箱)
- 开启备份后进行一次签到奖励翻倍
- 更多每月任务适配中,敬请不要期待
不会支持功能
- 不会支持直接与拉新,现金红包等挂钩的活动。
部分答疑
APP 任务失败或未完成
在完成 APP 任务时,发出现 失败 去观看精彩大片 请手动完成
或者 未完成 体验“文件收集”功能 请手动完成
。
- 失败:是指程序尝试去完成(已经实现完成逻辑),但最终并没有成功(预料之外的事情,属于程序 bug)。出现该错误可能是移动服务器存在缓存,再运行一次即可;也有可能是移动对该活动做出变更,原来的方式已经无法完成了。
- 未完成:是指程序只做了简单的处理(未实现完成逻辑),且最终未成功(预料之中的事情,属于正常行为)
本月奖励已领完
很多活动都是限量的,如摇一摇,盲盒,AI 猜字谜等
当出现该日志时可能就算本月已经领完了,当然只是可能,即使没领完也可能偶而触发,但连续触发一定是真的领完了。
获取 sid 失败 S002 别名或手机号码不存在
FATAL 获取 sid 失败 S002 别名或手机号码不存在,请重新输入
该错误可能是你没有使用过移动 139 邮箱 APP。主要出现在 AI 红包、开盲盒
初始化果园失败 用户登录信息丢失
获取果园信息失败,请确认已经激活果园
手动进入 APP 的果园页面
果园的水滴莫名其妙被人偷了
使用本脚本的人会互相进行水滴助力,而果园助力默认好友(奇妙的操作,鬼才产品经理),导致果园会有大量未知好友,被偷属于正常操作,你可以偷回来(
果园的水滴莫名其妙加了很多好友
同上一条,目前果园没有删除好友功能。同时为了公平性,互相助力是强制开启的。
使用方法
核心文件 caiyun.mjs
获取方式,略。
注意: run
可选参数,配置文件路径
使用 esm(不支持 cjs)
import { run } from "./caiyun.mjs";
await run();
在阿里云函数中使用,其他环境请自行摸索
exports.handler = async function (event, context, callback) { const { run } = await import("./caiyun.mjs"); callback(null, await run());};
青龙面板
配置
- 类型:
对象
auth
- 类型:
字符串
- 必填: 是
cookie authorization 字段
nickname
- 类型:
字符串
昵称,用于获取用户信息
shake
- 类型:
对象
enable
- 类型:
布尔值
- 默认值:
true
是否开启该功能
num
- 类型:
数字
- 默认值:
15
摇一摇次数
delay
- 类型:
数字
- 默认值:
2
每次间隔时间(秒)
garden
- 类型:
对象
enable
- 类型:
布尔值
- 默认值:
true
是否开启该功能,需要注意的是果园需要自己去 APP 手动激活一下,否则等待你的全是报错
inviteCodes
- 类型:
数组
邀请码,如果不知道是啥就不管,也没用. 配置后默认助力功能失效
waterFriend
- 类型:
数字
需要给哪个好友浇水,好友 uid(果园输出的昵称后面的数字就是 uid). 浇水会消耗自己的水滴, 所有用来干嘛, 你懂的
开启果园助力
- 类型:
布尔值
- 默认值:
false
是否开启果园助力功能,可能即将废弃
aiRedPack
- 类型:
对象
enable
- 类型:
布尔值
- 默认值:
true
是否开启该功能
backupWaitTime
- 类型:
数字
- 默认值:
20
备份等待时间(秒)
tasks
- 类型:
对象
shareFile
- 类型:
字符串
分享任务默认使用的文件 id,请确保该文件存在且后续不被删除
skipTasks
- 类型:
数组
跳过的任务 id,可抓包获取,也可查看日志输出(任务日志会在任务名后面拼接上数字 id 的)。切记,配置优先级最高,配置无论任务是否能够自动完成都将跳过。
catalog
- 类型:
字符串
- 默认值:
"00019700101000000001"
上传文件使用目录的 id,默认根目录,可按需更改,但请确认 id 有效,文件夹真实存在
cloudPhoneRedpack
- 类型:
对象
enable
- 类型:
布尔值
- 默认值:
false
是否开启该功能
是否打印今日云朵
- 类型:
布尔值
- 默认值:
true
是否打印今日云朵
剩余多少天刷新token
- 类型:
数字
- 默认值:
10
剩余多少天刷新token
微信抽奖
- 类型:
对象
次数
- 类型:
数字
- 默认值:
1
微信抽奖次数
间隔
- 类型:
数字
- 默认值:
500
微信抽奖间隔(毫秒)
云朵大作战
- 类型:
对象
目标排名
- 类型:
数字
- 默认值:
500
目标排名
开启兑换
- 类型:
布尔值
- 默认值:
false
是否开启兑换
邀请用户
- 类型:
数组
- 必填: 是
邀请用户的手机号(你邀请的用户,不是邀请你的)
示例
{ "caiyun": [ { "auth": "omnis", "nickname": "vito", "shake": { "enable": true, "num": 15, "delay": 2 }, "garden": { "enable": true, "inviteCodes": [ "terminatio" ], "waterFriend": 4314127365308416, "开启果园助力": false }, "aiRedPack": { "enable": false }, "backupWaitTime": 20, "tasks": { "shareFile": "alius", "skipTasks": [ 6943163713323008, 6654392742707200, 385507758440448, 7426084968595456, 7394600635334656 ] }, "catalog": "00019700101000000001", "cloudPhoneRedpack": { "enable": false }, "是否打印今日云朵": true, "剩余多少天刷新token": 4911700841070592, "微信抽奖": { "次数": 1, "间隔": 2762154790879232 }, "云朵大作战": { "目标排名": 500, "开启兑换": true, "邀请用户": [ "pariatur", "accedo", "caput", "spargo", "numquam" ] } } ]}
默认值
{ "shake": { "enable": true, "num": 15, "delay": 2 }, "garden": { "enable": true, "inviteCodes": [], "开启果园助力": false }, "aiRedPack": { "enable": true }, "backupWaitTime": 20, "tasks": { "skipTasks": [] }, "catalog": "00019700101000000001", "cloudPhoneRedpack": { "enable": false }, "是否打印今日云朵": true, "剩余多少天刷新token": 10, "微信抽奖": { "次数": 1, "间隔": 500 }, "云朵大作战": { "目标排名": 500, "开启兑换": false, "邀请用户": [] }}
Auth 获取
PC 版
- 登录 https://yun.139.com/
- 打开开发者工具 F12
- 找到应用程序/Application/存储(火狐)
- 点击 Cookie
- https://yun.139.com/ 找到 authorization(Basic 开头的)
APP 版
使用抓包工具找到请求头中的 Authorization 就行了
兑换
兑换的 id 在后面的 json 中找到。
此脚本可设置在 23:59 之后 24 点之前运行,waitTo24Hour
函数会等待到 24 点。
import { loadConfig, useExchange } from "./caiyun.mjs";
const { config, message } = await loadConfig();
// 使用配置中的第一个账号const { exchange, waitTo24Hour, sendMessage } = await useExchange( config[0], message);
// 等待到 24 点(最大等待 2 分钟)waitTo24Hour();
// 用网易云举例,此处为 id 数组(可多个)await exchange([231228018]);
// 快速兑换,如果需要自定义逻辑,可以使用这个 api,在兑换前不会有校验, 注意导入 exchangeQuickly// await exchangeQuickly(231228018, '这是网易云')
// 发送推送,如果兑换成功默认发送一次// await sendMessage()
兑换名称与 ID
兑换名称与 ID、价格、分组关系
[ { "prizeId": 211228001, "prizeName": "100G个人云空间月卡", "pOrder": 50, "groupId": 0 }, { "prizeId": 211228003, "prizeName": "1T个人云空间月卡", "pOrder": 400, "groupId": 0 }, { "prizeId": 211228002, "prizeName": "100G个人云空间年卡", "pOrder": 600, "groupId": 0 }, { "prizeId": 211228004, "prizeName": "1T个人云空间年卡", "pOrder": 4800, "groupId": 0 }, { "prizeId": 240531005, "prizeName": "移动云盘白银会员月卡", "pOrder": 500, "groupId": 0 }, { "prizeId": 231031003, "prizeName": "移动云盘白银会员季卡", "pOrder": 1500, "groupId": 0 }, { "prizeId": 211228005, "prizeName": "移动云盘白银会员年卡", "pOrder": 6000, "groupId": 0 }, { "prizeId": 240531006, "prizeName": "移动云盘黄金会员月卡", "pOrder": 1000, "groupId": 0 }, { "prizeId": 220915009, "prizeName": "移动云盘黄金会员季卡", "pOrder": 3000, "groupId": 0 }, { "prizeId": 231031002, "prizeName": "移动云盘黄金会员年卡", "pOrder": 12000, "groupId": 0 }, { "prizeId": 240531007, "prizeName": "移动云盘钻石会员月卡", "pOrder": 2500, "groupId": 0 }, { "prizeId": 231031007, "prizeName": "移动云盘钻石会员季卡", "pOrder": 7500, "groupId": 0 }, { "prizeId": 240207001, "prizeName": "移动云盘白银畅享会员月卡", "pOrder": 1499, "groupId": 0 }, { "prizeId": 231031008, "prizeName": "移动云盘钻石会员年卡", "pOrder": 30000, "groupId": 0 }, { "prizeId": 240205002, "prizeName": "云手机专业版会员月卡", "pOrder": 1900, "groupId": 0 }, { "prizeId": 240205004, "prizeName": "美图秀秀粉钻VIP月卡", "pOrder": 2500, "groupId": 0 }, { "prizeId": 240205003, "prizeName": "美颜相机紫钻VIP月卡", "pOrder": 2500, "groupId": 0 }, { "prizeId": 231228027, "prizeName": "腾讯视频周卡", "pOrder": 1500, "groupId": 0 }, { "prizeId": 231228028, "prizeName": "爱奇艺视频周卡", "pOrder": 1500, "groupId": 0 }, { "prizeId": 231228029, "prizeName": "优酷视频周卡", "pOrder": 1500, "groupId": 0 }, { "prizeId": 231228011, "prizeName": "爱奇艺月卡", "pOrder": 3000, "groupId": 1 }, { "prizeId": 231228012, "prizeName": "腾讯视频月卡", "pOrder": 3000, "groupId": 1 }, { "prizeId": 231228013, "prizeName": "优酷视频月卡", "pOrder": 3000, "groupId": 1 }, { "prizeId": 231228014, "prizeName": "芒果TV月卡", "pOrder": 3000, "groupId": 1 }, { "prizeId": 231228015, "prizeName": "哔哩哔哩会员月卡", "pOrder": 2500, "groupId": 1 }, { "prizeId": 231228016, "prizeName": "酷狗音乐月卡", "pOrder": 1800, "groupId": 2 }, { "prizeId": 231228017, "prizeName": "QQ音乐月卡", "pOrder": 1500, "groupId": 2 }, { "prizeId": 231228018, "prizeName": "网易云音乐月卡", "pOrder": 1800, "groupId": 2 }, { "prizeId": 231228019, "prizeName": "饿了么超级会员月卡", "pOrder": 1750, "groupId": 5 }, { "prizeId": 231228020, "prizeName": "美团外卖15元通用红包", "pOrder": 2500, "groupId": 5 }, { "prizeId": 231228021, "prizeName": "美团外卖10元通用红包", "pOrder": 1500, "groupId": 5 }, { "prizeId": 231228022, "prizeName": "美团外卖5元通用红包", "pOrder": 1000, "groupId": 5 }, { "prizeId": 231228025, "prizeName": "菜鸟裹裹5元寄件券", "pOrder": 500, "groupId": 7 }, { "prizeId": 231228026, "prizeName": "菜鸟裹裹10元寄件券", "pOrder": 1000, "groupId": 7 }, { "prizeId": 240112007, "prizeName": "畅影VIP单次转存券", "pOrder": 250, "groupId": 8 }, { "prizeId": 240117001, "prizeName": "畅影SVIP单次转存券", "pOrder": 450, "groupId": 8 }]