diff --git a/include/constants.php b/include/constants.php index 7216ad48..b8122a79 100644 --- a/include/constants.php +++ b/include/constants.php @@ -1,6 +1,6 @@ migrateToModeRelated(); } + /** + * 初始化,注意这里不能使用 get_tracker_schema_and_host()。里面会调用 TrackerUrl, 这本来就是要往里面插入数据 + * + * @param string $scene install or update + * @return void + */ + public function initTrackerUrl(string $scene): void + { + if ($scene == "update") { + $announceUrl = get_setting("security.https_announce_url"); + if (empty($announceUrl)) { + $announceUrl = get_setting("basic.announce_url"); + } + } + if (empty($announceUrl)) { + $announceUrl = sprintf( + "%s/%s", + trim($_SERVER['HTTP_HOST'], '/'), trim(DEFAULT_TRACKER_URI, '/') + ); + } + if (!str_starts_with($announceUrl, "http")) { + $announceUrl = (isHttps() ? "https://" : "http://"). $announceUrl; + } + TrackerUrl::query()->create([ + "url" => $announceUrl, + "enabled" => 1, + "is_default" => 1, + ]); + TrackerUrl::saveUrlCache(); + $this->doLog("[initTrackerUrl] $announceUrl success."); + } + } diff --git a/nexus/Install/Update.php b/nexus/Install/Update.php index d832a82d..f171e75c 100644 --- a/nexus/Install/Update.php +++ b/nexus/Install/Update.php @@ -364,19 +364,7 @@ class Update extends Install } if (!Schema::hasTable("tracker_urls")) { $this->runMigrate("database/migrations/2025_06_19_194137_create_tracker_urls_table.php"); - $announceUrl = get_setting("security.https_announce_url"); - if (empty($announceUrl)) { - $announceUrl = get_setting("basic.announce_url"); - } - if (!str_starts_with($announceUrl, "http")) { - $announceUrl = (isHttps() ? "https://" : "http://"). $announceUrl; - } - TrackerUrl::query()->create([ - "url" => $announceUrl, - "enabled" => 1, - "is_default" => 1, - ]); - TrackerUrl::saveUrlCache(); + $this->initTrackerUrl('update'); NexusDB::cache_del("nexus_plugin_store_all"); } } diff --git a/nexus/Install/install/install.php b/nexus/Install/install/install.php index cfbd053d..d311059e 100644 --- a/nexus/Install/install/install.php +++ b/nexus/Install/install/install.php @@ -112,6 +112,7 @@ if ($currentStep == 4) { $install->runDatabaseSeeder(); $install->saveSettings($settings); $install->migrateSearchBoxModeRelated(); + $install->initTrackerUrl('install'); $install->nextStep(); } catch (\Exception $e) { $error = $e->getMessage();