Giter Site home page Giter Site logo

neteasecloudmusictasks's Introduction

网易云打卡升级

网易云音乐关注数 酷安关注数

功能

  1. 签到领云贝
  2. 自动完成云贝任务,并领取云贝
  3. 打卡升级
  4. 刷指定歌曲的播放量
  5. 音乐人自动签到领取云豆
  6. 音乐人自动完成任务,并领取云豆
  7. 自动领取 vip 成长值(任务需自己完成)
  8. 多种推送方式
  9. 支持多账号
  10. 支持腾讯云函数 & 青龙面板 & 本地运行

开发不易,如果你觉得本项目对你有用,可以点个 star,也可以到底部给个赞赏

一、部署到腾讯云函数

开通服务

首次使用云函数,依次登录 SCF 云函数控制台SLS 控制台 开通相关服务,确保账户下已开通服务并创建相应服务角色 SCF_QcsRole、SLS_QcsRole

注意!为了确保权限足够,获取这两个参数时不要使用子账户!此外,腾讯云账户需要实名认证

获取密钥

在腾讯云API 密钥管理新建密钥,获取 SecretId 和 SecretKey

fork 本项目

在 GitHub 上 fork本项目

创建 Secrets

fork 之后,点击右上方settings,在页面点击Secrets,然后点击New repository secret 创建新的 secret。一共有 5 个 secret,前 2 个是必须要创建的,后 3 个可不创建

Name Value 是否必填
SECRET_ID 填写之前获取的 SecretId 必填
SECRET_KEY 填写之前获取的 SecretKey 必填
FUNCTION_NAME 自定义函数名 选填
CRON 定时触发器的时间 选填
REGION 地域,默认为 ap-guangzhou 选填

FUNCTION_NAME 为函数名,不填写默认为NeteaseCloudMusicTasks。如需更改,则创建此 secret,并填写自定义的函数名,命名规则:只能包含字母、数字、下划线、连字符,以字母开头,以数字或字母结尾,2~60 个字符。

如果之前在腾讯云函数里用上传压缩包的方式创建过该项目对应的函数,那么可以在 FUNCTION_NAME 里填写先前创建的函数名,更新会提交到先前的函数中,并自动同步配置文件。

CRON 默认为 0 30 0 * * * * 表示每天 0 点 30 分触发,可自行更改。比如:0 20 12 * * * * 表示每天 12 点 20 分触发,0 0 12,16 * * * * 表示每天 12 点和 16 点各触发一次。

REGION 默认为ap-guangzhou ,可选的地域详见地域列表

部署

自动部署

更新代码后将会自动触发 workflow,部署到腾讯云函数。到 Actions 中可以查看部署进度。

手动部署

更新了 Secrets 之后不会自动部署,此时需要手动部署。击项目上方的Actions,点击All workflows下方的deploy(移动端要先点击Select workflow),再点击右侧Run workflow,在弹出的页面再次点击Run workflow,将会运行新的 workflow,点进这个 workflow,可以查看部署进度。

添加依赖

下载依赖文件 ,也可以自己用 pip 下载依赖,然后打包。然后在高级能力新建层名称可以自己任意填写,然后上传刚刚下载的压缩包,点击添加运行环境,选择Python3.6。在函数服务点进刚刚创建的函数,点击上方的层管理,点击绑定,选择刚刚创建的层。

修改配置

函数服务点进刚刚创建的函数,在编辑器里点击config.json这个文件进行配置,可以看到文件中有红色波浪线的错误提示,可以忽略不管,也可以下拉到编辑器的右下角,点击JSON来更改语言模式,选择JSON with Comments,这样就可以消除错误提示。在config.json里进行如下的账号配置。运行之后如果发现有些任务没有完成,可能是因为没有开启,将任务对应的 enable 字段设置为 true 即可开启。

账号密码

