skippy/source/notifications.d

91 lines
2.1 KiB
D
Raw Permalink Normal View History

// import core.thread : Thread;
// import tristanable.manager;
// import tristanable.notifications;
// import std.stdio;
// import core.time : dur;
// import tristanable.encoding;
2020-09-25 17:51:24 +00:00
// public class NotificationWatcher : Thread
// {
// private Manager manager;
2020-09-25 17:51:24 +00:00
// this(Manager manager)
// {
// super(&worker);
2020-09-25 17:51:24 +00:00
// this.manager = manager;
// manager.reserveTag(0);
2020-09-25 17:51:24 +00:00
// start();
// }
2020-09-25 17:51:24 +00:00
// private void worker()
// {
// while(true)
// {
// /* Check for notifications every 2 seconds */
// NotificationReply[] notifications =manager.popNotifications();
2020-09-25 17:51:24 +00:00
// if(notifications.length)
// {
// //writeln(notifications);
// foreach(NotificationReply notificationReply; notifications)
// {
// //writeln(notificationReply.getData());
// string msg = cast(string)notificationReply.getData();
// writeln("!> "~msg);
// process(notificationReply.getData());
// }
// }
2020-09-25 17:51:24 +00:00
// Thread.getThis().sleep(dur!("seconds")(2));
// }
// }
2020-09-25 20:16:23 +00:00
// /**
// * Processes an incoming notification
// * accordingly
// */
// private void process(byte[] data)
// {
// /* TODO: Implement me */
2020-09-25 20:16:23 +00:00
// /* TODO: Check notification type */
// byte notificationType = data[0];
// /* For normal message (to channel or user) */
// 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 */
// //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
// {
// }
// }
// }
// }