2020年11月

把Nextcloud升级到了20.0.2 RC1,安全检查时显示missing some primary keys.
[redbar]关于您的设置有一些警告。
The database is missing some primary keys. Due to the fact that adding primary keys on big tables could take some time they were not added automatically. By running "occ db:add-missing-primary-keys" those missing primary keys could be added manually while the instance keeps running.
Missing primary key on table "oc_federated_reshares".
Missing primary key on table "oc_systemtag_object_mapping".
Missing primary key on table "oc_comments_read_markers".
Missing primary key on table "oc_collres_resources".
Missing primary key on table "oc_collres_accesscache".
Missing primary key on table "oc_filecache_extended".[/redbar]
打开Protainer,连到Nextcloud的bash,然后输入命令修复
[bluebar]sudo -u abc php /config/www/nextcloud/occ db:add-missing-primary-keys[/bluebar]
QQ截图20201114180736.png
报错
QQ截图20201114180844.png
没有定义这个命令,
去Github上看了下,是个BUG
[btnblue href="https://github.com/nextcloud/server/pull/24085" target="blank"]查看BUG详情[/btnblue]
QQ截图20201115183337.png
解决方法就是手动修改一下命令把add-missing-primary-keys这个功能加上去
[btnblue href="https://github.com/nextcloud/server/pull/24106/commits/e0dbfdf575506d5bc2a7857a17d923b2a82a8d5f" target="blank"]查看修复详情[/btnblue]
QQ截图20201115183114.png
加上去之后,再次执行命令,直接通过:
QQ截图20201115183152.png
回到网盘重新执行安全检查,通过:
QQ截图20201115183233.png

GitHub Actions是GitHub的CI/CD工具,可以实现每天线上自动登录Bilibili进行签到领币投币分享。
首先这个文章是转载Github的,感谢两位开发大佬。
[button color="primary" url="https://github.com/RayWangQvQ/BiliBiliTool" outline="" target="_blank"]RayWangQvQ/BiliBiliTool[/button]
[button color="primary" url="https://github.com/JunzhouLiu/BILIBILI-HELPER" outline="" target="_blank"]JunzhouLiu/BILIBILI-HELPER[/button]

[acc status="show" title="这个项目的详细功能"]每天自动登录,获取经验[/acc]
每天自动观看、分享、投币视频 (支持指定想要支持的up主,优先选择配置的up主的视频,不配置则随机选取视频)
每天漫画自动签到
每天自动直播签到,领取奖励 (直播可以不看,但是奖励不领白不领~)
每天自动使用直播中心银瓜子兑换B币,避免浪费
每月自动使用快过期的B币券为自己充电 (你懂的~)
每个月自动领取5张B币券和大会员权益 (既然买了会员就要领取该有的奖励啊~)[/blueacc]

BiliBiliTool实现自动任务的原理,是通过调用一系列B站开放的接口实现的。

举例来说,要实现观看视频的任务,只需要通过调用B站的上传视频观看进度Api即可,
[acc status="show" title="接口Api"]https://api.bilibili.com/x/click-interface/web/heartbeat[/acc]

入参:视频Id、当前观看时间、用于身份认证的Cookie。

BiliBiliTool就是收集了一系列这样的接口,通过每日自动运行程序,来实现自动领取奖励、完成每日任务等功能的。

要使用BiliBiliTool,我们只需要做两步,首先是获取自己的Cookie作为配置信息,然后将配置输入BiliBiliTool程序并运行即可。

第一步:获取自己的Cookie

  • 浏览器打开并登录bilibili网站
  • 按 F12 打开“开发者工具”,依次点击 应用程序/Application -> 存储-> Cookies
  • 找到DEDEUSERIDSESSDATAbili_jct三项,复制保存它们到记事本,待会儿会用到。

QQ截图20201114115504.png

Cookie KeyCookie Value
DEDEUSERID从Cookie中获取
SESSDATA从Cookie中获取
BILI_JCT从Cookie中获取

第二步:运行BiliBiliTool

我们使用Github Actions,可以实现线上的每天自动运行,不需自己动手,一劳永逸。

Github Actions 是微软巨硬收购G站之后新增的内置CI/CD方案,其核心就是一个可以运行脚本的小型服务器(2核CPU + 7G RAM + 14 G SSD)。

有了它,我们就可以实现每天线上自动运行我们的应用程序。

a. 首先fork项目到自己的仓库

https://github.com/RayWangQvQ/BiliBiliTool

b. 进入自己fork的仓库,点击 Settings-> Secrets-> New Secrets 添加以下3个Secrets。它们将作为应用启动时的命令行参数被传入程序。

QQ截图20201114115907.png

Secret KeyCookie Key
USERIDDEDEUSERID
SESSDATASESSDATA
BILIJCTBILI_JCT

c. 开启Actions并触发每日自动执行

Github Actions默认处于关闭状态,前面都配置好后,请手动开启Actions,执行一次工作流,验证是否可以正常工作。

![Actions图示](https://github.com/RayWangQvQ/BiliBiliTool.Docs/blob/main/imgs/run-workflow.png)

运行结束后,可查看运行日志:

1.png
2.png

workflow的执行策略默认是每天中午14点10分自动执行一次,主分支(main分支)有push或pr操作会自动执行一次。想要修改时间,可以修改.github/workflows/bilibili-daily-task.yml 中的cron表达式

我配置了Server酱微信推送,执行成功后微信会收到推送消息:

IMG_7544.PNG

可以点击这个按钮查看如何配置微信推送
[acc status="show" title="了解如何配置微信推送"]https://github.com/RayWangQvQ/BiliBiliTool.Docs/blob/main/configuration.md[/acc]

如果执行出现异常,会收到了GitHub Action的错误邮件通知,请检查Cookies是不是失效了或者是否有bug。

如果是Cookies失效了,请从浏览器重新获取并更新到Secrets中。用户主动清除浏览器缓存,会导致BILI_JCTDEDEUSERID失效。

最后再次感谢两位开发大佬,项目地址:
[button color="primary" url="https://github.com/RayWangQvQ/BiliBiliTool" outline="" target="_blank"]RayWangQvQ/BiliBiliTool[/button]
[button color="primary" url="https://github.com/JunzhouLiu/BILIBILI-HELPER" outline="" target="_blank"]JunzhouLiu/BILIBILI-HELPER[/button]