pockybot
Version:
Spark bot that handles team recognition
50 lines (49 loc) • 2.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
class Utilities {
constructor(config) {
this.config = config;
}
sleep(seconds) {
return new Promise(resolve => setTimeout(resolve, seconds * 1000));
}
getRandomInt(num) {
return Math.floor(Math.random() * num);
}
commentIsPenalty(comment, keywords, penaltyKeywords) {
// If comment does not include penaltyKeyword
if (!penaltyKeywords.some(keyword => comment.toLowerCase().includes(keyword.toLowerCase()))) {
return false;
}
// If comment does include penaltyKeyword AND includes keyword
if (keywords.some(keyword => comment.toLowerCase().includes(keyword.toLowerCase()))) {
return false;
}
// If comment includes penaltyKeyword and does NOT include keyword
return true;
}
getPenaltyPegs(givenPegs, keywords, penaltyKeywords) {
return givenPegs.filter(peg =>
// Peg includes penaltyKeyword, AND peg does not include keyword
penaltyKeywords.some(keyword => peg['comment'].toLowerCase().includes(keyword.toLowerCase()))
&& (!keywords.some(keyword => peg['comment'].toLowerCase().includes(keyword.toLowerCase()))));
}
getNonPenaltyPegs(givenPegs, keywords, penaltyKeywords) {
return givenPegs.filter(peg =>
// Peg includes keyword, OR peg does not include penaltyKeyword
keywords.some(keyword => peg['comment'].toLowerCase().includes(keyword.toLowerCase()))
|| (!penaltyKeywords.some(keyword => peg['comment'].toLowerCase().includes(keyword.toLowerCase()))));
}
pegValid(comment, requireKeywords, keywords, penaltyKeywords) {
if (requireKeywords) {
// Comment must include one of the keywords
return keywords.some(x => comment.toLowerCase().includes(x.toLowerCase()));
}
else {
// Comment must not include one of the penalty keywords
return !penaltyKeywords.some(x => comment.toLowerCase().includes(x.toLowerCase()));
}
}
}
exports.default = Utilities;
;