Add project files.

This commit is contained in:
Jose Conde
2025-09-04 10:14:30 +02:00
parent a7a404148c
commit 94e6ef651e
54 changed files with 3134 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
[
{
"name": "PMS50 GTN750",
"msfsVersions": [ "msfs2024" ],
"source": "pms50_gtn750",
"params": {
"url": "https://pms50.com/msfs/"
},
"currentVersionConfig": {
"package": "pms50-instrument-gtn750"
}
},
{
"name": "Teikof SKMZ",
"msfsVersions": [ "msfs2024" ],
"source": "sim_market",
"params": {
"url": "https://secure.simmarket.com/teikof-studio-skmz-la-nubia-airport-msfs.phtml"
},
"currentVersionConfig": {
"package": "teikofstudio-airport-skmz-manizales"
}
},
{
"name": "SWS",
"msfsVersions": [
"msfs2024"
],
"source": "sws",
"params": {
"url": "https://simworksstudios.com/product/kodiak-100-series-ii/",
"regex": "Current Version: (\\d\u002B\\.\\d\u002B\\.\\d\u002B)"
},
"currentVersionConfig": {
"package": "sws-aircraft-kodiak-wheels",
"version": ""
}
},
{
"name": "GSX Pro",
"msfsVersions": [
"msfs2024"
],
"source": "custom",
"params": {
"url": "https://www.fsdreamteam.com/couatl_liveupdate_notes.html",
"regex": "<p>Version (\\d\u002B\\.\\d\u002B\\.\\d\u002B) "
},
"currentVersionConfig": {
"package": "fsdreamteam-gsx-pro",
"version": ""
}
}
]

View File

@@ -0,0 +1,86 @@
[
{
"id": "8",
"name": "PMS50 GTN750",
"msfsVersions": [
"msfs2024"
],
"source": "pms50_gtn750",
"params": {
"url": "https://pms50.com/msfs/",
"regex": "Current version: (\\d\u002B\\.\\d\u002B\\.\\d\u002B)"
},
"fsFields": {
"msfs2024": {
"package": "pms50-instrument-gtn750"
}
}
},
{
"id": "2",
"name": "Teikof SKMZ",
"msfsVersions": [
"msfs2024"
],
"source": "sim_market",
"params": {
"url": "https://secure.simmarket.com/teikof-studio-skmz-la-nubia-airport-msfs.phtml"
},
"fsFields": {
"msfs2024": {
"package": "teikofstudio-airport-skmz-manizales"
}
}
},
{
"id": "3",
"name": "SWS",
"msfsVersions": [
"msfs2024"
],
"source": "sws",
"params": {
"url": "https://simworksstudios.com/product/kodiak-100-series-ii/",
"regex": "Current Version: (\\d\u002B\\.\\d\u002B\\.\\d\u002B)"
},
"fsFields": {
"msfs2024": {
"package": "sws-aircraft-kodiak-wheels"
}
}
},
{
"id": "4",
"name": "GSX Pro",
"msfsVersions": [
"msfs2024"
],
"source": "custom",
"params": {
"url": "https://www.fsdreamteam.com/couatl_liveupdate_notes.html",
"regex": "\u003Cp\u003EVersion (\\d\u002B\\.\\d\u002B\\.\\d\u002B) \u2013"
},
"fsFields": {
"msfs2024": {
"package": "fsdreamteam-gsx-pro"
}
}
},
{
"id": "5",
"name": "Aerostar 600",
"msfsVersions": [
"msfs2024"
],
"source": "a2a",
"params": {
"url": "https://a2asimulations.com/forum/viewforum.php?f=153",
"regex": "Accu-Sim Aerostar 600 \u2013 v(\\d\u002B\\.\\d\u002B\\.\\d\u002B)"
},
"fsFields": {
"msfs2024": {
"package": "a2a-aircraft-aerostar600"
}
}
}
]

View File

@@ -0,0 +1,33 @@
[
{
"name": "scrape",
"params": [
{
"name": "url",
"label": "Url",
"type": "string",
"required": true
},
{
"label": "Regex",
"name": "regex",
"type": "string"
}, {
"label": "Mode",
"name": "mode",
"type": "string"
}
]
},
{
"name": "api",
"params": [
{
"label": "Url",
"name": "url",
"type": "string",
"required": true
}
]
}
]

View File

@@ -0,0 +1,21 @@
{
"intervalMinutes": 60,
"checkOnStartup": false,
"fsModPaths": {
"msfs2024": {
"path": "I:/Microsoft Flight Simulator 2024/Packages/Community/",
"file": "manifest.json",
"fileType": "json",
"key": "package_version",
"fields": [
{
"name": "package",
"label": "Package Name",
"type": "string",
"control": "directory",
"required": true
}
]
}
}
}

View File

@@ -0,0 +1,51 @@
using ModVersionChecker.data.model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
public class AppConfig
{
[JsonPropertyName("id")]
public string Id { get; set; } = string.Empty;
[JsonPropertyName("name")]
public string Name { get; set; } = string.Empty;
[JsonPropertyName("msfsVersions")]
public List<string> MsfsVersions { get; set; } = new List<string> { "msfs2024" }; // Default to msfs2024
[JsonPropertyName("source")]
public string Source { get; set; } = string.Empty;
[JsonPropertyName("params")]
public Dictionary<string, string> Params { get; set; } = new Dictionary<string, string>();
[JsonPropertyName("fsFields")]
public Dictionary<string, Dictionary<string, string>> FsFields { get; set; } = new Dictionary<string, Dictionary<string, string>>();
[JsonPropertyName("downloadUrl")]
public string DownloadUrl { get; set; } = string.Empty;
[JsonPropertyName("currentVersion")]
public string CurrentVersion { get; set; } = string.Empty;
[JsonPropertyName("latestVersion")]
public string LatestVersion { get; set; } = string.Empty;
[JsonPropertyName("status")]
public AppStatus Status { get; set; } = AppStatus.None;
[JsonPropertyName("createdAt")]
public long CreatedAt { get; set; } = 0;
[JsonPropertyName("updatedAt")]
public long UpdatedAt { get; set; } = 0;
[JsonPropertyName("lastCheckedAt")]
public long LastCheckedAt { get; set; } = 0;
}

View File

@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ModVersionChecker.data.model
{
public enum AppStatus
{
None,
UpdateAvailable,
Error,
}
}

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace ModVersionChecker.data.model
{
public class CheckerTypeDef
{
[JsonPropertyName("name")]
public string Name { get; set; } = string.Empty;
[JsonPropertyName("params")]
public List<FieldDef> Params { get; set; } = new List<FieldDef>();
}
}

View File

@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace ModVersionChecker.data.model
{
public class FieldDef
{
[JsonPropertyName("name")]
public string Name { get; set; } = string.Empty;
[JsonPropertyName("label")]
public string Label { get; set; } = string.Empty;
[JsonPropertyName("type")]
public string Type { get; set; } = string.Empty;
[JsonPropertyName("required")]
public bool Required { get; set; } = false;
[JsonPropertyName("control")]
public string Control { get; set; } = string.Empty;
}
}

View File

@@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace ModVersionChecker.data.model
{
public class FsModPathConfig
{
public string Id { get; set; } = String.Empty;
[JsonPropertyName("name")]
public string Name { get; set; } = string.Empty;
[JsonPropertyName("shortName")]
public string ShortName { get; set; } = string.Empty;
[JsonPropertyName("path")]
public string Path { get; set; } = string.Empty;
[JsonPropertyName("file")]
public string File { get; set; } = string.Empty;
[JsonPropertyName("fileType")]
public string FileType { get; set; } = string.Empty;
[JsonPropertyName("key")]
public string Key { get; set; } = string.Empty;
[JsonPropertyName("fields")]
public List<FieldDef> Fields { get; set; } = new List<FieldDef>();
}
}

View File

@@ -0,0 +1,21 @@
using LiteDB;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace ModVersionChecker.data.model
{
public class GlobalConfig
{
public string Id { get; set; } = String.Empty;
[JsonPropertyName("intervalMinutes")]
public int IntervalMinutes { get; set; } = 60;
[JsonPropertyName("checkOnStartup")]
public bool CheckOnStartup { get; set; } = true;
}
}

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace ModVersionChecker.data.model
{
public class SourceDef
{
[JsonPropertyName("id")]
public string Id { get; set; } = string.Empty;
[JsonPropertyName("name")]
public string Name { get; set; } = string.Empty;
[JsonPropertyName("type")]
public string Type { get; set; } = string.Empty;
[JsonPropertyName("defaults")]
public Dictionary<string, string> Defaults { get; set; } = new Dictionary<string, string>();
}
}

View File

@@ -0,0 +1,47 @@
[
{
"id": "custom",
"name": "Custom Source",
"type": "scrape",
"defaults": {
"regex": "",
"url": ""
}
},
{
"id": "sim_market",
"name": "Sim Market",
"type": "scrape",
"defaults": {
"regex": "<span class=\"details-card__item-text\">(\\d+\\.\\d+\\.\\d+)<\\/span>",
"url": "https://secure.simmarket.com/"
}
},
{
"id": "pms50_gtn750",
"name": "PMS50 GTN750",
"type": "scrape",
"defaults": {
"url": "https://pms50.com/msfs/",
"regex": "Current version: (\\d+\\.\\d+\\.\\d+)"
}
},
{
"id": "sws",
"name": "SWS",
"type": "scrape",
"defaults": {
"url": "https://simworksstudios.com/product",
"regex": "Current Version: (\\d+\\.\\d+\\.\\d+)"
}
},
{
"id": "a2a",
"name": "A2A",
"type": "scrape",
"defaults": {
"url": "https://a2asimulations.com/forum/viewtopic.php?f=153",
"mode": "selenium"
}
}
]