diff --git a/system/api.php b/system/api.php index 0347407..a534532 100644 --- a/system/api.php +++ b/system/api.php @@ -677,7 +677,7 @@ function write_link(){ //图标拉取 }elseif($_GET['type'] === 'icon_pull'){ if($global_config['offline']){ - msg(-1,"离线模式禁止下载主题!"); + msg(-1,"离线模式不可用"); } if(!is_subscribe('bool')){ msg(-1,"未检测到有效授权,无法使用该功能!"); @@ -689,25 +689,32 @@ function write_link(){ if(empty($link)){ msg(-1,'请求的链接id不存在'); } - if(empty($_POST['cover']) && !empty($link['icon'])){ - msg(1,'skip');//跳过存在图标的链接 - } $path = DIR ."/data/user/".U."/favicon"; if(!Check_Path($path)){ msg(-1,'创建目录失败,请检查权限'); } + //检查配置 + $config = unserialize( get_db("global_config", "v", ["k" => "icon_config"])) ?? []; + if($config['o_switch'] == '0'){ + msg(-1,'相关服务处于关闭状态,请联系站长开启'); + } + + //跳过存在图标的链接 + if(empty($_POST['cover']) && !empty($link['icon'])){ + msg(1,'skip'); + } + $api = Get_Index_URL().'?c=icon&url='.base64_encode($link['url']); $res = ccurl($api); $data = get_db('global_icon','*',['url_md5'=>md5($link['url'])]); if(empty($data)){ - msg(-1,'fail'); + msg(1,'fail'); } $new_path = "./data/user/".U.'/favicon/'.$data['file_name']; if(copy("./data/icon/{$data['file_name']}",$new_path)){ update_db('user_links',['icon'=>$new_path],['uid'=>UID ,"lid" => $_POST['id'] ],[1,'success']); } - - msg(-1,'fail'); + msg(1,'fail'); }elseif($_GET['type'] == 'extend_list'){ if($GLOBALS['global_config']['link_extend'] != 1 ||!check_purview('link_extend',1)){ @@ -813,11 +820,15 @@ function write_apply(){ if($_GET['type'] == 'set'){ $s['apply'] = intval($_POST['apply']); // 功能选项0.关闭 1.需要审核 2.无需审核 $s['Notice'] = $_POST['Notice']??''; // 公告 + $s['submit_limit'] = intval($_POST['submit_limit']); //提交限制 if($s['apply'] < 0 || $s['apply'] > 2 ){ - msg(-1102,'参数错误!'); + msg(-1,'参数错误!'); }elseif(strlen($s['Notice']) > 512){ - msg(-1102,'公告长度超限!'); + msg(-1,'公告长度超限!'); + }if(empty($_POST['submit_limit']) || !preg_match("/^\d*$/",$_POST['submit_limit'])){ + msg(-1,'提交限制必须为正整数!'); } + write_user_config('apply',$s,'config','收录配置'); msg(1,'保存成功'); }elseif($_GET['type'] == '2'){ //通过 @@ -846,6 +857,7 @@ function write_apply(){ 'url' => $link['url'], 'description' => $link['description'], 'add_time' => time(), + 'up_time' => time(), 'icon' => $link['iconurl'] ]; insert_db('user_links',$data);//插入链接 diff --git a/system/expand/apply.php b/system/expand/apply.php index 5958f10..7e43d6e 100644 --- a/system/expand/apply.php +++ b/system/expand/apply.php @@ -84,7 +84,7 @@ if(isset($url_data['id'])){ // 统计IP 24小时内提交的数量!,超限则拦截! $count = count_db("user_apply", ["uid"=>UID , "ip" => $user_ip ,"time[>]" => time() - 60*60*24]); -if ($count >= 5){ +if ($count >= $apply['submit_limit'] ?? 5){ msg(-1,'您提交的申请数量已达到上限!请明天再试!'); } @@ -112,13 +112,16 @@ if($apply['apply'] == 1){ if(!empty(get_db("user_links","*",["url"=> $url,'uid'=>UID ]))){ msg(-1,'URL已经存在!'); //存在于链接列表中! } + $lid = get_maxid('link_id'); $url_data = [ + 'lid' => $lid, 'uid' => UID, 'fid' => $category_id, 'title' => $title, 'url' => $url, 'description' => $description, 'add_time' => time(), + 'up_time' => time(), 'weight' => 0, 'property' => 0, 'icon' => $iconurl diff --git a/system/icon.php b/system/icon.php index 2f45955..a764fe9 100644 --- a/system/icon.php +++ b/system/icon.php @@ -82,9 +82,9 @@ $favicon_url = url_patch($favicon_url,$url); //if 如果图标类型是base64或者svg则不需要下载 - //匹配图标类型>下载>输出 $suffix = strtolower(end(explode('.',$favicon_url))); +$suffix = strtolower(reset(explode('?',$suffix))); $suffix = preg_match('/^(jpg|jpeg|png|ico|bmp|svg|webp)$/i',$suffix) ? $suffix : 'ico'; //下载图标 > 成功则输出 @@ -184,6 +184,7 @@ function get_html($url,$TIMEOUT = 5){ function down_ico($ico_url, $savePath = './data/temp/',$referer = '',$TIMEOUT = 60){ $suffix = strtolower(end(explode('.',$ico_url))); + $suffix = strtolower(reset(explode('?',$suffix))); //截取?前面的 if(!preg_match('/^(jpg|jpeg|png|ico|bmp|svg|webp)$/i',$suffix)){ $suffix = 'ico'; //没匹配到后缀名则默认为ico } diff --git a/system/version.txt b/system/version.txt index eaff14d..8468c20 100644 --- a/system/version.txt +++ b/system/version.txt @@ -1 +1 @@ -v2.0.22-20230523 \ No newline at end of file +v2.0.23-20230527 \ No newline at end of file diff --git a/templates/admin/js/home-root.js b/templates/admin/js/home-root.js index 54f23e2..519416f 100644 --- a/templates/admin/js/home-root.js +++ b/templates/admin/js/home-root.js @@ -63,7 +63,7 @@ layui.use(['layer','miniTab'], function(){ }else{ i++; } - $("#layui-layer"+ msg_id+" .layui-layer-padding").html('[ ' + i + ' / ' + up_info.info.length + ' ] ' + up_info.info[i-1]); + $("#layui-layer"+ msg_id+" .layui-layer-padding").html('[ ' + i + ' / ' + up_info.info.length + ' ] ' + up_info.info[i-1]); $.post(get_api("other_upsys"),{"i":i}, function(data, status) { if (data.code == 1) { diff --git a/templates/admin/js/link_list.js b/templates/admin/js/link_list.js index 01046b3..0d953e9 100644 --- a/templates/admin/js/link_list.js +++ b/templates/admin/js/link_list.js @@ -278,6 +278,10 @@ layui.use(['form','table','dropdown','miniTab'], function () { fail ++; }else if(data.msg == 'skip'){ skip ++; + }else{ + layer.closeAll(); + layer.alert(data.msg,{icon:2,title:'信息',anim: 2,shadeClose: false,closeBtn: 0}); + return true; } i ++; icon_pull(i); diff --git a/templates/admin/page/expand/apply-admin.php b/templates/admin/page/expand/apply-admin.php index 4055b19..39c0d39 100644 --- a/templates/admin/page/expand/apply-admin.php +++ b/templates/admin/page/expand/apply-admin.php @@ -43,13 +43,21 @@ $title='收录管理';$awesome=true; require dirname(__DIR__).'/header.php'; +