From 70116ef09afb85b69cacb210ac376f562235bf6a Mon Sep 17 00:00:00 2001 From: qiin2333 <414382190@qq.com> Date: Tue, 14 Jan 2025 17:33:57 +0800 Subject: [PATCH] fix: version compare --- src_assets/common/assets/web/index.html | 279 +++++++++--------- .../common/assets/web/sunshine_version.js | 59 ++-- 2 files changed, 176 insertions(+), 162 deletions(-) diff --git a/src_assets/common/assets/web/index.html b/src_assets/common/assets/web/index.html index 7f39928e50e..d375f703876 100644 --- a/src_assets/common/assets/web/index.html +++ b/src_assets/common/assets/web/index.html @@ -1,156 +1,165 @@ + + <%- header %> + - - <%- header %> - - - - -
-

{{ $t('index.welcome') }}

-

{{ $t('index.description') }}

-
-
- -

-
-
- - View Logs -
- -
-
-

Version {{version.version}}

-
-
- {{ $t('index.loading_latest') }} -
-
- {{ $t('index.version_dirty') }} 🌇 + + +
+

{{ $t('index.welcome') }}

+

{{ $t('index.description') }}

+
+
+ +

+
-
- {{ $t('index.installed_version_not_stable') }} -
-
-
- {{ $t('index.version_latest') }} +
    +
  • {{v.value}}
  • +
+ View Logs +
+ +
+
+

Version {{version.version}}

+
+
{{ $t('index.loading_latest') }}
+
{{ $t('index.version_dirty') }} 🌇
+
+ {{ $t('index.installed_version_not_stable') }}
-
-
-
-
-
有新的 基地版 sunshine可以更新!
- {{ $t('index.download') - }} +
+
{{ $t('index.version_latest') }}
+
+
+
+
+
有新的 基地版 sunshine可以更新!
+ {{ $t('index.download') }} +
+
{{preReleaseVersion.release.name}}
+
{{preReleaseVersion.release.body}}
-
{{preReleaseVersion.release.name}}
-
{{preReleaseVersion.release.body}}
-
-
-
-
-
{{ $t('index.new_stable') }}
- {{ $t('index.download') }} +
+
+
+
{{ $t('index.new_stable') }}
+ {{ $t('index.download') }} +
+

{{githubVersion.release.name}}

+

             
-

{{githubVersion.release.name}}

-

           
+ +
+ +
- -
- -
-
- + - + initApp(app) + + diff --git a/src_assets/common/assets/web/sunshine_version.js b/src_assets/common/assets/web/sunshine_version.js index e26d80fee2a..9cb0015b6f2 100644 --- a/src_assets/common/assets/web/sunshine_version.js +++ b/src_assets/common/assets/web/sunshine_version.js @@ -1,55 +1,60 @@ class SunshineVersion { constructor(release = null, version = null) { if (release) { - this.release = release; - this.version = release.tag_name; - this.versionName = release.name; - this.versionTag = release.tag_tag; + this.release = release + this.version = release.tag_name + this.versionName = release.name + this.versionTag = release.tag_tag } else if (version) { - this.release = null; - this.version = version; - this.versionName = null; - this.versionTag = null; + this.release = null + this.version = version + this.versionName = null + this.versionTag = null } else { - throw new Error('Either release or version must be provided'); + throw new Error('Either release or version must be provided') } - this.versionParts = this.parseVersion(this.version); - this.versionMajor = this.versionParts ? this.versionParts[0] : null; - this.versionMinor = this.versionParts ? this.versionParts[1] : null; - this.versionPatch = this.versionParts ? this.versionParts[2] : null; + this.versionParts = this.parseVersion(this.version) + this.versionMajor = this.versionParts ? this.versionParts[0] : null + this.versionMinor = this.versionParts ? this.versionParts[1] : null + this.versionPatch = this.versionParts ? this.versionParts[2] : null } parseVersion(version) { if (!version) { - return null; + return null } - let v = version; - if (v.indexOf("v") === 0) { - v = v.substring(1); + let v = version + if (v.indexOf('v') === 0) { + v = v.substring(1) } - return v.split('.').map(Number); + return v.split('.').map(Number) } isGreater(otherVersion) { - let otherVersionParts; + let otherVersionParts if (otherVersion instanceof SunshineVersion) { - otherVersionParts = otherVersion.versionParts; + otherVersionParts = otherVersion.versionParts } else if (typeof otherVersion === 'string') { - otherVersionParts = this.parseVersion(otherVersion); + otherVersionParts = this.parseVersion(otherVersion) } else { - throw new Error('Invalid argument: otherVersion must be a SunshineVersion object or a version string'); + throw new Error('Invalid argument: otherVersion must be a SunshineVersion object or a version string') } if (!this.versionParts || !otherVersionParts) { - return false; + return false } for (let i = 0; i < Math.min(3, this.versionParts.length, otherVersionParts.length); i++) { - if (this.versionParts[i] > otherVersionParts[i]) { - return true; + const v1 = this.versionParts[i] + const v2 = otherVersionParts[i] + if (v1 > v2) { + return true + } + if (v1 < v2) { + return false } } - return false; + return false } } -export default SunshineVersion; +export default SunshineVersion