| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993 | 
							- <?php
 
- /**
 
-  * 
 
-  * ----------------------------
 
-  * ku6api class
 
-  * ----------------------------
 
-  * 
 
-  * An open source application development framework for PHP 5.0 or newer
 
-  * 
 
-  * 这是个接口类,主要负责视频模型跟ku6vms之间的通信
 
-  * @package	PHPCMS V9.1.16
 
-  * @author		chenxuewang
 
-  * @copyright	CopyRight (c) 2006-2012 上海盛大网络发展有限公司
 
-  *
 
-  */
 
- class ku6api {
 
- 	public $ku6api_sn, $ku6api_key;
 
- 	private $ku6api_url,$http,$xxtea;
 
- 	
 
- 	/**
 
- 	 * 
 
- 	 * 构造方法 初始化用户身份识别码、加密密钥等
 
- 	 * @param string $ku6api_skey vms系统中的身份识别码
 
- 	 * @param string $ku6api_sn vms系统中配置的通信加密密钥
 
- 	 * 
 
- 	 */
 
- 	public function __construct($ku6api_sn = '', $ku6api_skey = '') {
 
- 		$this->ku6api_skey = $ku6api_skey;
 
- 		$this->ku6api_sn = $ku6api_sn;
 
- 		if (!$this->ku6api_sn) {
 
- 			$this->set_sn();
 
- 		}
 
- 		$this->ku6api_url = pc_base::load_config('ku6server', 'api_url');
 
- 		$this->ku6api_api = pc_base::load_config('ku6server', 'api');
 
- 		$this->http = pc_base::load_sys_class('http');
 
- 		$this->xxtea = pc_base::load_app_class('xxtea', 'video');
 
- 		
 
- 	}
 
- 	/**
 
- 	 * 
 
- 	 * 设置身份识别码及身份密钥
 
- 	 * 
 
- 	 */
 
- 	private function set_sn() {
 
- 		//获取短信平台配置信息
 
- 		$setting = getcache('video', 'video');
 
- 		if ($setting['sn'] && $setting['skey']) {
 
- 			$this->ku6api_skey = $setting['skey'];
 
- 			$this->ku6api_sn = $setting['sn'];
 
- 		}
 
- 	}
 
- 	
 
- 	/**
 
- 	 * 
 
- 	 * vms_add 视频添加方法 系统中添加视频是调用,同步添加到vms系统中
 
- 	 * @param array $data 添加是视频信息 视频标题、介绍等
 
- 	 */
 
- 	public function vms_add($data = array()) {
 
- 		if (is_array($data) && !empty($data)) {
 
- 			//处理数据
 
- 			$data['tag'] = $this->get_tag($data);
 
- 			$data['v'] = 1;
 
- 			$data['channelid'] = $data['channelid'] ? intval($data['channelid']) : 1;
 
- 			//将gbk编码转为utf-8编码
 
- 			if (CHARSET == 'gbk') {
 
- 				$data = array_iconv($data);
 
- 			}
 
- 			$data['sn'] = $this->ku6api_sn;
 
- 			$data['method'] = 'VideoAdd';
 
- 			$data['posttime'] = SYS_TIME;
 
- 			$data['token'] = $this->xxtea->encrypt($data['posttime'], $this->ku6api_skey);
 
- 			//向vms post数据,并获取返回值
 
- 			$this->http->post($this->ku6api_url, $data);
 
- 			$get_data = $this->http->get_data();
 
- 			$get_data = json_decode($get_data, true);
 
- 			if($get_data['code'] != 200) {
 
- 				$this->error_msg = $get_data['msg'];
 
- 				return false;
 
- 			}
 
- 			return $get_data;
 
- 			
 
- 		} else {
 
- 			$this->error_msg = '';
 
- 			return false; 
 
- 		}
 
- 	}
 
- 	
 
- 	/**
 
- 	 * function vms_edit
 
- 	 * 视频编辑时调用 视频改变时同步更新vms系统中对应的视频
 
- 	 * @param array $data
 
- 	 */
 
- 	public function vms_edit($data = array()) {
 
- 		if (is_array($data ) && !empty($data)) {
 
- 			//处理数据
 
- 			$data['tag'] = $this->get_tag($data);
 
- 			//将gbk编码转为utf-8编码
 
- 			if (CHARSET == 'gbk') {
 
- 				$data = array_iconv($data);
 
- 			}
 
- 			$data['sn'] = $this->ku6api_sn;
 
- 			$data['method'] = 'VideoEdit';
 
- 			$data['posttime'] = SYS_TIME;
 
- 			$data['token'] = $this->xxtea->encrypt($data['posttime'], $this->ku6api_skey);
 
- 			//向vms post数据,并获取返回值
 
- 			$this->http->post($this->ku6api_url, $data);
 
- 			$get_data = $this->http->get_data();
 
- 			$get_data = json_decode($get_data, true);
 
- 			if($get_data['code'] != 200) {
 
- 				$this->error_msg = $get_data['msg'];
 
- 				return false;
 
- 			}
 
- 			return true;
 
- 		} else {
 
- 			return false;
 
- 		}
 
- 	}
 
- 	
 
- 	/**
 
- 	 * function delete_v
 
- 	 * 删除视频时,通知vms系统接口。
 
- 	 * @param string $ku6vid vms系统中ku6vid
 
- 	 */
 
- 	public function delete_v($ku6vid = '') {
 
- 		if (!$ku6vid) return false;
 
- 		//构造post数据
 
- 		$data['sn'] = $this->ku6api_sn;
 
- 		$data['method'] = 'VideoDel';
 
- 		$data['posttime'] = SYS_TIME;
 
- 		$data['token'] = $this->xxtea->encrypt($data['posttime'], $this->ku6api_skey);
 
- 		$data['vid'] = $ku6vid;
 
- 		//向vms post数据
 
- 		$this->http->post($this->ku6api_url, $data);
 
- 		$get_data = $this->http->get_data();
 
- 		$get_data = json_decode($get_data, true);
 
- 		if($get_data['code'] != 200 && $get_data['code']!=112) {
 
- 			$this->error_msg = $get_data['msg'];
 
- 			return false;
 
- 		}
 
- 		return true;
 
- 	}
 
- 	/**
 
- 	 * 
 
- 	 * 获取视频tag标签
 
- 	 * @param array $data 视频信息数组
 
- 	 * @return string $tag 标签
 
- 	 */
 
- 	private function get_tag($data = array()) {
 
- 		if (is_array($data) && !empty($data)) {
 
- 			if ($data['keywords']) $tag = trim(strip_tags($data['keywords']));
 
- 			else $tag = $data['title'];
 
- 			return $tag;
 
- 		}
 
- 	}
 
- 	
 
- 	/**
 
- 	 * function update_video_status_from_vms
 
- 	 * 视频状态改变接口
 
- 	 * @param array $get 视频信息
 
- 	 */
 
- 	public function update_video_status_from_vms() {
 
- 		if (is_array($_GET) && !empty($_GET)) {
 
- 			$size = $_GET['size'];
 
- 			$timelen = intval($_GET['timelen']);
 
- 			$status = intval($_GET['ku6status']);
 
- 			$vid = $_GET['vid'];
 
- 			$picpath = format_url($_GET['picpath']);
 
- 			//验证数据
 
- 			/* 验证vid */
 
- 			if(!$vid) return json_encode(array('status'=>'101','msg'=>'vid not allowed to be empty'));
 
- 			/* 验证视频大小 */
 
- 			if($size<100) return json_encode(array('status'=>'103','msg'=>'size incorrect'));
 
- 			/* 验证视频时长 */
 
- 			if($timelen<1) return json_encode(array('status'=>'104','msg'=>'timelen incorrect'));
 
- 			
 
- 			$db = pc_base::load_model('video_store_model');
 
- 			$r = $db->get_one(array('vid'=>$vid));
 
- 			if ($r) {
 
- 				$db->update(array('size'=>$size, 'picpath'=>$picpath, 'status'=>$status), array('vid'=>$vid));
 
- 				if ($status==21) {
 
- 					$r = $video_store_db->get_one(array('vid'=>$vid), 'videoid'); //取出videoid,以便下面操作
 
- 					$videoid = $r['videoid'];
 
- 					/**
 
- 					 * 加载视频内容对应关系数据模型,检索与删除视频相关的内容。
 
- 					 * 在对应关系表中找出对应的内容id,并更新内容的静态页
 
- 					 */
 
- 					$video_content_db = pc_base::load_model('video_content_model');
 
- 					$result = $video_content_db->select(array('videoid'=>$videoid));
 
- 					if (is_array($result) && !empty($result)) {
 
- 						//加载更新html类
 
- 						$html = pc_base::load_app_class('html', 'content');
 
- 						$content_db = pc_base::load_model('content_model');
 
- 						$url = pc_base::load_app_class('url', 'content');
 
- 						foreach ($result as $rs) {
 
- 							$modelid = intval($rs['modelid']);
 
- 							$contentid = intval($rs['contentid']);
 
- 							$content_db->set_model($modelid);
 
- 							$content_db->update(array('status'=>99), array('id'=>$contentid));
 
- 							$table_name = $content_db->table_name;
 
- 							$r1 = $content_db->get_one(array('id'=>$contentid));
 
- 							/**
 
- 							 * 判断如果内容页生成了静态页,则更新静态页
 
- 							 */
 
- 							if (ishtml($r1['catid'])) {
 
- 								$content_db->table_name = $table_name.'_data';
 
- 								$r2 = $content_db->get_one(array('id'=>$contentid));
 
- 								$r = array_merge($r1, $r2);unset($r1, $r2);
 
- 								if($r['upgrade']) {
 
- 									$urls[1] = $r['url'];
 
- 								} else {
 
- 									$urls = $url->show($r['id'], '', $r['catid'], $r['inputtime']);
 
- 								}
 
- 								$html->show($urls[1], $r, 0, 'edit');
 
- 							} else {
 
- 								continue;
 
- 							}
 
- 						}
 
- 					}
 
- 				} elseif ($data['status']<0 || $data['status']==24) {
 
- 					$r = $video_store_db->get_one(array('vid'=>$vid), 'videoid'); //取出videoid,以便下面操作
 
- 					$videoid = $r['videoid'];
 
- 					//$video_store_db->delete(array('vid'=>$vid)); //删除此视频
 
- 					/**
 
- 					 * 加载视频内容对应关系数据模型,检索与删除视频相关的内容。
 
- 					 * 在对应关系表中解除关系,并更新内容的静态页
 
- 					 */
 
- 					$video_content_db = pc_base::load_model('video_content_model');
 
- 					$result = $video_content_db->select(array('videoid'=>$videoid));
 
- 					if (is_array($result) && !empty($result)) {
 
- 						//加载更新html类
 
- 						$html = pc_base::load_app_class('html', 'content');
 
- 						$content_db = pc_base::load_model('content_model');
 
- 						$url = pc_base::load_app_class('url', 'content');
 
- 						foreach ($result as $rs) {
 
- 							$modelid = intval($rs['modelid']);
 
- 							$contentid = intval($rs['contentid']);
 
- 							$video_content_db->delete(array('videoid'=>$videoid, 'contentid'=>$contentid, 'modelid'=>$modelid));
 
- 							$content_db->set_model($modelid);
 
- 							$table_name = $content_db->table_name;
 
- 							$r1 = $content_db->get_one(array('id'=>$contentid));
 
- 							/**
 
- 							 * 判断如果内容页生成了静态页,则更新静态页
 
- 							 */
 
- 							if (ishtml($r1['catid'])) {
 
- 								$content_db->table_name = $table_name.'_data';
 
- 								$r2 = $content_db->get_one(array('id'=>$contentid));
 
- 								$r = array_merge($rs, $r2);unset($r1, $r2);
 
- 								if($r['upgrade']) {
 
- 									$urls[1] = $r['url'];
 
- 								} else {
 
- 									$urls = $url->show($r['id'], '', $r['catid'], $r['inputtime']);
 
- 								}
 
- 								$html->show($urls[1], $r, 0, 'edit');
 
- 							} else {
 
- 								continue;
 
- 							}
 
- 						}
 
- 					}
 
- 				}
 
- 				return json_encode(array('status'=>'200','msg'=>'Success'));
 
- 			} else {
 
- 				return json_encode(array('status'=>'107','msg'=>'Data is empty!'));
 
- 			}
 
- 		}
 
- 		json_encode(array('status'=>'107','msg'=>'Data is empty!'));
 
- 	}
 
- 	
 
- 	/**
 
- 	 * function get_categroys
 
- 	 * 将cms系统中视频模型的栏目取出来,并通过接口传到vms系统中
 
- 	 * @param bloon $isreturn 是否返回option
 
- 	 * @param int $catid 被选中的栏目 id
 
- 	 */
 
- 	public function get_categorys($isreturn = false, $catid = 0) {
 
- 		$siteid = get_siteid();
 
- 		$sitemodel_field = pc_base::load_model('sitemodel_field_model');
 
- 		$result = $sitemodel_field->select(array('formtype'=>'video', 'siteid'=>$siteid), 'modelid');
 
- 		if (is_array($result)) {
 
- 			$models = '';
 
- 			foreach ($result as $r) {
 
- 				$models .= $r['modelid'].',';
 
- 			}
 
- 		}
 
- 		$models = substr(trim($models), 0, -1);
 
- 		$cat_db = pc_base::load_model('category_model');
 
- 		if ($models) {
 
- 			$where = '`modelid` IN ('.$models.') AND `type`=0 AND `siteid`=\''.$siteid.'\'';
 
- 			$result = $cat_db->select($where, '`catid`, `catname`, `parentid`, `siteid`, `child`');
 
- 			if (is_array($result)) {
 
- 				$data = $return_data = array();
 
- 				foreach ($result as $r) {
 
- 					$sitename = $this->get_sitename($r['siteid']);
 
- 					$data[] = array('catid'=>$r['catid'], 'catname'=>$r['catname'], 'parentid'=>$r['parentid'], 'siteid'=>$r['siteid'], 'sitename'=>$sitename, 'child'=>$r['child']);
 
- 					$r['disabled'] = $r['child'] ? 'disabled' : '';
 
- 					if ($r['catid'] == $catid) { 
 
- 						$r['selected'] = 'selected';
 
- 					}
 
- 					$return_data[$r['catid']] = $r;
 
- 					
 
- 				}
 
- 				//将gbk编码转为utf-8编码
 
- 				if (strtolower(CHARSET) == 'gbk') {
 
- 					$data = array_iconv($data);
 
- 				}
 
- 				$data = json_encode($data);	
 
- 				$postdata['sn'] = $this->ku6api_sn;
 
- 				$postdata['method'] = 'UserCat';
 
- 				$postdata['posttime'] = SYS_TIME;
 
- 				$postdata['token'] = $this->xxtea->encrypt($postdata['posttime'], $this->ku6api_skey);
 
- 				$postdata['data'] = $data;
 
- 				//向vms post数据,并获取返回值
 
- 				$this->http->post($this->ku6api_url, $postdata);
 
- 				$get_data = $this->http->get_data();
 
- 				$get_data = json_decode($get_data, true);
 
- 				if($get_data['code'] != 200) {
 
- 					$this->error_msg = $get_data['msg'];
 
- 					return false;
 
- 				} elseif ($isreturn) {
 
- 					$tree = pc_base::load_sys_class('tree');
 
- 					$str  = "<option value='\$catid' \$selected \$disabled>\$spacer \$catname</option>";
 
- 					$tree->init($return_data);
 
- 					$string = $tree->get_tree(0, $str);
 
- 					return $string;
 
- 				} else {
 
- 					return true;
 
- 				}
 
- 			}
 
- 		}
 
- 		return array();
 
- 	}
 
- 	
 
- 	/**
 
- 	 * function get_ku6_channels
 
- 	 * 获取ku6的频道信息
 
- 	 */
 
- 	public function get_subscribetype() {
 
- 		//构造post数据
 
- 		$postdata['method'] = 'SubscribeType';
 
- 		//向vms post数据,并获取返回值
 
- 		if ($data = $this->post($postdata)) {
 
- 			return $data['data'];
 
- 		}
 
- 		return false;
 
- 	}
 
- 	
 
- 	/**
 
- 	 * function get_ku6_channels
 
- 	 * 获取ku6的频道信息
 
- 	 */
 
- 	public function get_ku6_channels() {
 
- 		//构造post数据
 
- 		$postdata['method'] = 'Ku6Channel';
 
- 		//向vms post数据,并获取返回值
 
- 		if ($data = $this->post($postdata)) {
 
- 			return $data['data'];
 
- 		}
 
- 		return false;
 
- 	}
 
- 	
 
- 	/**
 
- 	 * function subscribe 订阅处理
 
- 	 * 该方法将用户的订阅信息post到vms里面记录
 
- 	 * @param array $data 推送信息 例如: array(array('channelid'=>102000, 'catid'=>16371, 'posid'=>8))
 
- 	 */
 
- 	public function subscribe($datas = array()) {
 
- 		//构造post数据
 
- 		$postdata['method'] = 'SubscribeAdd';
 
- 		$postdata['channelid'] = $datas['channelid'];
 
- 		$postdata['catid'] = $datas['catid'];
 
- 		$postdata['posid'] = $datas['posid'] ? $datas['posid'] : 0;
 
- 		//向vms post数据,并获取返回值
 
- 		if ($data = $this->post($postdata)) {
 
- 			return $data;
 
- 		}
 
- 		return false;
 
- 	} 
 
- 	/**
 
- 	 * function checkusersubscribe 判断用户是否已经订阅
 
- 	 */
 
- 	public function checkusersubscribe($datas = array()) {
 
- 		$postdata['method'] = 'CheckUserSubscribe';
 
- 		$postdata['userid'] = $datas['userid'];
 
- 		//向vms post数据,并获取返回值
 
- 		if ($data = $this->post($postdata)) {
 
- 			return $data;
 
- 		}
 
- 		return false;
 
- 	}	
 
- 	
 
- 	/**
 
- 	 * function subscribe 按用户订阅处理
 
- 	 * 该方法将用户的订阅信息post到vms里面记录
 
- 	 * @param array $data 推送信息 例如: array(array('userid'=>102000, 'catid'=>16371, 'posid'=>8))
 
- 	 */
 
- 	public function usersubscribe($datas = array()) {
 
- 		//构造post数据
 
- 		$postdata['method'] = 'UserSubscribeAdd';
 
- 		$postdata['userid'] = $datas['userid'];
 
- 		$postdata['catid'] = $datas['catid'];
 
- 		$postdata['posid'] = $datas['posid'] ? $datas['posid'] : 0;
 
- 		//向vms post数据,并获取返回值
 
- 		if ($data = $this->post($postdata)) {
 
- 			return $data;
 
- 		}
 
- 		return false;
 
- 	}	
 
- 	
 
- 	/**
 
- 	 * Function sub_del 删除订阅
 
- 	 * 用户删除订阅
 
- 	 * @param int $id 订阅id
 
- 	 */
 
- 	public function sub_del($id = 0) {
 
- 		if (!$id) return false;
 
- 		//构造post数据
 
- 		$postdata['method'] = 'SubscribeDel';
 
- 		$postdata['sid'] = $id;
 
- 		//向vms post数据,并获取返回值
 
- 		if ($data = $this->post($postdata)) {
 
- 			return true;
 
- 		}
 
- 		return false;
 
- 	}
 
- 	
 
- 	/**
 
- 	 * Function user_sub_del 删除订阅用户
 
- 	 * 删除订阅用户
 
- 	 * @param int $id 订阅id
 
- 	 */
 
- 	public function user_sub_del($id = 0) {
 
- 		if (!$id) return false;
 
- 		//构造post数据
 
- 		$postdata['method'] = 'UserSubscribeDel';
 
- 		$postdata['sid'] = $id;
 
- 		//向vms post数据,并获取返回值
 
- 		if ($data = $this->post($postdata)) {
 
- 			return true;
 
- 		}
 
- 		return false;
 
- 	}	
 
- 	
 
- 	/**
 
- 	 * fucntion get_subscribe 获取订阅
 
- 	 * 获取自己的订阅信息
 
- 	 */	
 
- 	public function get_subscribe() {
 
- 		//构造post数据
 
- 		$postdata['method'] = 'SubscribeSearch';
 
- 		//向vms post数据,并获取返回值
 
- 		if ($data = $this->post($postdata)) {
 
- 			return $data['data'];
 
- 		} else {
 
- 			return false;
 
- 		}
 
- 	}
 
- 	
 
- 	/**
 
- 	 * fucntion get_subscribe 获取用户订阅
 
- 	 * 获取用户自己的订阅信息
 
- 	 */	
 
- 	public function get_usersubscribe() {
 
- 		//构造post数据
 
- 		$postdata['method'] = 'UserSubscribeSearch';
 
- 		//向vms post数据,并获取返回值
 
- 		if ($data = $this->post($postdata)) {
 
- 			return $data['data'];
 
- 		} else {
 
- 			return false;
 
- 		}
 
- 	}	
 
- 	
 
- 	/**
 
- 	 * Function flashuploadparam 获取flash上传条属性
 
- 	 * 获取flash上传条属性
 
- 	 */
 
- 	public function flashuploadparam () {
 
- 		//构造post数据
 
- 		$postdata['method'] = 'GetFlashUploadParam';
 
- 		//向vms post数据,并获取返回值
 
- 		if ($data = $this->post($postdata)) {
 
- 			return $data['data'];
 
- 		} else {
 
- 			return FALSE;
 
- 		}
 
- 	}
 
- 	
 
- 	/**
 
- 	 * Function get_albums
 
- 	 * 获取ku6专辑列表
 
- 	 * @param int $page 当前页数
 
- 	 * @param int $pagesize 每页数量
 
- 	 * @return array 返回专辑数组
 
- 	 */
 
- 	public function get_albums($page = 1, $pagesize = 20) {
 
- 		//构造post数据
 
- 		if ($_GET['start_time']) {
 
- 			$postdata['start_time'] = strtotime($_GET['start_time']);
 
- 		}
 
- 		if ($_GET['end_time']) {
 
- 			$postdata['end_time'] = strtotime($_GET['end_time']);
 
- 		}
 
- 		if ($_GET['keyword']) {
 
- 			$postdata['key'] = addslashes($_GET['keyword']);
 
- 		}
 
- 		if ($_GET['categoryid']) {
 
- 			$postdata['categoryid'] = intval($_GET['categoryid']);
 
- 		}
 
- 		$postdata['method'] = 'AlbumList';
 
- 		$postdata['start'] = ($page-1)*$pagesize;
 
- 		$postdata['size'] = $pagesize;
 
- 		//向vms post数据,并获取返回值
 
- 		if ($data = $this->post($postdata)) {
 
- 			return $data;
 
- 		} else {
 
- 			return false;
 
- 		}
 
- 	}
 
- 	
 
- 	/**
 
- 	 * Function get_album_videoes
 
- 	 * 获取某专辑下的视频列表
 
- 	 * @param int $albumid 专辑ID
 
- 	 * @param int $page 当前页
 
- 	 * @param int $pagesize 每页数量
 
- 	 * @return array 视频数组
 
- 	 */
 
- 	public function get_album_videoes($albumid = 0, $page = 1, $pagesize = 20) {
 
- 		//构造post数据
 
- 		$postdata['method'] = 'AlbumVideoList';
 
- 		$postdata['p'] = $page;
 
- 		$postdata['playlistid'] = $albumid;
 
- 		$postdata['s'] = $pagesize;
 
- 		//向vms post数据,并获取返回值
 
- 		if ($data = $this->post($postdata)) {
 
- 			return $data['data'];
 
- 		} else {
 
- 			return false;
 
- 		}
 
- 	}
 
- 	
 
- 	/**
 
- 	 * Function get_album_info
 
- 	 * 获取专辑的详细信息
 
- 	 * @param int $albumid 专辑id
 
- 	 */
 
- 	public function get_album_info($albumid = 0) {
 
- 		$albumid = intval($albumid);
 
- 		if (!$albumid) return false;
 
- 		$arr = array('method'=>'GetOneAlbum', 'id'=>$albumid);
 
- 		if ($data = $this->post($arr)) {
 
- 			return $data['list'];
 
- 		} else {
 
- 			return false;
 
- 		}
 
- 	}
 
- 	
 
- 	/**
 
- 	 * Function add_album_subscribe
 
- 	 * 添加专辑订阅
 
- 	 * @param array $data 订阅数组 如:array(0=>array('specialid'=>1, 'id'=>1232131), 1=>array('specialid'=>2, 'id'=>4354323))
 
- 	 */
 
- 	public function add_album_subscribe($data = array()) {
 
- 		if (!is_array($data) || empty($data)) {
 
- 			return false;
 
- 		}
 
- 		//构造post数据
 
- 		$postdata['method'] = 'AlbumVideoSubscribe';
 
- 		$postdata['data'] = $data;
 
- 		//向vms post数据,并获取返回值
 
- 		if ($data = $this->post($postdata)) {
 
- 			return true;
 
- 		} else {
 
- 			return false;
 
- 		}
 
- 	}
 
- 	
 
- 	/**
 
- 	 * Function member_login_vms
 
- 	 * 登陆后台同时登陆vms
 
- 	 * @param array $data
 
- 	 */
 
- 	public function member_login_vms() {
 
- 		//构造post数据
 
- 		$postdata = array();
 
- 		$postdata['method'] = 'SynLogin';
 
- 		//向vms post数据,并获取返回值
 
- 		if ($data = $this->post($postdata)) {
 
- 			return true;
 
- 		} else {
 
- 			return false;
 
- 		}
 
- 	}
 
- 	/**
 
- 	 * Function check_status
 
- 	 * 登陆后台同时登陆vms
 
- 	 * @param array $data
 
- 	 */
 
- 	public function check_status($vid = '') {
 
- 		if (!$vid) return false;
 
- 		//构造post数据
 
- 		$postdata = array();
 
- 		$postdata['method'] = 'VideoStatusCheck';
 
- 		$postdata['vid'] = $vid;
 
- 		//向vms post数据,并获取返回值
 
- 		if ($data = $this->post($postdata)) {
 
- 			return $data;
 
- 		} else {
 
- 			return false;
 
- 		}
 
- 	}
 
- 	
 
- 	/**
 
- 	 * Function http
 
- 	 * 执行http post数据到接口
 
- 	 * @param array $datas post数据参数 如:array('method'=>'AlbumVideoList', 'p'=>1, 's'=>6,....)
 
- 	 */
 
- 	private function post($datas = array()) {
 
- 		//构造post数据
 
- 		$data['sn'] = $this->ku6api_sn;
 
- 		$data['posttime'] = SYS_TIME;
 
- 		$data['token'] = $this->xxtea->encrypt($data['posttime'], $this->ku6api_skey);
 
- 		if (strtolower(CHARSET) == 'gbk') {
 
- 			$datas = array_iconv($datas, 'gbk', 'utf-8');
 
- 		}
 
- 		if (is_array($datas)) {
 
- 			foreach ($datas as $_k => $d) {
 
- 				if (is_array($d)) {
 
- 					$data[$_k] = json_encode($d);
 
- 				} else {
 
- 					$data[$_k] = $d;
 
- 				}
 
- 			}
 
- 		}
 
- 		//向vms post数据,并获取返回值
 
- 		$this->http->post($this->ku6api_url, $data);
 
- 		$get_data = $this->http->get_data();
 
- 		$get_data = json_decode($get_data, true);
 
- 		//成功时vms返回code=200 而ku6返回status=1
 
- 		if ($get_data['code'] == 200 || $get_data['status'] == 1) {
 
- 			//将gbk编码转为utf-8编码
 
- 			if (strtolower(CHARSET) == 'gbk') {
 
- 				$get_data = array_iconv($get_data, 'utf-8', 'gbk');
 
- 			}
 
- 			return $get_data;
 
- 		} else {
 
- 			return $get_data;
 
- 		}
 
- 	}
 
- 	
 
- 	/**
 
- 	 * Function CHECK
 
- 	 * 向vms发送vid
 
- 	 * @param string $vid vid
 
- 	 */
 
- 	public function check($vid = '') {
 
- 		if (!$vid) return false;
 
- 		//构造post数据
 
- 		$postdata['method'] = 'GetVid';
 
- 		$postdata['vid'] = $vid;
 
- 		$postdata['url'] = APP_PATH . 'api.php?op=video_api';
 
- 		//向vms post数据,并获取返回值
 
- 		if ($data = $this->post($postdata)) {
 
- 			return true;
 
- 		} else {
 
- 			return false;
 
- 		}
 
- 	}
 
- 	/**
 
- 	 * Function vms_update_video 
 
- 	 * 更新视频库视频到新系统
 
- 	 * @param array $data array of video
 
- 	 */
 
- 	public function vms_update_video($data = array()) {
 
- 		if (empty($data)) return false;
 
- 		//构造post数据
 
- 		$postdata['method'] = 'VideoUpdate';
 
- 		$postdata['data'] = $data;
 
- 		//向vms post数据,并获取返回值
 
- 		if ($data = $this->post($postdata)) {
 
- 			return $data;
 
- 		} else {
 
- 			return false;
 
- 		}
 
- 	}
 
- 	/**
 
- 	 * Function Preview
 
- 	 * 向vms请求vid
 
- 	 * @param string $vid vid
 
- 	 */
 
- 	public function Preview($vid = '') {
 
- 		if (!$vid) return false;
 
- 		//构造post数据
 
- 		$postdata['method'] = 'Preview';
 
- 		$postdata['vid'] = $vid;
 
- 		//向vms post数据,并获取返回值
 
-  		if ($data = $this->post($postdata)) {
 
- 			return $data;
 
- 		} else { 
 
-   			return false;
 
- 		}
 
- 	}
 
- 	
 
- 	/**
 
- 	 * Function Ku6search
 
- 	 * 向vms请求搜索
 
- 	 * @param string $vid vid
 
- 	 */
 
- 	public function Ku6search($keyword,$pagesize,$page,$srctype,$len,$fenlei,$fq) { 
 
- 		//构造post数据
 
- 		$postdata['method'] = 'search';
 
- 		$postdata['pagesize'] = $pagesize;
 
- 		$postdata['keyword'] = $keyword;
 
- 		$postdata['page'] = $page;
 
- 		$postdata['fenlei'] = $fenlei;
 
- 		$postdata['srctype'] = $srctype;
 
- 		$postdata['len'] = $len;
 
- 		$postdata['fq'] = $fq;
 
- 		
 
-  		//向vms post数据,并获取返回值
 
-  		if ($data = $this->post($postdata)) { 
 
-   			return $data;
 
- 		} else { 
 
-    			return false;
 
- 		}
 
- 	}
 
- 	/**
 
- 	 * Function get_sitename
 
- 	 * 获取站点名称
 
- 	 */
 
- 	private function get_sitename($siteid) {
 
- 		static $sitelist;
 
- 		if (!$sitelist) {
 
- 			$sitelist = getcache('sitelist', 'commons');
 
- 		}
 
- 		return $sitelist[$siteid]['name'];
 
- 	}
 
- 	
 
- 	/**
 
- 	 * Function update_vms 
 
- 	 * @升级视频系统,向新系统添加用户
 
- 	 * @param $data POST数据
 
- 	 */
 
- 	public function update_vms_member($data = array()) {
 
- 		if (empty($data)) return false;
 
- 		//构造post数据
 
- 		$data['sn'] = $this->ku6api_sn;
 
- 		$data['skey'] = $this->ku6api_skey;
 
- 		$postdata['data'] = json_encode($data);
 
- 		$api_url = pc_base::load_config('sub_config','member_add_dir').'MemberUpgrade.php';
 
- 		$data = $this->post_api($api_url, $postdata);
 
- 		
 
- 		//向vms post数据,并获取返回值
 
-  		if ($data) { 
 
-   			return $data;
 
- 		} else { 
 
- 			return $data;
 
-    			return false;
 
- 		}
 
- 	}
 
- 	/**
 
- 	 * Function testapi
 
- 	 * 测试接口配置是否正确
 
- 	 */
 
- 	public function testapi() {
 
- 		$postdata['method'] = 'Test';
 
- 		$data = $this->post($postdata);
 
- 		if ($data['code']==200) {
 
- 			return true;
 
- 		} else {
 
- 			return false;
 
- 		}
 
- 	} 
 
- 	
 
- 	/******************以下为视频统计使用*****************/
 
- 	
 
- 	/*
 
- 	* 最近视频播放量走势图
 
- 	*/
 
- 	public function get_stat_bydate($start_time,$end_time,$pagesize,$page){
 
- 		//构造post数据
 
- 		$postdata['pagesize'] = $pagesize; 
 
- 		$postdata['page'] = $page;
 
- 		$postdata['start_time'] = $start_time; 
 
- 		$postdata['end_time'] = $end_time; 
 
- 		$postdata['method'] = 'GetStatBydate'; 
 
- 		
 
-  		//向vms post数据,并获取返回值
 
- 		$data = $this->post($postdata);
 
- 		return $data;
 
- 	}
 
- 	
 
- 	/*
 
- 	* 根据关键字来搜索视频
 
- 	*/
 
- 	public function get_video_bykeyword($type,$keyword){
 
- 		$postdata['type'] = $type; 
 
- 		$postdata['keyword'] = $keyword; 
 
- 		$postdata['method'] = 'GetVideoBykeyword';  
 
-  		//向vms post数据,并获取返回值
 
- 		$data = $this->post($postdata);  
 
- 		if ($data['code']==200) { 
 
-   			return $data;
 
- 		} else { 
 
-  			echo '搜索出现错误,请联系管理员!';exit;
 
-    			return false;
 
- 		}
 
- 	}
 
- 	
 
- 	/*
 
- 	* 查看视频流量走势
 
- 	*/
 
- 	public function show_video_stat($vid){
 
- 		if(!$vid) return false;
 
- 		$postdata['vid'] = $vid; 
 
- 		$postdata['method'] = 'ShowVideoStat';  
 
-  		//向vms post数据,并获取返回值
 
- 		$data = $this->post($postdata);  
 
- 		if ($data['code']==200) { 
 
-   			return $data;
 
- 		} else { 
 
-  			echo '查看视频统计出错,请联系管理员!'; 
 
-    			return false;
 
- 		}
 
- 		
 
- 	}
 
- 	
 
- 	/*
 
- 	* 视频流量总体趋势图 
 
- 	*/
 
- 	public function vv_trend(){  
 
- 		$postdata['method'] = 'VvTrend';   
 
- 		$data = $this->post($postdata);  
 
- 		if ($data['code']==200) { 
 
-   			return $data;
 
- 		} else { 
 
-  			echo '视频流量总体趋势图!'; 
 
-    			return false;
 
- 		} 
 
- 	}
 
- 	
 
- 	
 
- 	/*
 
- 	* 按时间查看当日视频播放排行榜,以播放次数倒叙
 
- 	* $date 2012-02-03
 
- 	*/
 
- 	/* 王参加注释,这个是否还有用?
 
- 	public function get_stat_single($date){
 
- 		//构造post数据 
 
- 		$postdata['method'] = 'get_stat_single';
 
- 		$postdata['pagesize'] = $pagesize;
 
- 		$postdata['date'] = $date;
 
- 		$postdata['page'] = $page; 
 
- 		
 
-  		//向vms post数据,并获取返回值
 
-  		if ($data = $this->post($postdata)) { 
 
-   			return $data;
 
- 		} else { 
 
-  			echo '没有返回查询时间点的数据!';exit;
 
-    			return false;
 
- 		}
 
- 	}
 
- 	*/
 
- 	//完善资料
 
- 	public function complete_info($data){
 
- 		//构造post数据
 
- 		$postdata = $data; 
 
- 		$postdata['user_back'] = APP_PATH . 'api.php?op=video_api';   
 
-  		//向vms post数据,并获取返回值 
 
- 		
 
- 		$url = $this->ku6api_api."CompleteInfo.php"; 
 
- 		$return_data = $this->post_api($url, $postdata);
 
-   		if ($return_data['code']=='200') { 
 
-    			return $return_data['data'];
 
- 		} else { 
 
-  			return '-1'; 
 
- 		} 
 
- 	} 
 
- 	
 
- 	/*
 
- 	* 获得用户填写的详细资料
 
- 	* 返回值: 用户完善的资料
 
- 	*/
 
- 	public function Get_Complete_Info($data){
 
- 		if (empty($data)) return false; 
 
- 		$url = $this->ku6api_api."Get_Complete_Info.php"; 
 
- 		$return_data = $this->post_api($url, $data);
 
-    		if ($return_data['code']=='200') { 
 
-    			return $return_data['data'];
 
- 		} else { 
 
-   			return false; 
 
- 		} 
 
- 	}
 
- 	
 
- 	/*
 
- 	* 获得用户填写的详细资料
 
- 	* 返回值: 用户完善的资料
 
- 	*/
 
- 	public function check_user_back($url){
 
- 		if (empty($url)) return false; 
 
- 		$data['url'] = $url;
 
- 		$url = $this->ku6api_api."Check_User_Back.php"; 
 
- 		$return_data = $this->post_api($url, $data);
 
-    		if ($return_data['code']=='200') { 
 
-    			return 200;
 
- 		} else { 
 
-   			return -200; 
 
- 		} 
 
- 	}
 
- 	
 
- 	//发送验证码到指定邮件
 
- 	public function send_code($data){
 
- 		if (empty($data)) return false; 
 
- 		$new_data['email'] = $data['email'];
 
- 		$new_data['url'] = $data['url'];
 
- 		$url = $this->ku6api_api."Send_Code.php";  
 
- 		$return_data = $this->post_api($url, $new_data); 
 
-     	return $return_data;
 
- 	}
 
- 	
 
- 	//验证信箱和验证码,包含email and  code
 
- 	public function check_email_code($data){
 
- 		if (empty($data)) return false;  
 
- 		$url =  $this->ku6api_api."Check_Email_Code.php";  
 
- 		$return_data = $this->post_api($url, $data); 
 
- 		if($return_data['code']=='200'){
 
- 			return $return_data['data'];
 
- 		}else{
 
- 			return false;
 
- 		} 
 
- 	}
 
- 	
 
- 	
 
- 	/**
 
- 	 * Function 
 
- 	 * 获取播放器列表
 
- 	 */
 
- 	public function player_list() {
 
- 		$postdata['method'] = 'PlayerList';
 
- 		$data = $this->post($postdata);
 
- 		if ($data['code']==200) {
 
- 			return $data;
 
- 		} else {
 
- 			return false;
 
- 		}
 
- 	}
 
- 	/**
 
- 	 * Function 
 
- 	 * 获取播放器列表
 
- 	 */
 
- 	public function player_edit($field,$style) {
 
- 		$postdata['method'] = 'PlayerEdit';
 
- 		$postdata['field'] = $field;
 
- 		$postdata['style'] = $style;
 
- 		$data = $this->post($postdata);
 
- 		if ($data['code']==200) {
 
- 			return $data;
 
- 		} else {
 
- 			return false;
 
- 		}
 
- 	} 
 
- 	/**
 
- 	 * FUNCTION post_api
 
- 	 * @post数据到api,post方法是post数据到api下面的v5,而post_api是post到api下面
 
- 	 * @$data array post数据
 
- 	 */
 
- 	private function post_api($url = '', $data = array()) {
 
- 		if (empty($url) || !preg_match("/^(http:\/\/)?([a-z0-9\.]+)(\/api)(\/[a-z0-9\._]+)/i", $url) || empty($data)) return false;
 
- 		$ch = curl_init();
 
- 		curl_setopt($ch, CURLOPT_URL, $url);
 
- 		curl_setopt($ch, CURLOPT_POST, 1);
 
- 		curl_setopt($ch, CURLOPT_RETURNTRANSFER , 1);
 
- 		curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
 
- 		curl_setopt($ch, CURLOPT_TIMEOUT, 30);
 
- 		curl_setopt($ch, CURLOPT_USERAGENT, 'Client SDK ');
 
- 		$output = curl_exec($ch);
 
- 		$return_data = json_decode($output,true);
 
-    		return $return_data;
 
- 	}
 
- }
 
 
  |