示例#1
0
 public function updata_video_state()
 {
     $sql = "SELECT serve_id FROM " . DB_PREFIX . "video WHERE state = 0 ORDER BY id DESC";
     $r = $this->db->query($sql);
     $nums = $this->db->num_rows($r);
     if ($nums > 0) {
         echo $nums . ' videos need update.';
         $serve_id = array();
         while ($row = $this->db->fetch_array($r)) {
             $serve_id[] = $row['serve_id'];
         }
         require ROOT_DIR . 'api/video/video_api.php';
         //导入流媒体API
         $tvie_video_api = new TVie_video_api($this->config);
         //$video_info = $tvie_video_api->find_video_by_id(697);
         foreach ($serve_id as $k => $v) {
             $video_info = $tvie_video_api->find_video_by_id($v);
             //获取服务器上该视频信息
             if ($video_info->job_status != 'done') {
                 continue;
             }
             $id = $video_info->id;
             //服务器ID
             $media_addr = $video_info->files[0]->url;
             //流媒体地址
             $job_status = $video_info->job_status;
             //转码状态
             $thumbnail_url = $video_info->thumbnail_url;
             //视频缩略图
             $bthumbnail_url = $video_info->video_still_url;
             //视频大图
             $duration = ceil($video_info->files[0]->duration);
             //视频时长(返回秒数)
             $time = time();
             //更新时间
             //更新数据库
             $sql = "UPDATE " . DB_PREFIX . "video \r\n\t\t\t\t\t\tSET schematic = '" . $thumbnail_url . "' , \r\n\t\t\t\t\t\t\tbschematic = '" . $bthumbnail_url . "' ,\r\n\t\t\t\t\t\t\tstreaming_media =  '" . $media_addr . "' , \r\n\t\t\t\t\t\t\ttoff = " . $duration . " ,\r\n\t\t\t\t\t\t\tupdate_time = " . $time . " , \r\n\t\t\t\t\t\t\tstate = 1 \t\t\t\t\t\t\t\r\n\t\t\t\t\t\tWHERE serve_id = " . $id;
             $this->db->query($sql);
             $this->handle($id, $bthumbnail_url);
         }
         return true;
     } else {
         echo 'No video need update.';
     }
 }
示例#2
0
 public function delete_comp()
 {
     if (empty($this->input['cid'])) {
         return false;
     }
     $cid = urldecode($this->input['cid']);
     $sql = "SELECT serve_id FROM " . DB_PREFIX . "video where id IN (" . $cid . ")";
     $q = $this->db->query($sql);
     global $config;
     include_once ROOT_DIR . 'api/video/video_api.php';
     //导入流媒体API
     $tvie_video_api = new TVie_video_api($config);
     //删除物理文件
     while ($row = $this->db->fetch_array($q)) {
         $tvie_video_api->delete_video($row['serve_id']);
     }
     //记录日志
     $this->logs->addLogs(APP_UNIQUEID, MOD_UNIQUEID, 'delete_comp', $this->user['display_name'], $this->user['lon'], $this->user['lat'], $this->user['user_id'], $this->user['user_name']);
     //记录日志结束
     //标签操作开始
     //从索引表中根据视频id查出tags的id
     $sql = "SELECT * FROM " . DB_PREFIX . "video_tags where type=0 and video_id IN( " . $cid . ")";
     $q = $this->db->query($sql);
     $t_id = $space = "";
     while ($row = $this->db->fetch_array($q)) {
         if ($row['tag_id']) {
             $t_id .= $space . $row['tag_id'];
         }
         $space = ",";
     }
     //从索引表中删除与视频关联的标签
     $sql = "delete from " . DB_PREFIX . "video_tags where type=0 and video_id IN( " . $cid . ")";
     $this->db->query($sql);
     if ($t_id) {
         $sql = "SELECT * FROM " . DB_PREFIX . "tags WHERE id IN (" . $t_id . ")";
         $q = $this->db->query($sql);
         //更新标签使用计数
         while ($row = $this->db->fetch_array($q)) {
             $tag_count = 0;
             if ($row['tag_count'] - 1 > 0) {
                 $tag_count = $row['tag_count'] - 1;
             }
             $sql = "UPDATE " . DB_PREFIX . "tags SET tag_count = {$tag_count}  WHERE id = '" . $row['id'] . "'";
             $this->db->query($sql);
         }
     }
     //标签操作结束
     return $cid;
 }
