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.'; } }
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; }
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; } }
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); } }