Example #1
0
 public static function updateChannelsInfo($dataProvider)
 {
     $streams_names = ArrayHelper::map($dataProvider->models, 'id', 'name');
     $streamsArr = self::getStreamsList($streams_names);
     //echo'<pre>';print_r($streams_names);echo'</pre>';//die;
     //echo'<pre>';print_r($streamsArr);echo'</pre>';die;
     /*
      * какие поля нужно обновить?
      * "online", "viewers", "snapshot"
      * грабим картинку live_user_dreadztv-320x180.jpg
      *
      *
      */
     if (is_null($streamsArr)) {
         return 1;
     }
     //сбрасываем состояние каналов
     $values = ['online' => 0];
     $where = [1];
     if (DbHelper::updateRow(self::tableName(), $values, $where) === false) {
         return 3;
     }
     foreach ($streamsArr as $item) {
         $values = [];
         $where = [];
         if (isset($item['channel'])) {
             $where[] = "`id` = '" . $item['channel']['_id'] . "'";
             $values['online'] = 1;
             if (isset($item['channel']['views'])) {
                 $values['views'] = $item['channel']['views'];
             }
             if (isset($item['viewers'])) {
                 $values['viewers'] = $item['viewers'];
             }
             if (isset($item['preview'])) {
                 if (isset($item['preview']['medium'])) {
                     $filename = basename($item['preview']['medium']);
                     //echo'<pre>';print_r($filename);echo'</pre>';die;
                     $img = DCurlHelper::getData($item['preview']['medium']);
                     if ($img !== false) {
                         $filepath = Yii::getAlias('@frontend') . '/web/' . Yii::$app->params['channels-snapshot-path'] . '/' . $filename;
                         $fp = fopen($filepath, "w");
                         // Открываем файл в режиме записи
                         $write = fwrite($fp, $img);
                         // Запись в файл
                         if ($write === false) {
                             return 2;
                         }
                         fclose($fp);
                         //Закрытие файла
                         $values['snapshot'] = $filename;
                         $values['last_update'] = time();
                     }
                 }
             }
         }
         if (DbHelper::updateRow(self::tableName(), $values, $where) === false) {
             return 3;
         }
         //echo'<pre>';print_r($where);echo'</pre>';//die;
         //echo'<pre>';print_r($values);echo'</pre>';die;
     }
     return 0;
 }
Example #2
0
 private static function _getTeamInfo($team_id = 0)
 {
     $params = ['start_at_team_id' => $team_id, 'teams_requested' => 1];
     $url = self::_buildUrl(self::METHOD_URL_TEAM_INFO_BY_TEAMID, self::MATCH_API_INTERFACE, $params);
     //echo'<pre>';print_r($url);echo'</pre>';//die;
     $raw_data = json_decode(DCurlHelper::getData($url), 1);
     //echo'<pre>';print_r($raw_data);echo'</pre>';die;
     if (isset($raw_data['result']) && isset($raw_data['result']['teams'])) {
         return $raw_data['result']['teams'][0];
     } else {
         return [];
     }
 }