X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=app%2FConsole%2FCommands%2FTwitchChannelInfo.php;fp=app%2FConsole%2FCommands%2FTwitchChannelInfo.php;h=09dc7180e55e5a84e97cd303df96a65cfa49ffce;hb=4caeac216c5e5a044d81b63a8aa5b66451162271;hp=0000000000000000000000000000000000000000;hpb=c04aa8598c286d9688e10ebdedc1b7f6058ee1df;p=alttp.git diff --git a/app/Console/Commands/TwitchChannelInfo.php b/app/Console/Commands/TwitchChannelInfo.php new file mode 100644 index 0000000..09dc718 --- /dev/null +++ b/app/Console/Commands/TwitchChannelInfo.php @@ -0,0 +1,70 @@ +token = TwitchToken::firstWhere('nick', 'localhorsttv'); + if (!$this->token) { + $this->line('please acquire a token for localhorsttv first'); + return 1; + } + $channels = Channel::where('twitch_chat', '!=', '')->where('twitch_id', '=', '')->get(); + foreach ($channels as $channel) { + try { + $this->updateChannel($channel); + } catch (RequestException $e) { + if ($e->response->status() == 401) { + $this->token->refresh(); + $this->updateChannel($channel); + } + } + } + return Command::SUCCESS; + } + + private function updateChannel(Channel $channel) { + $this->line($channel->twitch_chat); + $login = substr($channel->twitch_chat, 1); + $rsp = $this->token->request() + ->get('/users', [ + 'login' => $login, + ]) + ->throw(); + foreach ($rsp['data'] as $user) { + if ($user['login'] != $login) continue; + $channel->twitch_id = $user['id']; + $channel->save(); + } + } + + private $token; + +}