Skip to content

Instantly share code, notes, and snippets.

@niahoo
Last active September 20, 2023 01:29
Show Gist options
  • Save niahoo/c99284a8908cd33d59b4aff802179e9b to your computer and use it in GitHub Desktop.
Save niahoo/c99284a8908cd33d59b4aff802179e9b to your computer and use it in GitHub Desktop.

Revisions

  1. niahoo osef revised this gist May 3, 2016. 1 changed file with 0 additions and 4 deletions.
    4 changes: 0 additions & 4 deletions how-to.md
    Original file line number Diff line number Diff line change
    @@ -29,7 +29,3 @@ var authToken = 'MTX5MzQ1MjAyMjU0NjA2MzM2.ROFLMAO.UvqZqBMXLpDuOY3Z456J3JRIfbk'
    This script will only delete the messages that are visible. So, if you want to delete more messages, you should scroll top to show more of them **before** launch. If you do not have the permissions to delete some messages, the script should still work with yours (not tested).

    Copy the full code that you have edited, paste it into the browser javascript console and watch your messages being deleted.

    ### This is too slow ?

    You can change the `setTimeout` time value if you want. Please be gentle with Discord's free servers.
  2. niahoo osef revised this gist May 3, 2016. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion how-to.md
    Original file line number Diff line number Diff line change
    @@ -26,7 +26,7 @@ var authToken = 'MTX5MzQ1MjAyMjU0NjA2MzM2.ROFLMAO.UvqZqBMXLpDuOY3Z456J3JRIfbk'

    ### 4. Launch

    This script will only delete the messages that are visible. So, if you want to delete more messages, you should scroll top to show more of them. If you do not have the permissions to delete some messages, the script should still work with yours (not tested).
    This script will only delete the messages that are visible. So, if you want to delete more messages, you should scroll top to show more of them **before** launch. If you do not have the permissions to delete some messages, the script should still work with yours (not tested).

    Copy the full code that you have edited, paste it into the browser javascript console and watch your messages being deleted.

  3. niahoo osef created this gist May 3, 2016.
    34 changes: 34 additions & 0 deletions delete-all-messages.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,34 @@
    (function(){

    // Paste your token between the quotes :
    var authToken = '________________________________________'

    // https://github.com/yanatan16/nanoajax
    !function(t,e){function n(t){return t&&e.XDomainRequest&&!/MSIE 1/.test(navigator.userAgent)?new XDomainRequest:e.XMLHttpRequest?new XMLHttpRequest:void 0}function o(t,e,n){t[e]=t[e]||n}var r=["responseType","withCredentials","timeout","onprogress"];t.ajax=function(t,a){function s(t,e){return function(){c||(a(void 0===f.status?t:f.status,0===f.status?"Error":f.response||f.responseText||e,f),c=!0)}}var u=t.headers||{},i=t.body,d=t.method||(i?"POST":"GET"),c=!1,f=n(t.cors);f.open(d,t.url,!0);var l=f.onload=s(200);f.onreadystatechange=function(){4===f.readyState&&l()},f.onerror=s(null,"Error"),f.ontimeout=s(null,"Timeout"),f.onabort=s(null,"Abort"),i&&(o(u,"X-Requested-With","XMLHttpRequest"),e.FormData&&i instanceof e.FormData||o(u,"Content-Type","application/x-www-form-urlencoded"));for(var p,m=0,v=r.length;v>m;m++)p=r[m],void 0!==t[p]&&(f[p]=t[p]);for(var p in u)f.setRequestHeader(p,u[p]);return f.send(i),f},e.nanoajax=t}({},function(){return this}());

    var regexReactId = /\$[0-9]+/g
    var ids = $$('[data-reactid*=":$"].message-text').map(function getMessageId(el) {
    var reactid = el.getAttribute('data-reactid')
    var match = reactid.match(regexReactId)
    var id = match.pop().substr(1)
    return id
    }).filter(function(id){
    return !!id
    })
    var channel = window.location.href.split('/').pop()
    var base_url = 'https://discordapp.com/api/channels/' + channel + '/messages/'
    var deleteLoop = function(){
    if (! ids.length) { return }
    var id = ids.pop()
    nanoajax.ajax({
    url: base_url + id,
    method: 'DELETE',
    headers: {
    authorization: authToken
    }
    }, function(){
    setTimeout(deleteLoop, 500)
    })
    }
    deleteLoop()
    }())
    35 changes: 35 additions & 0 deletions how-to.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,35 @@
    # Delete all messages in a Discord channel

    You have to know how to use your browser developer tools to use this thechnique.

    ### 1. Open your channel

    The URL must be like `https://discordapp.com/channels/XXXXXXX` and not `https://discordapp.com/channels/XXXXXXXXX/YYYYYYYY`. If so, change it manually. Once on the right page, you must not reload or navigate.


    ### 2. Get your authorization token
    - Open the dev tools (F12), open the Network tab. (You should clear all requests for better readability if you see some.)
    - Delete one message manually. In the request log, you will see a request with a `DELETE` method.
    - Click on the request to open the details, and on the Headers tab, copy the 'authorization' thoken. It's a long text with dots like `MTX5MzQ1MjAyMjU0NjA2MzM2.ROFLMAO.UvqZqBMXLpDuOY3Z456J3JRIfbk`.


    ### 3. Get the script

    Edit the javascript code from this tutorial in a text editor.

    Find the line starting with with `var authToken = ` and paste the token. Pay attention to the quotes. The code should read like this :

    ```javascript
    // Paste your token between the quotes :
    var authToken = 'MTX5MzQ1MjAyMjU0NjA2MzM2.ROFLMAO.UvqZqBMXLpDuOY3Z456J3JRIfbk'
    ```

    ### 4. Launch

    This script will only delete the messages that are visible. So, if you want to delete more messages, you should scroll top to show more of them. If you do not have the permissions to delete some messages, the script should still work with yours (not tested).

    Copy the full code that you have edited, paste it into the browser javascript console and watch your messages being deleted.

    ### This is too slow ?

    You can change the `setTimeout` time value if you want. Please be gentle with Discord's free servers.