"users": [
    {
        "username": "188xxxx8888",
        "countrycode": "",
        "password": "mypassword",
        "X-Real-IP": "",
        "enable": true
    }
],
// ...

username里填写手机号或邮箱,password里填写账号密码或 32 位 md5 加密后的密码,countrycode为手机号前缀,使用非**大陆的手机号登录需填写。X-Real-IP里填写国内任意 IP,否则可能会有无法登录等情况出现,可填写本机 IP,查看方法为:百度搜索 ip,填写显示的 ip 即可。如果是在本地环境运行,则不需要填写 IP。enable为该账号的开关,设置为false表示不运行该账号的任务。

签到

"setting": {
    // ...
    "sign": true,
    // ...
}

签到默认开启,连续签到可以获得更多云贝。

刷听歌量

"setting": {
    // ...
    "daka": {
        "enable": true,
        "full_stop": true,
        "auto": true,
        "tolerance": 10,
        "song_number": 300,
        // ...
    },
    // ...
}

每个账号每天最多只计算 300 首的听歌量,而且必须是没有听过的歌曲。enable表示开启刷听歌量的任务,full_stop表示满级后自动停止任务,无需手动将enable设为falsesong_number表示每次要刷的歌曲数量,账号等级较低的时候可以设置得小一点,不然等级高的时候就难刷了,可能较难刷满 300 首。

auto设置为true的话表示开启自动模式,程序将自动调整每次打卡的歌曲数,song_number参数将失效。此时,每天 0 点时定时触发器会自动运行代码,获取当前的听歌数,并写入环境变量中,这样的话就可以比较精确地计算每次打卡的歌曲数。tolerance表示对打卡误差的容忍度,在自动打卡模式下有效,如果设置为 0 表示必须要达到 300 首才停止打卡,10 表示达到 290 首就可以停止打卡。

云贝任务

"setting": {
    // ...
    "yunbei_task": {
        "发布动态": {
            "enable": false,
            // 需要分享的歌单id
            "id": [],
            "msg": ["每日分享","今日分享","分享歌单"],
            "delete": true
        },
        "访问云音乐商城": {
            "enable": true
        },
        "云贝推歌": {
            "enable": true,
            "taskName": "云贝推歌",
            // 填写歌曲ID
            "songId": [],
            "yunbeiNum": 10,
            "reason": []
        },
        "发布Mlog": {
            "enable": false,
            "taskName": "发布Mlog",
            // 填写歌曲ID
            "songId": [],
            /* 动态内容,随机选取一个,其中$artist会被替换为歌手名,$song会被替换为歌曲名 */
            "text": [
                "分享$artist的歌曲: $song",
                "分享歌曲: $song"
            ],
            /* 图片大小,越大则消耗的外网出流量越多 */
            "size": 500,
            /* 发布成功后是否自动删除该动态 */
            "delete": true
        },
        "分享歌曲/歌单": {
            "enable": false,
            "taskName": "分享歌曲/歌单"
        }
    },
    // ...
}

发布动态任务要分享歌单,可获得 5 云贝,可通过将enable设为true开启,id要填写需要分享的歌单 id,可不填写,随机送推荐歌单中选取。delete表示动态发布之后自动删除。

访问云音乐商城任务可获得 2 云贝。

云贝推歌任务使用云贝对喜欢的歌曲进行推荐,可获得 10 云贝。songId填写喜欢的歌曲 id,如[65528, 64634],程序将会随机挑选一首歌,yunbeiNum是要使用的云贝数量,一般为10reason填写推歌理由。

发布Mlog 根据填写的歌曲 ID,自动下载歌曲对应的专辑图片,并上传。songId填写歌曲 id,如[65528, 64634]text填写动态内容

分享歌曲/歌单 任务并不会真的分享,将enable设为true即可开启任务

音乐人任务

