caveat_patch_kids 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,7 @@
|
|
1
1
|
//= require caveat_patch_kids
|
2
2
|
//
|
3
3
|
//= require caveat_patch_kids/display_avatars
|
4
|
+
//= require caveat_patch_kids/display_cloudapp_images
|
4
5
|
//= require caveat_patch_kids/embiggen_message_history
|
5
6
|
//= require caveat_patch_kids/stylize_nagios
|
6
7
|
//= require caveat_patch_kids/stylize_diffs
|
@@ -0,0 +1,53 @@
|
|
1
|
+
Campfire.CloudAppExpander = Class.create({
|
2
|
+
initialize: function(chat) {
|
3
|
+
this.chat = chat;
|
4
|
+
var messages = this.chat.transcript.messages;
|
5
|
+
for (var i = 0; i < messages.length; i++) {
|
6
|
+
this.detectCloudAppURL(messages[i]);
|
7
|
+
}
|
8
|
+
},
|
9
|
+
|
10
|
+
detectCloudAppURL: function(message) {
|
11
|
+
/* we are going to use the messageID to uniquely identify our requestJSON request
|
12
|
+
so we don't check pending messages */
|
13
|
+
if (!message.pending() && message.kind === 'text') {
|
14
|
+
var links = message.bodyElement().select('a:not(image)');
|
15
|
+
if (links.length != 1) {
|
16
|
+
return;
|
17
|
+
}
|
18
|
+
var href = links[0].getAttribute('href');
|
19
|
+
var match = href.match(/^https?:\/\/cl.ly\/image\/[A-Za-z0-9]+\/?$/);
|
20
|
+
if (!match) return;
|
21
|
+
window.propane.requestJSON(message.id(), href, 'window.chat.cloudappexpander', 'onEmbedDataLoaded', 'onEmbedDataFailed');
|
22
|
+
}
|
23
|
+
},
|
24
|
+
|
25
|
+
onEmbedDataLoaded: function(messageID, data) {
|
26
|
+
var message = window.chat.transcript.getMessageById(messageID);
|
27
|
+
if (!message) return;
|
28
|
+
|
29
|
+
if (data['item_type'] === 'image') {
|
30
|
+
var imageURL = data['content_url'];
|
31
|
+
message.resize((function() {
|
32
|
+
message.bodyCell.insert({bottom: '<div style="width:100%; margin-top:5px; padding-top: 5px; border-top:1px dotted #ccc;"><a href="'+imageURL+'" class="image loading" target="_blank">' + '<img src="'+imageURL+'" onload="$dispatch("inlineImageLoaded", this)" onerror="$dispatch("inlineImageLoadFailed", this)" /></a></div>'});
|
33
|
+
}).bind(this));
|
34
|
+
}
|
35
|
+
},
|
36
|
+
|
37
|
+
onEmbedDataFailed: function(messageID) {
|
38
|
+
/* No cleanup required, we only alter the HTML after we get back a succesful load from the data */
|
39
|
+
},
|
40
|
+
|
41
|
+
onMessagesInsertedBeforeDisplay: function(messages) {
|
42
|
+
for (var i = 0; i < messages.length; i++) {
|
43
|
+
this.detectCloudAppURL(messages[i]);
|
44
|
+
}
|
45
|
+
},
|
46
|
+
|
47
|
+
onMessageAccepted: function(message, messageID) {
|
48
|
+
this.detectCloudAppURL(message);
|
49
|
+
}
|
50
|
+
});
|
51
|
+
|
52
|
+
Campfire.Responders.push("CloudAppExpander");
|
53
|
+
window.chat.installPropaneResponder("CloudAppExpander", "cloudappexpander");
|
@@ -0,0 +1,24 @@
|
|
1
|
+
Campfire.RdioExpander = Class.create({
|
2
|
+
initialize: (chat) ->
|
3
|
+
this.chat = chat
|
4
|
+
this.detectRdioURL(message) for message in chat.transcript.messages
|
5
|
+
|
6
|
+
detectRdioURL: (message) ->
|
7
|
+
if !message.pending() and message.kind == 'text'
|
8
|
+
links = message.bodyElement().select('a:not(image)')
|
9
|
+
for link in links
|
10
|
+
href = link.getAttribute('href')
|
11
|
+
match = href.match(/^http:\/\/(rd\.io\/x\/\w*)$/)
|
12
|
+
if match
|
13
|
+
rdioHref = "rdio://" + match[1]
|
14
|
+
link.setAttribute('href', rdioHref)
|
15
|
+
|
16
|
+
onMessagesInsertedBeforeDisplay: (messages) ->
|
17
|
+
this.detectRdioURL(message) for message in messages
|
18
|
+
|
19
|
+
onMessageAccepted: (message, messageID) ->
|
20
|
+
this.detectRdioURL(message)
|
21
|
+
})
|
22
|
+
|
23
|
+
Campfire.Responders.push("RdioExpander")
|
24
|
+
window.chat.installPropaneResponder("RdioExpander", "rdioexpander")
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: caveat_patch_kids
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-03-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sprockets
|
@@ -80,10 +80,11 @@ files:
|
|
80
80
|
- scripts/caveat_patch_kids/bundles/all.js
|
81
81
|
- scripts/caveat_patch_kids/bundles/unsupported.js
|
82
82
|
- scripts/caveat_patch_kids/display_avatars.js
|
83
|
+
- scripts/caveat_patch_kids/display_cloudapp_images.js
|
83
84
|
- scripts/caveat_patch_kids/display_githubs.js
|
84
85
|
- scripts/caveat_patch_kids/embed_youtube.js
|
85
86
|
- scripts/caveat_patch_kids/embiggen_message_history.js
|
86
|
-
- scripts/caveat_patch_kids/link_to_rdio_app.
|
87
|
+
- scripts/caveat_patch_kids/link_to_rdio_app.coffee
|
87
88
|
- scripts/caveat_patch_kids/stylize_diffs.js
|
88
89
|
- scripts/caveat_patch_kids/stylize_nagios.js
|
89
90
|
- scripts/caveat_patch_kids/unsupported/display_emoji.js
|
@@ -122,3 +123,4 @@ specification_version: 3
|
|
122
123
|
summary: CaveatPatchKids is a tool for generating, sharing, and maintaing caveatPatchor.js
|
123
124
|
files for use with Propane, powered by sprockets and other fun stuff
|
124
125
|
test_files: []
|
126
|
+
has_rdoc:
|
@@ -1,40 +0,0 @@
|
|
1
|
-
Campfire.RdioExpander = Class.create({
|
2
|
-
initialize: function(chat) {
|
3
|
-
this.chat = chat;
|
4
|
-
var messages = this.chat.transcript.messages;
|
5
|
-
for (var i = 0; i < messages.length; i++) {
|
6
|
-
this.detectRdioURL(messages[i]);
|
7
|
-
}
|
8
|
-
},
|
9
|
-
|
10
|
-
detectRdioURL: function(message) {
|
11
|
-
if (!message.pending() && message.kind === 'text') {
|
12
|
-
var body = message.bodyElement()
|
13
|
-
var links = message.bodyElement().select('a:not(image)');
|
14
|
-
|
15
|
-
for (var i = 0; i < links.length; i++) {
|
16
|
-
var link = links[i];
|
17
|
-
var href = link.getAttribute('href');
|
18
|
-
var match = href.match(/^http:\/\/(rd\.io\/x\/\w*)$/)
|
19
|
-
if (match) {
|
20
|
-
var rdioHref = "rdio://" + match[1];
|
21
|
-
link.setAttribute('href', rdioHref);
|
22
|
-
}
|
23
|
-
}
|
24
|
-
}
|
25
|
-
},
|
26
|
-
|
27
|
-
onMessagesInsertedBeforeDisplay: function(messages) {
|
28
|
-
for (var i = 0; i < messages.length; i++) {
|
29
|
-
this.detectRdioURL(messages[i]);
|
30
|
-
}
|
31
|
-
},
|
32
|
-
|
33
|
-
onMessageAccepted: function(message, messageID) {
|
34
|
-
this.detectRdioURL(message);
|
35
|
-
}
|
36
|
-
|
37
|
-
});
|
38
|
-
|
39
|
-
Campfire.Responders.push("RdioExpander");
|
40
|
-
window.chat.installPropaneResponder("RdioExpander", "rdioexpander");
|