Постинг
19.12.2018 09:30 -
Как да изтрием Discord съобщенията си / хисторито
Автор: deletediscordhistory
Категория: Технологии
Прочетен: 3318 Коментари: 1 Гласове:
Последна промяна: 19.12.2018 09:38
Прочетен: 3318 Коментари: 1 Гласове:
-1
Последна промяна: 19.12.2018 09:38
За да изтрием съобщенията си в Discord, са ни необходими 3 неща, които после ще добавим към кратък код, който съм пейстнал по-долу. Тези 3 неща са:
1. authToken (поредица от числа и букви, които не трябва да показваме на никого)
2. ID номера на сървъра, в който искаме да изтрием съобщенията си
3. ID номера на акаунта ни
2 и 3 се намират за секунди с десен клик върху иконата на сървъра / нашия акаунт -> copy ID
За да намерим authToken-а:
- Отиваме на discordapp.com/channels/@me
- Влизаме в акаунта си и цъкаме на сървъра, в който искаме да трием съобщения
- Влизаме в Settings -> Appearance и отключваме Developer Mode, за да може да отворим конзолата:
- Натискаме CTRL + SHIFT + I за да се отвори конзолата
- Горе вдясно избираме Network
- Натискаме F5 или CTRL+R, за да се презареди страницата
- Във филтри въвеждаме /api/, избираме applications -> headers и скролваме надолу докато не намерим думата authorization. Това е authToken-а ни. Копираме го.
- С десен клик върху иконата на сървъра -> 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 и пействаме вече завършения код долу вдясно.
- Чакаме скрипта да си свърши работата. Трие по 2-3 съобщения в секунда и по някой път дава грешки, затова се налага да го пейстнем отново и да рестартираме процеса.
Надявам се да сте разбрали процеса. На 19 декември 2018-та е тестван и все още работи.
1. authToken (поредица от числа и букви, които не трябва да показваме на никого)
2. ID номера на сървъра, в който искаме да изтрием съобщенията си
3. ID номера на акаунта ни
2 и 3 се намират за секунди с десен клик върху иконата на сървъра / нашия акаунт -> copy ID
За да намерим authToken-а:
- Отиваме на discordapp.com/channels/@me
- Влизаме в акаунта си и цъкаме на сървъра, в който искаме да трием съобщения
- Влизаме в Settings -> Appearance и отключваме Developer Mode, за да може да отворим конзолата:
- Натискаме CTRL + SHIFT + I за да се отвори конзолата
- Горе вдясно избираме Network
- Натискаме F5 или CTRL+R, за да се презареди страницата
- Във филтри въвеждаме /api/, избираме applications -> headers и скролваме надолу докато не намерим думата authorization. Това е authToken-а ни. Копираме го.
- С десен клик върху иконата на сървъра -> 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 и пействаме вече завършения код долу вдясно.
- Чакаме скрипта да си свърши работата. Трие по 2-3 съобщения в секунда и по някой път дава грешки, затова се налага да го пейстнем отново и да рестартираме процеса.
Надявам се да сте разбрали процеса. На 19 декември 2018-та е тестван и все още работи.
ДСБ иска вето върху Закона за електронни...
Лични съобщения в Snimka.bg
Верижни съобщения (Chain letters)
Лични съобщения в Snimka.bg
Верижни съобщения (Chain letters)
Да се върнем на Переслегин, че го забрав...
Седемте установени фотографии на Васил Л...
Календарът на маите
Седемте установени фотографии на Васил Л...
Календарът на маите
Търсене
За този блог
Гласове: 0
Архив