blob: afed0cc055b931167bbe74d965c6cd21868e04be (
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
|
@page "/DevTools"
@using LibMatrix.Homeservers
@using LibMatrix.EventTypes.Spec.State
<h3>DevTools</h3>
<LinkButton OnClick="@MassCreateProjects">Mass create projects</LinkButton>
<LinkButton OnClick="@DestroyAllProjects">Destroy all projects</LinkButton>
@code {
private BugMineClient? Client { get; set; }
protected override async Task OnInitializedAsync() {
Client = await BugMineStorage.GetCurrentSessionOrNavigate();
}
private async Task DestroyAllProjects() {
var ss = new SemaphoreSlim(4, 4);
await foreach (var proj in Client.Homeserver.GetJoinedRoomsByType(BugMineProject.RoomType)) {
// Task.Run(async () => {
// await ss.WaitAsync();
await proj.SendStateEventAsync(RoomNameEventContent.EventId, new RoomNameEventContent() {
Name = "Disbanded BugMine project."
});
await proj.SendStateEventAsync(RoomJoinRulesEventContent.EventId, new RoomJoinRulesEventContent() {
JoinRule = RoomJoinRulesEventContent.JoinRules.Private
});
await proj.SendStateEventAsync(RoomCanonicalAliasEventContent.EventId, new RoomCanonicalAliasEventContent() {
Alias = null
});
await proj.LeaveAsync("Disbanded room.");
// ss.Release();
// });
}
}
private async Task MassCreateProjects() {
// var rooms = await Client.Homeserver.GetJoinedRooms();
// List<string> roomNames = (await Task.WhenAll(rooms.Select(x => x.GetNameAsync()))).Where(x => x != null).ToList();
for (int i = 0; i < 20; i++) {
Task.Run(async () => {
// var randomName = roomNames[Random.Shared.Next(roomNames.Count)];
var proj = await Client.CreateProject(new() {
Name = /*randomName + */Guid.NewGuid().ToString()[..8]
});
await proj.CreateIssue(new() {
Name = "meow"
});
});
}
}
}
|