implemented version map generation for /versioncheck
This commit is contained in:
@@ -39,12 +39,10 @@ namespace RothenburgAR.Updater
|
|||||||
{
|
{
|
||||||
// check for updates and ask for permission to download if there are any
|
// check for updates and ask for permission to download if there are any
|
||||||
|
|
||||||
//TODO generate versionmap (i guess by crawling all subdirs of /exhibitions)
|
string versionMap = GenerateVersionMap();
|
||||||
string versionMap = "[]";
|
|
||||||
HttpHandler http = new HttpRequest(ApiInfo.VersionCheckEndpoint, HttpVerb.POST, versionMap).send();
|
HttpHandler http = new HttpRequest(ApiInfo.VersionCheckEndpoint, HttpVerb.POST, versionMap).send();
|
||||||
httpHandlers.Add(http);
|
httpHandlers.Add(http);
|
||||||
|
|
||||||
// httpHandler.operation.progress needs to be polled
|
|
||||||
http.operation.completed += ar =>
|
http.operation.completed += ar =>
|
||||||
{
|
{
|
||||||
if (CheckNetworkErrors(http))
|
if (CheckNetworkErrors(http))
|
||||||
@@ -54,7 +52,7 @@ namespace RothenburgAR.Updater
|
|||||||
|
|
||||||
Debug.Log(http.download.text);
|
Debug.Log(http.download.text);
|
||||||
|
|
||||||
//versionAnswer = JsonConvert.DeserializeObject<VersioncheckAnswer>(httpHandler.download.text);
|
//VersionAnswer = JsonConvert.DeserializeObject<VersioncheckAnswer>(http.download.text);
|
||||||
VersionAnswer = JsonConvert.DeserializeObject<VersioncheckAnswer>(@"{""languages"":[""de"",""en""],""data"":[{""id"":""006e164c-5e31-4ddf-adf5-df7016c8b3a8"",""meta"":{""status"":""ok"",""updateUrl"":""https://lambdalike.pa.kaim.network/meta/006e164c-5e31-4ddf-adf5-df7016c8b3a7/{lang}""},""tracker"":{""status"":""ok"",""updateUrl"":""https://lambdalike.pa.kaim.network/meta/006e164c-5e31-4ddf-adf5-df7016c8b3a7/{lang}""}},{""id"":""006e164c-5e31-4ddf-adf5-df7016c8b3a7"",""meta"":{""status"":""updated"",""updateUrl"":""https://lambdalike.pa.kaim.network/meta/006e164c-5e31-4ddf-adf5-df7016c8b3a7/{lang}""},""tracker"":{""status"":""ok"",""updateUrl"":""https://lambdalike.pa.kaim.network/meta/006e164c-5e31-4ddf-adf5-df7016c8b3a7/{lang}""}}]}");
|
VersionAnswer = JsonConvert.DeserializeObject<VersioncheckAnswer>(@"{""languages"":[""de"",""en""],""data"":[{""id"":""006e164c-5e31-4ddf-adf5-df7016c8b3a8"",""meta"":{""status"":""ok"",""updateUrl"":""https://lambdalike.pa.kaim.network/meta/006e164c-5e31-4ddf-adf5-df7016c8b3a7/{lang}""},""tracker"":{""status"":""ok"",""updateUrl"":""https://lambdalike.pa.kaim.network/meta/006e164c-5e31-4ddf-adf5-df7016c8b3a7/{lang}""}},{""id"":""006e164c-5e31-4ddf-adf5-df7016c8b3a7"",""meta"":{""status"":""updated"",""updateUrl"":""https://lambdalike.pa.kaim.network/meta/006e164c-5e31-4ddf-adf5-df7016c8b3a7/{lang}""},""tracker"":{""status"":""ok"",""updateUrl"":""https://lambdalike.pa.kaim.network/meta/006e164c-5e31-4ddf-adf5-df7016c8b3a7/{lang}""}}]}");
|
||||||
|
|
||||||
if (VersionAnswer.data.TrueForAll(d => d.Meta.Status == VersionStatus.ok && d.Tracker.Status == VersionStatus.ok))
|
if (VersionAnswer.data.TrueForAll(d => d.Meta.Status == VersionStatus.ok && d.Tracker.Status == VersionStatus.ok))
|
||||||
@@ -75,6 +73,32 @@ namespace RothenburgAR.Updater
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string GenerateVersionMap()
|
||||||
|
{
|
||||||
|
string result = "{";
|
||||||
|
|
||||||
|
var rootDir = new DirectoryInfo(PathHelper.ExhibitionPath);
|
||||||
|
var exhibitionDirs = rootDir.GetDirectories().ToList();
|
||||||
|
exhibitionDirs.ForEach(dir =>
|
||||||
|
{
|
||||||
|
var subdir = dir.GetDirectories().ToList().First();
|
||||||
|
if (subdir == null) return;
|
||||||
|
|
||||||
|
var metaFilePath = Path.Combine(subdir.FullName, "meta.json");
|
||||||
|
if (!File.Exists(metaFilePath)) return;
|
||||||
|
|
||||||
|
var exhibits = JsonConvert.DeserializeObject<List<Exhibit>>(File.ReadAllText(metaFilePath));
|
||||||
|
foreach (var exhibit in exhibits)
|
||||||
|
{
|
||||||
|
result += @"""{id}"":""{version}"",".Replace("{id}", exhibit.Id).Replace("{version}", exhibit.UpdatedTime.ToString());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
result = result.Substring(0, result.Length - 1);
|
||||||
|
result += "}";
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
private void TriggerUpdate()
|
private void TriggerUpdate()
|
||||||
{
|
{
|
||||||
// TODO create centralized network error feedback hub thing
|
// TODO create centralized network error feedback hub thing
|
||||||
|
|||||||
Reference in New Issue
Block a user