fix: Fix update checker by adding user agent
This commit is contained in:
@@ -19,6 +19,7 @@ using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.Linq;
|
||||
@@ -47,6 +48,8 @@ namespace Cryville.Crtr {
|
||||
static FileStream _logFileStream;
|
||||
static StreamLoggerListener _logWriter;
|
||||
|
||||
public static string UnityUserAgent { get; private set; }
|
||||
|
||||
static bool _init;
|
||||
public static void Init() {
|
||||
if (_init) return;
|
||||
@@ -177,6 +180,32 @@ namespace Cryville.Crtr {
|
||||
Settings.Default.LastRunVersion = Application.version;
|
||||
Settings.Default.Save();
|
||||
|
||||
#if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN
|
||||
UnityUserAgent = string.Format(
|
||||
CultureInfo.InvariantCulture,
|
||||
"CosmoResona/{0} (Windows NT {1}; {2})",
|
||||
Application.version,
|
||||
Environment.OSVersion.Version,
|
||||
RuntimeInformation.OSArchitecture.ToString().ToLowerInvariant()
|
||||
);
|
||||
#elif UNITY_ANDROID
|
||||
var androidClassBuildVersion = AndroidJNI.FindClass("android/os/Build$VERSION");
|
||||
var androidRelease = AndroidJNI.GetStaticStringField(androidClassBuildVersion, AndroidJNI.GetStaticFieldID(androidClassBuildVersion, "RELEASE", "Ljava/lang/String;"));
|
||||
var androidClassBuild = AndroidJNI.FindClass("android/os/Build");
|
||||
var androidModel = AndroidJNI.GetStaticStringField(androidClassBuild, AndroidJNI.GetStaticFieldID(androidClassBuild, "MODEL", "Ljava/lang/String;"));
|
||||
var androidID = AndroidJNI.GetStaticStringField(androidClassBuild, AndroidJNI.GetStaticFieldID(androidClassBuild, "ID", "Ljava/lang/String;"));
|
||||
UnityUserAgent = string.Format(
|
||||
CultureInfo.InvariantCulture,
|
||||
"CosmoResona/{0} (Linux; Android {1}; {2} Build/{3})",
|
||||
Application.version,
|
||||
androidRelease ?? "12.0.99",
|
||||
androidModel,
|
||||
androidID
|
||||
);
|
||||
#else
|
||||
#error No Unity User Agent
|
||||
#endif
|
||||
|
||||
MainLogger.Log(1, "UI", "Initializing font manager");
|
||||
foreach (var res in Resources.LoadAll<TextAsset>("cldr/common/validity")) {
|
||||
IdValidity.Load(LoadXmlDocument(res));
|
||||
|
@@ -47,7 +47,7 @@ namespace Cryville.Crtr.Network {
|
||||
}
|
||||
void CheckVersion() {
|
||||
using (var client = new HttpClient()) {
|
||||
client.Connect();
|
||||
client.DefaultRequestHeaders.UserAgent.ParseAdd(Game.UnityUserAgent);
|
||||
using var response = client.GetAsync(new Uri(BaseUri, "versions")).Result;
|
||||
var data = response.Content.ReadAsStringAsync().Result;
|
||||
_versions = JsonConvert.DeserializeObject<List<VersionInfo>>(data, Game.GlobalJsonSerializerSettings);
|
||||
@@ -132,7 +132,7 @@ namespace Cryville.Crtr.Network {
|
||||
void Download(VersionResourceInfo diff, string path) {
|
||||
var uri = new Uri(diff.url);
|
||||
using var client = new HttpClient();
|
||||
client.Connect();
|
||||
client.DefaultRequestHeaders.UserAgent.ParseAdd(Game.UnityUserAgent);
|
||||
using var response = client.GetAsync(uri).Result;
|
||||
using var stream = response.Content.ReadAsStreamAsync().Result;
|
||||
using var file = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None);
|
||||
|
Reference in New Issue
Block a user