diff options
Diffstat (limited to 'www/static/js/chat.js')
| -rwxr-xr-x | www/static/js/chat.js | 280 |
1 files changed, 0 insertions, 280 deletions
diff --git a/www/static/js/chat.js b/www/static/js/chat.js deleted file mode 100755 index 822e1ee..0000000 --- a/www/static/js/chat.js +++ /dev/null @@ -1,280 +0,0 @@ -var VIMEOregexp = /^(\bhttps?:\/\/)(www.)?vimeo.com\/([0-9]+).*$/i -var Chat = - { - timer: null, - oldChat: {}, - oldVideo: {}, - lastPoll: 0, - delay: 1000, - delayShort: 1000, - delayLong: 5000, - messages: {}, - callback: false, - parse: function (row) - { - var s = '<a href="/profile/' + row[2] + '" class="u">' + row[2] + "</a> <span>" - s += Chat.parseWords(row[3]) - s += "</span><br />" - return s - }, - parseWords: function (raw) - { - if (! raw) - return "" - var words = raw.split(" ") - var s = "" - for (i in words) - { - var word = words[i] - if (word.indexOf("http") !== -1) - { - if (word.indexOf("youtube.com/watch?") !== -1) - { - var ytid = "youtube_"+Youtube.getYtid(word) - var txt - if (ytid in Player.videos) - txt = Player.videos[ytid].title - else - txt = word - s += '<a href="'+word+'" class="ytlink" id="'+ytid+'" target="_parent">'+txt+'</a> ' - } - else if (word.indexOf("youtube.com/v/") !== -1) - { - var index = word.indexOf("/v/") - var ytid = "youtube_"+word.substr(index+3,11) - var txt - if (ytid in Player.videos) - txt = Player.videos[ytid].title - else - txt = word - s += '<a href="'+word+'" class="ytlink" id="'+ytid+'" target="_parent">'+txt+'</a> ' - } - else if (word.indexOf("youtu.be") !== -1) - { - var ytid = "youtube_"+word.substr(16,11) - var txt - if (ytid in Player.videos) - txt = Player.videos[ytid].title - else - txt = word - s += '<a href="'+word+'" class="ytlink" id="'+ytid+'" target="_parent">'+txt+'</a> ' - } - // http://www.youtube.com/user/ahchachachacha#p/f/28/1GSBekxLR1E - else if (word.indexOf("youtube.com/user") !== -1) - { - var ytid = "youtube_"+word.substr(-11) - var txt - if (ytid in Player.videos) - txt = Player.videos[ytid].title - else - txt = word - s += '<a href="'+word+'" class="ytlink" id="'+ytid+'" target="_parent">'+txt+'</a> ' - } - else if (word.indexOf("vimeo.com") !== -1) - { - var vimeoid = word.replace(VIMEOregexp, "vimeo_$3") - if (vimeoid in Player.videos) - txt = Player.videos[vimeoid].title - else - txt = word - s += '<a href="'+word+'" class="ytlink" id="'+vimeoid+'" target="_parent">'+txt+'</a> ' - } - else if (word.indexOf("soundcloud.com") !== -1) - { - var scid = "soundcloud_" + $.md5(word) - if (scid in Player.videos) - txt = Player.videos[scid].title - else - txt = word - s += '<a href="'+word+'" class="ytlink" id="'+scid+'" target="_parent">'+txt+'</a> ' - } - else if (word.indexOf(".jpeg") !== -1 || - word.indexOf(".JPG") !== -1 || - word.indexOf(".GIF") !== -1 || - word.indexOf(".PNG") !== -1 || - word.indexOf(".JPEG") !== -1 || - word.indexOf(".jpg") !== -1 || - word.indexOf(".gif") !== -1 || - word.indexOf(".png") !== -1) - { - s += '<a href="'+word+'" target="_blank" class="pic"><img src="'+word+'" /></a>' - } - else if (word.indexOf("scannerjammer.com/profile") !== -1) - { - var username = word.substr( word.indexOf("profile")+8 ).replace("/","") - s += '<a href="'+word+'">@'+username+'</a>' - } - // else if (word.indexOf("@") === 0 && word.length > 2) - // { - // } - else - { - var poffset = word.indexOf('//') - var linktext = word.substr(poffset+2, word.indexOf('/', poffset+2) - 2).replace("www.","").replace(/\/+$/,"") - s += '<a href="'+word+'" target="_blank">'+linktext+'</a> ' - } - } - else if (word.indexOf(".com") !== -1 || - word.indexOf(".net") !== -1 || - word.indexOf(".org") !== -1 || - word.indexOf(".us") !== -1 || - word.indexOf(".nu") !== -1 || - word.indexOf(".uk") !== -1 || - word.indexOf(".fr") !== -1 || - word.indexOf(".de") !== -1 || - word.indexOf(".fm") !== -1) - { - var txt = word.replace("www.","") - s += '<a href="http://'+word+'" target="_blank">'+txt+'</a> ' - } - else - s += word + " " - } - return s - }, - store: function (lines) - { - var newVideos = [] - var newChat = [] - var postponeScroll = false - for (i in lines) - { - if (! lines[i]) - continue - row = lines[i].split("\t") - if (row[0] === 'VIDEO') - { - row.shift() - if (row[0] in Chat.oldVideo) - continue - Chat.oldVideo[row[0]] = row - Playlist.enqueueOldVideoFormat([row]) - } - else if (row[0] === 'ROOM') - { - Room.updateSetting(row[1],row[2]) - } - else if (row[0] === 'LIKE') - { - username = row[1] - Like.enqueue(username) - } - else if (row[0] === 'CAM') - { - VideoChat.updateCount(row[1]) - } - else - { - // 0 id 1 date 2 user 3 msg - if (row[0] in Chat.oldChat) - continue - Chat.oldChat[row[0]] = row - var c = Chat.parse(row) - if (c.indexOf("<img") !== -1) - { - postponeScroll = true - d.joy(">> POSTPONING") - } - if (row[2] === Auth.username && $.md5(row[3]) in Chat.messages) - continue - newChat.push(c) - } - } - if (newChat.length) - { - $("#chat").append(newChat.join("")) - if (postponeScroll) - setTimeout('d.scrollToBottom("#chat")', 2000) - else - d.scrollToBottom("#chat") - } - }, - say: function () - { - d.act("+ sent message") - var msg = d.sanitize( $("#chat-message").val() ) - $("#chat-message").val("") - if (! msg) return - if (msg === "debug=1") { $("#msg").show(); d.scrollToBottom("#msg"); return } - if (msg === "debug=0") { $("#msg").hide(); return } - if (msg === "poll=0") { d.error("+ DISABLED POLLING"); clearTimeout(Chat.timer); return} - var hash = $.md5(msg) - Chat.messages[hash] = true - var newrow = [0, 0, Auth.username, msg] - var newdiv = Chat.parse(newrow) - $("#chat").append(newdiv) - // if (Chat.callback) - // Chat.callback(1) - if (newdiv.indexOf("<img") !== -1) - setTimeout('d.scrollToBottom("#chat")', 2000) - $.post(API.URL.room.say, {room: Room.name, session: Auth.session, msg: msg}, Room.sayCallback) - d.scrollToBottom("#chat") - }, - send: function (msg) - { - $.post(API.URL.room.say, {room: Room.name, session: Auth.session, msg: msg}, Room.sayCallback) - // var hash = $.md5(msg) - // Chat.messages[hash] = true - // var newrow = [0, 0, Auth.username, msg] - // var newdiv = Chat.parse(newrow) - // $("#chat").append(newdiv) - // if (newdiv.indexOf("<img") !== -1) - // setTimeout('d.scrollToBottom("#chat")', 2000) - // d.scrollToBottom("#chat") - }, - sayCallback: function (raw) - { - var lines = API.parse("/room/say", raw) - if (! lines) return - var newid = lines.split("\t")[0] - Chat.oldChat[newid] = true - // Room.store(lines) - d.joy("MESSAGE SENT") - }, - poll: function () - { - // d.warn("Polling") - $.post(API.URL.room.poll, - { - room: Room.name, - session: Auth.session, - last: Chat.lastPoll, - cam: VideoChat.isOpen, - }).success(Chat.pollCallback).error(Chat.pollErrorCallback) - }, - pollErrorCallback: function () - { - d.error("Poll failed, waiting "+Math.floor(Chat.delayLong)+"s...") - Chat.timer = setTimeout(Chat.poll, Chat.delayLong) - }, - pollCallback: function (raw) - { - // d.warn("Poll successful") - Chat.timer = setTimeout(Chat.poll, Chat.delay) - var lines = API.parse("/room/poll", raw) - if (! lines) - return d.error("Poll failed") - Chat.lastPoll = parseInt(lines.shift()) - 1 - Lastlog.update(lines.shift()) - Chat.store(lines) - } - } - -var Lastlog = - { - old: "", - update: function (lastlog) - { - if (Lastlog.old === lastlog) - return - Lastlog.old = lastlog - var names = lastlog.split("\t") - var s = "" - for (i in names.sort()) - { - s += "<li class='ll'><a href='/profile/"+names[i]+"'>"+names[i]+"</a></li>" - } - $("#lastlog").html(s) - $("#lastlogbg").css("height", $("#lastlogbox").height()) - } - } |