"setting": {
    // ...
    "musician_task": {
        "登录音乐人中心": {
            "enable": true
        },
        "发布动态": {
            "enable": false,
            // 自定义要分享的歌单id,用逗号隔开,分享时随机选取一个,若为空,则从每日推荐歌单中随机选取
            "id": [],
            "msg": ["每日分享","今日分享","分享歌单"],
            "delete": true
        },
        "发布主创说": {
            "enable": false,
            // 填写你自己歌曲的id,如有多首用,隔开,随机挑选一首
            "id": [],
            "msg": ["感谢大家收听"],
            "delete": true
        },
        "回复粉丝评论": {
            "enable": false,
            // 填写你自己歌曲的id,如有多首用,隔开,随机挑选一首
            "id": [],
            "msg": ["感谢收听"],
            "delete": true
        },
        "回复粉丝私信": {
            "enable": false,
            // 填写粉丝的用户id,如有多个用,隔开,随机挑选一个进行回复,可以用自己的小号
            "id": [],
            "msg": ["你好"]
        }
    },
    // ...
}

需要是音乐人才能执行,想要开启相应的任务,需要将enablefalse改为true登录音乐人中心自动开启,其他任务根据实际情况开启。登录音乐人中心即签到获取云豆;发布动态即转发歌单;发布主创说即在自己的歌曲评论区留言;回复粉丝评论即在自己歌曲的评论区回复粉丝留言,该任务是通过回复自己的留言实现的;回复粉丝私信需要填写粉丝 id,可用小号。

VIP 成长值任务

"setting": {
    // ...
    "vip_task": {
        "创建共享歌单": {
            /* 是否开启任务 */
            "enable": false,
            "taskName": "创建共享歌单",
            /* 自定义歌单名,用逗号隔开,随机选取一个 */
            "name": [
                "歌单",
                "我的歌单"
            ],
            /* 创建成功后是否自动删除该动态 */
            "delete": true
        }
    },
    // ...
}

创建共享歌单 任务默认关闭,需要开启的话将enable设为Truename里填写自定义的歌单名,创建时随机选取一个,delete表示歌单创建成功后时候自动删除。

推送

支持四种推送方式,建议使用企业微信进行推送

  1. 企业微信
  2. server 酱
  3. 酷推
  4. pushPlus

使用 API 网关触发时默认关闭所有推送,您可以自行设置

"setting": {
    "stopPushOnAPIGateway": true,
}

true改为false即可在 API 网关触发时仍然进行消息的推送。API 网关相关内容详见API 网关触发

企业微信
"setting": {
    // ...
    "WeCom": {
        "enable": true,
        "corpid": "",
        "agentid": "",
        "secret": "",
        "userid": "@all",
        "msgtype": "text"
    },
    // ...
}

注册企业微信账号可参考这里

corpid为企业 ID,登录企业微信后在管理后台我的企业企业信息下查看;agentid为应用 ID,在应用管理里,点进相应的应用可查看;secret为应用密钥,在应用管理里,点进相应的应用可查看;userid默认为@all,会向该企业应用的全部成员发送;msgtype为消息类型,可填写文本消息text、文本卡片消息textcard或 markdown 消息markdown,markdown 消息不能在微信里查看,只能在企业微信里查看。

server 酱
"setting": {
    // ...
    "serverChan": {
        "enable": true,
        "KEY": ""
    },
    // ...
}

要使用 server 酱的话需要在KEY里填写旧版的 SCKEY 或新版的 SendKey。

酷推
"setting": {
    // ...
    "CoolPush": {
        "enable": true,
        "method": ["send"],
        "Skey": ""
    },
    // ...
}

要使用酷推的话需要填写Skey

pushPlus 微信推送
"setting": {
    // ...
    "pushPlus": {
        "enable": true,
        "pushToken": ""
    }
    // ...
}

要使用酷推的话需要填写pushToken

刷单曲播放量

