Advertisement
Guest User

Untitled

a guest
Feb 19th, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.85 KB | None | 0 0
  1. var authToken = '_____________________________________'
  2.  
  3. if (typeof(blockedAuthors) === 'undefined') {
  4. var blockedAuthors = []
  5. }
  6.  
  7. clearMessages = function() {
  8. const channel = window.location.href.split('/').pop()
  9. const baseURL = `https://discordapp.com/api/channels/${channel}/messages`
  10. const headers = { Authorization: authToken }
  11.  
  12. let clock = 0
  13. let interval = 500
  14. let beforeId = null
  15. let messagesStore = []
  16.  
  17. function delay(duration) {
  18. return new Promise((resolve, reject) => {
  19. setTimeout(resolve, duration)
  20. })
  21. }
  22.  
  23. function loadMessages() {
  24.  
  25. let url = `${baseURL}?limit=100`
  26.  
  27. if (beforeId) {
  28. url += `&before=${beforeId}`
  29. }
  30.  
  31. return fetch(url, { headers })
  32. }
  33.  
  34. function tryDeleteMessage(message) {
  35. if (blockedAuthors.indexOf(message.author.id) === -1) {
  36.  
  37. console.log(`Deleting message from ${message.author.username} (${message.content.substring(0, 30)}...)`)
  38.  
  39. return fetch(`${baseURL}/${message.id}`, { headers, method: 'DELETE' })
  40. }
  41. }
  42.  
  43. function filterMessages(message) {
  44. return blockedAuthors.indexOf(message.author.id) === -1
  45. }
  46.  
  47. function onlyNotDeleted(message) {
  48. return message.deleted === false
  49. }
  50.  
  51. loadMessages()
  52. .then(resp => resp.json())
  53. .then(messages => {
  54. if (messages === null || messages.length === 0) {
  55. console.log(`We loaded all messages in this chat`)
  56.  
  57. return
  58. }
  59.  
  60. beforeId = messages[messages.length-1].id
  61.  
  62. messages.forEach(message => { message.deleted = false })
  63.  
  64. messagesStore = messagesStore.concat(messages.filter(filterMessages))
  65.  
  66. return Promise.all(messagesStore.filter(onlyNotDeleted).map(message => {
  67. return delay(clock += interval)
  68. .then(() => tryDeleteMessage(message))
  69. .then(resp => {
  70. if (resp && resp.status === 204) {
  71. message.deleted = true
  72. } else if (resp && resp.status === 403) {
  73. console.log(`Cannot delete messages from user ${message.author.username}, skiping it`)
  74.  
  75. blockedAuthors.push(message.author.id)
  76.  
  77. messagesStore = messagesStore.filter(filterMessages)
  78. }
  79. })
  80. }))
  81. })
  82. .then(function() {
  83. if (messagesStore.length !== 0 && messagesStore.length < 100) {
  84. clearMessages()
  85. } else {
  86. console.log(`Finished clearing cycle. You can run again this script if you want delete next 100 messages`)
  87. }
  88. })
  89. }
  90.  
  91. clearMessages()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement