Skip to content

Instantly share code, notes, and snippets.

@TheSkorm
Created January 28, 2016 05:11
Show Gist options
  • Select an option

  • Save TheSkorm/ae54435043c07d5cc5d1 to your computer and use it in GitHub Desktop.

Select an option

Save TheSkorm/ae54435043c07d5cc5d1 to your computer and use it in GitHub Desktop.
// npm install irc requests slack-client tail
Slack = require('slack-client');
slackToken = ''
autoReconnect = true
autoMark = true
slack = new Slack(slackToken, autoReconnect, autoMark)
slack.on('open',function(message){
console.log("Connected to slack") });
slack.on('message', function(message){
console.log(message)
if(message._client.channels[message.channel] && message._client.users[message.user]) {
var message = "#" + message._client.channels[message.channel].name +" <" + message._client.users[message.user].name + "> " + message.text
client.say('#lca-slack', message)
}
});
slack.on('error', function(err){
console.error("Error", err)});
slack.login()
var irc = require('irc');
var client = new irc.Client('irc.freenode.org', 'lca-slack-bot', {
channels: ['#lca-slack'],
});
var Tail = require('tail').Tail,
request = require('request');
var public = function(data) {
if (!data || data.length <= 0) {
return;
}
console.log(data)
var regLog = /^\d\d:\d\d <.(.+?)> (.+)/g
var matches = regLog.exec(data)
console.log(matches)
var message = data
var username = encodeURIComponent("IRCBOT")
if(matches != null){
if (matches.length == 3){
username = matches[1];
var text = matches[2];
message = text
}
}
message=encodeURIComponent(message);
icon_url="https://robohash.org/" + username
var url = "https://slack.com/api/chat.postMessage?channel=%23linux_conf_au_irc&icon_url="+icon_url+"&text="+message+"&username="+username+"&pretty=1&token=" + slackToken
var http = require('https');
http.request(url).end();
};
var tail = new Tail("/home/mwheeler/irclogs/freenode/#linux.conf.au.log");
tail.on('line', function(data) {
public(data);
});
var tail = new Tail("/home/mwheeler/irclogs/freenode/#testmwheeler.log");
tail.on('line', function(data) {
public(data);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment