blob: afda89eb1691485a4ad4b26a386b28cfbf0036ea (
plain) (
blame)
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
75
76
77
78
79
80
81
82
83
84
85
86
87
|
namespace LibMatrix.Utilities.Bot;
public class AppServiceConfiguration {
public string Id { get; set; } = null!;
public string? Url { get; set; } = null!;
public string SenderLocalpart { get; set; } = null!;
public string AppserviceToken { get; set; } = null!;
public string HomeserverToken { get; set; } = null!;
public List<string>? Protocols { get; set; } = null!;
public bool? RateLimited { get; set; } = null!;
public AppserviceNamespaces Namespaces { get; set; } = null!;
public class AppserviceNamespaces {
public List<AppserviceNamespace>? Users { get; set; } = null;
public List<AppserviceNamespace>? Aliases { get; set; } = null;
public List<AppserviceNamespace>? Rooms { get; set; } = null;
public class AppserviceNamespace {
public bool Exclusive { get; set; }
public string Regex { get; set; } = null!;
}
}
/// <summary>
/// Please dont look at code, it's horrifying but works
/// </summary>
/// <returns></returns>
public string ToYaml() {
var yaml = $"""
id: "{Id ?? throw new NullReferenceException("Id is null")}"
url: {(Url is null ? "null" : $"\"{Url}\"")}
as_token: "{AppserviceToken ?? throw new NullReferenceException("AppserviceToken is null")}"
hs_token: "{HomeserverToken ?? throw new NullReferenceException("HomeserverToken is null")}"
sender_localpart: "{SenderLocalpart ?? throw new NullReferenceException("SenderLocalpart is null")}"
""";
if (Protocols is not null && Protocols.Count > 0)
yaml += $"""
protocols:
- "{Protocols[0] ?? throw new NullReferenceException("Protocols[0] is null")}"
""";
else
yaml += "protocols: []";
yaml += "\n";
if (RateLimited.HasValue)
yaml += $"rate_limited: {RateLimited.Value.ToString().ToLower()}\n";
else
yaml += "rate_limited: false\n";
yaml += "namespaces: \n";
if (Namespaces.Users is null || Namespaces.Users.Count == 0)
yaml += " users: []";
else
Namespaces.Users.ForEach(x =>
yaml += $"""
users:
- exclusive: {x.Exclusive.ToString().ToLower()}
regex: "{x.Regex ?? throw new NullReferenceException("x.Regex is null")}"
""");
yaml += "\n";
if (Namespaces.Aliases is null || Namespaces.Aliases.Count == 0)
yaml += " aliases: []";
else
Namespaces.Aliases.ForEach(x =>
yaml += $"""
aliases:
- exclusive: {x.Exclusive.ToString().ToLower()}
regex: "{x.Regex ?? throw new NullReferenceException("x.Regex is null")}"
""");
yaml += "\n";
if (Namespaces.Rooms is null || Namespaces.Rooms.Count == 0)
yaml += " rooms: []";
else
Namespaces.Rooms.ForEach(x =>
yaml += $"""
rooms:
- exclusive: {x.Exclusive.ToString().ToLower()}
regex: "{x.Regex ?? throw new NullReferenceException("x.Regex is null")}"
""");
return yaml;
}
}
|