跳转到内容

移动云盘

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 版

  1. 登录 https://yun.139.com/
  2. 打开开发者工具 F12
  3. 找到应用程序/Application/存储(火狐)
  4. 点击 Cookie
  5. https://yun.139.com/ 找到 authorization(Basic 开头的)

caiyun_auth

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
}
]