예제 #1
0
function b_update_notice($options)
{
    global $xoopsDB, $xoopsUser;
    $pkg = $xoopsDB->prefix('update_package');
    $res = $xoopsDB->query("SELECT a.pname, b.name, b.pversion\nFROM {$pkg} a, {$pkg} b WHERE a.pversion='HEAD' AND a.parent=b.pkgid");
    $pkgs = array();
    while ($data = $xoopsDB->fetchArray($res)) {
        $pkgs[$data['pname']] = array('name' => $data['name'], 'pversion' => $data['pversion']);
    }
    $modpath = dirname(dirname(__FILE__));
    $dirname = basename($modpath);
    include_once $modpath . '/functions.php';
    $module_handler =& xoops_gethandler('module');
    $module =& $module_handler->getByDirname($dirname);
    // only for admin this module
    if (!is_object($xoopsUser) || !$xoopsUser->isAdmin($module->getVar('mid'))) {
        return array('admin' => false);
    }
    $config_handler =& xoops_gethandler('config');
    $config =& $config_handler->getConfigsByCat(0, $module->getVar('mid'));
    $svr = $config['update_server'];
    if (!preg_match('/^\\w+:/', $svr)) {
        return null;
    }
    $url = $svr . "/modules/server/list.php?pkg=all&ext=1";
    $block = array('admin' => true, 'dirname' => $dirname);
    $updates = array();
    if (empty($pkgs)) {
        $msg = _BL_UPDATE_NOPKGS;
    } else {
        $list = file_get_url($url, 'list');
        if (empty($list)) {
            return null;
        }
        foreach (split("\n", $list) as $ln) {
            if (empty($ln)) {
                continue;
            }
            list($pname, $ver, $date, $vcheck, $name) = split_csv($ln);
            if (isset($pkgs[$pname])) {
                if ($ver != $pkgs[$pname]['pversion']) {
                    $time = strtotime_tz($date);
                    $date = formatTimestamp($time, 'm/d h:i');
                    $updates[] = array('pname' => $pname, 'pversion' => $ver, 'time' => $time, 'date' => $date, 'vcheck' => $vcheck, 'name' => $name);
                }
            }
        }
        $msg = empty($updates) ? "" : _BL_UPDATE_EXIST;
    }
    $block['message'] = $msg;
    $block['updates'] = $updates;
    return $block;
}
예제 #2
0
function fetch_vedio_url($url)
{
    $files = file_get_url($url);
    $source_url = "";
    if (strpos($url, 'www.tudou.com') !== false) {
        if (strpos($url, '.html')) {
            preg_match("/,iid: (\\w+)/i", $files, $items);
            $iid = $items[1];
            if (!empty($iid)) {
                $source_url = "http://www.tudou.com/v/" . $iid . "/v.swf";
            }
        } else {
            preg_match("/,iid: (\\w+)/i", $files, $items);
            $iid = $items[1];
            if (!empty($iid)) {
                //$source_url=tudou_get($url);
                $source_url = "http://www.tudou.com/v/" . $iid . "/v.swf";
            } else {
                $source_url = tudou_get($url);
            }
        }
    } elseif (strpos($url, 'v.ku6.com') !== false) {
        preg_match("/A.VideoInfo(.*)/i", $files, $context);
        $context = $context[1];
        //匹配网页中的内容\"bigpicpath\" 获取图片
        //id:\s*\"([^,]+) 获取 视频ID ,"http://player.ku6.com/refer/$id/v.swf"
        preg_match("/\"bigpicpath\":\"([^,]+)\"/i", $context, $items);
        //json的UTF8 js编码
        $pattner = array('\\u003a' => ':', '\\u002e' => '.');
        $pic = $items[1];
        if (!empty($pic)) {
            preg_match("/id:\\s*\"([^,]+)\"/i", $context, $items);
            $id = $items[1];
            $source_url = "http://player.ku6.com/refer/{$id}/v.swf";
        }
    } elseif (strpos($url, 'v.youku.com') !== false) {
        //		preg_match("/videoId2=(.*)';/i",$files,$items);
        //		$videoId2=trim(str_replace('\'','',$items[1]));
        //		if(!empty($videoId2))
        //		$source_url="http://player.youku.com/player.php/sid/$videoId2/v.swf";
        $source_url = preg_replace("/id_(.*)\\.html(.*)/i", "http://player.youku.com/embed/\${1}", baseName($url));
    }
    return $source_url;
}
예제 #3
0
 function addServerList($pname = 'all')
 {
     $server = get_update_server();
     if (empty($server)) {
         return;
     }
     $url = $server . "list.php?pkg=" . urlencode($pname) . "&ext=1";
     $list = file_get_url($url, 'list');
     $pkgs =& $this->pkgs;
     foreach (preg_split('/\\n/', $list) as $ln) {
         $pkg = pkg_info_csv($ln);
         if ($pkg) {
             $dirname = $pkg['vcheck'];
             if (isset($pkgs[$dirname])) {
                 $pkgs[$dirname][] = $pkg;
             } else {
                 $pkgs[$dirname] = array($pkg);
             }
         }
     }
 }