From 3a28afe408687da20a14fc5c0f0a8df734db627a Mon Sep 17 00:00:00 2001 From: Mattias Erming Date: Sat, 27 Sep 2014 13:39:14 -0700 Subject: [PATCH] Fetch page titles --- client/css/style.css | 19 +++++++++++++++---- client/js/shout.templates.js | 16 +++++++++------- client/templates/toggle.tpl | 14 ++++++++------ src/plugins/irc-events/link.js | 13 +++++++++---- 4 files changed, 41 insertions(+), 21 deletions(-) diff --git a/client/css/style.css b/client/css/style.css index 1c5a806c..e5368bce 100644 --- a/client/css/style.css +++ b/client/css/style.css @@ -574,7 +574,7 @@ button { content: '* '; } #chat .toggle-button { - background: #eee; + background: #f5f5f5; border-radius: 2px; display: inline-block; color: #666; @@ -588,16 +588,27 @@ button { display: none; color: #222; font: 12px Lato; - max-width: 220px; + max-width: 480px; padding: 6px 8px; margin-top: 2px; } -#chat .toggle-content.show { - display: inline-block !important; +#chat .toggle-content a { + color: inherit; } #chat .toggle-content img { max-width: 100%; max-height: 100%; + display: block; + margin: 2px 0; +} +#chat .toggle-content .head { + font-weight: bold; +} +#chat .toggle-content .body { + color: #999; +} +#chat .toggle-content.show { + display: inline-block !important; } #chat .count { background: #fafafa; diff --git a/client/js/shout.templates.js b/client/js/shout.templates.js index b394fe55..c080f75b 100644 --- a/client/js/shout.templates.js +++ b/client/js/shout.templates.js @@ -130,17 +130,19 @@ templates['network'] = template({"1":function(depth0,helpers,partials,data) { templates['toggle'] = template({"1":function(depth0,helpers,partials,data) { var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; return " \n \n \n"; },"3":function(depth0,helpers,partials,data) { - var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; - return "
" - + escapeExpression(((helper = (helper = helpers.head || (depth0 != null ? depth0.head : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"head","hash":{},"data":data}) : helper))) - + "
\n
\n " + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = " \n
"; + stack1 = ((helper = (helper = helpers.head || (depth0 != null ? depth0.head : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"head","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + return buffer + "
\n
\n " + escapeExpression(((helper = (helper = helpers.body || (depth0 != null ? depth0.body : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"body","hash":{},"data":data}) : helper))) - + "\n
\n"; + + "\n
\n \n"; },"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { var stack1, helperMissing=helpers.helperMissing, buffer = "
\n"; stack1 = ((helpers.equal || (depth0 && depth0.equal) || helperMissing).call(depth0, (depth0 != null ? depth0.type : depth0), "image", {"name":"equal","hash":{},"fn":this.program(1, data),"inverse":this.program(3, data),"data":data})); diff --git a/client/templates/toggle.tpl b/client/templates/toggle.tpl index 68f674e3..e68eb501 100644 --- a/client/templates/toggle.tpl +++ b/client/templates/toggle.tpl @@ -1,13 +1,15 @@
{{#equal type "image"}} - - + + {{else}} -
{{head}}
-
- {{body}} -
+ +
{{{head}}}
+
+ {{body}} +
+
{{/equal}}
diff --git a/src/plugins/irc-events/link.js b/src/plugins/irc-events/link.js index 9dd58142..2bf1b3be 100644 --- a/src/plugins/irc-events/link.js +++ b/src/plugins/irc-events/link.js @@ -1,4 +1,5 @@ var _ = require("lodash"); +var cheerio = require("cheerio"); var Msg = require("../../models/msg"); var request = require("superagent"); @@ -43,12 +44,16 @@ module.exports = function(irc, network) { }; function parse(id, url, res, client) { + var type = ""; var head = ""; var body = ""; - var type = ""; + var link = url; switch (res.type) { case "text/html": + var $ = cheerio.load(res.res.text); type = "link"; + head = $("title").text(); + body = "No description found."; break; case "image/png": @@ -56,7 +61,6 @@ function parse(id, url, res, client) { case "image/jpg": case "image/jpeg": type = "image"; - body = url; break; default: @@ -65,8 +69,9 @@ function parse(id, url, res, client) { client.emit("toggle", { id: id, type: type, - head: type, - body: body + head: head, + body: body, + link: link, }); }