Print out leave and join channel notifications

This commit is contained in:
Tristan B. Kildaire 2020-09-28 14:05:43 +02:00
parent 00913f394b
commit 9ee6117d84
1 changed files with 32 additions and 3 deletions

View File

@ -3,6 +3,7 @@ import tristanable.manager;
import tristanable.notifications; import tristanable.notifications;
import std.stdio; import std.stdio;
import core.time : dur; import core.time : dur;
import tristanable.encoding;
public class NotificationWatcher : Thread public class NotificationWatcher : Thread
{ {
@ -52,11 +53,39 @@ public class NotificationWatcher : Thread
/* TODO: Check notification type */ /* TODO: Check notification type */
byte notificationType = data[0]; byte notificationType = data[0];
/* Channel notification (ntype=1) */ /* For normal message (to channel or user) */
if(notificationType == cast(byte)1) if(notificationType == cast(byte)0)
{ {
/* TODO: Decode using tristanable */
writeln("new message");
}
/* Channel notification (ntype=1) */
else if(notificationType == cast(byte)1)
{
/* TODO: Decode using tristanable */
/* TODO: Get the username of the user that left */ /* TODO: Get the username of the user that left */
writeln("user left"); writeln("user left/join message");
/* Get the sub-type */
byte subType = data[1];
/* If the notification was leave (stype=0) */
if(subType == cast(byte)0)
{
string username = cast(string)data[2..data.length];
writeln("<-- "~username~" left the channel");
}
/* If the notification was join (stype=1) */
else if(subType == cast(byte)1)
{
string username = cast(string)data[2..data.length];
writeln("--> "~username~" joined the channel");
}
/* TODO: Unknown */
else
{
}
} }
} }
} }