Skip to content

Instantly share code, notes, and snippets.

@jfromaniello
Last active August 20, 2024 13:17
Show Gist options
  • Save jfromaniello/6659815 to your computer and use it in GitHub Desktop.
Save jfromaniello/6659815 to your computer and use it in GitHub Desktop.
Hubot script para mostrar placas rojas de cronica.

Script para Hubot que genera placas rojas de cronica.

Usa la página placasrojas.tv para generar la placa.

La imagen se sube a imgur usando el módulo node-imgur antes de enviarla al chat, ya que HipChat y algunos clientes de IRC necesitan una url que termine en .png/jpg etc.

//Description:
// create a tv announce like argentinian Cronica TV
//Dependencies:
// "imgur": "0.0.1"
// "request: "~2.12.0"
//Commands:
// hubot anunciar message - display a Cronica TV announce
// hubot cronica message - display a Cronica TV announce
var template = 'http://www.placasrojas.tv/meme/placaRoja/preview?line1={line0}&line2={line1}&line3={line2}&line4={line3}';
var request = require('request');
var fs = require('fs');
//lo subo a imgur por que hipchat necesita una url que termine en .png
var imgur = require('imgur');
imgur.setKey('936f1057413ae09f461480d6e83063a2');
function getCronicaUrl (msg){
//dividimos la frase en 4 lineas
var words = msg.match[2].split(' ');
var perLine = Math.round(words.length / 4);
var result = template;
for(var i = 0; i < 4; i++){
var line = i === 3 ? words.join(' ') : words.splice(0, perLine).join(' ');
result = result.replace('{line' + i + '}', encodeURIComponent(line));
}
return result;
}
module.exports = function (robot){
robot.respond(/(anunciar|cronica) (.*)/i, function(msg){
var cronica = getCronicaUrl(msg);
var tempStream = fs.createWriteStream(__dirname + '/tmp.png');
request(cronica)
.pipe(tempStream);
tempStream
.on('close', function(){
imgur.upload(__dirname + '/tmp.png', function (response) {
if (response.error) {
console.log(response.error);
return;
}
msg.send(response.links.original);
});
});
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment