summaryrefslogtreecommitdiff
path: root/src/SMAPI.Web/Framework/ConfigModels/ModUpdateCheckConfig.cs
blob: 2fb5b97ed8a7a10bfaed684f7b6ff5b0fa1d2512 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
namespace StardewModdingAPI.Web.Framework.ConfigModels
{
    /// <summary>The config settings for mod update checks.</summary>
    internal class ModUpdateCheckConfig
    {
        /*********
        ** Accessors
        *********/
        /****
        ** General
        ****/
        /// <summary>The number of minutes update checks should be cached before refetching them.</summary>
        public int CacheMinutes { get; set; }

        /// <summary>A regex which matches SMAPI-style semantic version.</summary>
        /// <remarks>Derived from SMAPI's SemanticVersion implementation.</remarks>
        public string SemanticVersionRegex { get; set; }

        /****
        ** Chucklefish mod site
        ****/
        /// <summary>The repository key for the Chucklefish mod site.</summary>
        public string ChucklefishKey { get; set; }

        /// <summary>The user agent for the Chucklefish API client, where {0} is the SMAPI version.</summary>
        public string ChucklefishUserAgent { get; set; }

        /// <summary>The base URL for the Chucklefish mod site.</summary>
        public string ChucklefishBaseUrl { get; set; }

        /// <summary>The URL for a mod page on the Chucklefish mod site excluding the <see cref="GitHubBaseUrl"/>, where {0} is the mod ID.</summary>
        public string ChucklefishModPageUrlFormat { get; set; }


        /****
        ** GitHub
        ****/
        /// <summary>The repository key for Nexus Mods.</summary>
        public string GitHubKey { get; set; }

        /// <summary>The user agent for the GitHub API client, where {0} is the SMAPI version.</summary>
        public string GitHubUserAgent { get; set; }

        /// <summary>The base URL for the GitHub API.</summary>
        public string GitHubBaseUrl { get; set; }

        /// <summary>The URL for a GitHub API latest-release query excluding the <see cref="GitHubBaseUrl"/>, where {0} is the organisation and project name.</summary>
        public string GitHubReleaseUrlFormat { get; set; }

        /// <summary>The Accept header value expected by the GitHub API.</summary>
        public string GitHubAcceptHeader { get; set; }

        /// <summary>The username with which to authenticate to the GitHub API (if any).</summary>
        public string GitHubUsername { get; set; }

        /// <summary>The password with which to authenticate to the GitHub API (if any).</summary>
        public string GitHubPassword { get; set; }

        /****
        ** Nexus Mods
        ****/
        /// <summary>The repository key for Nexus Mods.</summary>
        public string NexusKey { get; set; }

        /// <summary>The user agent for the Nexus Mods API client.</summary>
        public string NexusUserAgent { get; set; }

        /// <summary>The base URL for the Nexus Mods API.</summary>
        public string NexusBaseUrl { get; set; }

        /// <summary>The URL for a Nexus Mods API query excluding the <see cref="NexusBaseUrl"/>, where {0} is the mod ID.</summary>
        public string NexusModUrlFormat { get; set; }
    }
}