示例#3
0
 public function rebuild_data()
 {
     $id = intval($this->input['id']);
     //获取视频在流媒体服务器上的ID
     include ROOT_DIR . 'lib/video/video.class.php';
     $video = new video();
     $video_info = $video->get_single_video($id);
     $serve_id = $video_info['serve_id'];
     if (!$serve_id) {
         echo 0;
         exit;
     }
     include ROOT_DIR . 'api/video/video_api.php';
     //导入流媒体API
     $tvie_video_api = new TVie_video_api($this->config);
     $serve_video_info = $tvie_video_api->find_video_by_id($serve_id);
     $duration = ceil($serve_video_info->files[0]->duration);
     //视频时长(返回秒数)
     $thumbnail_url = $serve_video_info->thumbnail_url;
     //视频缩略图
     $bthumbnail_url = $serve_video_info->video_still_url;
     //视频大图
     $media_addr = $serve_video_info->files[0]->url;
     //流媒体地址
     //更新本地缩略图
     $sql = "UPDATE " . DB_PREFIX . "video \r\n\t\t\t\tSET toff = " . $duration . " , \r\n\t\t\t\t\tschematic = '" . $thumbnail_url . "' , \r\n\t\t\t\t\tbschematic = '" . $bthumbnail_url . "' , \r\n\t\t\t\t\tstreaming_media = '" . $media_addr . "' \r\n\t\t\t\tWHERE id = " . $id;
     $r = $this->db->query($sql);
     if ($r) {
         echo 1;
     } else {
         echo 0;
     }
 }
示例#4
0
 public function delete()
 {
     $user_info = $this->mUser->verify_credentials();
     if (!$user_info) {
         $this->errorOutput(USENAME_NOLOGIN);
     }
     $video_id = intval(trim($this->input['video_id']));
     if (!$video_id) {
         $this->errorOutput(UNKNOW);
         //删除出错
     }
     //审核删除
     $sql = "SELECT id FROM " . DB_PREFIX . "video WHERE id = " . $video_id . " AND is_recommend = 1";
     $q = $this->db->query_first($sql);
     if ($q) {
         $verify_id = $q['id'];
         //进入删除审核
         $sql = "UPDATE " . DB_PREFIX . "video SET is_show = 3 WHERE id = " . $verify_id;
         $this->db->query($sql);
     } else {
         /**
          * 添加删除视频积分(消耗)
          */
         $this->mUser->add_credit_log(DELETE_VIDEO);
         $sql = "SELECT id FROM " . DB_PREFIX . "video WHERE id = " . $video_id;
         $f = $this->db->query_first($sql);
         //删除视频表中信息
         $sql = "DELETE FROM " . DB_PREFIX . "video WHERE id = " . $video_id;
         $this->db->query($sql);
         global $config;
         include_once ROOT_DIR . 'api/video/video_api.php';
         //导入流媒体API
         $tvie_video_api = new TVie_video_api($config);
         $state = $tvie_video_api->delete_video($f['serve_id']);
         //
         /**
          * 查询该用户的视频数目
          */
         $sql = "SELECT COUNT(*) AS nums FROM " . DB_PREFIX . "video WHERE user_id = " . $user_info['id'];
         $r = $this->db->query_first($sql);
         $video_count = $r['nums'];
         /**
          * 用户扩展表中的数目更新
          */
         $this->mUser->delete_video_count($video_count);
         //删除标签-视频关联表中的信息
         $sql = "SELECT * FROM " . DB_PREFIX . "video_tags where type=0 and video_id = " . $video_id;
         $q = $this->db->query($sql);
         $t_id = $space = "";
         while ($row = $this->db->fetch_array($q)) {
             if ($row['tag_id']) {
                 $t_id .= $space . $row['tag_id'];
             }
             $space = ",";
         }
         $sql = "delete from " . DB_PREFIX . "video_tags where type=0 and video_id = " . $video_id;
         $this->db->query($sql);
         if ($t_id) {
             $sql = "SELECT * FROM " . DB_PREFIX . "tags WHERE id IN (" . $t_id . ")";
             $q = $this->db->query($sql);
             while ($row = $this->db->fetch_array($q)) {
                 $tag_count = 0;
                 if ($row['tag_count'] - 1 > 0) {
                     $tag_count = $row['tag_count'] - 1;
                 }
                 $sql = "UPDATE " . DB_PREFIX . "tags SET tag_count = {$tag_count}  WHERE id = '" . $row['id'] . "'";
                 $this->db->query($sql);
             }
         }
         //如果该视频被收藏一并删除
         $sql = "SELECT * FROM " . DB_PREFIX . "collects WHERE cid = " . $video_id . " AND type = 0 AND user_id = " . $user_info['id'];
         $r = $this->db->query_first($sql);
         if (count($r) > 0) {
             $sql = "DELETE FROM " . DB_PREFIX . "collects WHERE cid = " . $r['cid'] . " AND user_id = " . $user_info['id'] . " AND type = 0";
             $this->db->query($sql);
         }
         //如果这部视频有评论也将评论删除
         $sql = "SELECT * FROM " . DB_PREFIX . "comments WHERE cid = " . $video_id . " AND type = 0";
         $q = $this->db->query($sql);
         $nums = $this->db->num_rows($q);
         $commment_id = array();
         if ($nums > 0) {
             while ($row = $this->db->fetch_array($q)) {
                 $comment_id[] = $row['id'];
             }
             $ids = implode(',', $comment_id);
             $sql = "DELETE FROM " . DB_PREFIX . "comments WHERE id IN (" . $ids . ") AND type = 0";
             $this->db->query($sql);
         }
         //如果删除的视频在节目单中,更新节目单
         //$this->del_progam($video_id);
     }
 }