⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 caijimoviemodel.php

📁 a short sketch about linux syntex lines.
💻 PHP
字号:
<?php
/*
秀影已采集影片管理模型
*/
class caijimoviemodel{
	private $db;
	public function __construct(){
		$this->db = $GLOBALS['DB'];
	}
	public function getRow( $where = null){
		$select = $this->db->select();
		$select->from(VODCMS_CAIJIMOVIE.' AS a', 'a.*');
		$select->join(VODCMS_CAIJIURL.' as b', 'a.id=b.caijimovid' ,'b.playurl,b.path as url');
		$select->where( $where );
		$sql = $select->toString();
		return $this->db->fetRow($sql);
	}
	/*
	获取全部采集完成影片数据
	*/
	public function getAll( $where = null ){
		$select = $this->db->select();
		$select->from(VODCMS_CAIJIMOVIE);
		$select->where( $where );
		$select->order('id DESC');
		$sql = $select->toString();
		$this->total = $this->db->getCount($sql);
		$page = new Page();
		$page->set($this->total);
		$this->printpage = $page->printpage();
		return $this->db->fetAll($sql. $page->limit());
	}
	/*
	返回json数据
	*/
	public function getJsonRow( $where = null ) {
		$select = $this->db->select();
		$select->from(VODCMS_CAIJIMOVIE);
		$select->where( $where );
		$sql = $select->toString();
		$row = $this->db->fetRow($sql);

		$select = $this->db->select();
		$select->from(VODCMS_CAIJIURL);
		$select->where( array('caijimovid'=> $row['id']) );
		$select->order('id asc');
		$sql = $select->toString();
		$row['url'] = '<table border="0" cellpadding="0" cellspacing="1" class="tab" style="border-collapse:collapse">';
		$i = 0;
		foreach( $this->db->fetAll($sql) as $rs){
			$i++;
			if( $i % 2 == 0) {
				$classname = 'double';
			}else{
				$classname = 'row';
			}
			$row['url'] = $row['url'] . '<tr class="'.$classname.'">
			<td width="20" class="align-center">'.$i.'</td>
			<td><a href="'.$rs['playurl'].'" target="_blank">&nbsp;'.($rs['path'] ? $rs['path'] : $rs['playurl']).'</a></td></tr>';
		}
		$row['url'] = $row['url'] . '</table>';
		$data = null;
		foreach( $row as $key=>$val ){
			$data[$key] = iconv( 'gb2312', 'UTF-8//IGNORE',$val);
		}
		unset($row);
		return json_encode($data);
	}
	/*
	将影片资料导入正式数据库
	*/
	public function import($id) {
		try{
			if(is_int((int)$id)) {
				if( is_file(ROOT.'config/category.conf.php') ) {
					require ROOT.'config/category.conf.php';
				}
				$data = $this->getData ( array('id'=> $id)); 
				$movieobject = new moviemodel(); //创建影片模型实例
				$caiji = new CaijiModel();
				if( !$movieobject->exists( array('title'=> $data['name'])) ) {
					if (is_array($replace_category)){
						foreach($replace_category as $id=>$category){
							if( stripos($category, $data['category'])!== false ) {
								$data['category'] = $id;
							}
						}
					}
					if( is_int($data['category'])===false ) {//没有在转换列表中则查询是否已存在并且不存在时插入新记录
						$data['category'] = $this->getCategory( $data['category'] );	
					}
					$movie = array();
					$movie['title'] = $data['name'];
					$movie['actor'] = $data['actor'];
					$movie['director'] = $data['director'];
					$movie['category'] = $data['category'];
					$movie['pic'] = $caiji->savepic($data['pic']);
					$movie['otherpic'] = $movie['pic'];
					$movie['content'] = $data['content'];
					$movie['area'] = $data['area'];
					$movie['look'] = 1;
					$movie['lookgid'] = 0;
					$movie['addtime'] = time();
					$movie['modifytime'] = time();
					$movie['author'] = 'admin';
					$movie['player'] = $data['player'];
					$movie['sid'] = $data['server'];
					$movie['url'] = $data['url'];
					$movie['sort'] = $data['sort'];
					$movie['recmd'] = array(1,2,3);
					if( $movieobject->add($movie) ) {
						$this->db->update(VODCMS_CAIJIMOVIE, array('locked'=>1), array('id'=>$data['id']));
						return true;
					}else{
						$this->error = $movieobject->error;
						$this->db->update(VODCMS_CAIJIMOVIE, 'errors=errors+1', array('id'=>$data['id']));
						return false;
					}
				}else{
					$this->error = _('影片已经存在!');
					$this->db->update(VODCMS_CAIJIMOVIE, array('locked'=>2), array('id'=>$data['id']));
					return false;
				}
			}else{
				throw new exception ('导入影片库方法出错:参数不是数字'.$id);
			}
		}catch (exception $e){
			$this->error = $e->getMessage();
			return false;
		}
	}
	/*
	获取影片全部数据
	*/
	public function getData($where = null ) {
		$select = $this->db->select();
		$select->from(VODCMS_CAIJIMOVIE);
		$select->where( $where );
		$sql = $select->toString();
		$row = $this->db->fetRow($sql);

		$select = $this->db->select();
		$select->from(VODCMS_CAIJIURL);
		$select->where( array('caijimovid'=> $row['id']) );
		$select->order('id asc');
		$sql = $select->toString();
		$i=0;
		foreach( $this->db->fetAll($sql) as $rs){
			$i++;
			$row['url'][] = $rs['path'];
			$row['sort'][] = $i;
		}
		return $row;
	}
	/*
	获取分类ID
	找不到分类则插入新分类
	@param string as $category
	*/
	public function getCategory($str) {
		$row = '';
		$category = new categorymodel();
		$row = $category->getRow ( array( 'category'=> trim($str) ) );
		if( $row['id'] ) {
			return $row['id'];
		}else{
			return $category->Add( array(
				'category'=> $str,
				'parentid'=> 0) );
		}
	}
	/*
	将vodcms_caijiurl表中的影片地址采集为真实的地址
	*/
	public function getUrl($where = null, $start=1 ){
		/*新增字段控制errors。错误次数默认超过3次失败则丢弃*/
		$select = $this->db->select();
		$select->from(VODCMS_CAIJIURL);
		$select->where( $where );
		$select->where('errors<4');
		$page = ($start-1) * 10;
		$select->limit($page.',10');
		$sql = $select->toString();
		$result = $this->db->fetall($sql);
		$caiji = new CaijiModel();
		$da = $caiji->getRow( array('id'=> $result[0]['rulesid']) );
		if (count($result)>0){
			foreach ($result as $row){
				if ( ($playcontents = $caiji->getContent($row['playurl'])) == null ){
					echo '读取播放器页面失败'.$row['playurl'].'<br />';
					$this->db->update(VODCMS_CAIJIURL, 'errors = errors +1', array('id'=> $row['id']));
					$this->db->update(VODCMS_CAIJIMOVIE, 'errors = errors +1', array('id'=> $row['cajimovid']));
				}else{
					if( $da['playrule'] ) {
							preg_match($caiji->format($da['playrule']).'i', $playcontents, $temp);
							$url = $temp[1];
					}else{
							$url = $row['playurl'];
					}
					$this->db->update(VODCMS_CAIJIURL, array('locked'=> 1, 'path'=> $url, 'errors'=>0), array('id'=> $row['id']));
				}
			}
			return false;
		}else{
			return true;
		}
	}
	/*获取采集播放地址总数*/
	public function  getCaijiUrlNum($where){
		$select = $this->db->select();
		$select->from(VODCMS_CAIJIURL);
		$select->where( $where );
		$sql = $select->toString();
		//echo $sql;
		return $this->db->getCount($sql);
	}
	/*根据传入ID删除资料
	@param int or array*/
	public function delete($id){
		if (is_array($id)){
			$id = implode(',', $id);
		}
		//echo $id;
		$this->db->delete(VODCMS_CAIJIMOVIE, 'id in ('.$id.')');
		$this->db->delete(VODCMS_CAIJIURL, 'caijimovid in ('.$id.')');
	}
	/*
	获取已经采集完成但是未导入的影片数据
	*/
	public function findmovie(){
		$select = $this->db->select();
		$select->from(VODCMS_CAIJIMOVIE.' as a', 'a.id as id,a.name as name');
		$select->join(VODCMS_CAIJIURL.' as b', 'a.id=b.caijimovid', '');
		$select->where( "a.locked=0 AND a.errors<4 AND b.path <> '' " );
		$select->group('b.caijimovid');
		$sql = $select->toString();
		return $this->db->fetAll($sql);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -