Потребителски вход

Запомни ме | Регистрация
Постинг
19.12.2018 09:30 - Как да изтрием Discord съобщенията си / хисторито
Автор: deletediscordhistory Категория: Технологии   
Прочетен: 3314 Коментари: 1 Гласове:
-1

Последна промяна: 19.12.2018 09:38

Постингът е бил сред най-популярни в категория в Blog.bg
За да изтрием съобщенията си в Discord, са ни необходими 3 неща, които после ще добавим към кратък код, който съм пейстнал по-долу. Тези 3 неща са:

1. authToken (поредица от числа и букви, които не трябва да показваме на никого)
2. ID номера на сървъра, в който искаме да изтрием съобщенията си
3. ID номера на акаунта ни

2 и 3 се намират за секунди с десен клик върху иконата на сървъра / нашия акаунт -> copy ID

За да намерим authToken-а:

- Отиваме на discordapp.com/channels/@me
- Влизаме в акаунта си и цъкаме на сървъра, в който искаме да трием съобщения
- Влизаме в Settings -> Appearance и отключваме Developer Mode, за да може да отворим конзолата:

image

- Натискаме CTRL + SHIFT + I за да се отвори конзолата

- Горе вдясно избираме Network

image

- Натискаме F5 или CTRL+R, за да се презареди страницата

- Във филтри въвеждаме /api/, избираме applications -> headers и скролваме надолу докато не намерим думата authorization. Това е authToken-а ни. Копираме го.

image

- С десен клик върху иконата на сървъра -> copy ID

- С десен клик върху нашия акаунт в сървъра -> copy ID

- В скрипта, пейстнат долу, заменяме 1111111111 с authToken-а, 2222222222 с ID-то на сървъра, и 3333333333 с ID-то на акаунта ни (намират се към края)

clearMessages = function (guild_id, author_id, authToken, deleted = new Set()) {
    /*
     * Discord: Don"t copy stuff into this box
     * Me: dOn"T COpy sTuFf iNtO tHIs bOx
     */
    const searchURL = `https://discordapp.com/api/v6/guilds/${guild_id}/messages/search?author_id=${author_id}&include_nsfw=true`
    const headers = { Authorization: authToken }
    let clock = 0
    interval = 500
    function delay(duration) {
        return new Promise((resolve, reject) => {
            setTimeout(resolve, duration)
        })
    }
    function loadMessages() {
        return fetch(searchURL, { headers })
    }
    function tryDeleteMessage(message) {
        // RAce coNDItiOn
        if (message.author.id == author_id && !deleted.has(message.id)) { // skip already deleted messages
            console.log(`Deleting message ${message.id} from ${message.author.username} (${message.content}...)`)
            return fetch(`https://discordapp.com/api/v6/channels/${message.channel_id}/messages/${message.id}`, { headers, method: "DELETE" })
        }
    }
    let messagesStore = []

    loadMessages()
        .then(resp => resp.json())
        .then(messages => {
            messages = messages.messages
            if (messages === undefined || messages === null || messages.length == 0) {
                console.log(`Couldn"t load messages. Check guild id, author id, and auth token.`)
                return
            }
            messages = messages.filter(m => m) // clean undefined
            messages = [].concat.apply([], messages); // flatten
            messages = messages.filter(m => m) // clean undefined
            if (messages.length === 0) {
                console.log(`Couldn"t load messages. Check guild id, author id, and auth token.`)
                return
            }
      
            //filter by author
            messages = messages.filter(m => m.author.id == author_id)
            // unique by id
            messages = messages.filter((e, i) => messages.findIndex(a => a.id === e.id) === i);

            beforeId = messages[messages.length-1].id
            messagesStore = messagesStore.concat(messages)
            return Promise.all(messagesStore.map(message => {
                return delay(clock += interval)
                    .then(() => tryDeleteMessage(message))
                    .then(resp => {
                        if (resp) {
                            if (resp.status == 429) {
                                interval += 10
                                console.log(`Too fast; bumping interval to ${interval}`)
                            } else if (resp.status === 204) {
                                deleted.add(message.id) // mark deleted
                                return resp.text()
                            }
                        }
                    })
            }))
        })
        .then(function() {
            if (messagesStore.length !== 0) {
                clearMessages(guild_id, author_id, authToken, deleted)
            } else {
                console.log(`We have loaded all messages in this chat.`)
            }
        })
}
var authToken = "1111111111"
if (authToken.length === 0) {
    var localToken = document.body.appendChild(document.createElement(`iframe`)).contentWindow.localStorage.token
    if (localToken === undefined) {
        console.log(`Getting the auth token from localStorage isn"t supported on Chrome or the desktop client. Use Firefox or grab it from a network request"s headers.`)
        console.log(`To do that go to the Network tab of your inspector and copy the Authorization header of a request. There are detailed instructions in the tutorial.`)
    } else {
        authToken = JSON.parse(localToken)
    }
}
if (authToken.length !== 0) {
    clearMessages("2222222222", "3333333333", authToken)
}

- Отново отваряме конзолата с CTRL + SHIFT + I и пействаме вече завършения код долу вдясно.

image

- Чакаме скрипта да си свърши работата. Трие по 2-3 съобщения в секунда и по някой път дава грешки, затова се налага да го пейстнем отново и да рестартираме процеса.

Надявам се да сте разбрали процеса. На 19 декември 2018-та е тестван и все още работи.



Гласувай:
0




1. radostinalassa - А какво е това ..
22.12.2018 15:35
Discord ?
цитирай
Търсене

За този блог
Автор: deletediscordhistory
Категория: Технологии
Прочетен: 8518
Постинги: 1
Коментари: 1
Гласове: 0
Архив
Календар
«  Април, 2024  
ПВСЧПСН
1234567
891011121314
15161718192021
22232425262728
2930