about summary refs log tree commit diff
path: root/ExampleBots/ModerationBot/Commands/DbgAniRainbowTest.cs
diff options
context:
space:
mode:
authorEmma [it/its]@Rory& <root@rory.gay>2024-01-11 07:31:09 +0100
committerEmma [it/its]@Rory& <root@rory.gay>2024-01-11 07:31:09 +0100
commit8dadf547033d71480fd7756809992c0f32549f59 (patch)
treea23631cc840047e3ad9e32dda9c043511af1a583 /ExampleBots/ModerationBot/Commands/DbgAniRainbowTest.cs
parentTry-create factory for RemoteHomeserver, more reliable RemoteHomeserver creation (diff)
downloadLibMatrix-8dadf547033d71480fd7756809992c0f32549f59.tar.xz
Cleanup, more message formatters, messagebuilder start
Diffstat (limited to 'ExampleBots/ModerationBot/Commands/DbgAniRainbowTest.cs')
-rw-r--r--ExampleBots/ModerationBot/Commands/DbgAniRainbowTest.cs48
1 files changed, 48 insertions, 0 deletions
diff --git a/ExampleBots/ModerationBot/Commands/DbgAniRainbowTest.cs b/ExampleBots/ModerationBot/Commands/DbgAniRainbowTest.cs
new file mode 100644
index 0000000..b2216d1
--- /dev/null
+++ b/ExampleBots/ModerationBot/Commands/DbgAniRainbowTest.cs
@@ -0,0 +1,48 @@
+using System.Diagnostics;
+using LibMatrix.EventTypes.Spec;
+using LibMatrix.Helpers;
+using LibMatrix.RoomTypes;
+using LibMatrix.Services;
+using LibMatrix.Utilities.Bot.Interfaces;
+using ModerationBot.AccountData;
+
+namespace ModerationBot.Commands;
+
+public class DbgAniRainbowTest(IServiceProvider services, HomeserverProviderService hsProvider, HomeserverResolverService hsResolver, PolicyEngine engine) : ICommand {
+    public string Name { get; } = "dbg-ani-rainbow";
+    public string Description { get; } = "[Debug] animated rainbow :)";
+    private GenericRoom logRoom { get; set; }
+
+    public async Task<bool> CanInvoke(CommandContext ctx) {
+        return ctx.Room.RoomId == "!DoHEdFablOLjddKWIp:rory.gay";
+    }
+
+    public async Task Invoke(CommandContext ctx) {
+        //255 long string
+        // var rainbow = "🟥🟧🟨🟩🟦🟪";
+        var rainbow = "M";
+        var chars = rainbow;
+        for (var i = 0; i < 76; i++) {
+            chars += rainbow[i%rainbow.Length];
+        }
+
+        var msg = new MessageBuilder(msgType: "m.notice").WithRainbowString(chars).Build();
+        var msgEvent = await ctx.Room.SendMessageEventAsync(msg);
+        
+        Task.Run(async () => {
+
+            int i = 0;
+            while (true) {
+                msg = new MessageBuilder(msgType: "m.notice").WithRainbowString(chars, offset: i+=5).Build();
+                    // .SetReplaceRelation<RoomMessageEventContent>(msgEvent.EventId);
+                // msg.Body = "";
+                // msg.FormattedBody = "";
+                var sw = Stopwatch.StartNew();
+                await ctx.Room.SendMessageEventAsync(msg);
+                await Task.Delay(sw.Elapsed);
+            }
+            
+        });
+
+    }
+}
\ No newline at end of file