Skip to content

Instantly share code, notes, and snippets.

@dylanegan
Created March 3, 2011 02:59
Show Gist options
  • Save dylanegan/852241 to your computer and use it in GitHub Desktop.
Save dylanegan/852241 to your computer and use it in GitHub Desktop.
var displayPlaceKittenImages = true;
if (displayPlaceKittenImages) {
Campfire.PlaceKittenExpander = Class.create({
initialize: function(chat) {
this.chat = chat;
var messages = this.chat.transcript.messages;
for (var i = 0; i < messages.length; i++) {
this.detectPlaceKittenURL(messages[i]);
}
},
detectPlaceKittenURL: function(message) {
if (!message.pending() && message.kind === 'text') {
var links = message.bodyElement().select('a:not(image)');
if (links.length != 1) {
return;
}
var href = links[0].getAttribute('href');
var match = href.match(/^http:\/\/placekitten.com\/g\/[0-9]+\/[0-9]+$/);
if (!match) return;
message.resize((function() {
message.bodyCell.innerHTML = '<a href="'+href+'" class="image loading" target="_blank">' + '<img src="'+href+'" onload="$dispatch(&quot;inlineImageLoaded&quot;, this)" onerror="$dispatch(&quot
;inlineImageLoadFailed&quot;, this)" /></a>';
}).bind(this));
}
},
onMessagesInsertedBeforeDisplay: function(messages) {
for (var i = 0; i < messages.length; i++) {
this.detectPlaceKittenURL(messages[i]);
}
},
onMessageAccepted: function(message, messageID) {
this.detectPlaceKittenURL(message);
}
});
Campfire.Responders.push("PlaceKittenExpander");
window.chat.installPropaneResponder("PlaceKittenExpander", "placekittenexpander");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment