Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Message {
- constructor(user, txt, starNode, replyID) {
- this.replyID = replyID;
- this.user = user;
- this.txt = txt;
- this.starNode = starNode;
- }
- star() {
- this.starNode.click();
- }
- toMarkdown() {
- }
- }
- class Bot {
- constructor(name, owner, ignoreOwn, reqPing) {
- this.name = name;
- this.owner = owner;
- this.reqPing = reqPing;
- this.ignoreOwn = ignoreOwn;
- this.modules = new Set();
- }
- chat(msg) {
- document.getElementById('input').value = msg.replace(/<\/?i>/g, "*");
- document.getElementById("sayit-button").click();
- }
- getMessage(number) {
- var containers = document.getElementsByClassName("monologue");
- var container = containers[containers.length - number];
- var message = new Message(
- container.getElementsByClassName("username")[0].innerHTML,
- container.getElementsByClassName("content")[0].innerHTML,
- container.getElementsByClassName("stars")[0].children[0],
- ":" + container.getElementsByClassName("message")[0].id.split("-").pop()
- );
- return message;
- }
- loop() {
- while (this.run) {
- var message = this.getMessage(1);
- var prevMessage = this.getMessage(2);
- if (message.user == this.name && this.ignoreOwn) {
- return;
- }
- var messageL = message.txt.toLowerCase();
- if (this.reqPing && messageL.includes("@" +
- this.name.toLowerCase()) != true)
- return;
- if (message.txt == prevMessage.txt)
- return;
- for (let module of this.modules) module(this, message);
- }
- }
- stop() {
- this.run = false;
- }
- start() {
- this.run = true;
- this.loop();
- }
- addModule(callback) {
- this.modules.add(callback);
- }
- }
- function xkcd(bot, input) {
- if (input.txt.includes("xkcd")) {
- var split = input.txt.split(" ");
- var num = Number(split[split.indexOf("xkcd") + 1]);
- var url = "http://www.xkcd.com/" + num;
- if (url != "http://www.xkcd.com/NaN") {
- bot.chat(url);
- } else {
- bot.chat("Invalid input " + input.replyID); //thnx to downgoat on PPCG chat
- }
- }
- }
- var bot = new Bot("epicTCK", "epicTCK", false, true);
- bot.addModule(xkcd);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement