Ejemplo n.º 1
0
function pick_count()
{
    //clear_pick_cache(1);//缓存定期清理
    //clear_search_index(1);//清除索引
    clear_log(1);
    //清除日志
    pload('C:cache');
    $arr['search_index']['name'] = milu_lang('rules_search_index');
    $arr['search_index']['msg'] = milu_lang('search_index_notice');
    $arr['search_index']['show'] = '<span style=" width:120px; float:left">' . milu_lang('search_index_c') . '<hr>';
    $type_arr = array('1' => milu_lang('fast_pick_rules'), '2' => milu_lang('dxc_system_rules'), '3' => milu_lang('fastpick_evo'));
    $type_arr2 = array('3' => milu_lang('server_'), '4' => milu_lang('local_'));
    foreach ($type_arr as $k => $v) {
        foreach ($type_arr2 as $k2 => $v2) {
            $type = $k . $k2;
            $show_name = '<span style=" width:120px; float:left">' . $type_arr[$k] . $type_arr2[$k2] . '</span>';
            $search_index_count = DB::result(DB::query("SELECT COUNT(*) FROM " . DB::table('strayer_searchindex') . " WHERE type='{$type}'"), 0);
            $arr['search_index']['show'] .= $show_name . ' ' . $search_index_count . '<br />';
        }
    }
    $log_info = IO::info(PICK_DIR . '/data/log');
    $arr['log']['name'] = milu_lang('log_size');
    $arr['log']['msg'] = milu_lang('auto_pick_notice');
    $arr['log']['show'] = sizecount($log_info['size']);
    $cache_info = IO::info(PICK_CACHE, 1, 1);
    $arr['cache']['name'] = milu_lang('cache_file_size');
    $arr['cache']['show'] = milu_lang('cache_size_value', array('s' => sizecount($cache_info['size']), 'p' => PICK_CACHE_SIZE));
    $arr['cache']['msg'] = milu_lang('cache_notice');
    return $arr;
}
Ejemplo n.º 2
0
 function run_timing($a)
 {
     global $_G;
     $timestamp = TIMESTAMP;
     $processname = 'TIMING_CRON_CHECK';
     $check = DB::result(DB::query("SELECT COUNT(*) FROM " . DB::table('strayer_timing') . " WHERE public_dateline<='{$timestamp}' "), 0);
     if ($check) {
         discuz_process::unlock($processname);
     }
     if (discuz_process::islocked($processname, 600)) {
         return false;
     }
     if (!$check) {
         return FALSE;
     }
     @set_time_limit(1000);
     @ignore_user_abort(TRUE);
     //防止发生异常,先预订一个1小时的总时间,假如发布文章需要2小时才完成。还未到2小时,又被触发了,这样会造成文章的重复发布
     save_syscache('pick_timing', TIMESTAMP + 60 * 60 * 1);
     $optype_arr = array(1 => 'move_portal', 2 => 'move_forums', 3 => 'move_blog');
     $query = DB::query("SELECT * FROM " . DB::table('strayer_timing') . " WHERE public_dateline<='{$timestamp}' ORDER by public_dateline");
     $timing_aid_arr = $tid_arr = $args = array();
     while ($rs = DB::fetch($query)) {
         $timing_aid_arr[] = dstripslashes($rs);
         $tid_arr[] = $rs['id'];
     }
     if (!$timing_aid_arr) {
         return;
     }
     pload('F:article,F:pick');
     article_timing_delete($tid_arr);
     //不管有没有发布成功,先清理掉定时发布表里面的数据,防止文章又被重复检测到
     foreach ($timing_aid_arr as $k => $rs) {
         $args = unserialize($rs['public_info']);
         $args['aid'] = array($rs['data_id']);
         $args['pid'] = $rs['pid'];
         $args['timing'] = 1;
         $args['cron_run'] = 1;
         $args['public_time'][$rs['data_id']] = $rs['public_dateline'];
         article_import($optype_arr[$rs['public_type']], $args);
     }
     save_syscache('pick_timing', TIMESTAMP + 600);
     //成功运行,时间按正常设置
     discuz_process::unlock($processname);
     return true;
 }
Ejemplo n.º 3
0
function cloud_match_rules($get_type, $url, $content)
{
    global $_G;
    pload('F:fastpick');
    $setting = get_pick_set();
    $pick_config = $_G['cache']['evn_milu_pick']['pick_config'];
    $server_cache_time = $pick_config['index_server_cache_time'];
    if ($get_type == '3') {
        //智能学习规则索引过期时间比较短
        $server_cache_time = $pick_config['evo_index_server_cache_time'];
    }
    $milu_set = pick_common_get();
    if ($setting['open_cloud_pick'] != 1) {
        return FALSE;
    }
    pload('F:copyright');
    $host_info = GetHostInfo($url);
    $domain = $host_info['host'];
    $domain_hash = md5($domain);
    $url_temp = preg_replace('/\\d+/', '', $url);
    $arr_temp = parse_url($url_temp);
    $path_hash = md5($arr_temp['path']);
    $over_dateline = $_G['timestamp'] - $server_cache_time;
    $count = DB::result(DB::query("SELECT COUNT(*) FROM " . DB::table('strayer_searchindex') . " WHERE  domain_hash='" . $domain_hash . "' AND path_hash='" . $path_hash . "' AND type='" . $get_type . "3' AND dateline > {$over_dateline}"), 0);
    //3是服务端 4是本地的缓存
    if ($count) {
        return FALSE;
    }
    $args = array('get_type' => $get_type, 'url' => $url);
    $rpcClient = rpcClient();
    $client_info = get_client_info();
    $re = $rpcClient->cloud_match_rules($args, $client_info);
    if (is_object($re) || $re->Number == 0) {
        if ($re->Message) {
            return milu_lang('phprpc_error', array('msg' => $re->Message));
        }
        $re = (array) $re;
    }
    $data = array();
    if ($re['data_type'] == 1) {
        //返回规则
        $rules_info = $re['data'];
        if ($get_type == 3) {
            $data = evo_rules_get_article($content, $rules_info);
        } else {
            $data = rules_get_article($content, $rules_info);
        }
        if ($data || $data['content'] && $get_type == 3) {
            //规则验证有效,下载到本地
            if ($get_type == 3) {
                $data_id = import_evo_data($rules_info);
            } else {
                $data_id = import_fastpick_data($rules_info);
            }
            if ($data_id) {
                //先清除之前的索引
                DB::query('DELETE FROM ' . DB::table('strayer_searchindex') . " WHERE domain_hash='" . $domain_hash . "' AND path_hash='" . $path_hash . "'");
                add_search_index($domain_hash, $path_hash, $get_type . '4', $data_id);
                //添加索引
            }
        }
    } else {
        if ($re['data_type'] == 2) {
            //返回内容
            $data = $re['data'];
        } else {
            //一无所获,那也要告诉客户端,别再骚扰服务端了
            add_search_index($domain_hash, $path_hash, $get_type . '3', 0);
        }
    }
    return $data;
}
Ejemplo n.º 4
0
 function _article_seo_output($data)
 {
     pload('F:seo');
     $seo_arr = pick_seo_replace($data, 0, 0);
     $arr['content'] = $seo_arr['content'];
     $arr['title'] = $seo_arr['title'];
     return $arr;
 }
Ejemplo n.º 5
0
<?php

