Factor out url fetching and saying + make it work;
This commit is contained in:
parent
392c2c3577
commit
6f478ff1c1
49
index.js
49
index.js
@ -213,6 +213,31 @@ app.post('/', function(req, res) {
|
|||||||
res.sendStatus(200);
|
res.sendStatus(200);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function fetch_and_say(isIssue, id, from, chan) {
|
||||||
|
var path, text_prefix;
|
||||||
|
if (isIssue) {
|
||||||
|
path = 'issues/';
|
||||||
|
text_prefix = 'Issue #';
|
||||||
|
} else {
|
||||||
|
path = 'merge_requests/';
|
||||||
|
text_prefix = 'Merge request !';
|
||||||
|
}
|
||||||
|
|
||||||
|
var to = chan === config.nick ? from : chan;
|
||||||
|
|
||||||
|
var url = config.projectUrl + path + id;
|
||||||
|
request(url, function(err, res, body) {
|
||||||
|
if (res && res.statusCode === 200) {
|
||||||
|
var title = cheerio.load(body)('head title').text();
|
||||||
|
if (title.length) {
|
||||||
|
client.say(to, title);
|
||||||
|
} else {
|
||||||
|
client.say(to, text_prefix + id + ": " + url);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
app.listen(config.port, config.hostname, function() {
|
app.listen(config.port, config.hostname, function() {
|
||||||
console.log('gitlab-to-irc running.');
|
console.log('gitlab-to-irc running.');
|
||||||
|
|
||||||
@ -222,32 +247,12 @@ app.listen(config.port, config.hostname, function() {
|
|||||||
var matches = null;
|
var matches = null;
|
||||||
while ((matches = issueRegexp.exec(message)) !== null) {
|
while ((matches = issueRegexp.exec(message)) !== null) {
|
||||||
var issueId = matches[1];
|
var issueId = matches[1];
|
||||||
var url = config.projectUrl + 'issues/' + issueId;
|
fetch_and_say(true, issueId, from, chan);
|
||||||
request(url, function(err, res, body) {
|
|
||||||
if (res && res.statusCode === '200') {
|
|
||||||
var title = cheerio.load(body)('head title').text();
|
|
||||||
if (title.length) {
|
|
||||||
client.say(chan, title);
|
|
||||||
} else {
|
|
||||||
client.say(chan, "Issue #" + issueId + ": " + url);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
while ((matches = mergeRequestRegexp.exec(message)) !== null) {
|
while ((matches = mergeRequestRegexp.exec(message)) !== null) {
|
||||||
var mrId = matches[1];
|
var mrId = matches[1];
|
||||||
var url = config.projectUrl + 'merge_requests/' + mrId;
|
fetch_and_say(false, mrId, from, chan);
|
||||||
request(url, function(err, res, body) {
|
|
||||||
if (res && res.statusCode === '200') {
|
|
||||||
var title = cheerio.load(body)('head title').text();
|
|
||||||
if (title.length) {
|
|
||||||
client.say(chan, title);
|
|
||||||
} else {
|
|
||||||
client.say(chan, "Merge request !" + mrId + ": " + url);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user