diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c1ecd2..15080ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,31 @@ # 本项目Log + + +## v0.9.6.210625 alpha (2021-06-25) + +### Added + +- + +### Changed + +- 优化动态过滤 +- 优化过滤关键字 +- 优化短信登录流程 +- + +### Fixed + +- 修复动态转发 +- + +### Remarks + +- 注意配置文件有些许改动 +- + ## v0.9.5.210624 alpha (2021-06-24) ### Added diff --git a/README.md b/README.md index 3221ea6..022ba53 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@
-
+
@@ -37,40 +37,40 @@
| plugin | status | version | description |
|-----------------|--------|----------|---------------------------------------------|
-| CheckUpdate | true | 21.06.24 | 程序检查更新 |
-| Login | true | 21.06.24 | 账号登录、刷新、维持 |
-| Schedule | true | 21.06.24 | 控制插件运行周期 |
-| MainSite | true | 21.06.24 | 投币、观看、分享视频 (速升6级不是梦) |
-| DailyBag | true | 21.06.24 | 双端领取日常/周常礼包 |
-| ManGa | true | 21.06.24 | 漫画签到、分享 |
-| ActivityLottery | true | 21.06.24 | 主站活动九宫格抽奖 |
-| Competition | true | 21.06.24 | 游戏赛事竞猜 |
-| DoubleHeart | true | 21.06.24 | 双端心跳 (姥爷直播经验) |
-| DailyTask | true | 21.06.24 | 直播每日任务(签到、观看) |
-| Barrage | true | 21.06.24 | 保持活跃弹幕 |
-| Silver2Coin | true | 21.06.24 | 银瓜子兑换硬币 |
-| Judge | true | 21.06.24 | 风纪委员投票 |
-| GiftSend | true | 21.06.24 | 礼物赠送、维持每日勋章亲密度 |
-| GroupSignIn | true | 21.06.24 | 友爱社签到 |
-| GiftHeart | true | 21.06.24 | 日常心跳每日礼包礼物 |
-| SmallHeart | true | 21.06.24 | 直播挂机,每日24个小心心 |
-| MaterialObject | true | 21.06.24 | 直播金色宝箱实物抽奖 |
-| AloneTcpClient | true | 21.06.24 | 作者的独立直播监控(可支持本项目哦) |
-| ZoneTcpClient | true | 21.06.24 | 官方的分区直播监控 |
-| StormRaffle | true | 21.06.24 | 直播节奏风暴抽奖、亿元 |
-| GiftRaffle | true | 21.06.24 | 直播礼物抽奖 |
-| PkRaffle | true | 21.06.24 | 直播大乱斗抽奖 |
-| GuardRaffle | true | 21.06.24 | 直播大航海抽奖 |
-| AnchorRaffle | true | 21.06.24 | 直播天选时刻抽奖 |
-| GiftRaffle | true | 21.06.24 | 直播礼物抽奖 |
-| AwardRecord | true | 21.06.24 | 最新的中奖纪录通知 |
-| Forward | true | 21.06.24 | 主站动态抽奖转发 |
-| CapsuleLottery | true | 21.06.24 | 直播扭蛋活动抽奖 |
-| PolishTheMedal | true | 21.06.24 | 每日自动点亮灰色勋章 |
-| CapsuleLottery | true | 21.06.24 | 直播扭蛋活动抽奖 |
-| VipPrivilege | true | 21.06.24 | 每月领取年度大会员特权(B币券、会员购优惠券) |
-| BpConsumption | true | 21.06.24 | 每月消费使用年度大会员特权的B币券 |
-| Statistics | true | 21.06.24 | 全局抽奖结果统计 |
+| CheckUpdate | true | 21.06.25 | 程序检查更新 |
+| Login | true | 21.06.25 | 账号登录、刷新、维持 |
+| Schedule | true | 21.06.25 | 控制插件运行周期 |
+| MainSite | true | 21.06.25 | 投币、观看、分享视频 (速升6级不是梦) |
+| DailyBag | true | 21.06.25 | 双端领取日常/周常礼包 |
+| ManGa | true | 21.06.25 | 漫画签到、分享 |
+| ActivityLottery | true | 21.06.25 | 主站活动九宫格抽奖 |
+| Competition | true | 21.06.25 | 游戏赛事竞猜 |
+| DoubleHeart | true | 21.06.25 | 双端心跳 (姥爷直播经验) |
+| DailyTask | true | 21.06.25 | 直播每日任务(签到、观看) |
+| Barrage | true | 21.06.25 | 保持活跃弹幕 |
+| Silver2Coin | true | 21.06.25 | 银瓜子兑换硬币 |
+| Judge | true | 21.06.25 | 风纪委员投票 |
+| GiftSend | true | 21.06.25 | 礼物赠送、维持每日勋章亲密度 |
+| GroupSignIn | true | 21.06.25 | 友爱社签到 |
+| GiftHeart | true | 21.06.25 | 日常心跳每日礼包礼物 |
+| SmallHeart | true | 21.06.25 | 直播挂机,每日24个小心心 |
+| MaterialObject | true | 21.06.25 | 直播金色宝箱实物抽奖 |
+| AloneTcpClient | true | 21.06.25 | 作者的独立直播监控(可支持本项目哦) |
+| ZoneTcpClient | true | 21.06.25 | 官方的分区直播监控 |
+| StormRaffle | true | 21.06.25 | 直播节奏风暴抽奖、亿元 |
+| GiftRaffle | true | 21.06.25 | 直播礼物抽奖 |
+| PkRaffle | true | 21.06.25 | 直播大乱斗抽奖 |
+| GuardRaffle | true | 21.06.25 | 直播大航海抽奖 |
+| AnchorRaffle | true | 21.06.25 | 直播天选时刻抽奖 |
+| GiftRaffle | true | 21.06.25 | 直播礼物抽奖 |
+| AwardRecord | true | 21.06.25 | 最新的中奖纪录通知 |
+| Forward | true | 21.06.25 | 主站动态抽奖转发 |
+| CapsuleLottery | true | 21.06.25 | 直播扭蛋活动抽奖 |
+| PolishTheMedal | true | 21.06.25 | 每日自动点亮灰色勋章 |
+| CapsuleLottery | true | 21.06.25 | 直播扭蛋活动抽奖 |
+| VipPrivilege | true | 21.06.25 | 每月领取年度大会员特权(B币券、会员购优惠券) |
+| BpConsumption | true | 21.06.25 | 每月消费使用年度大会员特权的B币券 |
+| Statistics | true | 21.06.25 | 全局抽奖结果统计 |
| Silver | false | 21.03.27 | 直播银瓜子自动开启宝箱 |
## 交流反馈
diff --git a/composer.lock b/composer.lock
index 8deaef9..62ecc11 100644
--- a/composer.lock
+++ b/composer.lock
@@ -892,16 +892,16 @@
},
{
"name": "laminas/laminas-zendframework-bridge",
- "version": "1.2.0",
+ "version": "1.3.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-zendframework-bridge.git",
- "reference": "6cccbddfcfc742eb02158d6137ca5687d92cee32"
+ "reference": "13af2502d9bb6f7d33be2de4b51fb68c6cdb476e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/6cccbddfcfc742eb02158d6137ca5687d92cee32",
- "reference": "6cccbddfcfc742eb02158d6137ca5687d92cee32",
+ "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/13af2502d9bb6f7d33be2de4b51fb68c6cdb476e",
+ "reference": "13af2502d9bb6f7d33be2de4b51fb68c6cdb476e",
"shasum": "",
"mirrors": [
{
@@ -956,7 +956,7 @@
"type": "community_bridge"
}
],
- "time": "2021-02-25T21:54:58+00:00"
+ "time": "2021-06-24T12:49:22+00:00"
},
{
"name": "lkeme/inifile",
diff --git a/conf/user.ini.example b/conf/user.ini.example
index 2e355d1..2c5dc91 100644
--- a/conf/user.ini.example
+++ b/conf/user.ini.example
@@ -11,6 +11,10 @@ password = ""
[login.mode]
mode = 1
+; 校验|mode=2触发|校验国内手机号|国外手机号关闭校验
+[login.check]
+phone = true
+
; UID|CSRF|令牌|(当前区域自动生成)
[login.auth]
uid =
diff --git a/data/filter_library.json b/data/filter_library.json
index b74ef81..f2215bc 100644
--- a/data/filter_library.json
+++ b/data/filter_library.json
@@ -77,7 +77,6 @@
"无奖品",
"白名单",
"我是抽奖",
- "0.1",
"五毛二",
"一分",
"一毛",
@@ -342,7 +341,6 @@
"全部答对",
"弹幕",
"评论下方投稿视频",
- "征集",
"炸鱼",
"黑屋",
"照片",
@@ -421,23 +419,19 @@
"TEST",
"钓鱼",
"炸鱼",
- "调试"
- ],
- "sensitive": [
+ "调试",
"编曲",
"作词",
"半价",
"打折",
"机器",
"禁言",
- "测试",
"vcf",
"体验中奖",
"中奖的感觉",
"录歌",
"混音",
"一毛",
- "0.1元",
"1角",
"0.5元",
"5毛",
@@ -445,7 +439,6 @@
"感脚",
"曲风",
"专辑封面",
- "封面",
"一元红包",
"感jio",
"名片赞",
@@ -474,12 +467,9 @@
"内容自定",
"音乐人一个",
"私人唱歌",
- "感恩",
"作业",
"八字",
"算命",
- "电台",
- "情感视频",
"万兴神剪手",
"学习修图",
"写一首歌",
@@ -499,13 +489,10 @@
"定制beat",
"定制logo",
"惊喜软件",
- "终于中奖",
"加群",
"第一批粉丝",
- "祝大家",
"内部群",
"老粉",
- "仅关注",
"仅我关注",
"打字粉丝ID",
"手打粉丝ID",
@@ -526,7 +513,6 @@
"专辑",
"励志的话",
"亲笔签名",
- "up",
"扫码进群",
"粉丝群",
"签名写真",
@@ -534,11 +520,8 @@
"祝你",
"红包雨",
"电子书",
- "我",
"好友位",
"豪车优惠",
- "观众老爷",
- "的支持",
"星段位",
"圣晶石",
"水晶",
@@ -555,21 +538,16 @@
"第一波",
"第二波",
"策是",
- "我是抽奖",
"照片",
"穷",
"0.5",
"一角",
"冥币",
"加速器",
- "硬币",
"无奖品",
"白名单",
- "奖品B",
- "奖品C",
"五毛",
"第三波",
- "0.1",
"五毛二",
"一分",
"0.52",
@@ -588,7 +566,6 @@
"自拍",
"日历",
"0.22",
- "房间抽奖",
"CESHI",
"奖品A",
"抽奖标题",
@@ -603,7 +580,6 @@
"buff",
"头像",
"剩的",
- "中奖的",
"Ziyoda",
"Hilola",
"beden",
@@ -611,9 +587,7 @@
"采样",
"音频",
"海报",
- "关注",
"粉丝ID",
- "优惠券",
"微博",
"互粉",
"真心话",
@@ -629,14 +603,11 @@
"什么都",
"什么也",
"这不是抽奖",
- "真欧",
- "很欧",
"使用权",
"曲谱",
"啥也没有",
"木有",
"车载音乐",
- "中奖滴",
"会员歌曲",
"一首歌",
"必唱",
@@ -644,7 +615,6 @@
"词作",
"购买资格",
"粉群",
- "优惠",
"折扣",
"hoholive",
"surat",
diff --git a/data/latest_version.json b/data/latest_version.json
index 0d51103..d964f18 100644
--- a/data/latest_version.json
+++ b/data/latest_version.json
@@ -5,7 +5,7 @@
"source": "https://github.com/lkeme/BiliHelper-personal",
"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",
- "version": "0.9.5.210624",
+ "version": "0.9.6.210625",
"des": "程序有更新,请及时线上查看更新哦~",
- "time": "2021年6月24日11:40:35"
+ "time": "2021年6月25日11:40:35"
}
\ No newline at end of file
diff --git a/src/plugin/Dynamic.php b/src/plugin/Dynamic.php
index 9cd632b..114dea5 100644
--- a/src/plugin/Dynamic.php
+++ b/src/plugin/Dynamic.php
@@ -9,12 +9,18 @@
namespace BiliHelper\Plugin;
use BiliHelper\Core\Curl;
+use BiliHelper\Core\Log;
use BiliHelper\Util\FilterWords;
class Dynamic
{
use FilterWords;
+ // TODO 活动订阅
+ // https://www.bilibili.com/blackboard/activity-WeqT10t1ep.html
+ // https://api.vc.bilibili.com/topic_svr/v1/topic_svr/fetch_dynamics?topic_name=%E4%BA%92%E5%8A%A8%E6%8A%BD%E5%A5%96&sortby=2
+ private static $tags = ['互动抽奖', '抽奖', '转发抽奖', '动态抽奖', '关注+转发'];
+
// 228584 14027 434405 7019788 3230836
private static $topic_list = [
3230836 => '',
@@ -41,12 +47,25 @@ class Dynamic
$article_id = $article['desc']['dynamic_id'];
// 获取 description
$card = json_decode($article['card'], true);
+ if (array_key_exists("description", $card['item'])) {
+ // 主动态
+ $description = $card['item']['description'];
+ } elseif (array_key_exists("content", $card['item'])) {
+ // 子动态
+ // TODO 暂时跳过 需要合适的处理方法
+ // description = $card['item']['content'];
+ continue;
+ } else {
+ // 链接到视频的动态 少数 跳过
+ // print_r($card);
+ continue;
+ }
$item = [
'uid' => $article['desc']['uid'],
'rid' => $article['desc']['rid'],
'did' => $article_id,
'tm' => $article['desc']['timestamp'],
- 'desc' => $card['item']['description']
+ 'desc' => $description
];
// 过滤为true 就跳过
if (self::filterLayer($item)) continue;
@@ -58,6 +77,7 @@ class Dynamic
// more ??
// https://api.vc.bilibili.com/topic_svr/v1/topic_svr/topic_history?topic_name=转发抽奖&offset_dynamic_id=454347930068783808
}
+ print_r(count(self::$article_list));
return self::$article_list;
}
@@ -243,20 +263,24 @@ class Dynamic
self::loadJsonData();
// 过滤描述
$default_words = self::$store->get("DynamicForward.default");
+ $common_words = self::$store->get("Common.default");
$custom_words = empty($words = getConf('filter_words', 'dynamic')) ? [] : explode(',', $words);
- $total_words = array_merge($default_words, $custom_words);
+ $total_words = array_merge($default_words, $custom_words, $common_words);
foreach ($total_words as $word) {
if (strpos($item['desc'], $word) !== false) {
+ Log::warning("当前动态#{$item['did']}触发关键字过滤 {$word}");
return true;
}
}
// 过滤UID
$uid_list = self::$store->get("Common.uid_list");
if (array_key_exists((int)$item['uid'], $uid_list)) {
+ Log::warning("当前动态#{$item['did']}触发UP黑名单过滤 {$item['uid']}");
return true;
}
// 过滤粉丝数量
- if (Live::getMidFollower((int)$item['uid']) < getConf('min_fans_num', 'dynamic')) {
+ if (($num = Live::getMidFollower((int)$item['uid'])) < getConf('min_fans_num', 'dynamic')) {
+ Log::warning("当前动态#{$item['did']}触发UP粉丝数量过滤 {$num}");
return true;
}
return false;
diff --git a/src/plugin/Live.php b/src/plugin/Live.php
index 2734a3a..28d7978 100644
--- a/src/plugin/Live.php
+++ b/src/plugin/Live.php
@@ -449,6 +449,22 @@ class Live
return json_decode($raw, true);
}
+ /**
+ * @use 获取用户状态
+ * @param int $mid
+ * @return array
+ */
+ public static function getMidStat(int $mid): array
+ {
+ $url = 'https://api.bilibili.com/x/relation/stat';
+ $payload = [
+ 'vmid' => $mid,
+ ];
+ // {"code":0,"message":"0","ttl":1,"data":{"mid":50329118,"following":62,"whisper":0,"black":0,"follower":7610241}}
+ $raw = Curl::get('other', $url, $payload);
+ return json_decode($raw, true);
+ }
+
/**
* @use 获取用户关注数
* @param int $mid
@@ -458,7 +474,12 @@ class Live
{
$follower = 0;
// root->data->follower
- $data = self::getMidCard($mid);
+ if (mt_rand(0, 10) > 5) {
+ $data = self::getMidStat($mid);
+ } else {
+ $data = self::getMidCard($mid);
+ }
+
if (isset($data['code']) && $data['code']) {
Log::warning("获取用户资料卡片失败: CODE -> {$data['code']} MSG -> {$data['message']} ");
} else {
diff --git a/src/plugin/Login.php b/src/plugin/Login.php
index eda4367..8f2b1e5 100644
--- a/src/plugin/Login.php
+++ b/src/plugin/Login.php
@@ -270,7 +270,9 @@ class Login
private static function smsLogin(string $mode = '短信模式')
{
Log::info("尝试 {$mode} 登录");
- self::checkPhone(self::$username);
+ if (getConf('phone', 'login.check')) {
+ self::checkPhone(self::$username);
+ }
$captcha = self::sendSms(self::$username);
$url = 'https://passport.bilibili.com/x/passport-login/login/sms';
$payload = [