Files: 84264ad623514504ac769c561b7e7b10a163e69a / irc.js
1618 bytesRaw
1 | var IRC = module.exports = function (config, cb) { |
2 | var IRC = require('node-irc') |
3 | var conf = config.irc || {} |
4 | var irc = new IRC( |
5 | conf.host || 'irc.freenode.net', |
6 | conf.port || 6667, |
7 | conf.name || 'ssbbot' |
8 | ) |
9 | ;(function connect() { |
10 | irc.connect() |
11 | irc.client.on('error', reconnect) |
12 | irc.client.on('close', reconnect) |
13 | var retry = false |
14 | function reconnect () { |
15 | if(retry) return |
16 | retry = true |
17 | setTimeout(connect, 10e3) |
18 | } |
19 | }) |
20 | irc.on('ready', cb) |
21 | irc.on('error', function () { |
22 | |
23 | }) |
24 | return irc |
25 | } |
26 | |
27 | IRC.toChannel = function (channel) { |
28 | return channel[0] == '#' ? channel : '#'+channel |
29 | } |
30 | |
31 | //join if not already joined... |
32 | IRC.join = function (irc, channel) { |
33 | if(!irc.channels) irc.channels = {} |
34 | if(!irc.channels[channel]) { |
35 | irc.channels[channel] = true |
36 | irc.join(IRC.toChannel(channel)) |
37 | } |
38 | } |
39 | |
40 | IRC.channel = function (irc, channel, message) { |
41 | IRC.join(irc, channel) |
42 | irc.say(IRC.toChannel(channel), message) |
43 | } |
44 | |
45 | IRC.private = function (irc, nick, message) { |
46 | irc.say(nick, message) |
47 | } |
48 | |
49 | |
50 | //if(!module.parent) { |
51 | // var ssb = require('./ssb') |
52 | // var irc = IRC({}, function (err) { |
53 | // var note = { |
54 | // author: 'dominic', |
55 | // target: 'domanic', |
56 | // text: 'test 1 2 3, @domanic', |
57 | // id: '%v6y1c1VYXthYbNYh0RqmXfC18HyhHnozDN3ZhrWLThU=.sha256' |
58 | // } |
59 | // var config = {} |
60 | // |
61 | // function notify (note) { |
62 | // irc.say( |
63 | // note.type == 'channel' |
64 | // ? IRC.toChannel(note.target) |
65 | // : note.target |
66 | // , |
67 | // ssb.render(note, ssb.link(note.id, config)) |
68 | // ) |
69 | // } |
70 | // |
71 | // notify(note) |
72 | // }) |
73 | //} |
74 | // |
75 | |
76 | |
77 | |
78 |
Built with git-ssb-web