diff options
author | Marvin Borner | 2018-05-06 18:24:34 +0200 |
---|---|---|
committer | Marvin Borner | 2018-05-06 18:24:34 +0200 |
commit | 59293826f017156ed41696dd01b846fe37446821 (patch) | |
tree | 6caafa4f076edb753707c79859de53788a87866c /main/app/sprinkles/core/assets | |
parent | 42f9f655b48c5b9b8be58a3f037e3edf8c339a4d (diff) |
Finished chat verification, added console colors
Diffstat (limited to 'main/app/sprinkles/core/assets')
4 files changed, 61 insertions, 46 deletions
diff --git a/main/app/sprinkles/core/assets/SiteAssets/js/chat.js b/main/app/sprinkles/core/assets/SiteAssets/js/chat.js index 2cc90cb..dbf609b 100644 --- a/main/app/sprinkles/core/assets/SiteAssets/js/chat.js +++ b/main/app/sprinkles/core/assets/SiteAssets/js/chat.js @@ -10,14 +10,16 @@ function InitializeChatServer() { var ChatSocket = new WebSocket('wss://marvinborner.ddnss.de:1337'); ChatSocket.onerror = function () { setTimeout(function () { - console.log("[CHATSOCKET LOGGER] Connection failed. Trying again..."); + console.log("%c[CHATSOCKET LOGGER] Connection failed. Trying again...", "color: red"); InitializeChatServer(); }, 5000); }; ChatSocket.onopen = function () { - ChatSocket.send(JSON.stringify({ClientMessageType: "Verify", Cookie: document.cookie, UserID: current_user_id})); // CONNECTION SUCCESSFUL! - console.log("[CHATSOCKET LOGGER] Chat connection established!"); + console.log("%c[CHATSOCKET LOGGER] Chat connection established!", "color: darkorange"); + // START VERIFICATION + ChatSocket.send(JSON.stringify({ClientMessageType: "Verify", Cookie: document.cookie, UserID: current_user_id})); + console.log("%c[CHATSOCKET LOGGER] Started chat verification process...", "color: grey"); // GOT MESSAGE ChatSocket.onmessage = function (e) { // DECLARATIONS @@ -31,10 +33,11 @@ function InitializeChatServer() { var ServerMessage = MessageObject.ServerMessage; var WasHimself = MessageObject.WasHimself; var ServerMessageType = MessageObject.ServerMessageType; + var Granted = MessageObject.Granted; if (ServerMessage === false) { // NO SERVER MESSAGE -> SENT BY USER - console.log("[CHATSOCKET LOGGER] Received a message from user!"); if (WasHimself === true) { // -> MESSAGE WAS FROM HIMSELF + console.log("%c[CHATSOCKET LOGGER] You sent a message!", "color: darkorange"); if (!LastMessage.hasClass("MessageSent")) { // CHECK IF PREVIOUS MESSAGE WAS FROM HIMSELF TOO -> IF NOT, CREATE NEW 'ALONE' MESSAGE ChatMessages.append("<div class='MessageWrapper Normal'><div class='ChatMessage MessageSent AloneMessage animated fadeInRight'>" + Message + "</div></div>"); } else if (LastMessage.hasClass("MessageSent")) { // IF PREVIOUS MESSAGE WAS FROM HIMSELF TOO -> CREATE WITH CORRESPONDING CLASSES FOR DESIGN @@ -48,6 +51,7 @@ function InitializeChatServer() { } } } else if (WasHimself === false) { // -> MESSAGE WAS FROM OTHER USER + console.log("%c[CHATSOCKET LOGGER] You received a message!", "color: darkorange"); if (!LastMessage.hasClass("MessageReceived")) { // CHECK IF PREVIOUS MESSAGE WAS FROM OTHER USER TOO -> IF NOT, CREATE NEW 'ALONE' MESSAGE ChatMessages.append("<div class='MessageWrapper Normal'><div class='ChatMessage MessageReceived AloneMessage animated fadeInLeft'>" + Message + "</div></div>"); } else if (LastMessage.hasClass("MessageReceived")) { // IF PREVIOUS MESSAGE WAS FROM OTHER USER TOO -> CREATE WITH CORRESPONDING CLASSES FOR DESIGN @@ -66,38 +70,44 @@ function InitializeChatServer() { target: "_blank" }); } else if (ServerMessage === true) { // SERVER MESSAGE - console.log("[CHATSOCKET LOGGER] Received a message from server!"); if (ServerMessageType === "GroupJoin") { // TYPE: USER JOINED A GROUP if (WasHimself === true) { // HIMSELF JOINED A GROUP -> NOTIFY ChatMessages.empty(); // -> EMPTY MESSAGES ON NEW GROUP JOIN ChatMessages.append("<br><div class='MessageWrapper'><div class='ServerChatMessage'>" + GroupName + "</span></div></div><br>"); ReplaceServerMessage("YouGroupJoin"); // FOR TRANSLATION + console.log("%c[CHATSOCKET LOGGER] You joined the group " + GroupName + "!", "color: darkorange"); } else if (WasHimself === false) { // OTHER USER JOINED A GROUP -> NOTIFY ChatMessages.append("<br><div class='MessageWrapper'><div class='ServerChatMessage'>" + Username + "</span></div></div><br>"); ReplaceServerMessage("UserGroupJoin"); // FOR TRANSLATION + console.log("%c[CHATSOCKET LOGGER] " + Username + " joined the group!", "color: darkorange"); } } else if (ServerMessageType === "UserDisconnect") { // TYPE: USER DISCONNECTED -> NOTIFY ChatMessages.append("<br><div class='MessageWrapper'><div class='ServerChatMessage'>" + Username + "</span></div></div><br>"); ReplaceServerMessage("UserDisconnect"); // FOR TRANSLATION + console.log("%c[CHATSOCKET LOGGER] " + Username + " disconnected from server!", "color: darkorange"); } else if (ServerMessageType === "TypingState") { // TYPE: SOMEBODY'S TYPING STATE CHANGED! if (State === true) { // IF 'SOMEBODY' STARTED TYPING if (WasHimself === true) { // IDENTIFY 'SOMEBODY' -> WAS HIMSELF -> NOT THAT IMPORTANT (USER KNOWS WHEN HE STARTS TYPING?) - // NOTHING + console.log("%c[CHAT TYPING LOGGER] You started typing!", "color: grey"); } else if (WasHimself === false) { // IDENTIFY 'SOMEBODY' -> WAS OTHER USER -> SHOW TYPING ANIMATION ON RECEIVER'S SIDE ChatMessages.append("<div class='MessageWrapper'><div class='ChatMessage TypingIndicatorMessage AloneMessage'>" + TypingIndicatorAnimationElement + "</div></div>"); - console.log("[SERVER REPORT] " + Username + " STARTED TYPING"); + console.log("%c[CHAT TYPING LOGGER] " + Username + " started typing!", "color: grey"); } } else if (State === false) { // IF 'SOMEBODY' STOPPED TYPING if (WasHimself === true) { // IDENTIFY 'SOMEBODY' -> WAS HIMSELF -> NOT THAT IMPORTANT (USER KNOWS WHEN HE STOPS TYPING?) - // NOTHING + console.log("%c[CHAT TYPING LOGGER] You stopped typing!", "color: grey"); } else if (WasHimself === false) { // IDENTIFY 'SOMEBODY' -> WAS OTHER USER -> REMOVE TYPING ANIMATION //TypingIndicatorMessage.fadeOut("fast"); TypingIndicatorMessage.remove(); - console.log("[SERVER REPORT] " + Username + " STOPPED TYPING"); + console.log("%c[CHAT TYPING LOGGER] " + Username + " stopped typing!", "color: grey"); } } - } else if (ServerMessageType === "Verify") { // TYPE: SERVER CHECKED ACCESS - + } else if (ServerMessageType === "Verify") { // TYPE: SERVER CHECKED ACCESS -- MOSTLY HANDLED IN BACKEND + if (Granted === true) { + console.log("%c[CHATSOCKET LOGGER] Chat access granted!", "color: green"); + } else if (Granted === false) { + console.log("%c[CHATSOCKET LOGGER] Chat access denied!", "color: red"); + } } } // SCROLL TO BOTTOM ON NEW MESSAGE OF ANY KIND @@ -159,14 +169,14 @@ function InitializeChatServer() { // SEND MESSAGE FROM INPUT FIELD ChatTextInput.keyup(function (e) { if (e.keyCode === 13 && ChatTextInput.val().length > 0) { - ChatSocket.send(JSON.stringify({ClientMessageType: "Message", Message: ChatTextInput.val()})); - ChatTextInput.val(""); - ChatTextInput.val(""); - // USER USUALLY STOPS TYPING ON SENDING -> CHANGE STATE TO FALSE sendTypingState(false); isTyping = false; clearTimeout(typingTimer); + + ChatSocket.send(JSON.stringify({ClientMessageType: "Message", Message: ChatTextInput.val()})); + ChatTextInput.val(""); + ChatTextInput.val(""); } }); }; diff --git a/main/app/sprinkles/core/assets/SiteAssets/js/main.js b/main/app/sprinkles/core/assets/SiteAssets/js/main.js index 1a1bc8d..17d87c7 100644 --- a/main/app/sprinkles/core/assets/SiteAssets/js/main.js +++ b/main/app/sprinkles/core/assets/SiteAssets/js/main.js @@ -113,29 +113,27 @@ MainTabWindows.on('beforeChange', function (event, slick, currentSlide, nextSlid SEARCH ****/ UserSearchBar.keyup(function () { + SearchResults.empty(); var RequestedUser = UserSearchBar.val(); + if (RequestedUser !== " " && RequestedUser !== "") $.ajax({ url: site.uri.public + "/api/users/u/" + RequestedUser, success: function (answer) { - console.log("[SEARCH LOGGER] User " + RequestedUser + " was (finally) found! :)"); - var GifUrls = ["https://media.giphy.com/media/xUPGcg01dIAot4zyZG/giphy.gif", "https://media.giphy.com/media/IS9LfP9oSLdcY/giphy.gif", "https://media.giphy.com/media/5wWf7H0WTquIU1DFY4g/giphy.gif"]; - var RandomGif = Math.floor((Math.random() * GifUrls.length)); - var RandomGifUrl = GifUrls[RandomGif]; - console.image(RandomGifUrl, 0.5); + console.log("%c[SEARCH LOGGER] User " + RequestedUser + " was found!", "color: green"); + //var GifUrls = ["https://media.giphy.com/media/xUPGcg01dIAot4zyZG/giphy.gif", "https://media.giphy.com/media/IS9LfP9oSLdcY/giphy.gif", "https://media.giphy.com/media/5wWf7H0WTquIU1DFY4g/giphy.gif"]; + //var RandomGif = Math.floor((Math.random() * GifUrls.length)); + //var RandomGifUrl = GifUrls[RandomGif]; + //console.image(RandomGifUrl, 0.5); alerts.ufAlerts().ufAlerts('fetch'); - SearchResults.empty(); SearchResults.append("<img class='Avatar' data-src='" + answer.avatar + "' data-caching-key='" + answer.user_name + "_avatar_cached'/><div class='UsersFullName'>" + answer.full_name + "</div>"); $(".SearchResults .Avatar").imageCaching(); // refresh }, error: function () { - console.log("[SEARCH LOGGER] 404s are not a bug - they're a feature!"); - console.log("[SEARCH LOGGER] " + RequestedUser + " not found..."); + console.log("%c[SEARCH LOGGER] User " + RequestedUser + " was not found!", "color: red"); alerts.ufAlerts().ufAlerts('fetch'); - - SearchResults.empty(); } }); });
\ No newline at end of file diff --git a/main/app/sprinkles/core/assets/SiteAssets/php/Chatserver/src/ChatProcessor.php b/main/app/sprinkles/core/assets/SiteAssets/php/Chatserver/src/ChatProcessor.php index 6436a50..35a7c90 100644 --- a/main/app/sprinkles/core/assets/SiteAssets/php/Chatserver/src/ChatProcessor.php +++ b/main/app/sprinkles/core/assets/SiteAssets/php/Chatserver/src/ChatProcessor.php @@ -13,22 +13,24 @@ class ChatProcessor implements MessageComponentInterface protected $clients; private $subscriptions; private $users; + private $userID; private $connectedUsersNames; private $verifiedUsers; + private $emptyArray; public function __construct() { $this->clients = new \SplObjectStorage; $this->subscriptions = []; - $this->users = []; + $this->users = []; // TEMPORARY WEBSOCKET USER + $this->userID = []; // USER ID WHICH IS DECLARED IN DB $this->connectedUsersNames = []; $this->verifiedUsers = []; + $this->emptyArray = array(0 => 'nothing'); } public function onOpen(ConnectionInterface $conn) { - $generator = new Alliteration(); $this->clients->attach($conn); $this->users[$conn->resourceId] = $conn; - $this->connectedUsersNames[$conn->resourceId] = $generator->getName(); } public function onMessage(ConnectionInterface $conn, MessageInterface $msg) { @@ -49,7 +51,10 @@ class ChatProcessor implements MessageComponentInterface $MessageObject->ServerMessage = TRUE; $MessageObject->ServerMessageType = "Verify"; $MessageObject->Granted = TRUE; + $username = file_get_contents("https://beam-messenger.de/wormhole/" . $AccessToken . "/users/u/" . $data->UserID . "/username"); + $this->userID[$conn->resourceId] = $data->UserID; $this->verifiedUsers[$conn->resourceId] = TRUE; + $this->connectedUsersNames[$conn->resourceId] = $username; $this->users[$conn->resourceId]->send(json_encode($MessageObject, TRUE)); } else { $MessageObject = new \stdClass(); @@ -58,28 +63,30 @@ class ChatProcessor implements MessageComponentInterface $MessageObject->Granted = FALSE; $this->verifiedUsers[$conn->resourceId] = FALSE; $this->users[$conn->resourceId]->send(json_encode($MessageObject, TRUE)); - $this->clients->detach($conn); + $this->onClose($conn); } break; } if ($this->verifiedUsers[$conn->resourceId]) { switch ($data->ClientMessageType) { case "Subscribe": // USER SUBSCRIBED - $this->subscriptions[$conn->resourceId] = $data->Channel; - foreach ($this->subscriptions as $id => $channel) { - if ($this->subscriptions[$conn->resourceId] == $channel) { - $MessageObject = new \stdClass(); - $MessageObject->ServerMessage = TRUE; - $MessageObject->ServerMessageType = "GroupJoin"; - $MessageObject->GroupName = $channel; - $MessageObject->Username = $this->connectedUsersNames[$conn->resourceId]; - if ($id === $conn->resourceId) { - $MessageObject->WasHimself = TRUE; - } else { - $MessageObject->WasHimself = FALSE; + //if (!in_array(array_flip($this->userID)[$this->userID[$conn->resourceId]], (isset(array_flip($this->subscriptions)[$data->Channel]) ? array_flip($this->subscriptions)[$data->Channel] : array()))) { // ONLY JOIN IF NOT ALREADY JOINED + $this->subscriptions[$conn->resourceId] = $data->Channel; + foreach ($this->subscriptions as $id => $channel) { + if ($this->subscriptions[$conn->resourceId] == $channel) { + $MessageObject = new \stdClass(); + $MessageObject->ServerMessage = TRUE; + $MessageObject->ServerMessageType = "GroupJoin"; + $MessageObject->GroupName = $channel; + $MessageObject->Username = $this->connectedUsersNames[$conn->resourceId]; + if ($id === $conn->resourceId) { + $MessageObject->WasHimself = TRUE; + } else { + $MessageObject->WasHimself = FALSE; + } + $MessageJson = json_encode($MessageObject, TRUE); + $this->users[$id]->send($MessageJson); } - $MessageJson = json_encode($MessageObject, TRUE); - $this->users[$id]->send($MessageJson); } } break; diff --git a/main/app/sprinkles/core/assets/userfrosting/js/uf-alerts.js b/main/app/sprinkles/core/assets/userfrosting/js/uf-alerts.js index 98fbea0..a569522 100644 --- a/main/app/sprinkles/core/assets/userfrosting/js/uf-alerts.js +++ b/main/app/sprinkles/core/assets/userfrosting/js/uf-alerts.js @@ -128,7 +128,7 @@ _fetchSuccess: function (alerts) { if (alerts != null) this.alerts = $.merge(this.alerts, alerts); this.$element.trigger('fetch.' + this._name); - console.log("[ALERT LOGGER] FETCHED ALERTS"); + console.log("%c[ALERT LOGGER] FETCHED ALERTS", "color: blue"); }, /** * Failure callback for fetch @@ -153,7 +153,7 @@ message: options[1] }); - console.log("[ALERT LOGGER] PUSHED ALERT"); + console.log("%c[ALERT LOGGER] PUSHED ALERT", "color: blue"); return this.$element; }, /** @@ -168,7 +168,7 @@ $.when(this._newAlertsPromise).then(this._render.bind(this)); } - console.log("[ALERT LOGGER] RENDERED ALERT"); + console.log("%c[ALERT LOGGER] RENDERED ALERT", "color: blue"); return this.$element; }, /* |