<?php
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
class plugin_kym_list {
private function _get_css($setting){
$css = '<style type="text/css">
.kym_list{margin:10px 0 5px; line-height:25px;}
.tl th em{
color: #007CD5;
padding-left:8px;
}
.kym_list_li_d img{width:110px; height:80px;padding-bottom:10px;}
.kym_list2 {font-size:12px; color:#666666;}
.kym_list_imgswf{display:none;}
.kym_list_ul{height:75px; width:120px;float:left;}
.kym_list_ul li{height:75px; float:left; margin-right:10px; position:relative; display:none;}
.kym_list_ul li .kym_list_li_d{display:none;}
.kym_list_ul li .kym_list_btn{cursor:url(source/plugin/kym_list/images/cur_zin.cur), pointer; height:75px; position:absolute; width:100%; z-index:1; top:0; left:0; }
.kym_list_ul li .kym_list_btn_img{filter:alpha(opacity=0);opacity:0; background:#fff;}
.kym_list_ul li .kym_list_btn_img_hover{filter:alpha(opacity=50);opacity:0.5; }
.kym_list_ul li .kym_list_btn_swf{background:url(source/plugin/kym_list/images/videoplay.png) no-repeat center center; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src="source/plugin/kym_list/images/videoplay.png"); }
.kym_list_ul li .kym_list_btn_swf_hover{background:url(source/plugin/kym_list/images/videoplay_hover.png) no-repeat center center; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src="source/plugin/kym_list/images/videoplay_hover.png");}
.kym_list_show{width:640px; padding:10px; border:1px solid #DEDEDE; background:#F5F5F5; display:none; position:relative; }
.kym_list_bar_swf, .kym_list_bar_img{display:none; line-height:12px; height:15px; margin-bottom:9px; background:url(source/plugin/kym_list/images/imgbar.png) no-repeat;}
.kym_list_bar_swf a, .kym_list_bar_img a{color:#1d53bf!important; text-decoration:none!important;}
.kym_list_bar_swf a:hover, .kym_list_bar_img a:hover{color:#1d53bf!important; text-decoration:underline!important;}
.kym_list_bar_swf{background:url(source/plugin/kym_list/images/flvbar.png) no-repeat;}
.kym_list_bar_1{margin-left:17px;}
.kym_list_bar_2, .kym_list_bar_3, .kym_list_bar_4{margin-left:35px;}
.kym_list_content{text-align:center; width:640px; overflow:hidden;}
.kym_list_content_img{cursor:url(source/plugin/kym_list/images/cur_zout.cur), pointer;}
.kym_list_in{width:78px; height:27px; position:absolute; right:-88px; margin-top:-17px;}
.kym_list_in a{display:block; width:80px; height:27px; background:url(source/plugin/kym_list/images/in.png) no-repeat;}
</style>';
if($setting['maxkuan'] > 200 && $setting['maxkuan'] < 1000){
$css = str_replace('700', $setting['maxkuan'], $css);
}
if($setting['kuan'] != $setting['maxkuan'] && $setting['kuan'] > 200 && $setting['kuan'] < 1000){
$css = str_replace('640', $setting['kuan'], $css);
}
if($setting['gao'] > 20 && $setting['gao'] < 400){
$css = str_replace('75', $setting['gao'], $css);
}
return $css;
}
private function _get_js($setting){
return '<script type="text/javascript">var kym_list_youke=\''.$setting['youke'].'\';var kym_list_maxkuan=\''.$setting['maxkuan'].'\';var kym_list_kuan=\''.$setting['kuan'].'\';var kym_list_gao=\''.$setting['gao'].'\';</script><script type="text/javascript" src="source/plugin/kym_list/images/kym_list.js"></script>';
}
private function _get_imgswf_list($pid, $message, $setting){
$arr = array();
$is_only_sp = 0;
$matches = array();
preg_match_all('/\[(flash|media)[^\]]*\]\s*([^\[\<\r\n]+?)\s*\[\/(flash|media)\]/is', $message, $matches);
if(!empty($matches) && !empty($matches[2]) && is_array($matches[2])){
foreach($matches[2] as $src){
if(count($arr) >= $setting['ss']){
break;
}
if(strstr($src, '.swf')){
$arr[] = array('src' => $src, 'type' => 'swf');
if($setting['ms'] == 1){
$is_only_sp = 1;
}
}
}
}
if($is_only_sp == 0 && count($arr) < $setting['ss']){
$imgs = array();
foreach(C::t('forum_attachment_n')->fetch_all_by_id('pid:'.$pid, 'pid', $pid) as $attach) {
if(count($arr) >= $setting['ss']){
break;
}
if($attach['isimage']){
$src = $setting['attachurl'].'forum/' . $attach['attachment'];
$arr[] = array('src' => $src, 'type' => 'img');
}
}
}
if($is_only_sp == 0 && count($arr) < $setting['ss']){
$matches = array();
preg_match_all('/\[img[^\]]*\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/is', $message, $matches);
if(!empty($matches) && !empty($matches[1]) && is_array($matches[1])){
foreach($matches[1] as $src){
if(count($arr) >= $setting['ss']){
break;
}
$arr[] = array('src' => $src, 'type' => 'img');
}
}
}
return $arr;
}
private function _get_swf_tu1($src, $tusrc){
if(strpos($src, 'tudou.com') !== false){
$iid = '';
if(strpos($src, 'iid=') !== false){
$iid = preg_replace('/^.*iid=(\d+).*$/', '$1', $src);
}
if(!empty($iid)){
if(strlen($iid) < 9){
$iid = substr('000000000', 0, (9-strlen($iid))) . $idd;
}
$iid = substr($iid, 0, 3) . '/' . substr($iid, 3, 3) . '/' . substr($iid, 6, 3);
$tusrc = 'http://i'.mt_rand(1,4).'.tdimg.com/'.$iid.'/p.jpg';
}
}
return $tusrc;
}
private function _get_swf_tu2_db($src, $site){
$bg = DB::fetch_first("SELECT bg FROM ".DB::table('kym_list_swfbg')." WHERE src='$src'");
$bgtu = '';
if(empty($bg)){
$bgtu = 'get';
DB::query("INSERT INTO ".DB::table('kym_list_swfbg')." (bg, src, site) VALUES ('not', '{$src}', '{$site}')");
}else{
$bgtu = $bg['bg'];
}
return $bgtu;
}
private function _get_swf_tu2_db_up($src, $bg){
DB::query("UPDATE ".DB::table('kym_list_swfbg')." SET bg='{$bg}' WHERE src='{$src}'");
}
private function _get_swf_tu2_tudou($src, $tusrc){
$iid = '';
$header = @get_headers($src, 1);
if(!empty($header['Location']) && strpos($header['Location'], 'iid=') !== false){
$iid = preg_replace('/^[\S\s]+iid=(\d+)[\S\s]*$/i', '$1', $header['Location']);
}
if(!empty($iid)){
if(strlen($iid) < 9){
$iid = substr('000000000', 0, (9-strlen($iid))) . $idd;
}
$iid = substr($iid, 0, 3) . '/' . substr($iid, 3, 3) . '/' . substr($iid, 6, 3);
$tusrc = 'http://i'.mt_rand(1,4).'.tdimg.com/'.$iid.'/p.jpg';
$this->_get_swf_tu2_db_up($src, $tusrc);
}
return $tusrc;
}
private function _get_swf_tu2_sohu($src, $tusrc){
$vid = '';
if(strpos($src, 'id=') !== false){
$vid = preg_replace('/^.*id=(\d+).*$/', '$1', $src);
}else if(preg_match('/\/\d+\//', $src)){
$vid = preg_replace('/^.*\/(\d+)\/.*$/', '$1', $src);
}
if(!empty($vid)){
$html = file_get_contents('http://my.tv.sohu.com/videinfo.jhtml?m=viewnew&vid='.$vid.'&af=1&g=8');
if(strpos($html, '"coverImg"') !== false){
$tmp = preg_replace('/^.*"coverImg":"([^"]+)".*$/', '$1', $html);
if(!empty($tmp) && strpos($tmp, '.jpg') !== false){
$tusrc = $tmp;
$this->_get_swf_tu2_db_up($src, $tusrc);
}
}
}
return $tusrc;
}
private function _get_swf_tu2_youku($src, $tusrc){
$vid = '';
if(strpos($src, 'player.php/sid/') !== false){
$vid = preg_replace('/^.*player\.php\/sid\/([^\/]+)\/.*$/', '$1', $src);
}else if(strpos($src, 'VideoIDS=') !== false){
$vid = preg_replace('/^.*VideoIDS=([^$&]+).*$/', '$1', $src);
}
if(!empty($vid)){
$html = file_get_contents('http://v.youku.com/player/getPlayList/VideoIDS/'.$vid.'/timezone/+08/version/5/source/out?n=3&password=&ran=2027');
if(strpos($html, '"logo"') !== false){
$tmp = preg_replace('/^.*"logo":"([^"]+)".*$/', '$1', $html);
if(!empty($tmp) && strpos($tmp, '.ykimg.com') !== false){
$tusrc = str_replace('\/', '/', $tmp);
$this->_get_swf_tu2_db_up($src, $tusrc);
}
}
}
return $tusrc;
}
private function _ge