mirror of
https://github.com/lkeme/BiliHelper-personal.git
synced 2025-12-19 09:30:10 +08:00
Merge branch 'lkeme:master' into master
This commit is contained in:
commit
db4ce0fcc9
29
CHANGELOG.md
29
CHANGELOG.md
@ -8,6 +8,34 @@
|
|||||||
|
|
||||||
[comment]: <> (</details>)
|
[comment]: <> (</details>)
|
||||||
|
|
||||||
|
## v1.0.2.211115 alpha (2021-11-15)
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- 添加直播预约有奖
|
||||||
|
- 添加企业微信群机器人推送
|
||||||
|
- 添加企业微信应用消息推送
|
||||||
|
-
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- 清理部分无效活动
|
||||||
|
- 更新系统环境参数
|
||||||
|
- 更新敏感关键字
|
||||||
|
-
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- 修复登录未知错误
|
||||||
|
-
|
||||||
|
|
||||||
|
### Remarks
|
||||||
|
|
||||||
|
- 注意文档文件、配置文件有些许改动
|
||||||
|
- 注意需要重新进行`composer update`操作
|
||||||
|
- 注意只支持PHP8.* 只支持PHP8.* 只支持PHP8.*
|
||||||
|
-
|
||||||
|
|
||||||
## v1.0.1.211014 alpha (2021-10-14)
|
## v1.0.1.211014 alpha (2021-10-14)
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
@ -33,7 +61,6 @@
|
|||||||
- 注意只支持PHP8.* 只支持PHP8.* 只支持PHP8.*
|
- 注意只支持PHP8.* 只支持PHP8.* 只支持PHP8.*
|
||||||
-
|
-
|
||||||
|
|
||||||
|
|
||||||
## v1.0.0.210822 alpha (2021-08-22)
|
## v1.0.0.210822 alpha (2021-08-22)
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
7
DOC.md
7
DOC.md
@ -203,6 +203,13 @@ $ -e MIRRORS=2 # 使用 github.com.cnpmjs.org
|
|||||||
-v 本地文件:容器内部文件 ==> 挂载本地文件到容器中。本地文件路径随便变,容器内部文件路径不能变。
|
-v 本地文件:容器内部文件 ==> 挂载本地文件到容器中。本地文件路径随便变,容器内部文件路径不能变。
|
||||||
```
|
```
|
||||||
|
|
||||||
|
- -v模式使用短信登录
|
||||||
|
|
||||||
|
```
|
||||||
|
配置文件里设置好,发送完短信
|
||||||
|
docker attach 或者docker exec 再进去容器里输入
|
||||||
|
```
|
||||||
|
|
||||||
- 注意: Docker镜像已经包含了所有所需的运行环境,无需在本地环境弄composer。每次启动容器时,都会与项目进行同步以确保版本最新。
|
- 注意: Docker镜像已经包含了所有所需的运行环境,无需在本地环境弄composer。每次启动容器时,都会与项目进行同步以确保版本最新。
|
||||||
|
|
||||||
## 升级指南
|
## 升级指南
|
||||||
|
|||||||
132
NOTIFY.md
Normal file
132
NOTIFY.md
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
## 关于推送
|
||||||
|
|
||||||
|
### 开关
|
||||||
|
|
||||||
|
```ini
|
||||||
|
[notify]
|
||||||
|
enable = false
|
||||||
|
filter_words =
|
||||||
|
```
|
||||||
|
|
||||||
|
### 推送单元
|
||||||
|
|
||||||
|
> 以下数据为示例(e.g.),需要根据实际需求配置
|
||||||
|
|
||||||
|
**钉钉**
|
||||||
|
|
||||||
|
> 文档: https://developers.dingtalk.com/文档ument/robots/custom-robot-access
|
||||||
|
> 说明: 钉钉推送的密钥
|
||||||
|
|
||||||
|
```ini
|
||||||
|
; Dingtalk机器人|token|依赖USE_NOTIFY
|
||||||
|
[notify.dingtalk]
|
||||||
|
token = 566cc69da782ec****
|
||||||
|
```
|
||||||
|
|
||||||
|
**Telegram**
|
||||||
|
|
||||||
|
> 文档: https://core.telegram.org/bots/api#sendmessage
|
||||||
|
> 说明: 如果开启 TGbot API 反代,填写url,否则为空使用默认api。
|
||||||
|
> 说明: TG 推送的Token, xxx/bot{这是token部分}/xxxx
|
||||||
|
> 说明: TG 推送的用户/群组/频道 ID
|
||||||
|
|
||||||
|
```ini
|
||||||
|
; Tele机器人|url(可选)|token|chatid|依赖USE_NOTIFY
|
||||||
|
[notify.telegram]
|
||||||
|
url = https://*.*.workers.dev/bot
|
||||||
|
bottoken = 1640****:AAGlV3****_FscZ-****
|
||||||
|
chatid = 390****
|
||||||
|
```
|
||||||
|
|
||||||
|
**PUSH PLUS**
|
||||||
|
|
||||||
|
> 文档: http://www.pushplus.plus/doc/
|
||||||
|
> 说明: push plus++ 推送的 `token`
|
||||||
|
|
||||||
|
```ini
|
||||||
|
; Pushplus酱|token|依赖USE_NOTIFY
|
||||||
|
[notify.pushplus]
|
||||||
|
token = 566cc69da782ec****
|
||||||
|
```
|
||||||
|
|
||||||
|
**Sever酱(原版)**
|
||||||
|
|
||||||
|
> 文档: https://sc.ftqq.com/
|
||||||
|
> 说明: Server 酱老版本 key,SCU 开头的
|
||||||
|
|
||||||
|
```ini
|
||||||
|
; Sever酱(原版)|令牌Key|依赖USE_NOTIFY
|
||||||
|
[notify.sc]
|
||||||
|
sckey = SCU566cc69da782ec****
|
||||||
|
```
|
||||||
|
|
||||||
|
**Server酱(Turbo版)**
|
||||||
|
|
||||||
|
> 文档: https://sct.ftqq.com/
|
||||||
|
> 说明: Server 酱 Turbo 版本 key,SCT 开头的
|
||||||
|
|
||||||
|
```ini
|
||||||
|
; Server酱(Turbo版)|令牌Key|依赖USE_NOTIFY
|
||||||
|
[notify.sct]
|
||||||
|
sctkey = SCT566cc69da782ec****
|
||||||
|
```
|
||||||
|
|
||||||
|
**GoCqhttp**
|
||||||
|
|
||||||
|
> 文档: https://docs.go-cqhttp.org/api/
|
||||||
|
> 说明: 推送的完整api, 包含`/send_private_msg`、`/send_group_msg` 等等完整后缀
|
||||||
|
> 说明: 推送的AccessToken
|
||||||
|
> 说明: 目标QQ号或者QQ群号,根据API调整
|
||||||
|
|
||||||
|
```ini
|
||||||
|
; GoCqhttp|url|token|目标qq|依赖USE_NOTIFY
|
||||||
|
[notify.gocqhttp]
|
||||||
|
url = "http://127.0.0.1:5700/send_private_msg"
|
||||||
|
token = 566cc69da782ec****
|
||||||
|
target_qq = 10086
|
||||||
|
```
|
||||||
|
|
||||||
|
**Debug(个人用)**
|
||||||
|
|
||||||
|
> 文档: https://localhost:8921/doc
|
||||||
|
|
||||||
|
```ini
|
||||||
|
; Debug|个人调试推送|url|token|
|
||||||
|
[notify.debug]
|
||||||
|
url = "https://localhost:8921/notify"
|
||||||
|
token = 566cc69da782ec****
|
||||||
|
```
|
||||||
|
|
||||||
|
**企业微信群机器人**
|
||||||
|
|
||||||
|
> 文档: https://open.work.weixin.qq.com/api/doc/90000/90136/91770 | https://weibanzhushou.com/blog/330
|
||||||
|
> 说明: 推送的AccessToken
|
||||||
|
|
||||||
|
```ini
|
||||||
|
; 企业微信群机器人|token
|
||||||
|
[notify.we_com]
|
||||||
|
token = ec971f1d-****-4700-****-d9461e76****
|
||||||
|
```
|
||||||
|
|
||||||
|
**企业微信应用**
|
||||||
|
|
||||||
|
> 文档: https://open.work.weixin.qq.com/wwopen/devtool/interface?doc_id=10167
|
||||||
|
> 说明: 企业 id
|
||||||
|
> 说明: 应用的凭证密钥
|
||||||
|
> 说明: 企业应用的 id
|
||||||
|
> 说明: 指定接收消息的成员,成员 ID 列表 默认为@all
|
||||||
|
|
||||||
|
```ini
|
||||||
|
; 企业微信应用消息|corp_id|corp_secret|agent_id|to_user
|
||||||
|
[notify.we_com_app]
|
||||||
|
corp_id = ****
|
||||||
|
corp_secret = ****
|
||||||
|
agent_id = ****
|
||||||
|
to_user = UserId1|UserId2|UserId3
|
||||||
|
```
|
||||||
|
|
||||||
|
### 调试
|
||||||
|
|
||||||
|
https://github.com/lkeme/BiliHelper-personal/blob/eb06f55fa0fa6cb07bbeffc7e85c6ac0bfaa67b3/data/latest_version.json#L8
|
||||||
|
|
||||||
|
改成与线上不同的版本即可,检查新版本就会推送一次。
|
||||||
74
README.md
74
README.md
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
|
|
||||||
<img src="https://img.shields.io/badge/Version-1.0.1.211014-orange.svg?longCache=true&style=for-the-badge">
|
<img src="https://img.shields.io/badge/Version-1.0.2.211115-orange.svg?longCache=true&style=for-the-badge">
|
||||||
<img src="https://img.shields.io/badge/PHP-8.0+-green.svg?longCache=true&style=for-the-badge">
|
<img src="https://img.shields.io/badge/PHP-8.0+-green.svg?longCache=true&style=for-the-badge">
|
||||||
<img src="https://img.shields.io/badge/Composer-latest-blueviolet.svg?longCache=true&style=for-the-badge">
|
<img src="https://img.shields.io/badge/Composer-latest-blueviolet.svg?longCache=true&style=for-the-badge">
|
||||||
<img src="https://img.shields.io/badge/License-mit-blue.svg?longCache=true&style=for-the-badge">
|
<img src="https://img.shields.io/badge/License-mit-blue.svg?longCache=true&style=for-the-badge">
|
||||||
@ -40,47 +40,47 @@
|
|||||||
|
|
||||||
[comment]: <> ()
|
[comment]: <> ()
|
||||||
|
|
||||||
|
|
||||||
## 功能组件
|
## 功能组件
|
||||||
|
|
||||||
以下任务都是按设定周期自动执行,`true`为正常使用,`false`为暂停使用或抛弃。
|
以下任务都是按设定周期自动执行,`true`为正常使用,`false`为暂停使用或抛弃。
|
||||||
|
|
||||||
| plugin | status | version | cycle | description |
|
| plugin | status | version | cycle | description |
|
||||||
|-----------------|--------|----------|--------|---------------------------------------------|
|
|-----------------|--------|----------|--------|---------------------------------------------|
|
||||||
| CheckUpdate | true | 21.10.13 | 待整理 | 程序检查更新 |
|
| CheckUpdate | true | 21.11.15 | 待整理 | 程序检查更新 |
|
||||||
| Login | true | 21.10.13 | 待整理 | 账号登录、刷新、维持 |
|
| Login | true | 21.11.15 | 待整理 | 账号登录、刷新、维持 |
|
||||||
| Schedule | true | 21.10.13 | 待整理 | 控制插件运行周期 |
|
| Schedule | true | 21.11.15 | 待整理 | 控制插件运行周期 |
|
||||||
| MainSite | true | 21.10.13 | 待整理 | 投币、观看、分享视频 (速升6级不是梦) |
|
| MainSite | true | 21.11.15 | 待整理 | 投币、观看、分享视频 (速升6级不是梦) |
|
||||||
| DailyBag | true | 21.10.13 | 待整理 | 双端领取日常/周常礼包 |
|
| DailyBag | true | 21.11.15 | 待整理 | 双端领取日常/周常礼包 |
|
||||||
| ManGa | true | 21.10.13 | 待整理 | 漫画签到、分享 |
|
| ManGa | true | 21.11.15 | 待整理 | 漫画签到、分享 |
|
||||||
| ActivityLottery | true | 21.10.13 | 待整理 | 主站活动九宫格抽奖 |
|
| ActivityLottery | true | 21.11.15 | 待整理 | 主站活动九宫格抽奖 |
|
||||||
| Competition | true | 21.10.13 | 待整理 | 游戏赛事竞猜 |
|
| Competition | true | 21.11.15 | 待整理 | 游戏赛事竞猜 |
|
||||||
| DoubleHeart | true | 21.10.13 | 待整理 | 双端心跳 (姥爷直播经验) |
|
| DoubleHeart | true | 21.11.15 | 待整理 | 双端心跳 (姥爷直播经验) |
|
||||||
| DailyTask | true | 21.10.13 | 待整理 | 直播每日任务(签到、观看) |
|
| DailyTask | true | 21.11.15 | 待整理 | 直播每日任务(签到、观看) |
|
||||||
| Barrage | true | 21.10.13 | 待整理 | 保持活跃弹幕 |
|
| Barrage | true | 21.11.15 | 待整理 | 保持活跃弹幕 |
|
||||||
| Silver2Coin | true | 21.10.13 | 待整理 | 银瓜子兑换硬币 |
|
| Silver2Coin | true | 21.11.15 | 待整理 | 银瓜子兑换硬币 |
|
||||||
| Judge | true | 21.10.13 | 待整理 | 风纪委员投票 |
|
| Judge | true | 21.11.15 | 待整理 | 风纪委员投票 |
|
||||||
| GiftSend | true | 21.10.13 | 待整理 | 礼物赠送、维持每日勋章亲密度 |
|
| GiftSend | true | 21.11.15 | 待整理 | 礼物赠送、维持每日勋章亲密度 |
|
||||||
| GroupSignIn | true | 21.10.13 | 待整理 | 友爱社签到 |
|
| GroupSignIn | true | 21.11.15 | 待整理 | 友爱社签到 |
|
||||||
| GiftHeart | true | 21.10.13 | 待整理 | 日常心跳每日礼包礼物 |
|
| GiftHeart | true | 21.11.15 | 待整理 | 日常心跳每日礼包礼物 |
|
||||||
| SmallHeart | true | 21.10.13 | 待整理 | 直播挂机,每日24个小心心 |
|
| SmallHeart | true | 21.11.15 | 待整理 | 直播挂机,每日24个小心心 |
|
||||||
| MaterialObject | true | 21.10.13 | 待整理 | 直播金色宝箱实物抽奖 |
|
| MaterialObject | true | 21.11.15 | 待整理 | 直播金色宝箱实物抽奖 |
|
||||||
| AloneTcpClient | true | 21.10.13 | 待整理 | 作者的独立直播监控(可支持本项目哦) |
|
| AloneTcpClient | true | 21.11.15 | 待整理 | 作者的独立直播监控(可支持本项目哦) |
|
||||||
| ZoneTcpClient | true | 21.10.13 | 待整理 | 官方的分区直播监控 |
|
| ZoneTcpClient | true | 21.11.15 | 待整理 | 官方的分区直播监控 |
|
||||||
| StormRaffle | true | 21.10.13 | 待整理 | 直播节奏风暴抽奖、亿元 |
|
| StormRaffle | true | 21.11.15 | 待整理 | 直播节奏风暴抽奖、亿元 |
|
||||||
| GiftRaffle | true | 21.10.13 | 待整理 | 直播礼物抽奖 |
|
| GiftRaffle | true | 21.11.15 | 待整理 | 直播礼物抽奖 |
|
||||||
| PkRaffle | true | 21.10.13 | 待整理 | 直播大乱斗抽奖 |
|
| PkRaffle | true | 21.11.15 | 待整理 | 直播大乱斗抽奖 |
|
||||||
| GuardRaffle | true | 21.10.13 | 待整理 | 直播大航海抽奖 |
|
| GuardRaffle | true | 21.11.15 | 待整理 | 直播大航海抽奖 |
|
||||||
| AnchorRaffle | true | 21.10.13 | 待整理 | 直播天选时刻抽奖 |
|
| AnchorRaffle | true | 21.11.15 | 待整理 | 直播天选时刻抽奖 |
|
||||||
| GiftRaffle | true | 21.10.13 | 待整理 | 直播礼物抽奖 |
|
| GiftRaffle | true | 21.11.15 | 待整理 | 直播礼物抽奖 |
|
||||||
| AwardRecord | true | 21.10.13 | 待整理 | 最新的中奖纪录通知 |
|
| AwardRecord | true | 21.11.15 | 待整理 | 最新的中奖纪录通知 |
|
||||||
| Forward | true | 21.10.13 | 待整理 | 主站动态抽奖转发 |
|
| Forward | true | 21.11.15 | 待整理 | 主站动态抽奖转发 |
|
||||||
| CapsuleLottery | true | 21.10.13 | 待整理 | 直播扭蛋活动抽奖 |
|
| CapsuleLottery | true | 21.11.15 | 待整理 | 直播扭蛋活动抽奖 |
|
||||||
| PolishTheMedal | true | 21.10.13 | 待整理 | 每日自动点亮灰色勋章 |
|
| PolishTheMedal | true | 21.11.15 | 待整理 | 每日自动点亮灰色勋章 |
|
||||||
| CapsuleLottery | true | 21.10.13 | 待整理 | 直播扭蛋活动抽奖 |
|
| CapsuleLottery | true | 21.11.15 | 待整理 | 直播扭蛋活动抽奖 |
|
||||||
| VipPrivilege | true | 21.10.13 | 待整理 | 每月领取年度大会员特权(B币券、会员购优惠券) |
|
| VipPrivilege | true | 21.11.15 | 待整理 | 每月领取年度大会员特权(B币券、会员购优惠券) |
|
||||||
| BpConsumption | true | 21.10.13 | 待整理 | 每月消费使用年度大会员特权的B币券 |
|
| BpConsumption | true | 21.11.15 | 待整理 | 每月消费使用年度大会员特权的B币券 |
|
||||||
| Statistics | true | 21.10.13 | 待整理 | 全局抽奖结果统计 |
|
| Statistics | true | 21.11.15 | 待整理 | 全局抽奖结果统计 |
|
||||||
|
| LiveReservation | true | 21.11.15 | 待整理 | 直播预约有奖 |
|
||||||
| Silver | false | 21.03.27 | 待整理 | 直播银瓜子自动开启宝箱 |
|
| Silver | false | 21.03.27 | 待整理 | 直播银瓜子自动开启宝箱 |
|
||||||
|
|
||||||
## 交流反馈
|
## 交流反馈
|
||||||
@ -94,6 +94,7 @@ Group: [163955623](https://jq.qq.com/?_wv=1027&k=1QMFTUEO) | **请不要来问
|
|||||||
[comment]: <> (:cherry_blossom: :gift: :gift_heart: :confetti_ball:)
|
[comment]: <> (:cherry_blossom: :gift: :gift_heart: :confetti_ball:)
|
||||||
|
|
||||||
* [使用文档 / DOC.md](./DOC.md)
|
* [使用文档 / DOC.md](./DOC.md)
|
||||||
|
* [推送文档 / DOC.md](./NOTIFY.md)
|
||||||
* [更新日志 / CHANGELOG.md](./CHANGELOG.md)
|
* [更新日志 / CHANGELOG.md](./CHANGELOG.md)
|
||||||
* [配置文档 / WIKI.md](https://github.com/lkeme/BiliHelper-personal/wiki/%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%A6%E8%A7%A3)
|
* [配置文档 / WIKI.md](https://github.com/lkeme/BiliHelper-personal/wiki/%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%A6%E8%A7%A3)
|
||||||
* [常见问题 / WIKI.md](https://github.com/lkeme/BiliHelper-personal/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)
|
* [常见问题 / WIKI.md](https://github.com/lkeme/BiliHelper-personal/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)
|
||||||
@ -103,7 +104,6 @@ Group: [163955623](https://jq.qq.com/?_wv=1027&k=1QMFTUEO) | **请不要来问
|
|||||||
[](https://starchart.cc/lkeme/BiliHelper-personal)
|
[](https://starchart.cc/lkeme/BiliHelper-personal)
|
||||||
[](https://starchart.cc/lkeme/BiliHelper)
|
[](https://starchart.cc/lkeme/BiliHelper)
|
||||||
|
|
||||||
|
|
||||||
## 运行效果
|
## 运行效果
|
||||||
|
|
||||||
效果图不代表当前版本,请以当前最新版本运行结果为准。
|
效果图不代表当前版本,请以当前最新版本运行结果为准。
|
||||||
|
|||||||
@ -3,8 +3,8 @@ bili_version: 0.0.1
|
|||||||
# Android
|
# Android
|
||||||
bili_a:
|
bili_a:
|
||||||
package: "tv.danmaku.bili"
|
package: "tv.danmaku.bili"
|
||||||
version: "6.43.0"
|
version: "6.48.0"
|
||||||
build: "6430500"
|
build: "6480300"
|
||||||
channel: "bili"
|
channel: "bili"
|
||||||
device: "phone"
|
device: "phone"
|
||||||
mobi_app: "android"
|
mobi_app: "android"
|
||||||
|
|||||||
@ -7,8 +7,8 @@ device:
|
|||||||
network: "2" # 1 流量 2 WIFI
|
network: "2" # 1 流量 2 WIFI
|
||||||
|
|
||||||
other_headers:
|
other_headers:
|
||||||
ua: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4450.0 Safari/537.36"
|
ua: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36"
|
||||||
pc_headers:
|
pc_headers:
|
||||||
ua: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.30 Safari/537.36 Edg/90.0.818.8"
|
ua: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.53Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.53"
|
||||||
app_headers:
|
app_headers:
|
||||||
ua: "Mozilla/5.0 BiliDroid/${bili_a.version} (bbcallen@gmail.com) os/${device.os} model/${device.model} mobi_app/${bili_a.mobi_app} build/${bili_a.build} channel/${bili_a.channel} innerVer/${bili_a.build} osVer/${device.os_ver} network/${device.network}"
|
ua: "Mozilla/5.0 BiliDroid/${bili_a.version} (bbcallen@gmail.com) os/${device.os} model/${device.model} mobi_app/${bili_a.mobi_app} build/${bili_a.build} channel/${bili_a.channel} innerVer/${bili_a.build} osVer/${device.os_ver} network/${device.network}"
|
||||||
|
|||||||
@ -69,6 +69,11 @@ enable = true
|
|||||||
[live_box]
|
[live_box]
|
||||||
enable = true
|
enable = true
|
||||||
|
|
||||||
|
; 直播预约有奖|UP_UID|逗号分隔
|
||||||
|
[live_reservation]
|
||||||
|
enable = true
|
||||||
|
vmids = 9617619
|
||||||
|
|
||||||
; 每日24个小心心|依赖加密心跳服务器
|
; 每日24个小心心|依赖加密心跳服务器
|
||||||
[small_heart]
|
[small_heart]
|
||||||
enable = true
|
enable = true
|
||||||
@ -204,11 +209,22 @@ url = ""
|
|||||||
token =
|
token =
|
||||||
target_qq =
|
target_qq =
|
||||||
|
|
||||||
; Debug|个人调试推送|url|token|
|
; Debug|个人调试推送|url|token
|
||||||
[notify.debug]
|
[notify.debug]
|
||||||
url = ""
|
url = ""
|
||||||
token =
|
token =
|
||||||
|
|
||||||
|
; 企业微信群机器人|token
|
||||||
|
[notify.we_com]
|
||||||
|
token =
|
||||||
|
|
||||||
|
; 企业微信应用消息|corp_id|corp_secret|agent_id|to_user
|
||||||
|
[notify.we_com_app]
|
||||||
|
corp_id =
|
||||||
|
corp_secret =
|
||||||
|
agent_id =
|
||||||
|
to_user =
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
# 基础设置 #
|
# 基础设置 #
|
||||||
#######################
|
#######################
|
||||||
|
|||||||
@ -38,136 +38,6 @@
|
|||||||
"watch_time": 600,
|
"watch_time": 600,
|
||||||
"draw_times": 0,
|
"draw_times": 0,
|
||||||
"expire_at": "2021-11-06 23:59:59"
|
"expire_at": "2021-11-06 23:59:59"
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://www.bilibili.com/blackboard/activity-aCrSakaiX5.html",
|
|
||||||
"title": "永劫无间无拘创作挑战赛",
|
|
||||||
"description": "视频投稿&主播开播,瓜分40万奖金!",
|
|
||||||
"room_id": 0,
|
|
||||||
"area_id": 443,
|
|
||||||
"parent_area_id": 6,
|
|
||||||
"coin_id": 198,
|
|
||||||
"pool_id": 208,
|
|
||||||
"watch_time": 3700,
|
|
||||||
"draw_times": 3,
|
|
||||||
"expire_at": "2021-08-08 23:59:59"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://www.bilibili.com/blackboard/activity-jCibw9bk8l.html",
|
|
||||||
"title": "我的世界暑期直播大挑战",
|
|
||||||
"description": "我的世界暑期直播大挑战",
|
|
||||||
"room_id": 0,
|
|
||||||
"area_id": 249,
|
|
||||||
"parent_area_id": 6,
|
|
||||||
"coin_id": 207,
|
|
||||||
"pool_id": 216,
|
|
||||||
"watch_time": 7320,
|
|
||||||
"draw_times": 3,
|
|
||||||
"expire_at": "2021-08-15 23:59:59"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://www.bilibili.com/blackboard/activity-TVWStSTDRs.html",
|
|
||||||
"title": "游戏直播嘉年华-极限大挑战",
|
|
||||||
"description": "每日观看满10/30/60分钟可获得1/2/3枚心愿币",
|
|
||||||
"room_id": 0,
|
|
||||||
"area_id": 0,
|
|
||||||
"parent_area_id": 6,
|
|
||||||
"coin_id": 189,
|
|
||||||
"pool_id": 205,
|
|
||||||
"watch_time": 0,
|
|
||||||
"draw_times": 6,
|
|
||||||
"expire_at": "2021-08-15 23:59:59"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://www.bilibili.com/blackboard/activity-Bj5ru05xgK.html",
|
|
||||||
"title": "第五人格超级预言家",
|
|
||||||
"description": "在第五人格分区累计观看直播10分钟/30分钟/60分钟即可获得 应援券1张/2张/3张",
|
|
||||||
"room_id": 0,
|
|
||||||
"area_id": 163,
|
|
||||||
"parent_area_id": 3,
|
|
||||||
"coin_id": 172,
|
|
||||||
"pool_id": 184,
|
|
||||||
"watch_time": 3700,
|
|
||||||
"draw_times": 6,
|
|
||||||
"expire_at": "2021-09-01 23:59:59"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://www.bilibili.com/blackboard/activity-3F5JplgtKh.html",
|
|
||||||
"title": "《怪物猎人物语2:毁灭之翼》",
|
|
||||||
"description": "《怪物猎人物语2:毁灭之翼》",
|
|
||||||
"room_id": 0,
|
|
||||||
"area_id": 481,
|
|
||||||
"parent_area_id": 6,
|
|
||||||
"coin_id": 200,
|
|
||||||
"pool_id": 213,
|
|
||||||
"watch_time": 3700,
|
|
||||||
"draw_times": 6,
|
|
||||||
"expire_at": "2021-07-22 23:59:59"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://live.bilibili.com/76",
|
|
||||||
"title": "守望先锋",
|
|
||||||
"description": "OWL2021开始了",
|
|
||||||
"room_id": 76,
|
|
||||||
"area_id": 87,
|
|
||||||
"parent_area_id": 2,
|
|
||||||
"coin_id": 131,
|
|
||||||
"pool_id": 145,
|
|
||||||
"watch_time": 1000,
|
|
||||||
"draw_times": 3,
|
|
||||||
"expire_at": "2021-09-01 23:59:59"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://live.bilibili.com/828",
|
|
||||||
"title": "剑网3大师赛",
|
|
||||||
"description": "剑网3大师赛",
|
|
||||||
"room_id": 828,
|
|
||||||
"area_id": 82,
|
|
||||||
"parent_area_id": 2,
|
|
||||||
"coin_id": 190,
|
|
||||||
"pool_id": 203,
|
|
||||||
"watch_time": 3700,
|
|
||||||
"draw_times": 11,
|
|
||||||
"expire_at": "2021-09-01 23:59:59"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://www.bilibili.com/blackboard/activity-HmADkQuRGP.html",
|
|
||||||
"title": "《斩妖行》主播招募",
|
|
||||||
"description": "《斩妖行》主播招募",
|
|
||||||
"room_id": 0,
|
|
||||||
"area_id": 358,
|
|
||||||
"parent_area_id": 6,
|
|
||||||
"coin_id": 202,
|
|
||||||
"pool_id": 209,
|
|
||||||
"watch_time": 7320,
|
|
||||||
"draw_times": 6,
|
|
||||||
"expire_at": "2021-07-23 23:59:59"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://www.bilibili.com/blackboard/activity-YJ7JPyI9iJ.html",
|
|
||||||
"title": "《战意》国潮新赛季激励计划",
|
|
||||||
"description": "20万奖金助力将军凯旋",
|
|
||||||
"room_id": 0,
|
|
||||||
"area_id": 383,
|
|
||||||
"parent_area_id": 2,
|
|
||||||
"coin_id": 199,
|
|
||||||
"pool_id": 207,
|
|
||||||
"watch_time": 1600,
|
|
||||||
"draw_times": 6,
|
|
||||||
"expire_at": "2021-08-07 23:59:59"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://live.bilibili.com/11218604",
|
|
||||||
"title": "PCL夏季赛",
|
|
||||||
"description": "每日在PGI直播间观看,5、10",
|
|
||||||
"room_id": 11218604,
|
|
||||||
"area_id": 0,
|
|
||||||
"parent_area_id": 2,
|
|
||||||
"coin_id": 211,
|
|
||||||
"pool_id": 218,
|
|
||||||
"watch_time": 1000,
|
|
||||||
"draw_times": 2,
|
|
||||||
"expire_at": "2021-08-29 23:59:59"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -513,7 +513,8 @@
|
|||||||
"有jqr",
|
"有jqr",
|
||||||
"有bot",
|
"有bot",
|
||||||
"jqr",
|
"jqr",
|
||||||
"bot"
|
"bot",
|
||||||
|
"腹肌"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"Common": {
|
"Common": {
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
"source": "https://github.com/lkeme/BiliHelper-personal",
|
"source": "https://github.com/lkeme/BiliHelper-personal",
|
||||||
"raw_url": "https://cdn.jsdelivr.net/gh/lkeme/BiliHelper-personal@master/data/latest_version.json",
|
"raw_url": "https://cdn.jsdelivr.net/gh/lkeme/BiliHelper-personal@master/data/latest_version.json",
|
||||||
"purge_url": "https://purge.jsdelivr.net/gh/lkeme/BiliHelper-personal@master/data/latest_version.json",
|
"purge_url": "https://purge.jsdelivr.net/gh/lkeme/BiliHelper-personal@master/data/latest_version.json",
|
||||||
"version": "1.0.1.211014",
|
"version": "1.0.2.211115",
|
||||||
"des": "程序有更新,请及时线上查看更新哦~",
|
"des": "程序有更新,请及时线上查看更新哦~",
|
||||||
"time": "2021年10月14日20:40:35"
|
"time": "2021年11月15日15:40:35"
|
||||||
}
|
}
|
||||||
@ -159,6 +159,7 @@ class App
|
|||||||
'PolishTheMedal',
|
'PolishTheMedal',
|
||||||
'VipPrivilege',
|
'VipPrivilege',
|
||||||
'BpConsumption',
|
'BpConsumption',
|
||||||
|
'LiveReservation',
|
||||||
// 'Silver', // Abandoned
|
// 'Silver', // Abandoned
|
||||||
'Statistics',
|
'Statistics',
|
||||||
|
|
||||||
|
|||||||
@ -60,7 +60,7 @@ class BpConsumption
|
|||||||
'origin' => 'https://pay.bilibili.com',
|
'origin' => 'https://pay.bilibili.com',
|
||||||
'referer' => 'https://pay.bilibili.com/paywallet-fe/bb_balance.html'
|
'referer' => 'https://pay.bilibili.com/paywallet-fe/bb_balance.html'
|
||||||
];
|
];
|
||||||
$ts = Common::getMillisecond();
|
$ts = Common::getUnixTimestamp();
|
||||||
$payload = [
|
$payload = [
|
||||||
'panelType' => 3,
|
'panelType' => 3,
|
||||||
'platformType' => 3,
|
'platformType' => 3,
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
134
src/plugin/LiveReservation.php
Normal file
134
src/plugin/LiveReservation.php
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Website: https://mudew.com/
|
||||||
|
* Author: Lkeme
|
||||||
|
* License: The MIT License
|
||||||
|
* Email: Useri@live.cn
|
||||||
|
* Updated: 2021 ~ 2022
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace BiliHelper\Plugin;
|
||||||
|
|
||||||
|
use BiliHelper\Core\Log;
|
||||||
|
use BiliHelper\Core\Curl;
|
||||||
|
use BiliHelper\Util\TimeLock;
|
||||||
|
|
||||||
|
class LiveReservation
|
||||||
|
{
|
||||||
|
use TimeLock;
|
||||||
|
|
||||||
|
|
||||||
|
public static function run()
|
||||||
|
{
|
||||||
|
if (self::getLock() > time() || !getEnable('live_reservation')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (getConf('vmids', 'live_reservation') == "") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$vmids = explode(',', getConf('vmids', 'live_reservation'));
|
||||||
|
// 获取目标列表->获取预约列表->执行预约列表
|
||||||
|
foreach ($vmids as $vmid) {
|
||||||
|
$reservation_list = self::fetchReservation($vmid);
|
||||||
|
foreach ($reservation_list as $reservation) {
|
||||||
|
self::reserve($reservation);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 1-3小时
|
||||||
|
self::setLock(mt_rand(1, 3) * 60 * 60);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @use 尝试预约并抽奖
|
||||||
|
* @param array $data
|
||||||
|
*/
|
||||||
|
private static function reserve(array $data)
|
||||||
|
{
|
||||||
|
$url = 'https://api.bilibili.com/x/space/reserve';
|
||||||
|
$headers = [
|
||||||
|
'content-type' => 'application/x-www-form-urlencoded',
|
||||||
|
'origin' => 'https://space.bilibili.com',
|
||||||
|
'referer' => "https://space.bilibili.com/{$data['vmid']}"
|
||||||
|
];
|
||||||
|
$payload = [
|
||||||
|
'sid' => $data['sid'],
|
||||||
|
'jsonp' => 'jsonp',
|
||||||
|
'csrf' => getCsrf()
|
||||||
|
];
|
||||||
|
$raw = Curl::post('pc', $url, $payload, $headers);
|
||||||
|
$de_raw = json_decode($raw, true);
|
||||||
|
// {"code":0,"message":"0","ttl":1}
|
||||||
|
Log::info($data['name'] . '|' . $data['vmid'] . '|' . $data['sid']);
|
||||||
|
Log::info($data['text']);
|
||||||
|
Log::info($data['jump_url']);
|
||||||
|
|
||||||
|
if (!$de_raw['code']) {
|
||||||
|
Log::notice("尝试预约并抽奖成功: {$de_raw['message']}");
|
||||||
|
} else {
|
||||||
|
Log::warning("尝试预约并抽奖失败: $raw");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @use 获取预约列表
|
||||||
|
* @param string $vmid
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
private static function fetchReservation(string $vmid): array
|
||||||
|
{
|
||||||
|
$reservation_list = [];
|
||||||
|
|
||||||
|
$url = 'https://api.bilibili.com/x/space/reservation';
|
||||||
|
$payload = [
|
||||||
|
'vmid' => $vmid,
|
||||||
|
];
|
||||||
|
$headers = [
|
||||||
|
'origin' => 'https://space.bilibili.com',
|
||||||
|
'referer' => "https://space.bilibili.com/$vmid/"
|
||||||
|
];
|
||||||
|
$raw = Curl::get('pc', $url, $payload, $headers);
|
||||||
|
$de_raw = json_decode($raw, true);
|
||||||
|
// {"code":0,"message":"0","ttl":1,"data":[{"sid":253672,"name":"直播预约:创世之音-虚拟偶像演唱会","total":6382,"stime":1636716437,"etime":1637408100,"is_follow":1,"state":100,"oid":"","type":2,"up_mid":9617619,"reserve_record_ctime":1636731801,"live_plan_start_time":1637406000,"lottery_type":1,"lottery_prize_info":{"text":"预约有奖:小电视年糕抱枕、哔哩哔哩小电视樱花毛绒抱枕大号、哔哩哔哩小夜灯","lottery_icon":"https://i0.hdslb.com/bfs/activity-plat/static/ce06d65bc0a8d8aa2a463747ce2a4752/rgHplMQyiX.png","jump_url":"https://www.bilibili.com/h5/lottery/result?business_id=253672\u0026business_type=10\u0026lottery_id=76240"},"show_total":true,"subtitle":""},{"sid":246469,"name":"直播预约:创世之音-YuNi个人演唱会","total":3555,"stime":1636367836,"etime":1637494500,"is_follow":0,"state":100,"oid":"","type":2,"up_mid":9617619,"reserve_record_ctime":0,"live_plan_start_time":1637492400,"show_total":true,"subtitle":""}]}
|
||||||
|
if (!$de_raw['code']) {
|
||||||
|
foreach ($de_raw['data'] as $data) {
|
||||||
|
$result = self::checkLottery($data);
|
||||||
|
if (!$result) continue;
|
||||||
|
array_push($reservation_list, $result);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log::warning("获取预约列表失败: $raw");
|
||||||
|
}
|
||||||
|
return $reservation_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @use 检测有效抽奖
|
||||||
|
* @param array $data
|
||||||
|
* @return bool|array
|
||||||
|
*/
|
||||||
|
private static function checkLottery(array $data): bool|array
|
||||||
|
{
|
||||||
|
// 已经过了有效时间
|
||||||
|
if ($data['etime'] <= time()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// 已经预约过了
|
||||||
|
if ($data['is_follow']) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// 有预约抽奖
|
||||||
|
if (array_key_exists('lottery_prize_info', $data) && array_key_exists('lottery_type', $data)) {
|
||||||
|
return [
|
||||||
|
'sid' => $data['sid'], // 246469
|
||||||
|
'name' => $data['name'], // "直播预约:创世之音-虚拟偶像演唱会"
|
||||||
|
'vmid' => $data['up_mid'], // 9617619
|
||||||
|
'jump_url' => $data['lottery_prize_info']['jump_url'], // "https://www.bilibili.com/h5/lottery/result?business_id=253672&business_type=10&lottery_id=76240"
|
||||||
|
'text' => $data['lottery_prize_info']['text'], // "预约有奖:小电视年糕抱枕、哔哩哔哩小电视樱花毛绒抱枕大号、哔哩哔哩小夜灯"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -363,9 +363,12 @@ class Login
|
|||||||
case 2:
|
case 2:
|
||||||
// 异常高危
|
// 异常高危
|
||||||
self::loginFail($mode, $data['data']['message']);
|
self::loginFail($mode, $data['data']['message']);
|
||||||
|
case 3:
|
||||||
|
// 需要验证手机号
|
||||||
|
self::loginFail($mode, "需要验证手机号: {$data['data']['url']}");
|
||||||
default:
|
default:
|
||||||
// 未知错误
|
// 未知错误
|
||||||
self::loginFail($mode, '未知错误: ' . $data['data']['message']);
|
self::loginFail($mode, '未知错误: ' . json_encode($data));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 正常登录
|
// 正常登录
|
||||||
|
|||||||
@ -18,6 +18,13 @@ class Notice
|
|||||||
{
|
{
|
||||||
use FilterWords;
|
use FilterWords;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array|string[]
|
||||||
|
*/
|
||||||
|
private static array $json_headers = [
|
||||||
|
'Content-Type' => 'application/json'
|
||||||
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @use 推送消息
|
* @use 推送消息
|
||||||
* @param string $type
|
* @param string $type
|
||||||
@ -151,6 +158,12 @@ class Notice
|
|||||||
if (getConf('token', 'notify.debug') && getConf('url', 'notify.debug')) {
|
if (getConf('token', 'notify.debug') && getConf('url', 'notify.debug')) {
|
||||||
self::debug($info);
|
self::debug($info);
|
||||||
}
|
}
|
||||||
|
if (getConf('token', 'notify.we_com')) {
|
||||||
|
self::weCom($info);
|
||||||
|
}
|
||||||
|
if (getConf('corp_id', 'notify.we_com_app') && getConf('corp_secret', 'notify.we_com_app') && getConf('agent_id', 'notify.we_com_app')) {
|
||||||
|
self::weComApp($info);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -266,10 +279,7 @@ class Notice
|
|||||||
'title' => $info['title'],
|
'title' => $info['title'],
|
||||||
'content' => $info['content']
|
'content' => $info['content']
|
||||||
];
|
];
|
||||||
$headers = [
|
$raw = Curl::put('other', $url, $payload, self::$json_headers);
|
||||||
'Content-Type' => 'application/json'
|
|
||||||
];
|
|
||||||
$raw = Curl::put('other', $url, $payload, $headers);
|
|
||||||
// {"code":200,"msg":"请求成功","data":"发送消息成功"}
|
// {"code":200,"msg":"请求成功","data":"发送消息成功"}
|
||||||
$de_raw = json_decode($raw, true);
|
$de_raw = json_decode($raw, true);
|
||||||
if ($de_raw['code'] == 200) {
|
if ($de_raw['code'] == 200) {
|
||||||
@ -305,7 +315,7 @@ class Notice
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @use 个人调试使用
|
* @use 个人调试使用
|
||||||
* @doc
|
* @doc https://localhost:8921/doc
|
||||||
* @param array $info
|
* @param array $info
|
||||||
*/
|
*/
|
||||||
private static function debug(array $info)
|
private static function debug(array $info)
|
||||||
@ -326,7 +336,80 @@ class Notice
|
|||||||
} else {
|
} else {
|
||||||
Log::warning("推送消息失败: $raw");
|
Log::warning("推送消息失败: $raw");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @use 企业微信群机器人
|
||||||
|
* @doc https://open.work.weixin.qq.com/api/doc/90000/90136/91770
|
||||||
|
* @param array $info
|
||||||
|
*/
|
||||||
|
private static function weCom(array $info)
|
||||||
|
{
|
||||||
|
Log::info('使用weCom推送消息');
|
||||||
|
$url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=' . getConf('token', 'notify.we_com');
|
||||||
|
|
||||||
|
$payload = [
|
||||||
|
'msgtype' => 'markdown',
|
||||||
|
'markdown' => [
|
||||||
|
'content' => "{$info['title']} \n\n{$info['content']}"
|
||||||
|
]
|
||||||
|
];
|
||||||
|
$raw = Curl::put('other', $url, $payload, self::$json_headers);
|
||||||
|
// {"errcode":0,"errmsg":"ok","created_at":"1380000000"}
|
||||||
|
$de_raw = json_decode($raw, true);
|
||||||
|
if ($de_raw['errcode'] == 0) {
|
||||||
|
Log::notice("推送消息成功: {$de_raw['errmsg']}");
|
||||||
|
} else {
|
||||||
|
Log::warning("推送消息失败: $raw");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @use 企业微信应用消息
|
||||||
|
* @doc https://open.work.weixin.qq.com/wwopen/devtool/interface?doc_id=10167
|
||||||
|
* @param array $info
|
||||||
|
*/
|
||||||
|
private static function weComApp(array $info)
|
||||||
|
{
|
||||||
|
Log::info('使用weComApp推送消息');
|
||||||
|
$corp_id = getConf('corp_id', 'notify.we_com_app');
|
||||||
|
$corp_secret = getConf('corp_secret', 'notify.we_com_app');
|
||||||
|
$agent_id = getConf('agent_id', 'notify.we_com_app');
|
||||||
|
$to_user = getConf('to_user', 'notify.we_com_app') ?? '@all';
|
||||||
|
|
||||||
|
// 获取token
|
||||||
|
$url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken';
|
||||||
|
$payload = [
|
||||||
|
'corpid' => $corp_id,
|
||||||
|
'corpsecret' => $corp_secret,
|
||||||
|
];
|
||||||
|
$raw = Curl::get('other', $url, $payload);
|
||||||
|
// {"errcode":0,"errmsg":"ok","created_at":"1380000000"}
|
||||||
|
$de_raw = json_decode($raw, true);
|
||||||
|
if ($de_raw['errcode'] == 0) {
|
||||||
|
Log::info("access_token 获取成功: {$de_raw['access_token']}");
|
||||||
|
} else {
|
||||||
|
Log::warning("access_token 获取失败: $raw");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 推送
|
||||||
|
$url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' . $de_raw['access_token'];
|
||||||
|
$payload = [
|
||||||
|
'touser' => $to_user,
|
||||||
|
'msgtype' => 'text',
|
||||||
|
'agentid' => $agent_id,
|
||||||
|
'text' => [
|
||||||
|
'content' => "{$info['title']} \n\n{$info['content']}"
|
||||||
|
]
|
||||||
|
];
|
||||||
|
$raw = Curl::put('other', $url, $payload, self::$json_headers);
|
||||||
|
// {"errcode":0,"errmsg":"ok","created_at":"1380000000"}
|
||||||
|
$de_raw = json_decode($raw, true);
|
||||||
|
if ($de_raw['errcode'] == 0) {
|
||||||
|
Log::notice("推送消息成功: {$de_raw['errmsg']}");
|
||||||
|
} else {
|
||||||
|
Log::warning("推送消息失败: $raw");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -57,7 +57,7 @@ class User
|
|||||||
{
|
{
|
||||||
$url = 'https://api.live.bilibili.com/User/getUserInfo';
|
$url = 'https://api.live.bilibili.com/User/getUserInfo';
|
||||||
$payload = [
|
$payload = [
|
||||||
'ts' => Common::getMillisecond(),
|
'ts' => Common::getUnixTimestamp(),
|
||||||
];
|
];
|
||||||
$raw = Curl::get('app', $url, Sign::common($payload));
|
$raw = Curl::get('app', $url, Sign::common($payload));
|
||||||
return json_decode($raw, true);
|
return json_decode($raw, true);
|
||||||
@ -308,7 +308,7 @@ class User
|
|||||||
// {"code":0,"message":"0","ttl":1,"data":{"mid":1234,"vip_type":2,"vip_status":1,"vip_due_date":1667750400000,"vip_pay_type":0,"theme_type":0,"label":{"text":"年度大会员","label_theme":"annual_vip","text_color":"#FFFFFF","bg_style":1,"bg_color":"#FB7299","border_color":""},"avatar_subscript":1,"avatar_subscript_url":"http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png","nickname_color":"#FB7299","is_new_user":false}}
|
// {"code":0,"message":"0","ttl":1,"data":{"mid":1234,"vip_type":2,"vip_status":1,"vip_due_date":1667750400000,"vip_pay_type":0,"theme_type":0,"label":{"text":"年度大会员","label_theme":"annual_vip","text_color":"#FFFFFF","bg_style":1,"bg_color":"#FB7299","border_color":""},"avatar_subscript":1,"avatar_subscript_url":"http://i0.hdslb.com/bfs/vip/icon_Certification_big_member_22_3x.png","nickname_color":"#FB7299","is_new_user":false}}
|
||||||
$de_raw = json_decode($raw, true);
|
$de_raw = json_decode($raw, true);
|
||||||
if ($de_raw['code'] == 0) {
|
if ($de_raw['code'] == 0) {
|
||||||
if ($de_raw['data']['vip_type'] == 2 && $de_raw['data']['vip_due_date'] > Common::getMillisecond()) {
|
if ($de_raw['data']['vip_type'] == 2 && $de_raw['data']['vip_due_date'] > Common::getUnixTimestamp()) {
|
||||||
Log::debug("获取会员成功 有效年度大会员");
|
Log::debug("获取会员成功 有效年度大会员");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,7 +17,7 @@ class Common
|
|||||||
* @use 获取十三位时间戳
|
* @use 获取十三位时间戳
|
||||||
* @return int
|
* @return int
|
||||||
*/
|
*/
|
||||||
public static function getMillisecond(): int
|
public static function getUnixTimestamp(): int
|
||||||
{
|
{
|
||||||
list($t1, $t2) = explode(' ', microtime());
|
list($t1, $t2) = explode(' ', microtime());
|
||||||
// return (float)sprintf('%.0f', (floatval($t1) + floatval($t2)) * 1000);
|
// return (float)sprintf('%.0f', (floatval($t1) + floatval($t2)) * 1000);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user