作者 赵彬吉
... ... @@ -9,7 +9,6 @@ use App\Models\RouteMap\RouteMap;
use App\Services\CosService;
use App\Services\ProjectServer;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Redis;
... ... @@ -77,8 +76,8 @@ class HtmlCollect extends Command
$collect_info->status = CollectTask::STATUS_ING;
$collect_info->save();
//获取站点正式和测试域名
$old_info = $this->getOldDomain($project_id, $collect_info->domain);
//获取站点原始域名信息
$old_info = getOldDomain($project_id, $collect_info->domain);
//采集html页面,下载资源到本地并替换
try {
... ... @@ -183,42 +182,6 @@ class HtmlCollect extends Command
return $task_id;
}
//获取站点老域名
protected function getOldDomain($project_id, $domain)
{
$key = 'project_collect_domain_' . $project_id;
$data = Cache::get($key);
if (!$data) {
$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) {
$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 = [
'web_url_domain' => $web_url_domain,
'home_url' => $home_url,
];
Cache::add($key, $data, 3600);//缓存1小时
}
return $data;
}
//正则匹配html资源
protected function html_preg($html, $project_id, $domain, $web_url_domain, $home_url)
{
... ...
... ... @@ -9,7 +9,6 @@ use App\Models\RouteMap\RouteMap;
use App\Services\CosService;
use App\Services\ProjectServer;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Redis;
... ... @@ -78,7 +77,7 @@ class HtmlLanguageCollect extends Command
$collect_info->save();
//获取站点正式和测试域名
$old_info = $this->getOldDomain($project_id, $collect_info->domain);
$old_info = getOldDomain($project_id, $collect_info->domain);
//采集html页面,下载资源到本地并替换
try {
... ... @@ -183,42 +182,6 @@ class HtmlLanguageCollect extends Command
return $task_id;
}
//获取站点老域名
protected function getOldDomain($project_id, $domain)
{
$key = 'project_collect_lan_domain_' . $project_id;
$data = Cache::get($key);
if (!$data) {
$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) {
$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 = [
'web_url_domain' => $web_url_domain,
'home_url' => $home_url,
];
Cache::add($key, $data, 3600);//缓存1小时
}
return $data;
}
//正则匹配html资源
protected function html_preg($html, $project_id, $domain, $web_url_domain, $home_url)
{
... ...
... ... @@ -73,6 +73,7 @@ class ProjectUpdate extends Command
$api_type = $task->api_type;
$api_url_arr = explode('?', $task->api_url);
$api_url = $api_url_arr[0];
$domain_arr = parse_url($api_url);
$page_size = 20;
... ... @@ -81,26 +82,12 @@ class ProjectUpdate extends Command
$task->status = UpdateLog::STATUS_ING;//同步中
$task->save();
$domain_arr = parse_url($api_url);
//获取网站配置
$link_type = 0;
$web_url_domain = $domain_arr['host'];
$home_url = $domain_arr['host'];
$url_web_config = 'https://' . $domain_arr['host'] . '/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'];
}
//获取站点原始域名信息
$old_info = 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'];
$home_url_arr = parse_url($data_config['home_url'] ?? '');
if (isset($home_url_arr['host'])) {
$home_url = $home_url_arr['host'];
}
}
//获取所有语种
$language_list = [];
$url_language = 'https://' . $domain_arr['host'] . '/wp-content/plugins/proofreading/json/user_language.json';
... ... @@ -108,6 +95,7 @@ class ProjectUpdate extends Command
if ($data_language) {
$language_list = array_column($data_language, 'short');
}
//获取所有页面
$page_list = [];
$url_page = 'https://' . $domain_arr['host'] . '/wp-content/cache/pages_list.json';
... ... @@ -623,8 +611,11 @@ class ProjectUpdate extends Command
$url_complete = ($scheme ?: 'https') . '://' . ($host ?: $domain) . $path;
if ((empty($host) || $host == $web_url_domain || $host == $home_url) && $path) {
if (
(empty($scheme) || $scheme == 'https' || $scheme == 'http')
&& (empty($host) || (strpos($web_url_domain, $host) !== false) || (strpos($home_url, $host) !== false))
&& $path
) {
$source = CollectSource::where('project_id', $project_id)->where('origin', $url)->first();
if (!$source) {
$new_url = CosService::uploadRemote($project_id, 'image_product', $url_complete);
... ...
... ... @@ -53,14 +53,10 @@ class UpdateRoute extends Command
* @time :2023/11/20 15:13
*/
public function handle(){
$projectModel = new Project();
$lists = $projectModel->list(['is_upgrade'=>0,'type'=>['!=',0]]);
foreach ($lists as $k => $v){
ProjectServer::useProject($v['id']);
$this->getProductKeyword($v['id']);
DB::disconnect('custom_mysql');
}
echo date('Y-m-d H:i:s') . ' end: 项目id为' . $v['id'] . PHP_EOL;
ProjectServer::useProject(75);
$this->getProductKeyword();
DB::disconnect('custom_mysql');
echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
}
/**
... ... @@ -70,12 +66,32 @@ class UpdateRoute extends Command
* @method :post
* @time :2023/12/8 11:13
*/
public function getProductKeyword($id){
public function getProductKeyword(){
$keywordModel = new Keyword();
$lists = $keywordModel->list(['route'=>['like','%-1-2-%']]);
$lists = $keywordModel->list(['route'=>null]);
if(!empty($lists)){
echo date('Y-m-d H:i:s') . ' 错误id:' . $id . PHP_EOL;
foreach ($lists as $v){
echo date('Y-m-d H:i:s') . 'id :'.$v['id'] . PHP_EOL;
$route = RouteMap::setRoute($v['title'], RouteMap::SOURCE_PRODUCT_KEYWORD, $v['id'], 75);
$this->curlDelRoute(['new_route'=>$route]);
$keywordModel->edit(['route'=>$route],['id'=>$v['id']]);
echo date('Y-m-d H:i:s') . 'end :'.$route . PHP_EOL;
}
}
}
/**
* @remark :删除路由通知C端
* @name :curlDelRoute
* @author :lyh
* @method :post
* @time :2023/11/30 14:43
*/
public function curlDelRoute($data){
$data['project_id'] = 75;
$str = http_build_query($data);
$url = 'https://www.zrutong.com/api/delHtml/?'.$str;
curlGet($url);
return true;
}
}
... ...
... ... @@ -9,6 +9,7 @@ use GuzzleHttp\Client;
use GuzzleHttp\Exception\GuzzleException;
use Illuminate\Support\Carbon;
use App\Models\File\File;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Redis;
define('HTTP_OPENAI_URL', 'http://openai.waimaoq.com/');
... ... @@ -654,6 +655,7 @@ function redis_add($key,$val,$ttl=3600){
* 判断远程地址是否需要下载
* @param $url
* @author Akun
* @return bool
* @date 2023/12/08 14:17
*/
function check_remote_url_down($url){
... ... @@ -689,3 +691,50 @@ 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;
}
... ...
... ... @@ -126,7 +126,6 @@ class KeywordLogic extends BaseLogic
*/
public function batchAdd(){
try {
$idArr = [];
foreach ($this->param['title'] as $v){
$this->model = new Keyword();
$info = $this->model->read(['title'=>$v]);
... ... @@ -136,16 +135,11 @@ class KeywordLogic extends BaseLogic
$param['updated_at'] = $param['created_at'];
$param['title'] = $v;
$id = $this->model->insertGetId($param);
$idArr[] = ['id'=>$id,'title'=>$v];
$route = RouteMap::setRoute($v, RouteMap::SOURCE_PRODUCT_KEYWORD, $id, $this->user['project_id']);
$this->curlDelRoute(['new_route'=>$route]);
$this->model->edit(['route'=>$route],['id'=>$id]);
}
}
//批量生成路由
foreach ($idArr as $v){
$this->model = new Keyword();
$route = RouteMap::setRoute($v['title'], RouteMap::SOURCE_PRODUCT_KEYWORD, $v['id'], $this->user['project_id']);
$this->curlDelRoute(['new_route'=>$route]);
$this->model->edit(['route'=>$route],['id'=>$v['id']]);
}
}catch (\Exception $e){
$this->fail('error');
}
... ...