diff --git a/TwittiaCore.js b/TwittiaCore.js index 2f8105b..d17196a 100644 --- a/TwittiaCore.js +++ b/TwittiaCore.js @@ -58,16 +58,7 @@ Twittia.prototype.getItem = function(status) { } var template = this.getTemplate(); - /* - template.item.id = "id-" + status.id_str; - template.item.onmousedown = function(e) { if(e.button == 2) { - var target = e.target; - while(target.nodeName != "LI" && target != null) { - target = target.parentNode; - } - - alert(target.id); - }}*/ + template.reply_to.onclick = function() { replyTo(status.user.screen_name, status.id_str); return false; } template.retweet.onclick = function() { template.retweet.className = "hidden"; _this.retweet(status.id_str, template.item); return false; } @@ -93,7 +84,7 @@ Twittia.prototype.getItem = function(status) { else template.in_reply.parentNode.className = "hidden"; template.in_reply.href = WEBSITE_PATH + status.in_reply_to_screen_name + "/status/" + status.in_reply_to_status_id_str; - template.message.innerHTML = replaceTwitterLinks(replaceURLWithHTMLLinks(status.text, status.entities)); + template.message.innerHTML = replaceTwitterLinks(replaceURLWithHTMLLinks(status.text, status.entities, template.message)); var time = document.createElement("abbr"); time.innerText = status.created_at; @@ -137,6 +128,16 @@ Twittia.prototype.getItem = function(status) { a.appendChild(img); template.images.appendChild(a); + } else if(media.type == "twittia_photo") { + var a = document.createElement("a"); + a.href = media.url; + + var img = document.createElement("img"); + img.className = "photo"; + img.src = media.media_url; + + a.appendChild(img); + template.images.appendChild(a); } } } @@ -378,18 +379,20 @@ Twittia.prototype.authorizationHeader = function(method, url, params) { return OAuth.getAuthorizationHeader("", message.parameters); } -function replaceURLWithHTMLLinks(text, entities) { +function replaceURLWithHTMLLinks(text, entities, message_node) { var urls = entities.urls; var words = text.split(" "); for(var word in words) { + var original = words[word] + ""; + if(words[word].startsWith("http://t.co/")) { var replace = findTCOLongURL(words[word], urls); if(replace != null) { if(replace.startsWith("http://bit.ly/") || replace.startsWith("http://j.mp/")) { - replaceShortened(replace); + replaceShortened(replace, message_node); } words[word] = "" + replace + ""; @@ -399,22 +402,22 @@ function replaceURLWithHTMLLinks(text, entities) { if(replace.startsWith("http://youtube.com/") || replace.startsWith("http://www.youtube.com/")) { media = { type: "twittia_youtube", - url: replace, + url: original, media_url: "http://img.youtube.com/vi/" + getUrlVars(replace)["v"] + "/1.jpg" } } else if (replace.startsWith("http://twitpic.com/")) { media = { - type: "photo", - url: replace, + type: "twittia_photo", + url: original, media_url: "http://twitpic.com/show/mini/" + replace.substring("http://twitpic.com/".length) } } else if (replace.startsWith("http://yfrog")) { media = { - type: "photo", - url: replace, - media_url: replace + type: "twittia_photo", + url: original, + media_url: replace + ":small" } } @@ -431,7 +434,7 @@ function replaceURLWithHTMLLinks(text, entities) { } } else if(words[word].startsWith("http://") || words[word].startsWith("https://") || words[word].startsWith("file://") || words[word].startsWith("ftp://")) { if(words[word].startsWith("http://bit.ly/") || words[word].startsWith("http://j.mp/")) { - replaceShortened(words[word]); + replaceShortened(words[word], message_node); } words[word] = "" + words[word] + ""; @@ -491,7 +494,7 @@ function getUrlVars(url) return vars; } -function replaceShortened(url) { +function replaceShortened(url, message_node) { var api = "http://api.bitly.com"; if(url.startsWith("http://j.mp/")) { api = "http://api.j.mp"; @@ -505,7 +508,7 @@ function replaceShortened(url) { var new_url = data.data.expand[0].long_url; if (new_url) { var regex = new RegExp(url, "g"); - twittia_instance.body.innerHTML = twittia_instance.body.innerHTML.replace(regex, new_url); + message_node.innerHTML = message_node.innerHTML.replace(regex, new_url); } }, error:function (xhr, ajaxOptions, thrownError) {