diff --git a/plugin/GameForecast/GameForecast.php b/plugin/GameForecast/GameForecast.php index 9dfc28a..d574152 100644 --- a/plugin/GameForecast/GameForecast.php +++ b/plugin/GameForecast/GameForecast.php @@ -143,9 +143,16 @@ class GameForecast extends BasePlugin */ protected function startStake(): void { - $questions = $this->fetchCollectionQuestions(); // $max_guess = getConf('game_forecast.max_num', 0, 'int'); + $max_coin = getConf('game_forecast.max_coin', 0, 'int'); + if ($max_guess <= 0 || $max_coin <= 0) { + Log::warning('赛事预测: 每日竞猜次数或者硬币数量不能小于1'); + return; + } + // + $questions = $this->fetchCollectionQuestions(); + foreach ($questions as $index => $question) { if ($index >= $max_guess) { break; diff --git a/plugin/Silver2Coin/Silver2Coin.php b/plugin/Silver2Coin/Silver2Coin.php new file mode 100644 index 0000000..08996a4 --- /dev/null +++ b/plugin/Silver2Coin/Silver2Coin.php @@ -0,0 +1,110 @@ + __CLASS__, // hook + 'name' => 'Silver2Coin', // 插件名称 + 'version' => '0.0.1', // 插件版本 + 'desc' => '银瓜子兑换硬币', // 插件描述 + 'author' => 'Lkeme',// 作者 + 'priority' => 1105, // 插件优先级 + 'cycle' => '24(小时)', // 运行周期 + ]; + + /** + * @param Plugin $plugin + */ + public function __construct(Plugin &$plugin) + { + // + TimeLock::initTimeLock(); + // $this::class + $plugin->register($this, 'execute'); + } + + /** + * @use 执行 + * @return void + */ + public function execute(): void + { + if (TimeLock::getTimes() > time() || !getEnable('silver2coin')) return; + // + if ($this->exchangeTask()) { + // 定时10点 + 1-60分钟随机 + TimeLock::setTimes(TimeLock::timing(10, 0, 0, true)); + } else { + TimeLock::setTimes(3600); + } + } + + /** + * @use 兑换任务 + * @return bool + */ + protected function exchangeTask(): bool + { + // + $response = ApiRevenueWallet::appSilver2coin(); + if ($this->handle('APP', $response)) return true; + // + $response = ApiRevenueWallet::appSilver2coin(); + if ($this->handle('PC', $response)) return true; + // + return false; + } + + /** + * @use 处理结果 + * @param string $type + * @param array $data + * @return bool + */ + protected function handle(string $type, array $data): bool + { + // {"code":403,"msg":"每天最多能兑换 1 个","message":"每天最多能兑换 1 个","data":[]} + // {"code":403,"msg":"仅主站正式会员以上的用户可以兑换","message":"仅主站正式会员以上的用户可以兑换","data":[]} + // {"code":0,"msg":"兑换成功","message":"兑换成功","data":{"gold":"5074","silver":"36734","tid":"727ab65376a15a6b117cf560a20a21122334","coin":1}} + // {"code":0,"data":{"coin":1,"gold":1234,"silver":4321,"tid":"Silver2Coin21062316490299678123456"},"message":"兑换成功"} + switch ($data['code']) { + case 0: + Log::notice("银瓜子兑换硬币[$type]: {$data['message']}"); + return true; + case 403: + Log::warning("银瓜子兑换硬币[$type]: {$data['message']}"); + return true; + default: + Log::warning("银瓜子兑换硬币[$type]: CODE -> {$data['code']} MSG -> {$data['message']} "); + } + return false; + } + + +} + \ No newline at end of file diff --git a/profile/example/config/user.ini b/profile/example/config/user.ini index 9fc4a0a..e831c41 100644 --- a/profile/example/config/user.ini +++ b/profile/example/config/user.ini @@ -56,6 +56,10 @@ max_num = 20 max_coin = 10 bet = 1 +; 银瓜子兑换硬币 +[silver2coin] +enable = true + ####################### # 通知设置 # ####################### diff --git a/src/Api/XLive/ApiRevenueWallet.php b/src/Api/XLive/ApiRevenueWallet.php new file mode 100644 index 0000000..787d96f --- /dev/null +++ b/src/Api/XLive/ApiRevenueWallet.php @@ -0,0 +1,57 @@ + $user['csrf'], + 'csrf' => $user['csrf'], + 'visit_id' => '' + ]; + return Request::postJson(true, 'pc', $url, $payload); + } + + +} + \ No newline at end of file