if (!defined('IN_DISCUZ')) {
    exit('Access Denied');
}
require_once DISCUZ_ROOT . 'source/plugin/milu_pick/config.inc.php';
pload('F:copyright,F:output');
$head_url = '?' . PICK_GO . 'fast_pick&myac=';
$myac = $_GET['myac'];
$tpl = $_GET['tpl'];
if (empty($myac)) {
    $myac = 'virtualdata_set';
}
if (function_exists($myac)) {
    $info = $myac();
}
$mytemp = $_REQUEST['mytemp'] ? $_REQUEST['mytemp'] : $myac;
if (!$tpl && $tpl != 'no') {
    include template('milu_pick:' . $mytemp);
}
function virtualdata_set()
{
    global $head_url, $header_config;
    if (!submitcheck('submit')) {
        require_once libfile('function/forumlist');
        $info = pick_common_get();
        $info['vir_cache_time'] = $info['vir_cache_time'] ? $info['vir_cache_time'] : 10;
        $info['vir_data_forum'] = unserialize($info['vir_data_forum']);
        $info['vir_data_usergroup'] = unserialize($info['vir_data_usergroup']);
        $info['forumselect'] = '<select name="set[vir_data_forum][]" size="10" multiple="multiple"><option value="">' . cplang('plugins_empty') . '</option>' . forumselect(FALSE, 0, $info['vir_data_forum'], TRUE) . '</select>';
        return $info;
Ejemplo n.º 6
0
function avatar_get($run = 0)
{
    if (!session_id()) {
        session_start();
    }
    pload('F:spider');
    if (intval($_GET['clear'])) {
        unset($_SESSION['avatar_get']);
    }
    $save_data = $_SESSION['avatar_get'] ? $_SESSION['avatar_get'] : '';
    global $head_url, $header_config, $_G;
    if (!$_GET['submit'] || $run == 0) {
        $info['header'] = pick_header_output($header_config, $head_url);
        $info['save_data'] = $save_data;
        return $info;
    } else {
        $submit = intval($_GET['submit']);
        if ($submit == 2) {
            unset($save_data);
        }
        if (!$save_data) {
            show_pick_info(milu_lang('start_config'));
        }
        $info = pick_common_get();
        if (!$info['avatar_web_url']) {
            show_pick_info(milu_lang('please_set_avatar_url'), 'show_err');
            return FALSE;
        }
        if (!$info['avata_from_uid']) {
            show_pick_info(milu_lang('set_pick_uid_start'), 'show_err');
            return FALSE;
        }
        $info['avata_jump_num'] = $info['avata_jump_num'] ? $info['avata_jump_num'] : 100;
        $now_get = $save_data['now_get'] ? $save_data['now_get'] : 0;
        $limit_num = $info['avata_jump_num'] ? $info['avata_jump_num'] : 50;
        $success_count = $save_data['success_count'] ? $save_data['success_count'] : 0;
        if ($info['avatar_setting_member'] == 1) {
            //设置所有已导入的会员
            if ($save_data['get_count']) {
                //查询总共需要设置的
                $get_count = $save_data['get_count'];
            } else {
                $all_count = DB::result(DB::query("SELECT COUNT(*) FROM " . DB::table('common_member') . " c Inner Join " . DB::table('strayer_member') . " p ON p.data_uid=c.uid WHERE p.data_uid>0 "), 0);
                $get_count = $_SESSION['avatar_get']['get_count'] = $all_count;
            }
            if (!$get_count) {
                show_pick_info(milu_lang('no_import_user_data'), 'show_err');
                return FALSE;
            }
            $query = DB::query("SELECT c.uid,c.username,p.data_uid FROM " . DB::table('common_member') . " c Inner Join " . DB::table('strayer_member') . " p ON p.data_uid=c.uid WHERE p.data_uid>0 ORDER BY p.get_dateline DESC LIMIT {$success_count},{$limit_num} ");
            while ($v = DB::fetch($query)) {
                $uid_arr[] = $v['uid'];
            }
        } else {
            //用户自定义
            $re_arr = get_data_range($info['avatar_user_set'], $success_count, $limit_num);
            $uid_arr = $re_arr['list'];
            $_SESSION['avatar_get']['get_count'] = $get_count = $save_data['get_count'] ? $save_data['get_count'] : $re_arr['all_num'];
            //var_dump($get_count);
        }
        $avatar_get_uid = $save_data['avatar_get_uid'] ? $save_data['avatar_get_uid'] : $info['avata_from_uid'];
        $all_get_time = $save_data['all_get_time'] ? $save_data['all_get_time'] : 0;
        $snoop_obj = get_snoopy_obj($snoopy_args);
        foreach ($uid_arr as $k => $uid) {
            $v['avatar_web_url'] = $info['avatar_web_url'];
            $v['avatar_get_uid'] = $avatar_get_uid + 1;
            $v['cover_avatar'] = $info['cover_avatar'];
            $v['now_get'] = $now_get + 1;
            $v['uid'] = $uid;
            $v['get_count'] = $get_count;
            $v['cover_avatar'] = $info['cover_avatar'];
            $v['success_count'] = $success_count;
            $v['all_get_time'] = $all_get_time;
            $v['avata_jump_num'] = $info['avata_jump_num'];
            if (!check_uid($uid)) {
                //不存在的用户
                $show_arr = get_show_arr($now_get, $success_count, $get_count, $all_get_time);
                $show_args = array_merge($show_arr, array('li_no_end' => 1, 'no_border' => 1, 'now' => $v['now_get']));
                show_pick_info(array(milu_lang('uid_no_exists', array('u' => '<a target="_blank" href="home.php?mod=space&uid=' . $uid . '&do=profile">' . $uid . '</a>'))), 'left', $show_args);
                $get_re['success_count'] = $v['success_count'] = $v['success_count'] + 1;
                $get_re['get_count'] = $get_count;
                $get_re['now'] = $v['now_get'] = $v['now_get'];
                $get_re['all_get_time'] = $all_get_time;
                $get_re['avatar_get_uid'] = $v['avatar_get_uid'];
                $_SESSION['avatar_get']['now_get'] = $v['now_get'];
                $_SESSION['avatar_get']['avatar_get_uid'] = $v['avatar_get_uid'];
                $_SESSION['avatar_get']['all_get_time'] = $all_get_time;
                $_SESSION['avatar_get']['success_count'] = $v['success_count'];
                $show_args = get_show_arr($v['now_get'], $v['success_count'], $get_count, $all_get_time);
                show_pick_info(milu_lang('jump'), 'err', $show_args);
                avatar_page_jump($v['now_get'], $v['avata_jump_num'], $get_count);
            } else {
                $get_re = $test_re = get_web_avatar($v);
                //采集头像
            }
            unset($test_re['content']);
            //debug
            $now_get = $get_re['now'];
            $success_count = $get_re['success_count'];
            $all_get_time = $get_re['all_get_time'];
            $get_count = $get_re['get_count'];
            $avatar_get_uid = $_SESSION['avatar_get']['avatar_get_uid'] = $get_re['avatar_get_uid'];
            $show_arr = get_show_arr($now_get, $success_count, $get_count, $all_get_time);
            $_SESSION['avatar_get']['now_get'] = $now_get;
            $_SESSION['avatar_get']['all_get_time'] = $all_get_time;
        }
        $all_get_time_str = diff_time($all_get_time, 1);
        $all_get_time_str = $all_get_time_str ? $all_get_time_str : ceil($all_get_time) . milu_lang('sec');
        $avg_get_time = $all_get_time / $success_count;
        $finsh_output = milu_lang('pick_avatar_finsh', array('n' => $now_get, 'g' => $success_count, 'all' => $all_get_time_str, 'avg' => sprintf('%.2f', $avg_get_time)));
        //unset($_SESSION['avatar_get']);
        show_pick_info($finsh_output, 'finsh');
    }
}
Ejemplo n.º 7
0
function fast_pick()
{
    global $_G;
    d_s('f_g');
    d_s('g_t');
    pload('F:spider');
    $url = $_GET['url'];
    $content = get_contents($url, array('cache' => -1));
    $get_time = d_e(0, 'g_t');
    $type = $_GET['type'] ? $_GET['type'] : 'bbs';
    $milu_set = pick_common_get();
    $data = (array) get_single_article($content, $url);
    if ($milu_set['fp_word_replace_open'] == 1 && !VIP) {
        //开启同义词替换
        $words = get_replace_words();
        if ($data['title']) {
            $data['title'] = strtr($data['title'], $words);
        }
        if ($data['content']) {
            $data['content'] = strtr($data['content'], $words);
        }
    }
    if ($milu_set['fp_article_from'] == 1) {
        //开启来源
        $data['fromurl'] = $url;
        if ($type == 'bbs' && $data['content']) {
            $data['content'] .= "[p=30, 2, left]" . milu_lang('article_from') . ':' . $url . "[/p]";
        }
    }
    $data['get_text_time'] = $get_time;
    $data['all_get_time'] = d_e(0, 'f_g');
    $data = $data ? $data : array();
    $data = js_base64_encode($data);
    $re = json_encode($data);
    return $re;
}
Ejemplo n.º 8
0
function pick_match_rules()
{
    $url = format_url($_GET['url']);
    d_s();
    $content = get_contents($url);
    $v = match_rules($url, $content, 2, 0);
    if (!$v || !is_array($v)) {
        $v = pick_match_coloud_rules($url);
        if ($v['data_type'] == 1) {
            pload('F:rules');
            $v = $v['data'];
            rules_add($v);
            del_search_index(2);
        }
    }
    if (!$v || !is_array($v)) {
        return 'no';
    }
    $re_arr = array($v['rules_type'], $v['rules_hash']);
    return json_encode($re_arr);
}
Ejemplo n.º 9
0
<?php

if (!defined('IN_DISCUZ')) {
    exit('Access Denied');
}
require_once DISCUZ_ROOT . 'source/plugin/milu_pick/config.inc.php';
pload('F:fastpick,F:copyright,F:output');
$header_config = array('fastpick_manage', 'fastpick_add', 'fastpick_import', 'fastpick_share', 'fastpick_set', 'fastpick_evo', 'fastpick_evo_log');
$head_url = '?' . PICK_GO . 'fast_pick&myac=';
$myac = $_GET['myac'];
$tpl = $_GET['tpl'];
if (empty($myac)) {
    $myac = 'fastpick_manage';
}
if ($myac == 'fastpick_add') {
    $myac = 'fastpick_edit';
} else {
    if ($myac == 'fastpick_del') {
        $tpl = 'no';
    }
}
if ($_GET['id']) {
    $header_config[1] = $myac;
}
if (function_exists($myac)) {
    $info = $myac();
}
$mytemp = $_REQUEST['mytemp'] ? $_REQUEST['mytemp'] : $myac;
if (!$tpl && $tpl != 'no') {
    include template('milu_pick:' . $mytemp);
}
Ejemplo n.º 10
0
     } else {
         cpmsg(milu_lang('empty_pick_confirm'), PICK_GO . 'picker_manage&myaction=pick_empty&pid=' . $pid . '&submit=1', 'form');
     }
     break;
 case 'pick_del':
     if ($pid && $submit) {
         del_picker($pid);
         cpmsg(milu_lang('del_finsh'), PICK_GO . "picker_manage", 'succeed');
     } else {
         cpmsg(milu_lang('pick_del_confirm'), PICK_GO . 'picker_manage&myaction=pick_del&pid=' . $pid . '&submit=1', 'form');
     }
     break;
 case 'export':
     $info['pick'] = get_pick_info();
     if ($info['pick']['rules_hash']) {
         pload('F:rules');
         $info['rules'] = get_rules_info($info['pick']['rules_hash']);
     }
     $is_hava = $info['rules'] ? milu_lang('hava_system_rules') : milu_lang('no_hava_system_rules');
     $args = array('type' => milu_lang('dxc_rules'), 'author' => $_G['setting']['bbname'], 'rules_name' => $info['pick']['name'], 'rule_desc' => $is_hava);
     $info['version'] = PICK_VERSION;
     exportfile($info, $info['pick']['name'], $args);
     break;
 case 'show_article_info':
     $arr['title'] = format_url($_GET['title']);
     $arr['content'] = format_url($_GET['content']);
     $arr['article_get_type'] = $_GET['article_get_type'];
     $arr['url_page_range'] = $_GET['url_page_range'];
     $arr['page_link_rules'] = format_url($_GET['page_link_rules']);
     $url_range_type = $_GET['url_range_type'];
     $page_test_url = $_GET['page_test_url'];
Ejemplo n.º 11
0
 function evo_set($info)
 {
     global $_G;
     if (!$info) {
         return;
     }
     if (strlen($info['text']['html']) < 200 || strlen($info['title']['html']) < 10) {
         return;
     }
     //标题和内容太短都不行
     $link_count = own_link_count($info['text']['html'], $this->url);
     if ($link_count > 10) {
         return FALSE;
     }
     //有10个指向自己的链接,就不行
     $milu_set = pick_common_get();
     if ($milu_set['fp_open_evo'] != 1) {
         return FALSE;
     }
     $text_info = $this->dom_info_arr[$info['text']['key']];
     $title_info = $this->dom_info_arr[$info['title']['key']];
     $text_info['html'] = $info['text']['html'];
     $title_info['html'] = $info['title']['html'];
     $info['title_split_arr'] = $this->get_split_arr($title_info);
     $info['text_split_arr'] = $split_arr = $this->get_split_arr($text_info);
     unset($text_info['outertext'], $text_info['parent']['outertext'], $title_info['outertext'], $title_info['parent']['outertext'], $text_info['html'], $title_info['html']);
     if (strlen($split_arr[0]) < 14) {
         return FALSE;
     }
     pload('F:copyright');
     $host_info = GetHostInfo($this->url);
     $domain = $host_info['host'];
     $domain_hash = md5($domain);
     if (preg_match('/\\d+/', $split_arr[0])) {
         $s_arr = preg_split("/[\\d]+/", $split_arr[0]);
         $split_arr[0] = $s_arr[0];
         foreach ((array) $s_arr as $k => $v) {
             if (strlen($v) > strlen($split_arr[0])) {
                 $split_arr[0] = $v;
             }
         }
     }
     if (!$title_info) {
         return FALSE;
     }
     $result_info['evo_title_info'] = $title_info;
     $setarr = array('content_get_type' => 0, 'detail_ID' => $split_arr[0], 'detail_ID_hash' => md5($split_arr[0]), 'detail_ID_test' => $this->url, 'content_rules' => '', 'evo_text_info' => serialize($text_info), 'evo_title_info' => serialize($title_info), 'domain_hash' => $domain_hash, 'domain' => $domain, 'status' => 0, 'dateline' => $_G['timestamp']);
     $setarr = paddslashes($setarr);
     $base_sql = "SELECT * FROM " . DB::table('strayer_evo') . " WHERE domain_hash='{$domain_hash}' AND detail_ID_hash='" . $setarr['detail_ID_hash'] . "' AND status=0";
     $data_info = DB::fetch_first($base_sql . " AND detail_ID_test!='{$this->url}'");
     $data_info = pstripslashes($data_info);
     if (!$data_info) {
         //还没有资料
         if (!($check = DB::result(DB::query("SELECT COUNT(*) FROM " . DB::table('strayer_evo') . " WHERE domain_hash='{$domain_hash}' AND detail_ID_hash='" . $setarr['detail_ID_hash'] . "' AND status=0 AND detail_ID_test='{$this->url}'"), 0))) {
             DB::insert('strayer_evo', $setarr, TRUE);
         }
         $result_info['status'] = 'no';
         return $result_info;
     } else {
         //有了资料
         $title_rules = $this->get_rules($info, $title_info, $data_info, 'title');
         $text_rules = $this->get_rules($info, $text_info, $data_info, 'text');
         //删除之前的一些记录,防止没有索引的情况下重复生成规则
         $check_info = DB::fetch_first("SELECT * FROM " . DB::table('strayer_evo') . " WHERE domain_hash='{$domain_hash}' AND detail_ID_hash='" . $setarr['detail_ID_hash'] . "' AND status=1");
         DB::query('DELETE FROM ' . DB::table('strayer_evo') . " WHERE id='{$check_info['id']}'");
         DB::query('DELETE FROM ' . DB::table('strayer_searchindex') . " WHERE id='{$check_info['id']}' AND type='34'");
         if ($text_rules) {
             $setarr = array('content_get_type' => $text_rules['get_type'], 'content_rules' => $text_rules['rules'], 'theme_get_type' => $title_rules['get_type'], 'theme_rules' => $title_rules['rules'], 'status' => 1);
             DB::update("strayer_evo", $setarr, array("id" => $data_info['id']));
             $pash_hash = get_path_hash($this->url);
             add_search_index($domain_hash, $path_hash, 34, $data_info['id']);
             //添加索引 4是本地缓存
             $pick_set = get_pick_set();
             if ($pick_set['open_cloud_pick'] == 1) {
                 //开启云采集,将规则上传到服务端
                 $rpcClient = rpcClient();
                 unset($setarr['status']);
                 $data_info['content_get_type'] = $setarr['content_get_type'];
                 $data_info['content_rules'] = $setarr['content_rules'];
                 $data_info['theme_get_type'] = $setarr['theme_get_type'];
                 $data_info['theme_rules'] = $setarr['theme_rules'];
                 $client_info = get_client_info();
                 $re = $rpcClient->upload_evo_data($data_info, $client_info);
             }
             del_search_index(3);
             $result_info['status'] = 'ok';
             return $result_info;
         }
     }
 }
Ejemplo n.º 12
0
function pick_download()
{
    $client_info = get_client_info();
    $version_md5total = $_GET['md5_total'];
    $new_version_md5total = $_GET['new_md5_total'];
    $key = $_GET['key'];
    $version = $_GET['version'];
    $version_dateline = $_GET['version_dateline'];
    $i = intval($_GET['i']);
    if (!$client_info) {
        cpmsg_error(milu_lang('lan_upgrage'));
    }
    $p = intval($_GET['p']);
    $count = $_GET['count'];
    $file_md5 = $_GET['file_md5'];
    $tmpdir = DISCUZ_ROOT . './data/download/dxc_temp';
    pload('C:cache');
    $md5s = array();
    $str = $_SERVER['QUERY_STRING'];
    if ($p == 0) {
        dir_clear($tmpdir);
        dmkdir($tmpdir, 0777, false);
        cpmsg(milu_lang('diff_upgrade_file'), PICK_GO . 'pick_info&ac=pick_download&key=' . $key . '&p=1', 'loading', '', false);
    } else {
        if ($p == 1) {
            $url = GET_URL . 'plugin.php?id=pick_user:upgrade&myac=download_file&php_version=' . phpversion() . '&tpl=no&domain=' . urlencode($client_info['domain']) . '&key=' . $key . '&file_md5=' . $file_md5;
            $data = get_contents($url, array('cache' => -1));
            if (!$data || $data == '-1') {
                cpmsg_error(milu_lang('no_normal_get'));
            }
            $msg_arr = (array) json_decode(base64_decode($data));
            if (!$_GET['file_md5']) {
                $download_file_data = upgrade_file_diff($msg_arr['md5']);
                $md5_temp_arr = array_keys($download_file_data);
                $version_md5total = md5(implode('', $md5_temp_arr));
                $count = count($download_file_data);
                $version = $version ? $version : $msg_arr['Version'];
                $version_dateline = $version_dateline ? $version_dateline : $msg_arr['version_dateline'];
            } else {
                $download_file_data = load_cache('download_file_data');
                $filename = $tmpdir . '/' . $msg_arr['file'] . '._addons_';
                $dirname = dirname($filename);
                dmkdir($dirname, 0777, false);
                $fp = fopen($filename, 'w');
                if (!$fp) {
                    cpmsg('cloudaddons_download_write_error', '', 'error');
                }
                fwrite($fp, gzuncompress(base64_decode($msg_arr['text'])));
                fclose($fp);
                if ($msg_arr['MD5']) {
                    $new_version_md5total .= $msg_arr['MD5'];
                    if ($msg_arr['MD5'] != md5_file($filename)) {
                        dir_clear($tmpdir);
                        cpmsg(milu_lang('cloudaddons_download_error'), '', 'error');
                        //数据下载错误
                    }
                }
            }
            $file_md5_arr = array_keys($download_file_data);
            $file_md5 = $file_md5_arr[$i];
            $file = $download_file_data[$file_md5];
            $p = $i == $count ? 2 : 1;
            $percent = $i / $count;
            $percent = sprintf("%01.0f", $percent * 100) . '%';
            cache_data('download_file_data', $download_file_data);
            cpmsg(milu_lang('pick_upgrade_downloading_file', array('file' => $file, 'percent' => $percent)), PICK_GO . 'pick_info&ac=pick_download&i=' . ($i + 1) . '&md5_total=' . $version_md5total . '&new_md5_total=' . $new_version_md5total . '&key=' . $key . '&p=' . $p . '&version=' . $version . '&version_dateline=' . $version_dateline . '&count=' . $count . '&file_md5=' . $file_md5, 'loading', '', false);
        } else {
            if ($p == 2) {
                if ($new_version_md5total !== '' && md5($new_version_md5total) !== $version_md5total) {
                    dir_clear($tmpdir);
                    cpmsg(milu_lang('cloudaddons_download_error'), '', 'error');
                    //数据下载错误
                }
                cpmsg(milu_lang('DXC_installing'), PICK_GO . 'pick_info&ac=pick_install&version=' . $version . '&version_dateline=' . $version_dateline, 'loading', '', false);
            }
        }
    }
}
Ejemplo n.º 13
0
<?php

if (!defined('IN_DISCUZ')) {
    exit('Access Denied');
}
require_once DISCUZ_ROOT . 'source/plugin/milu_pick/config.inc.php';
pload('F:member,F:copyright,F:output');
$header_config = array('member_set', 'member_get', 'member_list', 'member_public_set', 'member_public', 'avatar_set', 'avatar_get');
$head_url = '?' . PICK_GO . 'member&myac=';
$myac = $_GET['myac'];
$tpl = $_GET['tpl'];
if (empty($myac)) {
    $myac = 'member_set';
}
if (function_exists($myac)) {
    $info = $myac();
}
if ($myac == 'member_set' || $myac == 'member_list') {
    $info['tips'] = no_member_tips();
}
$mytemp = $_REQUEST['mytemp'] ? $_REQUEST['mytemp'] : $myac;
if (!$tpl && $tpl != 'no') {
    include template('milu_pick:' . $mytemp);
}
Ejemplo n.º 14
0
function word_seo_replace($arr)
{
    return $arr;
    //后来改为显示的时候seo了
    pload('F:seo');
    if ($arr['contents'] > 1) {
        //多页文章
        $seo_arr = pick_seo_replace(array('title' => $arr['title']), 0, 0);
        $arr['title'] = $seo_arr['title'];
        $seo_arr = array();
        foreach ($arr['content_arr'] as $k => $v) {
            $seo_arr = pick_seo_replace(array('content' => $v['content']), 0, 0);
            $v['content'] = $seo_arr['content'];
            $arr['content_arr'][$k] = $v;
        }
    } else {
        $arr = pick_seo_replace($arr, 0, 0);
    }
    return $arr;
}
Ejemplo n.º 15
0
 function article_public($arr)
 {
     global $_G;
     pload('F:article');
     $timing_public_arr = array();
     $is_timing = $this->plugin_set['is_timing'];
     //if(!VIP) $is_timing = 0;
     $class_arr = $this->p_arr['public_class'];
     $old_arr = $arr;
     $arr['title'] = htmlspecialchars_decode($arr['title'], ENT_QUOTES);
     $arr['content'] = htmlspecialchars_decode($arr['content'], ENT_QUOTES);
     unset($arr['pic']);
     $view_arr = format_wrap($this->p_arr['view_num'], ',');
     $arr['view_num'] = rand($view_arr[0], $view_arr[1]);
     $rand_arr = get_rand_uid($this->p_arr);
     $arr['p_arr'] = $this->p_arr;
     $arr['uid'] = $this->public_info['uid'] = $setarr['uid'] = $rand_arr[0]['uid'] ? $rand_arr[0]['uid'] : $_G['uid'];
     $arr['username'] = $setarr['username'] = $rand_arr[0]['username'] ? $rand_arr[0]['username'] : $_G['username'];
     $arr['portal_cid'] = $arr['forum_fid'] = $arr['blog_big_cid'] = $class_arr[0];
     $arr['forum_typeid'] = $arr['blog_small_cid'] = $class_arr[1];
     $arr['is_download_img'] = $this->p_arr['is_download_img'];
     $arr['is_download_file'] = $this->p_arr['is_download_file'];
     $arr['content_filter_html'] = $this->p_arr['content_filter_html'];
     $arr['is_water_img'] = $this->p_arr['is_water_img'];
     $arr['content'] = clear_ad_html($arr['content']);
     $arr['summary'] = addslashes($arr['summary']);
     $arr['public_start_time'] = $this->p_arr['public_start_time'];
     $arr['public_end_time'] = $this->p_arr['public_end_time'];
     $time_arr = create_public_time($arr, 1);
     $arr['public_time'] = $this->public_info['public_time'] = array_pop($time_arr);
     $arr['public_reply_seq'] = $this->p_arr['public_reply_seq'];
     $arr['is_public_reply'] = $this->p_arr['is_public_reply'];
     $arr['public_uid'] = $this->p_arr['public_uid'];
     $arr['reply_uid'] = $this->p_arr['reply_uid'];
     $arr['is_page_public'] = $this->p_arr['is_page_public'];
     $arr['check'] = 1;
     $arr['page_url'] = $this->now_url;
     $arr['is_bbs'] = $this->p_arr['reply_rules'] || $this->p_arr['reply_is_extend'] ? 1 : 0;
     $this->temp_arr['article_status'] = 2;
     $this->temp_arr['timeing_data_id'] = 0;
     //发布时间大于当前时间,放入定时发布中
     if ($arr['public_time'] > $_G['timestamp'] && $is_timing == 1) {
         if ($this->p_arr['public_type'] == 1) {
             //门户
             $timing_public_arr['portal'] = $class_arr[0];
         } else {
             if ($this->p_arr['public_type'] == 2) {
                 //论坛
                 $timing_public_arr['forums'] = $class_arr[0];
                 $timing_public_arr['threadtypeid'] = $class_arr[1];
             } else {
                 $timing_public_arr['blog'] = $class_arr[0];
                 $timing_public_arr['classid'] = $class_arr[1];
             }
         }
         $this->temp_arr['article_status'] = 4;
         //文章入库时标记文章发布状态为定时发布
         $timing_setarr = array('public_type' => $this->p_arr['public_type'], 'data_id' => 0, 'content_type' => 1, 'public_dateline' => $arr['public_time'], 'pid' => $this->pid, 'public_info' => serialize($timing_public_arr));
         $this->temp_arr['timing_id'] = DB::insert('strayer_timing', $timing_setarr, TRUE);
         return;
     }
     if ($this->p_arr['is_word_replace'] == 1) {
         //同义词替换
         if ($this->p_arr['is_bbs'] != 1 && $arr['contents'] > 0) {
             //有几页的文章
             $arr['content_arr'] = article_words_replace($arr['content_arr'], $this->words);
         }
         $arr['content'] = article_words_replace($arr['content'], $this->words);
         $arr['title'] = article_words_replace($arr['title'], $this->words);
         if ($arr['reply']) {
             $arr['reply'] = article_words_replace($arr['reply'], $this->words);
         }
     }
     unset($arr['url']);
     //跟门户的跳转url重名
     unset($arr['aid']);
     if ($this->p_arr['public_type'] == 2) {
         //论坛
         if ($arr['contents'] > 1 && $arr['is_bbs'] == 0 && $this->p_arr['is_page_public'] != 1) {
             $arr['is_public_reply'] = 1;
             $arr['public_reply_seq'] = 0;
             $arr['is_content_reply'] = 1;
             $arr['is_bbs'] = 1;
             unset($arr['content_arr'][0]);
             $arr['reply'] = $arr['content_arr'];
         } else {
             if ($arr['is_bbs'] != 1) {
                 $arr['reply'] = array();
             }
         }
         $arr = article_move_forums($arr, $old_arr);
         if (!is_array($arr)) {
             if (!$arr) {
                 return -1;
             }
         }
         $insert_aid = $setarr['forum_id'] = $arr['tid'];
     } else {
         if ($this->p_arr['public_type'] == 1) {
             //门户
             $setarr['portal_id'] = $insert_aid = article_move_portal($arr, $old_arr);
         } else {
             //博客
             $setarr['blog_id'] = $insert_aid = article_move_blog($arr, $old_arr);
         }
     }
     if ($insert_aid) {
         $arr['aid'] = $insert_aid;
         if ($this->p_arr['public_type'] == 2) {
             //论坛
             $arr['cookie'] = $this->p_arr['login_cookie'];
             if ($arr['is_download_img'] == 1) {
                 forum_downremotefile($arr, $old_arr);
             }
         } else {
             $type = $this->p_arr['public_type'] == 1 ? 'portal' : 'album';
             $arr['cookie'] = $this->p_arr['login_cookie'];
             downremotefile($arr, $type, $old_arr);
         }
         if ($type == 'portal') {
             article_thumb($insert_aid);
         }
     } else {
         return -1;
     }
     $this->public_info['insert_aid'] = $insert_aid;
     $this->public_info['title'] = $arr['title'];
     return $insert_aid;
 }
Ejemplo n.º 16
0
<?php

if (!defined('IN_DISCUZ')) {
    exit('Access Denied');
}
require_once DISCUZ_ROOT . 'source/plugin/milu_pick/config.inc.php';
$header_config = array('fastpick_manage', 'fastpick_add', 'fastpick_import', 'fastpick_share');
$head_url = '?' . PICK_GO . 'system_rules&myac=';
pload('F:rules,F:pick,F:copyright,F:output');
$myac = str_replace('fastpick', 'rules', $_GET['myac']);
$tpl = $_GET['tpl'];
if (empty($myac)) {
    $myac = 'rules_list';
}
if ($myac == 'rules_add') {
    $myac = 'rules_edit';
} else {
    if ($myac == 'rules_del') {
        $tpl = 'no';
    } else {
        if ($myac == 'rules_manage') {
            $myac = 'rules_list';
        }
    }
}
if (function_exists($myac)) {
    $info = $myac();
}
$mytemp = $_REQUEST['mytemp'] ? $_REQUEST['mytemp'] : $myac;
if (!$tpl && $tpl != 'no') {
    include template('milu_pick:' . $mytemp);