i
This commit is contained in:
gr
2026-10-22 11:12:29 +08:00
480 changed files with 9840 additions and 953 deletions
@@ -37,6 +37,36 @@ class DesktopWorkstationLogic extends BaseLogic
public static function getConfig(): array
{
return self::present(self::loadStored());
}
/** 医生公告使用的安装包清单,与自动升级检测开关独立。 */
public static function downloads(): array
{
return self::downloadCatalog(self::getConfig());
}
public static function downloadCatalog(array $config): array
{
$labels = [
'windows_x64' => 'Windows 64位',
'macos_arm64' => 'macOS(Apple芯片)',
'macos_x64' => 'macOS(Intel芯片)',
];
$packages = [];
foreach (self::PLATFORMS as $platform) {
$package = self::plainPackage((array) ($config['packages'][$platform] ?? []), $platform);
$url = parse_url($package['url']);
if (!is_array($url) || !in_array(strtolower($url['scheme'] ?? ''), ['https', 'http'], true)
|| empty($url['host']) || isset($url['user']) || isset($url['pass'])
|| !preg_match('/^[a-f0-9]{64}$/', $package['sha256'])) {
continue;
}
$packages[] = ['platform' => $platform, 'label' => $labels[$platform]] + $package;
}
return [
'version' => self::normalizeVersion((string) ($config['latest_version'] ?? '')),
'packages' => $packages,
];
}
/**