fix: Fix update checker by adding user agent
This commit is contained in:
@@ -19,6 +19,7 @@ using Newtonsoft.Json;
|
|||||||
using System;
|
using System;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
using System.Xml.Linq;
|
using System.Xml.Linq;
|
||||||
@@ -47,6 +48,8 @@ namespace Cryville.Crtr {
|
|||||||
static FileStream _logFileStream;
|
static FileStream _logFileStream;
|
||||||
static StreamLoggerListener _logWriter;
|
static StreamLoggerListener _logWriter;
|
||||||
|
|
||||||
|
public static string UnityUserAgent { get; private set; }
|
||||||
|
|
||||||
static bool _init;
|
static bool _init;
|
||||||
public static void Init() {
|
public static void Init() {
|
||||||
if (_init) return;
|
if (_init) return;
|
||||||
@@ -177,6 +180,32 @@ namespace Cryville.Crtr {
|
|||||||
Settings.Default.LastRunVersion = Application.version;
|
Settings.Default.LastRunVersion = Application.version;
|
||||||
Settings.Default.Save();
|
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");
|
MainLogger.Log(1, "UI", "Initializing font manager");
|
||||||
foreach (var res in Resources.LoadAll<TextAsset>("cldr/common/validity")) {
|
foreach (var res in Resources.LoadAll<TextAsset>("cldr/common/validity")) {
|
||||||
IdValidity.Load(LoadXmlDocument(res));
|
IdValidity.Load(LoadXmlDocument(res));
|
||||||
|
@@ -47,7 +47,7 @@ namespace Cryville.Crtr.Network {
|
|||||||
}
|
}
|
||||||
void CheckVersion() {
|
void CheckVersion() {
|
||||||
using (var client = new HttpClient()) {
|
using (var client = new HttpClient()) {
|
||||||
client.Connect();
|
client.DefaultRequestHeaders.UserAgent.ParseAdd(Game.UnityUserAgent);
|
||||||
using var response = client.GetAsync(new Uri(BaseUri, "versions")).Result;
|
using var response = client.GetAsync(new Uri(BaseUri, "versions")).Result;
|
||||||
var data = response.Content.ReadAsStringAsync().Result;
|
var data = response.Content.ReadAsStringAsync().Result;
|
||||||
_versions = JsonConvert.DeserializeObject<List<VersionInfo>>(data, Game.GlobalJsonSerializerSettings);
|
_versions = JsonConvert.DeserializeObject<List<VersionInfo>>(data, Game.GlobalJsonSerializerSettings);
|
||||||
@@ -132,7 +132,7 @@ namespace Cryville.Crtr.Network {
|
|||||||
void Download(VersionResourceInfo diff, string path) {
|
void Download(VersionResourceInfo diff, string path) {
|
||||||
var uri = new Uri(diff.url);
|
var uri = new Uri(diff.url);
|
||||||
using var client = new HttpClient();
|
using var client = new HttpClient();
|
||||||
client.Connect();
|
client.DefaultRequestHeaders.UserAgent.ParseAdd(Game.UnityUserAgent);
|
||||||
using var response = client.GetAsync(uri).Result;
|
using var response = client.GetAsync(uri).Result;
|
||||||
using var stream = response.Content.ReadAsStreamAsync().Result;
|
using var stream = response.Content.ReadAsStreamAsync().Result;
|
||||||
using var file = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None);
|
using var file = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None);
|
||||||
|
Reference in New Issue
Block a user