Advertisement
Guest User

Untitled

a guest
May 19th, 2016
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1. class Message {
  2. constructor(user, txt, starNode, replyID) {
  3. this.replyID = replyID;
  4. this.user = user;
  5. this.txt = txt;
  6. this.starNode = starNode;
  7. }
  8. star() {
  9. this.starNode.click();
  10. }
  11. toMarkdown() {
  12.  
  13. }
  14.  
  15. }
  16.  
  17. class Bot {
  18. constructor(name, owner, ignoreOwn, reqPing) {
  19. this.name = name;
  20. this.owner = owner;
  21. this.reqPing = reqPing;
  22. this.ignoreOwn = ignoreOwn;
  23. this.modules = new Set();
  24. }
  25. chat(msg) {
  26. document.getElementById('input').value = msg.replace(/<\/?i>/g, "*");
  27. document.getElementById("sayit-button").click();
  28. }
  29.  
  30. getMessage(number) {
  31. var containers = document.getElementsByClassName("monologue");
  32. var container = containers[containers.length - number];
  33. var message = new Message(
  34. container.getElementsByClassName("username")[0].innerHTML,
  35. container.getElementsByClassName("content")[0].innerHTML,
  36. container.getElementsByClassName("stars")[0].children[0],
  37. ":" + container.getElementsByClassName("message")[0].id.split("-").pop()
  38. );
  39. return message;
  40. }
  41.  
  42. loop() {
  43. while (this.run) {
  44. var message = this.getMessage(1);
  45. var prevMessage = this.getMessage(2);
  46.  
  47. if (message.user == this.name && this.ignoreOwn) {
  48. return;
  49. }
  50. var messageL = message.txt.toLowerCase();
  51.  
  52. if (this.reqPing && messageL.includes("@" +
  53. this.name.toLowerCase()) != true)
  54. return;
  55. if (message.txt == prevMessage.txt)
  56. return;
  57. for (let module of this.modules) module(this, message);
  58. }
  59. }
  60.  
  61. stop() {
  62. this.run = false;
  63. }
  64. start() {
  65. this.run = true;
  66. this.loop();
  67. }
  68. addModule(callback) {
  69. this.modules.add(callback);
  70. }
  71.  
  72.  
  73. }
  74.  
  75. function xkcd(bot, input) {
  76.  
  77. if (input.txt.includes("xkcd")) {
  78. var split = input.txt.split(" ");
  79. var num = Number(split[split.indexOf("xkcd") + 1]);
  80. var url = "http://www.xkcd.com/" + num;
  81. if (url != "http://www.xkcd.com/NaN") {
  82. bot.chat(url);
  83. } else {
  84. bot.chat("Invalid input " + input.replyID); //thnx to downgoat on PPCG chat
  85. }
  86. }
  87. }
  88. var bot = new Bot("epicTCK", "epicTCK", false, true);
  89. bot.addModule(xkcd);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement