Align free Shadowrocket ID category and article names

This commit is contained in:
Codex 2026-11-02 15:09:14 +08:00
parent a35789ec4c
commit 6909e32740
2 changed files with 4 additions and 0 deletions

View File

@ -5,6 +5,7 @@
use App\Services\ShadowrocketNaming;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Str;
final class AlignShadowrocketNaming extends Command
@ -29,6 +30,7 @@ public function handle(): int
foreach ($changes as $row) DB::table('articles')->where('id', $row->id)->update(['sTitle' => ShadowrocketNaming::align($row->sTitle), 'sTitleSub' => ShadowrocketNaming::align($row->sTitleSub ?? '')]);
return $changes->count();
});
if ($this->option('apply')) Cache::forget('global_nav_tree');
$this->info(json_encode(['apply' => (bool) $this->option('apply'), 'articles' => $count], JSON_UNESCAPED_UNICODE));
return self::SUCCESS;
}

View File

@ -5,3 +5,5 @@ # 免费小火箭ID命名对齐
实现:ShadowrocketNaming统一标题/摘要中的称呼,接收接口对未来文章同样处理;AppleID页头改称免费小火箭ID。`shadowrocket:align-naming --apply`先备份分类和文章元数据,再定点更新类别名称/说明及该类别文章标题/摘要,不触及URL、正文、账号密码、时间或点赞。默认只预览,重复执行不重复改写。原正文解析继续兼容上游“免费苹果账号”标题,不改采集源或其他站点。
发布与验收回执:`output/shadowrocket-name-20261102/`,按生产当前HEAD建立独立worktree、Git推送并精确检出,命名元数据快照留服务器`storage/app/private/category-backups/`。回退需用本次快照只恢复相关分类/标题/摘要;应用回退对应发布前SHA,不整库覆盖。
导航缓存修复:原命名命令用DB定点更新,未触发Categories模型的saved事件,遗留24小时global_nav_tree缓存。现apply后显式清除此键(包括幂等重复执行),随后刷新响应缓存;验收必须读取指向/shadowrocketids的导航链接文字,不能仅检查正文包含新名称。