mirror of
https://github.com/lkeme/BiliHelper-personal.git
synced 2025-12-19 01:20:08 +08:00
[fix] Sleep && GiftSend
This commit is contained in:
parent
e389eb3210
commit
2589c77905
@ -28,6 +28,7 @@
|
||||
- 修复部分已知BUG
|
||||
- 修复获奖推送通知
|
||||
- 修复休眠中心异常
|
||||
- 修复礼物赠送异常
|
||||
-
|
||||
|
||||
## v0.0.5.191223 alpha (2019-12-23)
|
||||
|
||||
@ -10,8 +10,8 @@
|
||||
|
||||
namespace BiliHelper\Plugin;
|
||||
|
||||
use BiliHelper\Core\Log;
|
||||
use BiliHelper\Core\Curl;
|
||||
use BiliHelper\Core\Log;
|
||||
use BiliHelper\Util\TimeLock;
|
||||
|
||||
class GiftSend
|
||||
@ -55,13 +55,13 @@ class GiftSend
|
||||
self::getMedalList();
|
||||
foreach (self::$medal_list as $key => $val) {
|
||||
$bag_list = self::fetchBagList();
|
||||
array_multisort(array_column($bag_list, "expire_at"), SORT_ASC, $bag_list);
|
||||
if (getenv('FEED_FILL') == 'false') {
|
||||
$bag_list = self::checkExpireGift($bag_list);
|
||||
}
|
||||
if (count($bag_list)) {
|
||||
self::$tid = $key;
|
||||
self::getRoomInfo();
|
||||
array_multisort(array_column($bag_list, "expire_at"), SORT_ASC, $bag_list);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
@ -119,26 +119,28 @@ class GiftSend
|
||||
*/
|
||||
protected static function fetchBagList(): array
|
||||
{
|
||||
$bag_list = [];
|
||||
$new_bag_list = [];
|
||||
$payload = [];
|
||||
$data = Curl::get('https://api.live.bilibili.com/gift/v2/gift/bag_list', Sign::api($payload));
|
||||
$data = json_decode($data, true);
|
||||
if (isset($data['code']) && $data['code']) {
|
||||
Log::warning('背包查看失败!', ['msg' => $data['message']]);
|
||||
return $bag_list;
|
||||
return $new_bag_list;
|
||||
}
|
||||
if (isset($data['data']['list'])) {
|
||||
$bag_list = $data['data']['list'];
|
||||
array_multisort(array_column($bag_list, "gift_id"), SORT_DESC, $bag_list);
|
||||
if (count($bag_list)) {
|
||||
array_multisort(array_column($bag_list, "gift_id"), SORT_DESC, $bag_list);
|
||||
}
|
||||
foreach ($bag_list as $vo) {
|
||||
// 去除永久礼物
|
||||
if ($vo['corner_mark'] == '永久') {
|
||||
continue;
|
||||
}
|
||||
array_push($bag_list, $vo);
|
||||
array_push($new_bag_list, $vo);
|
||||
}
|
||||
}
|
||||
return $bag_list;
|
||||
return $new_bag_list;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -18,7 +18,9 @@ use BiliHelper\Util\TimeLock;
|
||||
class Sleep
|
||||
{
|
||||
use TimeLock;
|
||||
// TODO 黑白名单 考虑添加到每个插件内部自动添加
|
||||
// TODO 黑白名单|考虑添加到每个插件内部自动添加|优化RUN逻辑代码
|
||||
private static $unlock_hour = 24;
|
||||
private static $unlock_time = 0;
|
||||
private static $fillable = ['Login', 'Sleep', 'Daily', 'MasterSite', 'GiftSend', 'Task', 'Silver2Coin', 'GroupSignIn', 'GiftHeart', 'AwardRecord', 'Statistics'];
|
||||
private static $guarded = ['Barrage', 'Heart', 'Silver', 'MaterialObject', 'AloneTcpClient', 'ZoneTcpClient', 'StormRaffle', 'GuardRaffle', 'PkRaffle', 'GiftRaffle', 'AnchorRaffle'];
|
||||
private static $sleep_section = [];
|
||||
@ -26,12 +28,29 @@ class Sleep
|
||||
|
||||
public static function run()
|
||||
{
|
||||
if (getenv('USE_SLEEP') == 'false' || self::getLock() > time()) {
|
||||
if (self::getLock() > time()) {
|
||||
return;
|
||||
};
|
||||
if (!self::isPause() && !self::isRefuse()) {
|
||||
self::setLock(5 * 60);
|
||||
} else {
|
||||
self::setLock(1 * 60);
|
||||
}
|
||||
// 封禁逻辑
|
||||
if (self::$unlock_time < time()) {
|
||||
if (!self::isRefuse()) {
|
||||
self::setLock(5 * 60);
|
||||
} else {
|
||||
self::setLock(1 * 60);
|
||||
return;
|
||||
}
|
||||
}
|
||||
// 休眠逻辑
|
||||
if (getenv('USE_SLEEP') != 'false' && self::$unlock_time < time() && self::$unlock_hour != date('H')) {
|
||||
if (!self::isPause()) {
|
||||
self::setLock(5 * 60);
|
||||
} else {
|
||||
self::setLock(1 * 60);
|
||||
return;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@ -76,15 +95,14 @@ class Sleep
|
||||
*/
|
||||
private static function stopProc(int $unlock_time)
|
||||
{
|
||||
$unlock_time = $unlock_time + 1 * 60;
|
||||
// 检测时间提前5分钟
|
||||
self::setLock($unlock_time - 5 * 60);
|
||||
self::$unlock_time = time() + $unlock_time;
|
||||
self::$unlock_hour = date('H');
|
||||
foreach (self::$fillable as $classname) {
|
||||
Log::info("插件 {$classname} 白名单,保持当前状态继续");
|
||||
}
|
||||
foreach (self::$guarded as $classname) {
|
||||
Log::info("插件 {$classname} 黑名单,锁定状态将于" . date("Y-m-d H:i", time() + $unlock_time) . "解除");
|
||||
call_user_func(array(__NAMESPACE__ . '\\' . $classname, 'setLock'), $unlock_time);
|
||||
call_user_func(array(__NAMESPACE__ . '\\' . $classname, 'setLock'), $unlock_time + 3 * 60);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user