Advertisement
Guest User

Untitled

a guest
Jul 3rd, 2015
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.53 KB | None | 0 0
  1. var chat = document.getElementById("chat");
  2. var input = document.getElementById("input");
  3. var send = document.getElementById("sayit-button");
  4. var subscribedStorage = "SIRPYTHON_PIMPBOT_SUBSCRIBED";
  5. var pimpedStorage = "SIRPYTHON_PIMPBOT_PIMPED";
  6.  
  7. sessionStorage.setItem(pimpedStorage, "{}"); // so I don't get an undefined thing later
  8.  
  9. /**
  10. Returns the last chat message spoken
  11. */
  12. function getLastMessage() {
  13. return {
  14. content: chat.lastElementChild.children[1].lastElementChild.children[1].innerHTML,
  15. user: chat.lastElementChild.children[0].children[2].innerHTML.replace(/ /g,'')
  16. };
  17. }
  18.  
  19. // ---------- Chat functions ----------
  20. /**
  21. Sends a message to chat
  22. */
  23. function sendMessage(message) {
  24. input.value = message;
  25. send.click();
  26. }
  27. /**
  28. Sends a message @ a user
  29. */
  30. function sendTo(message, user) {
  31. sendMessage("@" + user + " " + message);
  32. }
  33. // ---------- Subscribed list functions ----------
  34. /**
  35. Returns an object representing the subscribed list from storage
  36. */
  37. function getSubscribedList() {
  38. return JSON.parse(localStorage.getItem(subscribedStorage));
  39. }
  40. /**
  41. Sets an object representing the subscribed list to storage
  42. */
  43. function setSubscribedList(newList) {
  44. localStorage.setItem(subscribedStorage, JSON.stringify(newList));
  45. }
  46. /**
  47. Adds a user to the subscribed list
  48. */
  49. function addToSubscribed(username) {
  50. var subscribed = getSubscribedList();
  51. subscribed[username] = true;
  52. setSubscribedList(subscribed);
  53. }
  54. /**
  55. Removes a user from the subscribed list
  56. */
  57. function removeFromSubscribed(username) {
  58. var subscribed = getSubscribedList();
  59. delete subscribed[username];
  60. setSubscribedList(subscribed);
  61. }
  62. /**
  63. Returns if a user is subscribed
  64. */
  65. function isSubscribed(username) {
  66. return getSubscribedList()[username] != undefined;
  67. }
  68. /**
  69. Returns all the subscribed users
  70. */
  71. function getSubscribedUsers() {
  72. var users = [];
  73. var subscribed = getSubscribedList();
  74. for(var user in subscribed) {
  75. users.push(user);
  76. }
  77. return users;
  78. }
  79. // ---------- Pimped list functions ----------
  80. /**
  81. Returns an object representing the pimped list from storage
  82. */
  83. function getPimpedList() {
  84. return JSON.parse(sessionStorage.getItem(pimpedStorage));
  85. }
  86. /**
  87. Sets an object representing the pimped list to storage
  88. */
  89. function setPimpedList(newList) {
  90. sessionStorage.setItem(pimpedStorage, JSON.stringify(newList));
  91. }
  92. /**
  93. Adds an ID to the pimped list
  94. */
  95. function addToPimped(id) {
  96. var pimped = getPimpedList()
  97. pimped[id] = true;
  98. setPimpedList(pimped);
  99. }
  100. /**
  101. Returns if an ID has been pimped
  102. */
  103. function wasPimped(id) {
  104. return getPimpedList()[id] != undefined;
  105. }
  106.  
  107. function main() {
  108. var message = getLastMessage();
  109. var messageParts = message.content.split(" ");
  110.  
  111. if(message.user != "SirAlfred") {
  112. if(message.content == "subscribe") {
  113. if(isSubscribed(message.user) == false) {
  114. addToSubscribed(message.user);
  115. sendTo("You have been successfully subscribed.", message.user);
  116. } else {
  117. sendTo("You are already subscribed.", message.user);
  118. }
  119. } else if(message.content == "unsubscribe") {
  120. if(isSubscribed(message.user) == true) {
  121. removeFromSubscribed(message.user);
  122. sendTo("You have been successfully removed.", message.user);
  123. } else {
  124. sendTo("You are not subscribed.", message.user);
  125. }
  126. } else if(messageParts[0] == "pimp") {
  127. if(isSubscribed(message.user) == true) {
  128. var id = messageParts[1];
  129. if(id == undefined) {
  130. sendTo("You need to provide the ID of your answer.", message.user);
  131. }
  132.  
  133. if(wasPimped(id) == false) {
  134. addToPimped(id);
  135. var groupMessage = "";
  136. var subscribed = getSubscribedUsers();
  137. for(var i = 0; i < subscribed.length; i++) {
  138. groupMessage += ("@" + subscribed[i] + " ");
  139. }
  140. sendMessage(groupMessage);
  141. window.setTimeout(function() {
  142. sendMessage("http://codereview.stackexchange.com/a/" + id);
  143. }, 4000);
  144. } else {
  145. sendTo("That post has already been pimped today.", message.user);
  146. }
  147. } else {
  148. sendTo("You must be subscribed to pimp here.", message.user);
  149. }
  150. }
  151. }
  152.  
  153. window.setTimeout(main, 5000);
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement