作者 刘锟

update

... ... @@ -5,6 +5,7 @@ namespace App\Console\Commands\Update;
use App\Models\Collect\CollectSource;
use App\Models\Collect\CollectTask;
use App\Models\Com\UpdateLog;
use App\Models\Com\UpdateOldInfo;
use App\Models\RouteMap\RouteMap;
use App\Services\CosService;
use App\Services\ProjectServer;
... ... @@ -77,7 +78,7 @@ class HtmlCollect extends Command
$collect_info->save();
//获取站点原始域名信息
$old_info = getOldDomain($project_id, $collect_info->domain);
$old_info = UpdateOldInfo::getOldDomain($project_id, $collect_info->domain);
//采集html页面,下载资源到本地并替换
try {
... ...
... ... @@ -5,6 +5,7 @@ namespace App\Console\Commands\Update;
use App\Models\Collect\CollectSource;
use App\Models\Collect\CollectTask;
use App\Models\Com\UpdateLog;
use App\Models\Com\UpdateOldInfo;
use App\Models\RouteMap\RouteMap;
use App\Services\CosService;
use App\Services\ProjectServer;
... ... @@ -143,7 +144,7 @@ class HtmlCustomCollect extends Command
echo 'date:' . date('Y-m-d H:i:s') . ', project_id: ' . $project_id . ', page: ' . $page . ', collect start' . PHP_EOL;
//获取站点原始域名信息
$old_info = getOldDomain($project_id, $domain);
$old_info = UpdateOldInfo::getOldDomain($project_id, $domain);
//采集html页面,下载资源到本地并替换
try {
... ...
... ... @@ -5,6 +5,7 @@ namespace App\Console\Commands\Update;
use App\Models\Collect\CollectSource;
use App\Models\Collect\CollectTask;
use App\Models\Com\UpdateLog;
use App\Models\Com\UpdateOldInfo;
use App\Models\RouteMap\RouteMap;
use App\Services\CosService;
use App\Services\ProjectServer;
... ... @@ -77,7 +78,7 @@ class HtmlLanguageCollect extends Command
$collect_info->save();
//获取站点正式和测试域名
$old_info = getOldDomain($project_id, $collect_info->domain);
$old_info = UpdateOldInfo::getOldDomain($project_id, $collect_info->domain);
//采集html页面,下载资源到本地并替换
try {
... ... @@ -258,7 +259,7 @@ class HtmlLanguageCollect extends Command
(empty($scheme) || $scheme == 'https' || $scheme == 'http')
&& (empty($host) || (strpos($web_url_domain, $host) !== false) || (strpos($home_url, $host) !== false))
&& $path
&& (substr($path,0,1) == '/')
&& (substr($path, 0, 1) == '/')
&& (strpos($path, '.') !== false)
&& (!in_array(end($path_arr), ['html', 'php', 'com', 'xml']))
) {
... ...
... ... @@ -9,6 +9,7 @@ use App\Models\Blog\Blog;
use App\Models\Collect\CollectSource;
use App\Models\Collect\CollectTask;
use App\Models\Com\UpdateLog;
use App\Models\Com\UpdateOldInfo;
use App\Models\News\News;
use App\Models\News\NewsCategory;
use App\Models\Product\Category;
... ... @@ -83,7 +84,7 @@ class ProjectUpdate extends Command
$task->save();
//获取站点原始域名信息
$old_info = getOldDomain($project_id, $domain_arr['host']);
$old_info = UpdateOldInfo::getOldDomain($project_id, $domain_arr['host']);
$link_type = $old_info['link_type'];
$web_url_domain = $old_info['web_url_domain'];
$home_url = $old_info['home_url'];
... ...
... ... @@ -691,50 +691,3 @@ function check_remote_url_down($url){
return true;
}
/**
* 获取升级项目原始域名
* @param $project_id
* @param $domain
* @return array
* @author Akun
* @date 2023/12/12 10:52
*/
function getOldDomain($project_id, $domain)
{
$key = 'project_collect_domain_' . $project_id;
$data = Cache::get($key);
if (!$data) {
$link_type = 0;
$web_url_domain = $domain;
$home_url = $domain;
$url_web_config = 'https://' . $domain . '/wp-content/cache/user_config.text';
$data_config = curl_c($url_web_config);
if ($data_config) {
$link_type = $data_config['link_type'] ?? 0;
$web_url_arr = parse_url($data_config['web_url_domain'] ?? '');
if (isset($web_url_arr['host'])) {
$web_url_domain = $web_url_arr['host'];
}
$home_url_arr = parse_url($data_config['home_url'] ?? '');
if (isset($home_url_arr['host'])) {
$home_url = $home_url_arr['host'];
}
}
$data = [
'link_type' => $link_type,
'web_url_domain' => $web_url_domain,
'home_url' => $home_url,
];
Cache::add($key, $data, 3600);//缓存1小时
}
return $data;
}
... ...
<?php
namespace App\Models\Com;
use Illuminate\Database\Eloquent\Model;
class UpdateOldInfo extends Model
{
//设置关联表名
protected $table = 'gl_update_old_info';
public static function getOldDomain($project_id, $domain)
{
$return = [
'link_type' => 0,
'home_url' => $domain,
'web_url_domain' => $domain
];
$info = self::where('project_id', $project_id)->first();
if (!$info) {
$url_web_config = 'https://' . $domain . '/wp-content/cache/user_config.text';
$data_config = curl_c($url_web_config);
if ($data_config) {
$link_type = $data_config['link_type'] ?? 0;
$home_url_arr = parse_url($data_config['home_url'] ?? '');
$old_domain_test = $home_url_arr['host'] ?? '';
$web_url_arr = parse_url($data_config['web_url_domain'] ?? '');
$old_domain_online = $web_url_arr['host'] ?? '';
if ($link_type && $old_domain_test && $old_domain_online) {
$info = new self();
$info->project_id = $project_id;
$info->link_type = $link_type;
$info->old_domain_test = $old_domain_test;
$info->old_domain_online = $old_domain_online;
$info->save();
$return['link_type'] = $link_type;
$return['home_url'] = $old_domain_test;
$return['web_url_domain'] = $old_domain_online;
}
}
}else{
$return['link_type'] = $info['link_type'];
$return['home_url'] = $info['old_domain_test'];
$return['web_url_domain'] = $info['old_domain_online'];
}
return $return;
}
}
... ...