public function getStream()
 {
     $twitch = new TwitchStream();
     $online_streams = $twitch->getOnlineStreams();
     print_r($online_streams);
 }
 private function updateTwitchStreams()
 {
     $known_online_channel_ids = [];
     $known_channel_ids = [];
     $online_channel_ids = [];
     $twitch = new TwitchStream();
     $known_streams = $twitch::all();
     $online_streams = $twitch->getOnlineStreams();
     $language_codes = TwitchStream::getLanguageCodes();
     foreach ($online_streams as $online_stream) {
         $online_channel_ids[] = $online_stream->channel->_id;
     }
     foreach ($known_streams as $known_stream) {
         if ($known_stream->online == 1) {
             $known_online_channel_ids[] = $known_stream->channel_id;
         }
         $known_channel_ids[] = $known_stream->channel_id;
     }
     foreach ($known_online_channel_ids as $channel_id) {
         $database_channel = new TwitchStream();
         $stream = $database_channel::where('channel_id', $channel_id)->first();
         if (!in_array($channel_id, $online_channel_ids)) {
             $stream->delete();
         } else {
             $channel = $online_streams[$channel_id];
             if (isset($channel->channel->status)) {
                 $stream->status = $channel->channel->status;
             }
             if (isset($channel->viewers)) {
                 $stream->viewers = $channel->viewers;
             }
             if (isset($channel->channel->followers)) {
                 $stream->followers = $channel->channel->followers;
             }
             if (isset($channel->preview->medium)) {
                 $stream->preview = str_replace('http://', 'https://', $channel->preview->medium);
             }
             if (isset($channel->channel->url)) {
                 $stream->url = $channel->channel->url;
             }
             if (isset($channel->channel->display_name)) {
                 $stream->display_name = $channel->channel->display_name;
             }
             if (isset($channel->channel->broadcaster_language)) {
                 if (array_key_exists($channel->channel->broadcaster_language, $language_codes)) {
                     $language_code = $channel->channel->broadcaster_language;
                     $language = $language_codes[$language_code];
                     $stream->language = $language;
                 } else {
                     $stream->language = $channel->channel->broadcaster_language;
                 }
             }
             $stream->online = 1;
             $stream->save();
         }
     }
     foreach ($online_streams as $online_stream) {
         if (!in_array($online_stream->channel->_id, $known_channel_ids)) {
             $database_channel = new TwitchStream();
             if (isset($online_stream->channel->_id)) {
                 $database_channel->channel_id = $online_stream->channel->_id;
             }
             if (isset($online_stream->channel->display_name)) {
                 $database_channel->display_name = $online_stream->channel->display_name;
             }
             if (isset($online_stream->channel->url)) {
                 $database_channel->url = $online_stream->channel->url;
             }
             if (isset($online_stream->channel->status)) {
                 $database_channel->status = $online_stream->channel->status;
             }
             if (isset($online_stream->viewers)) {
                 $database_channel->viewers = $online_stream->viewers;
             }
             if (isset($online_stream->channel->followers)) {
                 $database_channel->followers = $online_stream->channel->followers;
             }
             if (isset($online_stream->preview->medium)) {
                 $database_channel->preview = str_replace('http://', 'https://', $online_stream->preview->medium);
             }
             if (isset($online_stream->channel->broadcaster_language)) {
                 if (array_key_exists($online_stream->channel->broadcaster_language, $language_codes)) {
                     $language_code = $online_stream->channel->broadcaster_language;
                     $language = $language_codes[$language_code];
                     $database_channel->language = $language;
                 } else {
                     $database_channel->language = $online_stream->channel->broadcaster_language;
                 }
             }
             $database_channel->online = 1;
             $database_channel->save();
         }
     }
 }