summaryrefslogtreecommitdiffstats
path: root/pages/chat.php
diff options
context:
space:
mode:
authorPatrick Davison <snapwilliam@gmail.com>2013-02-28 23:09:41 -0800
committerPatrick Davison <snapwilliam@gmail.com>2013-02-28 23:09:41 -0800
commitfe36da64909a2ad8b7f48be5b4307ed6115ecc39 (patch)
tree2e0ef78aabc2efb3fca2dde58f9c28c67b3466c0 /pages/chat.php
parent60fa55b49e8f4cf8570882b5eb6ad3f9bbb7885b (diff)
downloadpathery-fe36da64909a2ad8b7f48be5b4307ed6115ecc39.tar.xz
Chat /me and URL Linking
Diffstat (limited to 'pages/chat.php')
-rw-r--r--pages/chat.php41
1 files changed, 23 insertions, 18 deletions
diff --git a/pages/chat.php b/pages/chat.php
index 67c6831..f68db7e 100644
--- a/pages/chat.php
+++ b/pages/chat.php
@@ -80,7 +80,14 @@ function getChatDone(data) {
chat.message = chat.message.substring(9);
isSpoiler = true;
}
-
+
+ var usernameClass = '';
+ if (chat.message.indexOf("/me ") == 0) {
+ chat.message = chat.message.substring(4);
+ usernameClass = ' me';
+ }
+
+
//console.log("INSIDE BUILD START");
p = '';
p = p+ " <div class='chatColumn1'>";
@@ -93,15 +100,15 @@ function getChatDone(data) {
p = p+ " <div class='chatColumn2'>";
if (chat.userID == '-1') {
- p = p+ "<span class='chatUsername'><a href='home'>";
+ p = p+ "<span class='chatUsername"+usernameClass+"'><a href='home'>";
} else {
- p = p+ "<span class='chatUsername'><a href='achievements?id="+chat.userID+"' style='color:"+chat.displayColor+"'>";
+ p = p+ "<span class='chatUsername"+usernameClass+"'><a href='achievements?id="+chat.userID+"' style='color:"+chat.displayColor+"'>";
}
- p = p+ chat.displayName+"</a>:</span>";
+ p = p+ chat.displayName+"</a></span>";
if (isSpoiler == true) p = p+ " <span class='chatText spoiler' onclick='spoil(this);'>";
else p = p+ " <span class='chatText'>";
- p = p+ htmlEncode(chat.message);
+ p = p+ chatReplaceAndEncode(chat.message);
p = p+ " </span>";
p = p+ " </div>";
@@ -118,21 +125,9 @@ function getChatDone(data) {
if (newChats) {
if (chatTimerDelay > chatTimerDelayLower) chatTimerDelay -= 1000;
- //var new_chatDiv = $('<div/>', {
- //'class': 'my-new-list',
- //'style': 'display: none',
- //html: items.join('')
- //});
-
var elem = $("#chatContainer");
- //var atBottom = (elem[0].scrollHeight - elem.scrollTop() == elem.outerHeight());
var atBottom = (elem.scrollTop() >= elem[0].scrollHeight - elem.outerHeight() - 1);
-
-
- //var elem = $("#chatContainer"); console.log ("Ret", elem[0].scrollHeight, elem.scrollTop(), elem.outerHeight(), elem[0].scrollHeight - elem.scrollTop());
-
- //new_chatDiv.appendTo('#chatContainer').slideDown('fast');
- //new_chatDiv.appendTo('#chatContainer');
+
$("#chatContainer").append(items.join(''));
if (atBottom || firstGetChat) {
@@ -146,6 +141,16 @@ function getChatDone(data) {
}
}
+function chatReplaceAndEncode(chat) {
+ chat = htmlEncode(chat);
+ chat = chat.replace(/\*(\S(.*?\S)?)\*/gm, "<b>$1</b>");
+
+ var URLexp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
+ chat = chat.replace(URLexp, "<a href='redirect?to=$1' target='top'>$1</a>");
+
+ return chat;
+}
+
function prepChat(chat) {
chat = chat.join('|:|');
chat = chat.replace(/\&/g,'%26')