"setting": {
    // ...
    "other": {
        /* 刷歌单中歌曲的播放次数,用来改变听歌风格,仅在需要时使用 */
        "play_playlists": {
            "enable": false,
            /* 歌单id,用逗号隔开,如 [5279371062,5279377564] */
            "playlist_ids": [],
            /* 播放次数 */
            "times": 1
        }
    },
    // ...
}

将要刷的歌曲加到歌单中,把歌单 id 填写到playlist_ids中,可以添加多个歌单 id,用英文逗号隔开,如"playlist_ids":[5279371062,5279377564]。该功能可以用来改变听歌风格。

多账号

"users": [
    {
        "username": "188xxxx8888",
        "md5": false,
        "password": "mypassword"
    },
    {
        "username": "166xxxx6666",
        "md5": false,
        "password": "anotherpassword"
    }
],
// ...

多账号需要删除第二个账号前后的\**\注释,如上所示。如果不会使用,可以每个账号创建一个相应的云函数。

假如多个账号配置不同可以参照下面

"users": [
    {
        "username": "188xxxx8888",
        "md5": false,
        "password": "mypassword"
    },
    {
        "username": "166xxxx6666",
        "md5": false,
        "password": "anotherpassword",
        "setting": {
            "serverChan": {
                "KEY": "xxxxxxxxxx"
            },
            "yunbei_task": {
                "云贝推歌": {
                    "songId": [25707139],
                }
            },
        }
    }
],
// ...

如上所示,在第二个账号中加入了 setting 字段,并填写与公共配置不同的地方。这样一来,两个账号就使用了不同的 server 酱推送,并使用不同的歌曲进行云贝推歌。

关注作者

"setting": {
    // ...
    "follow": true
    // ...
}

默认会在网易云音乐中关注我,不喜欢的可自行取消。

测试

修改完代码后,按 ctrl+s 保存代码,然后点击编辑器右上角的部署(每次修改完都要重新部署),左下角的部署也行。部署完成后点击部署旁边的测试按钮,观察结果,如果失败则检查修改代码。

API 网关触发

如果需要 API 网关触发,点击触发管理,再点击创建触发器触发方式选择API网关触发,点击提交。可以看到一个访问路径,访问该链接,即可运行云函数。使用这种方式,无需登录腾讯云,即可随时随地运行。

计费方式

更新代码

在 GitHub 项目页面点击Fetch upstream - Fetch and merge,然后再到Actions部署。重新部署之后,配置文件自动同步,无需再次填写,但注释会被删除,如果需要修改配置文件,可以参考config.example.json文件中的注释。进入到云函数中时,如果提醒“检测到当前工作区函数和已部署函数不一致,重新加载已部署函数?”,点击确认即可。

更新代码后将会自动部署到腾讯云函数,但修改了 Secrets 之后需要手动部署,详见部署

二、部署到青龙面板

拉取仓库

ql repo https://github.com/chen310/NeteaseCloudMusicTasks.git "index.py" "" "py" && task /ql/scripts/chen310_NeteaseCloudMusicTasks/ql_update.py

第一次使用需要安装依赖,时间可能会长一些

更新代码同样也是用上面的命令

修改配置文件

对配置文件 config.json 文件进行修改

三、本地运行

下载

git clone https://github.com/chen310/NeteaseCloudMusicTasks.git

安装依赖

pip install -r requirements.txt

运行

python index.py

其他

对日推的影响

打卡功能可能会影响日推,介意慎用。

云函数免费额度及计费方式

在云函数概览界面,可以查看本月剩余免费额度

详见计费概述

赞赏

微信

支付宝

支付宝领红包

饿了么领红包

star 数

Stargazers over time

声明

  • 本仓库中的脚本仅用于测试和学习目的,请勿用于商业或非法目的,否则后果自负
  • 如果您认为该项目的脚本可能涉嫌侵犯您的权利,请及时通知,我们将在确认后及时删除

灵感来源

  1. 网易云音乐 API
  2. NetEase-MusicBox

neteasecloudmusictasks's People

Contributors

chen310 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.